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ť vyimportovať 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úborynahrané = 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ť OpenAIEmbeddingsod 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_chainod 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 človekomVzhľ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.