Как добавить память в цепочку с несколькими входами в LangChain?

Kak Dobavit Pamat V Cepocku S Neskol Kimi Vhodami V Langchain



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

В этом руководстве будет показан процесс добавления памяти в цепочку с несколькими входами в LangChain.

Как добавить память в цепочку с несколькими входами в LangChain?

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







Шаг 1. Установите модули

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



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



Установите chromadb для хранения данных, используемых памятью, в хранилище векторов Chroma:





pip установить хромадб

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



pip установить тиктокен

OpenAI — это модуль, который можно использовать для построения цепочек и LLM с помощью метода OpenAI():

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

Шаг 2. Настройка среды и загрузка данных

Следующим шагом после установки всех необходимых для этого процесса модулей является настройка окружения используя ключ API от учетной записи OpenAI:

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

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

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

от Google. И ДРУГИЕ Импортировать файлы

загружено '=' файлы. загрузить ( )

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

После успешной загрузки документа просто импортируйте необходимые библиотеки из модуля Langchain:

от лангчейн. вложения . опенай Импортировать OpenAIEmbeddings

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

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

от лангчейн. вектормагазины . elastic_vector_search Импортировать ЭластичныйВекторПоиск

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

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

Шаг 4. Создание памяти с использованием базы данных Chroma

Теперь начните создавать векторное пространство для хранения вложений и токенов загруженного ранее документа:

с открыть ( 'state_of_the_union.txt' ) как е:
штат_союза_союза '=' ф. читать ( )
text_splitter '=' СимволТекстСплиттер ( размер_куска '=' 1000 , chunk_overlap '=' 0 )
тексты '=' text_splitter. разделенный_текст ( штат_союза_союза )

вложения '=' OpenAIEmbeddings ( )

Настройте базу данных Chroma для хранения текста и вложений из документа:

поиск документов '=' Цветность. from_texts (

тексты , вложения , метаданные '=' [ { 'источник' : я } для я в диапазон ( только ( тексты ) ) ]

)

Проверьте память, задав команду в переменной запроса, а затем выполнив методlikeity_search():

запрос '=' «Когда было создано НАТО»

документы '=' поиск документов. сходство_поиск ( запрос )

Шаг 5. Настройка шаблона приглашения

На этом этапе объясняется процесс настройки шаблона подсказок путем импорта следующих библиотек:

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

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

от лангчейн. подсказки Импортировать Шаблон приглашения

от лангчейн. Память Импортировать РазговорБуферПамять

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

шаблон '=' '''Вы модель, разговаривающая с человеком
Учитывая фрагменты, извлеченные из длинного документа и вопроса, создайте окончательный ответ.

{контекст}

{история}
Человек: {вход}
Чат-бот:'''


быстрый '=' Шаблон приглашения (
входные_переменные '=' [ 'история' , 'вход' , 'контекст' ] , шаблон '=' шаблон
)
Память '=' РазговорБуферПамять ( ключ_памяти '=' 'история' , input_key '=' 'вход' )
цепь '=' load_qa_chain (
ОпенАИ ( температура '=' 0 ) , цепочка_тип '=' 'вещи' , Память '=' Память , быстрый '=' быстрый
)

Шаг 6: Тестирование памяти

Настало время протестировать модель, задав вопрос, используя переменную запроса, а затем выполнив метод Chain() с его параметрами:

запрос '=' «Когда было создано НАТО»

цепь ( { 'входные_документы' : документы , 'вход' : запрос } , return_only_outputs '=' Истинный )

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

Распечатать ( цепь. Память . буфер )

Это все о добавлении памяти в цепочку с несколькими входами в LangChain.

Заключение

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