Краткое описание
Этот пост продемонстрирует следующее:
Как реплицировать систему MRKL с помощью агентов в LangChain
- Шаг 1: Установка фреймворков
- Шаг 2. Настройка среды OpenAI
- Шаг 3. Импорт библиотек
- Шаг 4: Создание базы данных
- Шаг 5: Загрузка базы данных
- Шаг 6: Настройка инструментов
- Шаг 7. Создание и тестирование агента
- Шаг 8. Репликация системы MRKL
- Шаг 9: Использование ChatModel
- Шаг 10. Проверьте агент MRKL
- Шаг 11. Репликация системы MRKL
Как реплицировать систему MRKL с помощью агентов в LangChain?
LangChain позволяет пользователю создавать агентов, которые можно использовать для выполнения нескольких задач для языковых моделей или чат-ботов. Агенты хранят свою работу со всеми шагами в памяти, прикрепленной к языковой модели. Используя эти шаблоны, агент может воспроизвести работу любой системы, такой как MRKL, чтобы получить оптимизированные результаты без необходимости создавать их заново.
Чтобы изучить процесс репликации системы MRKL с помощью агентов в LangChain, просто выполните перечисленные шаги:
Шаг 1: Установка фреймворков
Прежде всего, установите экспериментальные модули LangChain с помощью pip с командой langchain-experimental:
pip install langchain-experimental
Установите модуль OpenAI для построения языковой модели системы MRKL:
pip установить openai
Шаг 2. Настройка среды OpenAI
Импортируйте библиотеки os и getpass, чтобы получить доступ к операционной системе, предлагающей пользователю предоставить ключи API для учетных записей OpenAI и SerpAPi:
Импортировать тыИмпортировать получить пропуск
ты . примерно [ 'ОПЕНАЙ_API_KEY' ] '=' получить пропуск . получить пропуск ( «Ключ API OpenAI:» )
ты . примерно [ 'SERPAPI_API_KEY' ] '=' получить пропуск . получить пропуск ( «Ключ API Serpapi:» )
Шаг 3. Импорт библиотек
Используйте зависимости из LangChain для импорта необходимых библиотек для построения языковой модели, инструментов и агентов:
от лангчейн. цепи Импортировать LLMMathChainот лангчейн. llms Импортировать ОпенАИ
от лангчейн. коммунальные услуги Импортировать СерпAPIWrapper
от лангчейн. коммунальные услуги Импортировать База данных SQL
от langchain_experimental. sql Импортировать SQLDatabaseChain
от лангчейн. агенты Импортировать инициализировать_агент , Инструмент
от лангчейн. агенты Импортировать Тип агента
Шаг 4: Создание базы данных
MRKL использует внешние источники знаний для извлечения информации из данных. В этом посте используется SQLite, который можно скачать по этому адресу. гид для создания базы данных. Следующая команда подтверждает процесс загрузки SQLite, отображая его установленную версию:
sqlite3
Используйте следующие команды внутри каталога, чтобы создать базу данных с помощью командной строки:
CD Рабочий столCD mydb
sqlite3 Чинук. БД
Загрузите База данных файл и сохраните его в каталоге, чтобы использовать следующую команду для создания файла « .дб ' файл:
. читать Чинук_Sqlite. sqlВЫБРАТЬ * ИЗ ПРЕДЕЛА исполнителя 10 ;
Шаг 5: Загрузка базы данных
После успешного создания базы данных загрузите файл в коллабораторию Google:
от Google. И ДРУГИЕ Импортировать файлызагружено '=' файлы. загрузить ( )
Пользователь может получить доступ к загруженному файлу в записной книжке и скопировать его путь из раскрывающегося меню:
Шаг 6: Настройка инструментов
После построения базы данных настройте языковую модель, инструменты и цепочки для агентов:
поиск '=' СерпAPIWrapper ( )лм '=' ОпенАИ ( температура '=' 0 )
llm_math_chain '=' LLMMathChain ( лм '=' лм , подробный '=' Истинный )
БД '=' SQLDatabase. from_uri ( 'sqlite:///../../../../../content/Chinook.db' )
db_chain '=' SQLDatabaseChain. from_llm ( лм , БД , подробный '=' Истинный )
инструменты '=' [
Инструмент (
имя '=' 'Поиск' ,
функция '=' поиск. бегать ,
описание '=' «Задавайте целевые подсказки, чтобы получить ответы о недавних событиях»
) ,
Инструмент (
имя '=' 'Калькулятор' ,
функция '=' llm_math_chain. бегать ,
описание '=' «полезно для ответа/решения математических задач»
) ,
Инструмент (
имя '=' 'ФуБар БД' ,
функция '=' db_chain. бегать ,
описание '=' «полезно для ответа на запросы из базы данных, и входной вопрос должен иметь полный контекст»
)
]
- Определите лм переменная с использованием ОпенАИ() метод для получения языковой модели.
- поиск это инструмент, который вызывает СерпAPIWrapper() метод доступа к своей среде.
- ЛММатчейн() Метод используется для получения ответов, связанных с математическими задачами.
- Определите БД переменная с путем к файлу внутри SQLDatabase() метод.
- SQLDatabaseChain() Этот метод можно использовать для получения информации из базы данных.
- Определите такие инструменты, как поиск , калькулятор , и ФуБар БД для создания агента для извлечения данных из разных источников:
Шаг 7. Создание и тестирование агента
Инициализируйте систему MRKL с помощью инструментов llm и агента, чтобы получить ответы на вопросы, заданные пользователем:
мркл '=' инициализировать_агент ( инструменты , лм , агент '=' Тип Агента. ZERO_SHOT_REACT_DESCRIPTION , подробный '=' Истинный )Запустите систему MRKL, используя метод run() с вопросом в качестве аргумента:
мркл. бегать ( «Сколько сейчас лет Лео Ди Каприо и его девушке, это также говорит об их разнице в возрасте» )Выход
Агент предоставил окончательный ответ с полным путем, используемым системой для получения окончательного ответа:
Шаг 8. Репликация системы MRKL
Теперь просто используйте мркл Ключевое слово с методом run() для получения ответов из разных источников, таких как базы данных:
мркл. бегать ( «Как полное имя исполнителя, чей альбом под названием «The Storm Before the Calm» вышел недавно, и есть ли они в базе данных FooBar, а также какие из их альбомов есть в базе данных?» )Агент автоматически преобразовал вопрос в запрос SQL для получения ответа из базы данных. Агент ищет правильный источник, чтобы получить ответ, а затем составляет запрос для извлечения информации:
Шаг 9: Использование ChatModel
Пользователь может просто изменить языковую модель, используя метод ChatOpenAI(), чтобы сделать ее ChatModel и использовать с ней систему MRKL:
от лангчейн. чат_модели Импортировать ЧатOpenAIпоиск '=' СерпAPIWrapper ( )
лм '=' ЧатOpenAI ( температура '=' 0 )
ллм1 '=' ОпенАИ ( температура '=' 0 )
llm_math_chain '=' LLMMathChain ( лм '=' ллм1 , подробный '=' Истинный )
БД '=' SQLDatabase. from_uri ( 'sqlite:///../../../../../content/Chinook.db' )
db_chain '=' SQLDatabaseChain. from_llm ( ллм1 , БД , подробный '=' Истинный )
инструменты '=' [
Инструмент (
имя '=' 'Поиск' ,
функция '=' поиск. бегать ,
описание '=' «Задавайте целевые подсказки, чтобы получить ответы о недавних событиях»
) ,
Инструмент (
имя '=' 'Калькулятор' ,
функция '=' llm_math_chain. бегать ,
описание '=' «полезно для ответа/решения математических задач»
) ,
Инструмент (
имя '=' 'ФуБар БД' ,
функция '=' db_chain. бегать ,
описание '=' «полезно для ответа на запросы из базы данных, и входной вопрос должен иметь полный контекст»
)
]
Шаг 10. Проверьте агент MRKL
После этого соберите агент и инициализируйте его в переменной mrkl с помощью метода Initialize_agent(). Добавьте параметр метода для интеграции таких компонентов, как инструменты, llm, агент и подробный процесс, чтобы получить на выходе полный процесс:
мркл '=' инициализировать_агент ( инструменты , лм , агент '=' Тип Агента. CHAT_ZERO_SHOT_REACT_DESCRIPTION , подробный '=' Истинный )Выполните вопрос, запустив систему mrkl, как показано на следующем снимке экрана:
мркл. бегать ( «Кто девушка Лео Ди Каприо? Сколько им сейчас лет» )
Выход
Следующий фрагмент отображает окончательный ответ, полученный агентом:
Шаг 11. Репликация системы MRKL
Используйте систему MRKL, вызвав метод run() с вопросом на естественном языке, чтобы извлечь информацию из базы данных:
мркл. бегать ( «Как полное имя исполнителя, чей альбом под названием «The Storm Before the Calm» вышел недавно, и есть ли они в базе данных FooBar, а также какие из их альбомов есть в базе данных?» )Выход
Агент отобразил окончательный ответ, извлеченный из базы данных, как показано на следующем снимке экрана:
Вот и все, что касается процесса репликации системы MRKL с помощью агентов в LangChain:
Заключение
Чтобы реплицировать систему MRKL с помощью агентов в LangChain, установите модули, чтобы получить зависимости для импорта библиотек. Библиотеки необходимы для создания языковой модели или модели чата, чтобы получать ответы из нескольких источников с помощью инструментов. Агенты настроены на использование инструментов для извлечения выходных данных из различных источников, таких как Интернет, базы данных и т. д. В этом руководстве подробно описан процесс репликации системы MRKL с использованием агентов в LangChain.