Как да добавите памет към верига с множество входове в LangChain?

Kak Da Dobavite Pamet K M Veriga S Mnozestvo Vhodove V Langchain



Чатботове и големи езикови модели се използват от милиони по целия свят и тези модели могат да генерират текст по команда. LangChain е една от най-ефективните и ефикасни рамки, които позволяват на разработчиците да изграждат такива модели и ботове. Потребителят дава подкани или заявки като вход и моделът разбира командата, преди да генерира текста, който изглежда най-свързан или като командата.

Това ръководство ще илюстрира процеса на добавяне на памет към верига с множество входове в LangChain.

Как да добавите памет към верига с множество входове в LangChain?

Паметта може да се добави към LLMs или chatbots за съхраняване на най-новите съобщения или данни, така че моделът да може да разбере контекста на командата. За да научите процеса на добавяне на памет към верига с множество входове в LangChain, просто преминете през следните стъпки:







Стъпка 1: Инсталирайте модули

Първо инсталирайте рамката LangChain, тъй като тя има различни зависимости за изграждане на езикови модели:



pip инсталирайте langchain



Инсталирайте chromadb, за да съхранявате данните, използвани от паметта в векторното хранилище на Chroma:





pip инсталирайте chromadb

Tiktoken е токенизаторът, използван за създаване на малки части от големи документи, така че да могат да се управляват лесно:



pip инсталирайте tiktoken

OpenAI е модулът, който може да се използва за изграждане на вериги и LLM чрез метода OpenAI():

pip инсталирайте openai

Стъпка 2: Настройка на среда и качване на данни

Следващата стъпка след инсталирането на всички необходими модули за този процес е настройка на средата използвайки API ключа от акаунта на OpenAI:

импортиране Вие
импортиране getpass

Вие . приблизително [ „OPENAI_API_KEY“ ] = getpass . getpass ( „API ключ на OpenAI:“ )

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

от google. ET AL импортиране файлове

качен = файлове. качване ( )

Стъпка 3: Импортирайте библиотеки

След като документът бъде качен успешно, просто импортирайте необходимите библиотеки от модула Langchain:

от Langchain. вграждания . openai импортиране OpenAIEmbeddings

от Langchain. вграждания . съгласувам се импортиране CohereEmbeddings

от Langchain. текстов_разделител импортиране CharacterTextSplitter

от Langchain. векторни магазини . еластично_векторно_търсене импортиране ElasticVectorSearch

от Langchain. векторни магазини импортиране Chroma

от Langchain. docstore . документ импортиране Документ

Стъпка 4: Изграждане на памет с помощта на Chroma Database

Сега започнете да изграждате векторното пространство, за да съхранявате вгражданията и токените на документа, качен по-рано:

с отворен ( 'state_of_the_union.txt' ) като е:
държава_на_съюза = f. Прочети ( )
текстов_разделител = CharacterTextSplitter ( chunk_size = 1000 , част_припокриване = 0 )
текстове = текстов_разделител. разделен_текст ( държава_на_съюза )

вграждания = OpenAIEmbeddings ( )

Конфигурирайте базата данни Chroma за съхраняване на текста и вгражданията от документа:

docsearch = Chroma. от_текстове (

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

)

Тествайте паметта, като зададете командата в променливата на заявката и след това изпълнете метода similarity_search():

заявка = 'Кога е създадено НАТО'

документи = docsearch. търсене на сходство ( заявка )

Стъпка 5: Конфигуриране на шаблон за подкана

Тази стъпка обяснява процеса на конфигуриране на шаблона за подканите чрез импортиране на следните библиотеки:

от Langchain. вериги . въпрос_отговор импортиране load_qa_chain

от Langchain. llms импортиране OpenAI

от Langchain. подкани импортиране PromptTemplate

от Langchain. памет импортиране ConversationBufferMemory

След това просто конфигурирайте шаблона или структурата за заявката и стартирайте веригата, след като паметта бъде добавена към модела:

шаблон = '''Вие сте модел, който разговаря с човек
Като се имат предвид частите, извлечени от дълъг документ и въпрос, създайте окончателен отговор

{контекст}

{hist}
Човек: {вход}
Чатбот:'''


подкана = PromptTemplate (
входни_променливи = [ 'история' , 'вход' , 'контекст' ] , шаблон = шаблон
)
памет = ConversationBufferMemory ( памет_ключ = 'история' , input_key = 'вход' )
верига = load_qa_chain (
OpenAI ( температура = 0 ) , тип_верига = 'неща' , памет = памет , подкана = подкана
)

Стъпка 6: Тестване на паметта

Тук е моментът да тествате модела, като зададете въпроса с помощта на променливата на заявката и след това изпълните метода chain() с неговите параметри:

заявка = 'Кога е създадено НАТО'

верига ( { 'входни_документи' : документи , 'вход' : запитване } , връщане_само_изходи = Вярно )

Отпечатайте данните, съхранени в буферната памет, тъй като отговорът, даден от модела, е съхранен наскоро в паметта:

печат ( верига. памет . буфер )

Това е всичко за добавяне на памет към верига с множество входове в LangChain.

Заключение

За да добавите памет към верига с множество входове в LangChain, просто инсталирайте модулите и векторното хранилище, за да съхранявате текста и вгражданията. След това качете данните/документа от локалната система и след това импортирайте необходимите библиотеки за съхранение на данните, за да изградите паметта за LLM. Конфигурирайте шаблона за подкана, за да съхранява най-новите съобщения в буферната памет и след това изпратете текст във веригата. Това ръководство разработи подробно процеса на добавяне на памет към верига с множество входове в LangChain.