Как реализовать логику ReAct с помощью агента в LangChain?

Kak Realizovat Logiku React S Pomos U Agenta V Langchain



LangChain — это платформа для создания языковых моделей и чат-ботов, которые могут понимать и генерировать текст на человеческом языке. Производительность модели основана на понимании языка и его сложностей на этапе обучения. Следующий этап — генерация данных или текста на естественном языке, который можно легко прочитать и понять. Эти фазы называются « Рассуждение ' и ' Действующий соответственно в области обработки естественного языка.

Краткое описание

Этот пост продемонстрирует:

Как реализовать логику ReAct с помощью агента в LangChain?

« Реакт » представляет собой сочетание фаз «Причина» и «Действие» для повышения производительности языковой модели как « Ре » относится к разуму и « Действовать » к действию. Логика ReAct часто считается наиболее оптимизированной для создания LLM или чат-ботов для понимания и генерации текста. Агент — лицо, принимающее решения, которое решает, какие действия выполнять и в каком порядке они будут выполняться.







Чтобы изучить процесс реализации логики ReAct с использованием агента в LangChain, просто просмотрите следующее руководство:



Шаг 1: Установка фреймворков

Прежде всего, установите LangChain, чтобы начать процесс реализации логики ReAct:



pip установить langchain





Установите модуль google-search-results, чтобы получить зависимости для создания агента, который может получать результаты поиска из Google:

pip install openai результаты поиска в Google



После этого установите модули OpenAI, которые можно использовать для загрузки моделей большого языка или LLM для реализации логики ReAct:

pip установить openai

После получения всех необходимых модулей просто настройте среда OpenAI для создания LLM и среда SerpAPI для использования агента в модели:

Импортировать ты

Импортировать получить пропуск

ты . примерно [ 'ОПЕНАЙ_API_KEY' ] '=' получить пропуск . получить пропуск ( «Ключ API OpenAI:» )

ты . примерно [ 'SERPAPI_API_KEY' ] '=' получить пропуск . получить пропуск ( «Ключ API Serpapi:» )

Шаг 2. Загрузка языковой модели

Следующий шаг — загрузка языковых моделей путем импорта необходимых библиотек с помощью фреймворка LangChain:

от лангчейн. агенты Импортировать load_tools

от лангчейн. агенты Импортировать инициализировать_агент

от лангчейн. агенты Импортировать Тип агента

от лангчейн. llms Импортировать ОпенАИ

Используйте метод OpenAI() для построения языковой модели (llm), а затем настройте инструменты для агентов с помощью SerpAPI:

лм '=' ОпенАИ ( температура '=' 0 )

инструменты '=' load_tools ( [ 'серпапи' , 'ЖМ-математика' ] , лм '=' лм )

Метод 1: использование языка выражений LandChain

LCEL — это процесс интеграции или составления цепочек при построении языковых моделей в LangChain. Начните процесс с установки LangChainHub, чтобы получить его зависимости для построения и использования логики ReAct с агентами в LangChain:

pip установить langchainhub

Импорт библиотек из LangChain, таких как ReActSingleInputOutputParser, для создания модели, которая может использовать модель ReAct:

от лангчейн. инструменты . оказывать Импортировать render_text_description

от лангчейн. агенты . выходные_парсеры Импортировать ReActSingleInputOutputParser

от лангчейн. агенты . format_scratchpad Импортировать format_log_to_str

от Лангчейн Импортировать центр

Загрузите языковую модель для разработки логики ReAct с помощью метода pull() и сохраните ее в переменной приглашения. Определим некоторые инструменты, которые можно использовать для реализации логики в загруженном наборе данных для реализации его работы с агентом:

быстрый '=' центр. тянуть ( 'hwchase17/реагировать' )

быстрый '=' быстрый. частичный (

инструменты '=' render_text_description ( инструменты ) ,

имена_инструментов '=' ', ' . присоединиться ( [ т. е. имя для т в инструменты ] ) ,

)

Строительный агент

Теперь настройте агент и его инструменты, интегрировав его с языковой моделью, загруженной на шаге 2 этого руководства:

llm_with_stop '=' лм. связывать ( останавливаться '=' [ ' \п Наблюдение' ] )

Определите переменную агента, чтобы предоставить аргументы и инструменты для настройки агента, объясняющие его работу. Ранее настроенные части, такие как метод llm_with_stop и ReActSingleInputOutputParser(), интегрируются с агентом:

агент '=' {

'вход' : лямбда х: х [ 'вход' ] ,

'agent_scratchpad' : лямбда х: format_log_to_str ( Икс [ 'промежуточные_шаги' ] )

} | подсказать | llm_with_stop | ReActSingleInputOutputParser ( )

