В этом руководстве будет показан процесс добавления памяти в цепочку с несколькими входами в 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.