В этом руководстве мы создадим ИИ-агента, способного искать в Википедии и отвечать на вопросы на основе найденной информации. Этот агент ReAct (Рассуждать и действовать) использует API ИИ Google Generative для обработки запросов и создания ответов. Наш агент сможет искать в Википедии соответствующую информацию, извлекать конкретные разделы из страниц Википедии и рассуждать над собранной информацией, чтобы формулировать ответы.
Для начала нам нужно настроить проект и установить необходимые зависимости. Мы будем использовать Node.js, библиотеку Axios для HTTP-запросов, API ИИ Google Generative и API Википедии. После настройки проекта мы создадим файл .env с нашим ключом API Google AI.
Далее мы создадим файл Tools.js, содержащий функции для взаимодействия с Википедией. Эти функции включают поиск в Википедии фрагментов, идентификаторов страниц и идентификаторов разделов, а также получение конкретного контента из Википедии с использованием идентификатора страницы и идентификатора раздела.
Затем мы создадим файл ReactAgent.js, который определяет класс ReActAgent. Этот класс имеет три основных состояния: ДУМАЮ (размышление), ДЕЙСТВИЕ (выполнение) и ОТВЕТ (ответ). Агент использует эти состояния для обработки запросов и создания ответов.
Наконец, мы создадим файл index.js для запуска агента. Этот файл определит асинхронную функцию main, которая инициализирует ReActAgent с запросом и списком доступных функций, а затем запускает агента для получения ответа.
Часть Википедии агента работает в два основных этапа: первоначальный поиск и подробный поиск. Функция первоначального поиска делает запрос к поисковому API Википедии и возвращает до 4 релевантных результатов для запроса. Для каждого результата она извлекает разделы страницы. Функция подробного поиска использует идентификатор страницы и идентификатор раздела для получения определенного содержимого и возвращает текст запрошенного раздела.
Порядок действий агента включает в себя ввод в состояние ДУМАЮ для размышления над вопросом, принятие решения о поиске в Википедии и вход в состояние ДЕЙСТВИЯ, выполнение функции Википедии и получение результатов, возвращение в состояние ДУМАЮ для размышления над результатами и повторение цикла ДУМАЮ и ДЕЙСТВИЕ по мере необходимости. Когда у него есть достаточно информации, он входит в состояние ОТВЕТ и генерирует окончательный ответ на основе всей собранной информации.
Модульная структура агента позволяет легко добавлять новые инструменты или API. Важно реализовать обработку ошибок и временные/итерационные ограничения, чтобы избежать бесконечных циклов или чрезмерного использования ресурсов.
dev.to
Creating a ReAct Agent from the scratch with nodeJS ( wikipedia search )
Create attached notes ...
