Как реализовать самозапрос с помощью поисковой цепочки?

Kak Realizovat Samozapros S Pomos U Poiskovoj Cepocki



LangChain — это модуль для создания языковых моделей и чат-ботов, которые могут понимать и извлекать текст на естественном языке. Естественные языки легко понятны людям, но машинам необходимо изучать их, неоднократно обрабатывая данные. Данные/документы на естественных языках можно использовать для обучения модели, а затем запрашивать подсказки из данных для проверки производительности модели.

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

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







Как реализовать самозапрос с помощью поисковой цепочки



Заключение



Как реализовать самозапрос с помощью поисковой цепочки?

Самостоятельный запрос — это процесс улучшения процесса цепочки, поскольку он полностью понимает команды. Цепочки понимают вопрос, извлекая данные обо всех важных терминах из набора данных. Как только модель обучена и понимает запрос, она генерирует ответ на запрос, заданный пользователем.





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

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

Прежде всего, запустите процесс, установив процесс LangChain, используя следующий код, и получите все зависимости для процесса:



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

После установки LangChain установите « результаты поиска в Google », чтобы получить результаты поиска от Google с помощью среды OpenAI:

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

Шаг 2: Создание среды

После установки модулей и фреймворков настройте среду для ОпенАИ и СерпAPi используя свои API, используя следующий код. Импортируйте библиотеки os и getpass, которые можно использовать для ввода ключей API из соответствующих учетных записей:

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

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

Шаг 3. Импорт библиотек

После настройки среды просто импортируйте необходимые библиотеки из зависимостей LangChain, такие как утилиты, агенты, llm и другие:

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

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

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

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

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

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

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

Шаг 4. Построение языковых моделей

Получение вышеуказанных библиотек необходимо на протяжении всего процесса, поскольку OpenAI() используется для настройки языковой модели. Используйте метод SerpAPIWrapper(), чтобы настроить переменную поиска и установить инструменты, необходимые агенту для выполнения всех задач:

лм '=' ОпенАИ ( температура '=' 0 )
поиск '=' СерпAPIWrapper ( )
инструменты '=' [
Инструмент (
имя '=' «Промежуточный ответ» ,
функция '=' поиск. бегать ,
описание '=' «полезно, когда вам нужно спросить с помощью поиска» ,
)
]

Шаг 5. Использование языка выражений LangChain

Приступаем к настройке агента с использованием языка выражений LangChain (LCEL), загружая модель в переменную приглашения:

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

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

llm_with_stop '=' лм. связывать ( останавливаться '=' [ ' \п Промежуточный ответ: ' ] )

Теперь настройте агентов с помощью Lambda, бессерверной платформы, управляемой событиями, для генерации ответов на вопросы. Кроме того, настройте шаги, необходимые для обучения и тестирования модели, чтобы получить оптимизированные результаты, используя настроенные ранее компоненты:

агент '=' {
'вход' : лямбда х: х [ 'вход' ] ,
'agent_scratchpad' : лямбда х: format_log_to_str (
Икс [ 'промежуточные_шаги' ] ,
префикс_наблюдения '=' ' \п Промежуточный ответ: ' ,
llm_prefix '=' '' ,
) ,
} | подсказать | llm_with_stop | SelfAskOutputParser ( )

Шаг 6. Настройка агента-исполнителя

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

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

Определите переменную Agent_executor, вызвав метод AgentExecutor() и используя компоненты в качестве его аргументов:

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

Шаг 7. Запуск агента

После настройки исполнителя агента просто протестируйте его, указав вопрос/подсказку во входной переменной:

агент_исполнитель. вызывать ( { 'вход' : «Кто чемпион Открытого чемпионата США среди мужчин» } )

Выполнение приведенного выше кода привело к появлению в выходных данных имени чемпиона US Open, то есть Доминика Тима:

Шаг 8. Использование агента самозадач

Получив ответ от агента, используйте SELF_ASK_WITH_SEARCH агент с запросом в методе run():

self_ask_with_search '=' инициализировать_агент (
инструменты , лм , агент '=' Тип Агента. SELF_ASK_WITH_SEARCH , подробный '=' Истинный
)
self_ask_with_search. бегать (
«Какой родной город Доминика Тима, чемпиона открытого мира США»
)

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

  • Кто такой Доминик Тим?
  • Какой родной город Доминика Тима?

Получив ответы на эти вопросы, агент сгенерировал ответ на исходный вопрос: « Винер-Нойштадт, Австрия »:

Вот и все, что касается процесса реализации самозада с поисковой цепочкой с использованием фреймворка LangChain.

Заключение

Чтобы реализовать самозапрос с поиском в LangChain, просто установите необходимые модули, такие как google-search-results, чтобы получать результаты от агента. После этого настройте среду, используя ключи API из учетных записей OpenAI и SerpAPi, чтобы начать процесс. Настройте агент и постройте модель с помощью модели самостоятельного запроса, чтобы протестировать ее с помощью метода AgentExecutor().