Как использовать VectorStoreRetrieverMemory в LangChain?

Kak Ispol Zovat Vectorstoreretrievermemory V Langchain



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

В этом руководстве будет показано, как использовать VectorStoreRetrieverMemory с использованием платформы LangChain.

Как использовать VectorStoreRetrieverMemory в LangChain?

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







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



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

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



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





Установите модули FAISS для получения данных с помощью поиска по семантическому сходству:

pip установить faiss-gpu



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

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

Для установки необходим еще один модуль tiktoken, который можно использовать для создания токенов путем преобразования данных в более мелкие фрагменты:

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

Установите модуль OpenAI, чтобы использовать его библиотеки для создания LLM или чат-ботов с использованием его среды:

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

Настройте среду в Python IDE или блокноте, используя ключ API из учетной записи OpenAI:

Импортировать ты

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

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

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

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

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

от дата и время Импортировать дата и время

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

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

от лангчейн. цепи Импортировать Разговорная цепочка

от лангчейн. Память Импортировать ВекторМагазинРетриверПамять

Шаг 3. Инициализация хранилища векторов

В этом руководстве используется база данных Chroma после импорта библиотеки FAISS для извлечения данных с помощью команды ввода:

Импортировать Фейсс

от лангчейн. врачебный магазин Импортировать InMemoryДокторский магазин
#импорт библиотек для настройки баз данных или векторных хранилищ
от лангчейн. вектормагазины Импортировать ФАИСС

#создавайте вложения и тексты для хранения их в векторных хранилищах
embedding_size '=' 1536
индекс '=' файс. Индексная квартираL2 ( embedding_size )
встраивание_fn '=' OpenAIEmbeddings ( ) . embed_query
векторный магазин '=' ФАИСС ( встраивание_fn , индекс , InMemoryДокторский магазин ( { } ) , { } )

Шаг 4. Создание Retriever, поддерживаемого векторным хранилищем

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

ретривер '=' векторный магазин. as_retriever ( search_kwargs '=' диктовать ( к '=' 1 ) )
Память '=' ВекторМагазинРетриверПамять ( ретривер '=' ретривер )

Память. save_context ( { 'вход' : 'Я люблю есть пиццу' } , { 'выход' : 'фантастика' } )
Память. save_context ( { 'вход' : «Я хорошо играю в футбол» } , { 'выход' : 'хорошо' } )
Память. save_context ( { 'вход' : «Я не люблю политику» } , { 'выход' : 'конечно' } )

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

Распечатать ( Память. load_memory_variables ( { 'быстрый' : «Какой вид спорта мне посмотреть?» } ) [ 'история' ] )

Шаг 5: Использование Retriever в цепочке

Следующий шаг — использование ретривера памяти с цепочками путем построения LLM с помощью метода OpenAI() и настройки шаблона подсказки:

лм '=' ОпенАИ ( температура '=' 0 )
_DEFAULT_TEMPLATE '=' '''Это взаимодействие человека и машины.
Система выдает полезную информацию с подробностями, используя контекст.
Если у системы нет для вас ответа, она просто говорит: «У меня нет ответа».

Важная информация из разговора:
{история}
(если текст неактуален, не используйте его)

Текущий чат:
Человек: {вход}
ИИ: '''

БЫСТРЫЙ '=' Шаблон приглашения (
входные_переменные '=' [ 'история' , 'вход' ] , шаблон '=' _DEFAULT_TEMPLATE
)
#настройте ConversationChain(), используя значения его параметров
разговор_with_summary '=' Разговорная цепочка (
лм '=' лм ,
быстрый '=' БЫСТРЫЙ ,
Память '=' Память ,
подробный '=' Истинный
)
разговор_с_сводкой. предсказывать ( вход '=' «Привет, меня зовут Перри, как дела?» )

Выход

Выполнение команды запускает цепочку и отображает ответ, предоставленный моделью или LLM:

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

разговор_с_сводкой. предсказывать ( вход '=' «какой мой любимый вид спорта?» )

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

разговор_с_сводкой. предсказывать ( вход '=' «Какая моя любимая еда» )

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

разговор_с_сводкой. предсказывать ( вход '=' 'Как меня зовут?' )

Модель правильно отобразила выходные данные, используя поиск по сходству из данных, хранящихся в памяти:

Вот и все, что касается использования средства извлечения векторного хранилища в LangChain.

Заключение

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