Создание агента в стиле REACT с Fireworks AI и LangChain для получения данных, генерации SQL и поддержки памяти диалога
Руководство по созданию агента в стиле REACT с Fireworks AI и LangChain, способного получать веб-данные, генерировать SQL-запросы и сохранять контекст диалога для сложных задач.
Настройка окружения и инструментов
В этом руководстве показано, как создать интеллектуального агента в стиле REACT с использованием Fireworks AI и LangChain. Начинаем с установки необходимых пакетов: langchain, langchain-fireworks, requests и beautifulsoup4, чтобы обеспечить правильную работу всего кода.
Импорт необходимых библиотек
Подключаем важные модули: HTTP-клиенты (requests, BeautifulSoup), фреймворк агентов LangChain (BaseTool, initialize_agent, AgentType), мощную языковую модель Fireworks (ChatFireworks), а также инструменты для работы с подсказками и памятью диалога (LLMChain, PromptTemplate, ConversationBufferMemory). Для безопасного ввода и управления переменными окружения используются стандартные модули Python (getpass, os).
Конфигурация API ключа
При запуске вы вводите свой API ключ Fireworks через getpass — это сохраняет ключ в переменных окружения без отображения текста, обеспечивая безопасность.
Инициализация модели Fireworks
Создаётся экземпляр ChatFireworks с моделью llama-v3-70b-instruct, настроенной с конкретной температурой и максимальным количеством токенов, готовый к обработке инструкций.
Пример: анализ тональности
Формируется запрос для анализа тональности отзыва о фильме, который передаётся в модель. Результат — оценка настроения — выводится на экран.
Реализация памяти диалога
Определяется шаблон подсказки, включающий историю сообщений, создаётся буфер памяти для сохранения диалога, и строится цепочка LLMChain. Это позволяет модели сохранять контекст между запросами, что демонстрируется на примерах ввода и ответа.
Определение пользовательских инструментов
Создаются два инструмента, наследующие BaseTool:
-
FetchURLTool: скачивает первые пять параграфов текста с веб-страницы с помощью requests и BeautifulSoup. -
GenerateSQLTool: преобразует текстовые описания в прокомментированные SQL-запросы для BigQuery с помощью модели Fireworks.
Интеграция инструментов в агента REACT
Инструменты регистрируются и интегрируются с фреймворком LangChain через initialize_agent с типом агента ZERO_SHOT_REACT_DESCRIPTION. Это позволяет динамически использовать инструменты во время диалога.
Запуск агента
Пример запроса показывает, как агент сначала получает содержимое страницы Википедии, а затем генерирует SQL-запрос, подсчитывающий, сколько раз слово «model» встречается в тексте. Итоговый SQL выводится на экран.
Расширение возможностей
Такое решение открывает широкие возможности для создания AI-приложений, выходящих за рамки простой генерации текста. Можно добавлять специализированные инструменты, настраивать подсказки, улучшать память диалога, а также использовать функции вызова, цепочку агентов и векторный поиск для создания более сложных и контекстно-зависимых помощников.
Дополнительные материалы
Полный ноутбук с реализацией доступен для изучения. Следите за обновлениями в Twitter, присоединяйтесь к Telegram-каналу и группе LinkedIn, а также участвуйте в виртуальной конференции miniCON по AGENTIC AI с практическими занятиями и сертификатами.
Switch Language
Read this article in English