В этом репозитории показаны примеры приложений, созданных на основе Llama Stack. Начиная с Llama 3.1, вы можете создавать агентные приложения, способные:
разбиение задачи на части и выполнение многоэтапных рассуждений.
использование инструментов для выполнения некоторых действий
встроенный: модель имеет встроенные знания о таких инструментах, как поиск или интерпретатор кода.
нулевой выстрел: модель может научиться вызывать инструменты, используя ранее невидимые определения инструментов в контексте.
обеспечение защиты на уровне системы с использованием таких моделей, как Llama Guard.
Примечание
API Llama Stack все еще развивается и может измениться. Не стесняйтесь создавать и экспериментировать, но, пожалуйста, пока не полагайтесь на его стабильность!
Агентскому приложению требуется несколько компонентов:
способность делать выводы на основе базовой серии моделей Llama
возможность запуска проверки безопасности с использованием моделей серии Llama Guard
способность запускать инструменты, включая среду выполнения кода, и выполнять цикл с использованием многоэтапного процесса рассуждения модели.
Все эти компоненты теперь предлагаются в одном дистрибутиве Llama Stack. Llama Stack определяет и стандартизирует эти и многие другие компоненты, необходимые для упрощения создания приложений генеративного ИИ. Различные реализации этих API затем собираются вместе через Llama Stack Distribution .
Чтобы начать работу с приложениями Llama Stack, вам необходимо:
Установить необходимые компоненты
Запустить сервер Llama Stack
Подключите клиентское агентское приложение к серверу Llama Stack.
После запуска вы можете просто указать своему агентскому приложению URL-адрес этого сервера (например, http://localhost:5000
).
Пакеты Python
Мы рекомендуем создать изолированную среду conda Python.
# Создайте и активируйте виртуальную среду ENV=stack conda create -n $ENV python=3.10cd <путь-к-llama-stack-apps-repo>conda active $ENV# Установить зависимостиpip install -r требования.txt
При этом будут установлены все зависимости, необходимые для (1) сборки и запуска сервера Llama Stack (2) подключения клиентского приложения к серверу Llama Stack.
Пожалуйста, ознакомьтесь с руководством разработчика нашего репозитория llama-stack, чтобы настроить дистрибутив Llama Stack и запустить сервер для обслуживания конечных точек API. У вас должна быть конечная точка сервера для создания клиентских приложений.
Как только ваш сервер запустится, вы должны увидеть выходные данные:
... Serving POST /agentic_system/session/delete Serving POST /agentic_system/session/get Serving POST /agentic_system/step/get Serving POST /agentic_system/turn/get Serving GET /telemetry/get_trace Serving POST /telemetry/log_event Listening on :::5000 INFO: Started server process [587053] INFO: Waiting for application startup. INFO: Application startup complete. INFO: Uvicorn running on http://[::]:5000 (Press CTRL+C to quit)
Мы создали примеры демонстрационных сценариев для взаимодействия с сервером Stack.
При работающем сервере вы можете протестировать простой агент.
python -m examples.agents.hello localhost 5000
Вы увидите результаты в форме --
> created agents with agent_id=d050201b-0ca1-4abd-8eee-3cba2b8c0fbc User> Hello shield_call> No Violation inference> How can I assist you today? shield_call> No Violation User> Which players played in the winning team of the NBA western conference semifinals of 2024, please use tools shield_call> No Violation inference> brave_search.call(query="NBA Western Conference Semifinals 2024 winning team players") tool_execution> Tool:brave_search Args:{'query': 'NBA Western Conference Semifinals 2024 winning team players'} tool_execution> Tool:brave_search Response:{"query": "NBA Western Conference Semifinals 2024 winning team players", "top_k": [{"title": "2024 NBA Western Conference Semifinals - Mavericks vs. Thunder | Basketball-Reference.com", "url": "https://www.basketball-reference.com/playoffs/2024-nba-western-conference-semifinals-mavericks-vs-thunder.html", "description": "Summary and statistics for the <strong>2024</strong> <strong>NBA</strong> <strong>Western</strong> <strong>Conference</strong> <strong>Semifinals</strong> - Mavericks vs. Thunder", "type": "search_result"}, {"title": "2024 NBA playoffs - Wikipedia", "url": "https://en.wikipedia.org/wiki/2024_NBA_playoffs", "description": "Aged 20 years and 96 days old, ... youngest <strong>player</strong> <strong>in</strong> <strong>NBA</strong> history to record 10+ points and 15+ rebounds in a playoff game, coming during game 6 of the Maverick's <strong>Western</strong> <strong>Conference</strong> <strong>Semifinal</strong> <strong>win</strong> against the Thunder on May 18. The Timberwolves overcame a 20u2013point deficit to <strong>win</strong> game 7 against the Nuggets, the largest game 7 comeback in <strong>NBA</strong> playoffs history. With the defending champion Nuggets losing to the Minnesota Timberwolves, the <strong>2024</strong> playoffs marked ...", "type": "search_result"}, {"title": "2024 NBA Playoffs | Official Bracket, Schedule and Series Matchups", "url": "https://www.nba.com/playoffs/2024", "description": "The official site of the <strong>2024</strong> <strong>NBA</strong> Playoffs. Latest news, schedules, matchups, highlights, bracket and more.", "type": "search_result"}]} shield_call> No Violation inference> The players who played in the winning team of the NBA Western Conference Semifinals of 2024 are not specified in the search results provided. However, the search results suggest that the Mavericks played against the Thunder in the Western Conference Semifinals, and the Mavericks won the series. shield_call> No Violation
Теперь, когда сервер Stack настроен, следующим шагом будет запуск агентского приложения с использованием API-интерфейсов агентов.
Мы создали примеры сценариев, блокноты и пользовательский интерфейс чата (с использованием Gradio!), чтобы помочь вам начать работу.
Запустите приложение (локальное) и взаимодействуйте с ним, выполнив следующую команду:
ПИТОНПУТЬ=. примеры Python/agent_store/app.py localhost 5000
Это запустит приложение mesop, и вы сможете перейти на localhost:7860
чтобы поиграть с интерфейсом чата.
При желании вы можете настроить ключи API для пользовательских инструментов:
WolframAlpha: сохранить в переменной среды WOLFRAM_ALPHA_API_KEY
.
Brave Search: хранить в переменной среды BRAVE_SEARCH_API_KEY
.
Другие способы взаимодействия вы можете увидеть в магазине агентов README.md.
ПРИМЕЧАНИЕ. Убедитесь, что сервер стека все еще работает.
cd <путь к системе агента-ламы>conda active $ENVllama stack run <name> # Если еще не запущен, PYTHONPATH=. python -m example.agents.rag_with_memory_bank localhost 5000
Вы должны увидеть выходные данные на стандартный вывод в форме --
Окружающая среда: ipython Инструменты: Brave_search, wolfram_alpha, фотоген. Дата получения информации о сокращении: декабрь 2023 г. Дата сегодня: 23 июля 2024 г. User> Я планирую поездку в Швейцарию. Какие 3 места лучше всего посетить?Окончательный ответ Llama Guard Shield_type=<BuiltinShield.llama_guard: 'llama_guard'> is_violation=False нарушение_типа=Нет нарушения_return_message=Нет Запустил PromptGuardShield и получил результаты: Встроенное: 0,9999765157699585, Вредоносное: 1,1110752893728204e-05. StepType.shield_call> Нет нарушений role='user' content='Я планирую поездку в Швейцарию. Какие 3 места лучше всего посетить?'StepType.inference> Швейцария – прекрасная страна с богатой историей, культурой и природной красотой. Вот три места, которые обязательно стоит посетить, которые стоит добавить в свой маршрут: ....
Совет. При желании вы можете использовать
--disable-safety
в сценариях, чтобы избежать постоянного запуска защитных экранов.
Не стесняйтесь обращаться, если у вас есть вопросы.
Ознакомьтесь с нашими клиентскими SDK для подключения к серверу Llama Stack. Вы можете выбрать языки программирования Python, Node, Swift и Kotlin, чтобы быстро создавать свои приложения.
Примечание
Хотя вы можете запускать приложения с помощью venv
, для установки дистрибутива требуется conda.
# Создать и активировать виртуальную средуpython3 -m venv venvsource venv/bin/activate
# Создать и активировать виртуальную среду. Python -m venv venv venvScriptsactivate # Для командной строки# or.venvScriptsActivate.ps1 # Для PowerShell# orsource venvScriptsactivate # Для Git
Последующие инструкции (включая pip install -r requirements.txt
для установки зависимостей) остаются прежними.