Получите библиотеку AgentExecutor и настройте ее метод, используя такие аргументы, как агент, инструменты и подробный текст, чтобы получить более читаемый результат:

от лангчейн. агенты Импортировать АгентИсполнитель

агент_исполнитель '=' АгентИсполнитель ( агент '=' агент , инструменты '=' инструменты , подробный '=' Истинный )

Вызовите метод Agent_executor() со строковым запросом в качестве входных данных, который заставит агент извлечь выходные данные:

агент_исполнитель. вызывать ( { 'вход' : «Кто девушка Лео Ди Каприо» } )

Выход

На следующем снимке экрана показано, что агент извлек информацию с помощью логики ReAct и сгенерировал текст на естественном языке:

Способ 2: использование ZeroShotReactAgent

Логику ReAct также можно реализовать с помощью другого агента, например ZeroShotReactAgent, при настройке переменной Agent_executor. После этого просто вызовите переменную Agent_executor с вопросом в качестве входных данных для вызова агента:

агент_исполнитель '=' инициализировать_агент ( инструменты , лм , агент '=' Тип Агента. ZERO_SHOT_REACT_DESCRIPTION , подробный '=' Истинный )

агент_исполнитель. вызывать ( { 'вход' : «Какой возраст девушки Лео Ди Каприо в степени 0,21» } )

Выход

Агент извлек информацию на основе входных данных, запрошенных при вызове агента_executor:

Метод 3: использование моделей чата

Еще один процесс, который можно использовать для реализации логики ReAct с использованием моделей чата после импорта библиотеки ChatOpenAI:

от лангчейн. чат_модели Импортировать ЧатOpenAI

Постройте модель чата с помощью метода ChatOpenAI() со значением температуры, равным 0, который может контролировать случайность результатов модели:

чат_модель '=' ЧатOpenAI ( температура '=' 0 )

Загрузите модель, в которой пользователь может реализовать логику ReAct, чтобы сохранить ее в переменной приглашения, и настройте инструменты, которые будут использоваться в процессе:

быстрый '=' центр. тянуть ( 'hwchase17/реакция-json' )

быстрый '=' быстрый. частичный (

инструменты '=' render_text_description ( инструменты ) ,

имена_инструментов '=' ', ' . присоединиться ( [ т. е. имя для т в инструменты ] ) ,

)

Создание агента

Используйте модель чата для хранения наблюдений или недавних сообщений, когда модель перестает генерировать текст:

Chat_model_with_stop '=' чат_модель. связывать ( останавливаться '=' [ ' \п Наблюдение' ] )

Получите библиотеку ReActJsonSingleInputOutputParser для реализации логики ReAct и получения результатов в формате JSON:

от лангчейн. агенты . выходные_парсеры Импортировать ReActJsonSingleInputOutputParser

Создайте и настройте агент, используя переменную и методchat_model для получения результатов путем вызова агента:

агент '=' {

'вход' : лямбда х: х [ 'вход' ] ,

'agent_scratchpad' : лямбда х: format_log_to_str ( Икс [ 'промежуточные_шаги' ] )

} | подсказать | чат_модель_с_остановкой | ReActJsonSingleInputOutputParser ( )

Настройте агент_executor и запустите его, чтобы получить результаты на основе запроса, указанного во входной переменной:

агент_исполнитель '=' АгентИсполнитель ( агент '=' агент , инструменты '=' инструменты , подробный '=' Истинный )

агент_исполнитель. вызывать ( { 'вход' : «Какой возраст девушки Лео Ди Каприо в степени 0,21» } )

Выход

Агент извлек выходные данные, как показано на следующем снимке экрана:

Способ 4: использование ChatZeroShotReactAgent

Изменение значения агента также можно использовать для реализации логики ReAct с помощью инфраструктуры LangChain:

агент '=' инициализировать_агент ( инструменты , чат_модель , агент '=' Тип Агента. CHAT_ZERO_SHOT_REACT_DESCRIPTION , подробный '=' Истинный )

агент. бегать ( «Какой возраст девушки Лео Ди Каприо в степени 0,21» )

Выход

Выходная структура содержит подробную информацию о работе агента из токенов и модели, использованной для извлечения информации:

Вот и все, что касается процесса реализации логики ReAct с помощью агента в LangChain.

Заключение

Чтобы реализовать логику ReAct с агентом, использующим структуру LangChain, установите такие модули, как google-search-results, для настройки агента. После этого настройте среду, используя учетные данные OpenAI и SerpAPI из своих учетных записей, чтобы начать использовать модель. Логику ReAct можно реализовать с использованием моделей LCEL и чата с несколькими агентами, предлагаемых модулем LangChain. В этом руководстве подробно описана реализация логики ReAct с использованием агента в LangChain.