Как добавить память в агент функций OpenAI в LangChain?

Kak Dobavit Pamat V Agent Funkcij Openai V Langchain



LangChain — это платформа, содержащая зависимости для построения больших языковых моделей или LLM. Он также предоставляет инструменты для создания агентов для выполнения всех промежуточных шагов от получения запроса от пользователя до получения ответа. OpenAI — это среда, которая обеспечивает читаемый и структурированный вывод из Интернета с помощью «результаты поиска в Google» модуль.

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

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

Как добавить память в агент функций OpenAI в LangChain?

OpenAI — это организация по искусственному интеллекту (ИИ), которая была основана в 2015 году и вначале была некоммерческой организацией. Microsoft инвестирует большие средства с 2020 года, поскольку обработка естественного языка (NLP) с помощью искусственного интеллекта процветает благодаря чат-ботам и языковым моделям.







Создание агентов OpenAI позволяет разработчикам получать более читабельные и точные результаты из Интернета. Добавление памяти агентам позволяет им лучше понимать контекст чата, а также сохранять предыдущие разговоры в своей памяти. Чтобы изучить процесс добавления памяти в агент функций OpenAI в LangChain, просто выполните следующие шаги:



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

Прежде всего, установите зависимости LangChain из «langchain-экспериментальный» framework, используя следующий код:



pip установить langchain - экспериментальный





Установите «результаты поиска в Google» модуль для получения результатов поиска с сервера Google:

пип установить гугл - поиск - Результаты



Также установите модуль OpenAI, который можно использовать для построения языковых моделей в LangChain:

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

Шаг 2. Настройка среды

После получения модулей настройте среды, используя ключи API из ОпенАИ и СерпAPi Счета:

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

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

Выполните приведенный выше код, чтобы ввести ключи API для доступа к среде, и нажмите Enter для подтверждения:

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

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

из Лангчейна. цепи Импортировать LLMMathChain
из Лангчейна. llms Импортировать ОпенАИ
#получить библиотеку для поиска в Google через Интернет
из Лангчейна. коммунальные услуги Импортировать СерпAPIWrapper
из Лангчейна. коммунальные услуги Импортировать База данных SQL
из langchain_experimental. sql Импортировать SQLDatabaseChain
#получить библиотеку для создания инструментов для инициализация агента
из Лангчейна. агенты Импортировать Тип агента , Инструмент , инициализировать_агент
из Лангчейна. чат_модели Импортировать ЧатOpenAI

Шаг 4: Создание базы данных

Чтобы продолжить работу с этим руководством, нам нужно создать базу данных и подключиться к агенту, чтобы извлечь из нее ответы. Для сборки базы данных необходимо скачать SQLite, используя этот гид и подтвердите установку с помощью следующей команды:

sqlite3

Запуск указанной выше команды в Терминал Windows отображает установленную версию SQLite (3.43.2):

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

компакт-диск рабочего стола
компакт-диск mydb
sqlite3 Чинук. БД

Пользователь может просто загрузить содержимое базы данных отсюда. связь в каталоге и выполните следующую команду для создания базы данных:

. читать Чинук_Sqlite. sql
ВЫБИРАТЬ * ОТ ПРЕДЕЛА исполнителя 10 ;

База данных успешно построена и пользователь может искать в ней данные по различным запросам:

Шаг 5: Загрузка базы данных

После успешного создания базы данных загрузите «.дб» файл в Google Collaboratory, используя следующий код:

из Гугла. И ДРУГИЕ Импортировать файлы
загружено '=' файлы. загрузить ( )

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

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

Шаг 6. Настройка языковой модели

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

лм '=' ЧатOpenAI ( температура '=' 0 , модель '=' 'gpt-3.5-турбо-0613' )
поиск '=' СерпAPIWrapper ( )
llm_math_chain '=' LLMMathChain. from_llm ( лм '=' лм , подробный '=' Истинный )
БД '=' SQLDatabase. from_uri ( 'sqlite:///../../../../../content/Chinook.db' )
db_chain '=' SQLDatabaseChain. from_llm ( лм , БД , подробный '=' Истинный )
инструменты '=' [
Инструмент (
имя '=' 'Поиск' ,
функция '=' поиск. бегать ,
описание '=' «Задавайте целевые вопросы, чтобы получить ответы на вопросы о последних событиях» ,
) ,
Инструмент (
имя '=' 'Калькулятор' ,
функция '=' llm_math_chain. бегать ,
описание '=' «полезно для ответа/решения математических задач» ,
) ,
Инструмент (
имя '=' «ФооБар-ДБ» ,
функция '=' db_chain. бегать ,
описание '=' «полезно для ответов на вопросы о FooBar, и ввод должен быть в форме вопроса, содержащего полный контекст» ,
) ,
]
  • лм переменная содержит конфигурации языковой модели с помощью метода ChatOpenAI() с именем модели.
  • Поиск Переменная содержит метод SerpAPIWrapper() для создания инструментов для агента.
  • Постройте llm_math_chain чтобы получить ответы, относящиеся к предметной области «Математика», с помощью метода LLMMathChain().
  • Переменная db содержит путь к файлу, содержащему содержимое базы данных. Пользователю необходимо изменить только последнюю часть, которая «содержание/Chinook.db» пути, сохраняя «sqlite:///../../../../../» одинаковый.
  • Постройте еще одну цепочку ответов на запросы из базы данных, используя метод db_chain переменная.
  • Настройте такие инструменты, как поиск , калькулятор , и FooBar-DB для поиска ответа, ответа на математические вопросы и запросов из базы данных соответственно:

Шаг 7: Добавление памяти

После настройки функций OpenAI просто создайте и добавьте память агенту:

из Лангчейна. подсказки Импортировать СообщенияЗаполнитель
из Лангчейна. Память Импортировать РазговорБуферПамять

агент_kwargs '=' {
'extra_prompt_messages' : [ СообщенияЗаполнитель ( имя_переменной '=' 'Память' ) ] ,
}
Память '=' РазговорБуферПамять ( ключ_памяти '=' 'Память' , return_messages '=' Истинный )

Шаг 8. Инициализация агента

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

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

Шаг 9. Тестирование агента

Наконец, протестируйте агента, запустив чат с помощью команды « привет ' сообщение:

агент. бегать ( 'привет' )

Добавьте в память некоторую информацию, запустив с ней агент:

агент. бегать ( «Меня зовут Джон Сноу» )

Теперь проверьте память, задав вопрос о предыдущем чате:

агент. бегать ( 'Как меня зовут' )

Агент ответил именем, полученным из памяти, поэтому память успешно работает с агентом:

На данный момент это все.

Заключение

Чтобы добавить память агенту функций OpenAI в LangChain, установите модули, чтобы получить зависимости для импорта библиотек. После этого просто создайте базу данных и загрузите ее в блокнот Python, чтобы ее можно было использовать с моделью. Настройте модель, инструменты, цепочки и базу данных перед их добавлением в агент и инициализируйте его. Прежде чем тестировать память, создайте ее с помощью ConversationalBufferMemory() и добавьте ее в агент перед тестированием. В этом руководстве подробно описано, как добавить память в агент функций OpenAI в LangChain.