Как использовать окно буфера разговора в LangChain?
Окно буфера разговора используется для хранения в памяти самых последних сообщений разговора, чтобы получить самый последний контекст. Он использует значение K для хранения сообщений или строк в памяти с использованием инфраструктуры LangChain.
Чтобы изучить процесс использования окна буфера разговора в LangChain, просто прочтите следующее руководство:
Шаг 1. Установите модули
Начните процесс использования окна буфера разговора с установки модуля LangChain с необходимыми зависимостями для построения моделей разговора:
pip установить langchain
После этого установите модуль OpenAI, который можно использовать для построения больших языковых моделей в LangChain:
pip установить openai
Сейчас, настроить среду OpenAI для построения цепочек LLM с использованием API-ключа от учетной записи OpenAI:
Импортировать ты
Импортировать получить пропуск
ты . примерно [ 'ОПЕНАЙ_API_KEY' ] '=' получить пропуск . получить пропуск ( «Ключ API OpenAI:» )
Шаг 2. Использование оконной памяти буфера разговора
Чтобы использовать память окна буфера диалога в LangChain, импортируйте РазговорБуферОкноПамять библиотека:
от лангчейн. Память Импортировать РазговорБуферОкноПамятьНастройте память с помощью РазговорБуферОкноПамять () со значением k в качестве аргумента. Значение k будет использоваться для хранения самых последних сообщений из разговора, а затем для настройки обучающих данных с использованием входных и выходных переменных:
Память '=' РазговорБуферОкноПамять ( к '=' 1 )Память. save_context ( { 'вход' : 'привет' } , { 'выход' : 'Как дела' } )
Память. save_context ( { 'вход' : 'У меня все хорошо а ты как' } , { 'выход' : 'немного' } )
Проверьте память, вызвав load_memory_variables () метод начала разговора:
Память. load_memory_variables ( { } )
Чтобы получить историю разговора, настройте функцию ConversationBufferWindowMemory() с помощью return_messages аргумент:
Память '=' РазговорБуферОкноПамять ( к '=' 1 , return_messages '=' Истинный )Память. save_context ( { 'вход' : 'привет' } , { 'выход' : 'Как дела' } )
Память. save_context ( { 'вход' : 'не так много вам' } , { 'выход' : 'немного' } )
Теперь вызовите память, используя load_memory_variables () метод для получения ответа с историей разговора:
Память. load_memory_variables ( { } )
Шаг 3. Использование буферного окна в цепочке
Постройте цепочку, используя ОпенАИ и Разговорная цепочка библиотеки, а затем настройте буферную память для хранения самых последних сообщений в разговоре:
от лангчейн. цепи Импортировать Разговорная цепочкаот лангчейн. llms Импортировать ОпенАИ
#построение сводки разговора с использованием нескольких параметров
разговор_with_summary '=' Разговорная цепочка (
лм '=' ОпенАИ ( температура '=' 0 ) ,
#строим буфер памяти, используя его функцию со значением k для хранения последних сообщений
Память '=' РазговорБуферОкноПамять ( к '=' 2 ) ,
#настройте подробную переменную, чтобы получить более читаемый вывод
подробный '=' Истинный
)
разговор_с_сводкой. предсказывать ( вход '=' 'Привет как дела' )
Теперь продолжайте разговор, задав вопрос, связанный с результатами, предоставляемыми моделью:
разговор_с_сводкой. предсказывать ( вход '=' «Какие у них проблемы» )
Модель настроена на хранение только одного предыдущего сообщения, которое можно использовать в качестве контекста:
разговор_с_сводкой. предсказывать ( вход '=' «Все идет хорошо» )
Попросите решение проблем, и структура вывода продолжит сдвигать окно буфера, удаляя предыдущие сообщения:
разговор_с_сводкой. предсказывать ( вход '=' 'Какое решение' )
Вот и все, что касается процесса использования окон буфера разговоров LangChain.
Заключение
Чтобы использовать память окна буфера диалога в LangChain, просто установите модули и настройте среду, используя ключ API OpenAI. После этого создайте буферную память, используя значение k, чтобы сохранять самые последние сообщения в разговоре и сохранять контекст. Буферная память также может использоваться с цепочками для инициирования диалога с LLM или цепочкой. В этом руководстве подробно описан процесс использования окна буфера диалога в LangChain.