Ako pridať pamäť do reťazca s viacerými vstupmi v LangChain?

Ako Pridat Pamat Do Retazca S Viacerymi Vstupmi V Langchain



Chatboty a veľké jazykové modely používajú milióny ľudí na celom svete a tieto modely dokážu generovať text na príkaz. LangChain je jedným z najefektívnejších a najúčinnejších rámcov, ktoré umožňujú vývojárom vytvárať takéto modely a roboty. Používateľ zadáva výzvy alebo otázky ako vstup a model rozumie príkazu pred vygenerovaním textu, ktorý sa javí ako najpríbuznejší alebo podobný príkazu.

Táto príručka bude ilustrovať proces pridávania pamäte do reťazca s viacerými vstupmi v LangChain.

Ako pridať pamäť do reťazca s viacerými vstupmi v LangChain?

Pamäť môže byť pridaná do LLM alebo chatbotov na ukladanie najnovších správ alebo údajov, aby model mohol pochopiť kontext príkazu. Ak sa chcete naučiť proces pridávania pamäte do reťazca s viacerými vstupmi v LangChain, jednoducho prejdite nasledujúcimi krokmi:







Krok 1: Nainštalujte moduly

Najprv nainštalujte rámec LangChain, pretože má množstvo závislostí na vytváranie jazykových modelov:



pip install langchain



Nainštalujte si chromadb na ukladanie údajov používaných pamäťou do Chroma vector store:





pip install chromadb

Tiktoken je tokenizér používaný na vytváranie malých kúskov veľkých dokumentov, aby sa dali ľahko spravovať:



pip nainštalovať tiktoken

OpenAI je modul, ktorý možno použiť na vytváranie reťazcov a LLM pomocou metódy OpenAI():

pip install openai

Krok 2: Nastavte prostredie a odovzdajte údaje

Ďalším krokom po inštalácii všetkých požadovaných modulov pre tento proces je nastavenie prostredia pomocou kľúča API z účtu OpenAI:

importovať vy
importovať getpass

vy . približne [ 'OPENAI_API_KEY' ] = getpass . getpass ( 'OpenAI API Key:' )

Nahrajte dokumenty pomocou knižnice súborov na vytvorenie reťazcov v rámci LangChain:

od google. ET AL importovať súbory

nahrané = súbory. nahrať ( )

Krok 3: Importujte knižnice

Po úspešnom nahraní dokumentu jednoducho importujte požadované knižnice z modulu Langchain:

od langchain. vsadenia . openai importovať OpenAIEmbeddings

od langchain. vsadenia . súdržné importovať CohereEmbeddings

od langchain. text_splitter importovať CharacterTextSplitter

od langchain. vectorstores . elastic_vector_search importovať ElasticVectorSearch

od langchain. vectorstores importovať Chroma

od langchain. lekáreň . dokument importovať Dokument

Krok 4: Budovanie pamäte pomocou databázy Chroma

Teraz začnite vytvárať vektorový priestor na uloženie vložených prvkov a tokenov dokumentu nahraného skôr:

s OTVORENÉ ( 'state_of_the_union.txt' ) ako f:
state_of_the_union = f. čítať ( )
text_splitter = CharacterTextSplitter ( chunk_size = 1000 , chunk_overlap = 0 )
texty = text_splitter. split_text ( state_of_the_union )

vsadenia = OpenAIEmbeddings ( )

Nakonfigurujte databázu Chroma na ukladanie textu a vloženia z dokumentu:

docsearch = Chroma. z_textov (

texty , vsadenia , metaúdaje = [ { 'zdroj' : i } pre i v rozsah ( len ( texty ) ) ]

)

Otestujte pamäť požiadaním príkazu v premennej dotazu a potom vykonajte metódu podobnosti_vyhľadávanie():

dopyt = 'Kedy vzniklo NATO'

dokumenty = docsearch. podobnosti_vyhľadávanie ( dopyt )

Krok 5: Konfigurácia šablóny výzvy

Tento krok vysvetľuje proces konfigurácie šablóny pre výzvy importovaním nasledujúcich knižníc:

od langchain. reťaze . otázka_odpovedanie importovať load_qa_chain

od langchain. llms importovať OpenAI

od langchain. výzvy importovať PromptTemplate

od langchain. Pamäť importovať ConversationBufferMemory

Potom jednoducho nakonfigurujte šablónu alebo štruktúru pre dotaz a po pridaní pamäte do modelu spustite reťazec:

šablóna = '''Ste modelka, ktorá sa rozpráva s človekom
Vzhľadom na kúsky extrahované z dlhého dokumentu a otázku vytvorte konečnú odpoveď

{kontext}

{hist}
Človek: {input}
Chatbot:'''


výzva = PromptTemplate (
vstupné_premenné = [ 'hist' , 'vstup' , 'kontext' ] , šablóna = šablóna
)
Pamäť = ConversationBufferMemory ( pamäťový_kľúč = 'hist' , vstupný_kľúč = 'vstup' )
reťaz = load_qa_chain (
OpenAI ( teplota = 0 ) , chain_type = 'veci' , Pamäť = Pamäť , výzva = výzva
)

Krok 6: Testovanie pamäte

Tu je čas otestovať model položením otázky pomocou premennej dotazu a následným spustením metódy chain() s jej parametrami:

dopyt = 'Kedy vzniklo NATO'

reťaz ( { 'vstupné_dokumenty' : dokumenty , 'vstup' : dopyt } , return_only_outputs = Pravda )

Vytlačte údaje uložené vo vyrovnávacej pamäti, pretože odpoveď modelu bola nedávno uložená v pamäti:

vytlačiť ( reťaz. Pamäť . vyrovnávacej pamäte )

To je všetko o pridávaní pamäte do reťazca s viacerými vstupmi v LangChain.

Záver

Ak chcete pridať pamäť do reťazca s viacerými vstupmi v LangChain, jednoducho nainštalujte moduly a vektorové úložisko na uloženie textu a vloženia. Potom nahrajte údaje/dokument z lokálneho systému a potom importujte potrebné knižnice na ukladanie údajov na vytvorenie pamäte pre LLM. Nakonfigurujte šablónu výzvy na ukladanie najnovších správ do vyrovnávacej pamäte a potom zadajte text reťazca. Táto príručka rozpracovala proces pridávania pamäte do reťazca s viacerými vstupmi v LangChain.