Hogyan lehet memóriát hozzáadni egy lánchoz több bemenettel a LangChainben?

Hogyan Lehet Memoriat Hozzaadni Egy Lanchoz Tobb Bemenettel A Langchainben



A chatbotokat és a nagy nyelvi modelleket milliók használják szerte a világon, és ezek a modellek parancsra szöveget tudnak generálni. A LangChain az egyik leghatékonyabb és leghatékonyabb keretrendszer, amely lehetővé teszi a fejlesztők számára, hogy ilyen modelleket és robotokat építsenek. A felhasználó promptokat vagy lekérdezéseket ad meg bemenetként, és a modell megérti a parancsot, mielőtt létrehozná a leginkább kapcsolódó vagy a parancshoz hasonló szöveget.

Ez az útmutató bemutatja a memória hozzáadásának folyamatát egy több bemenettel rendelkező lánchoz a LangChainben.

Hogyan lehet memóriát hozzáadni egy lánchoz több bemenettel a LangChainben?

A memória hozzáadható az LLM-ekhez vagy chatbotokhoz a legfrissebb üzenetek vagy adatok tárolására, így a modell megértheti a parancs kontextusát. Ha meg szeretné tanulni a memória hozzáadásának folyamatát a LangChain több bemenettel rendelkező láncához, egyszerűen kövesse az alábbi lépéseket:







1. lépés: Modulok telepítése

Először telepítse a LangChain keretrendszert, mivel számos függőséggel rendelkezik a nyelvi modellek létrehozásához:



pip install langchain



Telepítse a chromadb-t, hogy a memória által használt adatokat tárolja a Chroma vektortárolóban:





pip install chromadb

A Tiktoken a nagy dokumentumok kis darabjainak létrehozására szolgáló tokenizátor, így azok könnyen kezelhetők:



pip install tiktoken

Az OpenAI az a modul, amely láncok és LLM-ek építésére használható az OpenAI() metódus használatával:

pip install openai

2. lépés: A környezet beállítása és az adatok feltöltése

A következő lépés az ehhez a folyamathoz szükséges összes modul telepítése után a környezet kialakítása az OpenAI-fiók API-kulcsának használatával:

import te
import getpass

te . hozzávetőlegesen, körülbelül [ 'OPENAI_API_KEY' ] = getpass . getpass ( 'OpenAI API kulcs:' )

Töltse fel a dokumentumokat a fájlkönyvtár segítségével a láncok felépítéséhez a LangChain keretrendszerben:

tól től Google. ET AL import fájlokat

feltöltve = fájlokat. feltölteni ( )

3. lépés: Importáljon könyvtárakat

A dokumentum sikeres feltöltése után egyszerűen importálja a szükséges könyvtárakat a Langchain modulból:

tól től langchain. beágyazások . openai import OpenAIEembeddings

tól től langchain. beágyazások . összefügg import CohereEmbeddings

tól től langchain. text_splitter import CharacterTextSplitter

tól től langchain. vektortárak . rugalmas_vector_search import ElasticVectorSearch

tól től langchain. vektortárak import Chroma

tól től langchain. orvosi boltban . dokumentum import Dokumentum

4. lépés: Memóriaépítés Chroma Database használatával

Most kezdje el felépíteni a vektorteret a korábban feltöltött dokumentum beágyazásainak és tokenjeinek tárolására:

val vel nyisd ki ( 'a_szakszervezet_állapota.txt' ) mint f:
a_szakszervezet_állapota = f. olvas ( )
text_splitter = CharacterTextSplitter ( chunk_size = 1000 , chunk_overlap = 0 )
szövegek = text_splitter. split_text ( a_szakszervezet_állapota )

beágyazások = OpenAIEembeddings ( )

Állítsa be a Chroma adatbázist a szöveg és a beágyazások tárolására a dokumentumból:

docsearch = Chroma. from_texts (

szövegek , beágyazások , metaadatokat = [ { 'forrás' : i } számára én ban ben hatótávolság ( csak ( szövegek ) ) ]

)

Tesztelje a memóriát a parancs kikérésével a lekérdezési változóban, majd hajtsa végre a hasonlóság_search() metódust:

lekérdezés = 'Mikor alakult a NATO'

dok = docsearch. Hasonlóság_keresés ( lekérdezés )

5. lépés: A prompt sablon konfigurálása

Ez a lépés elmagyarázza a sablon konfigurálását a promptokhoz a következő könyvtárak importálásával:

tól től langchain. láncok . kérdés_válaszolás import load_qa_chain

tól től langchain. llms import OpenAI

tól től langchain. felszólítja import PromptTemplate

tól től langchain. memória import ConversationBufferMemory

Ezután egyszerűen konfigurálja a lekérdezés sablonját vagy szerkezetét, és futtassa a láncot, miután a memóriát hozzáadta a modellhez:

sablon = '''Te modell vagy, aki egy emberrel beszélget
A hosszú dokumentumból és egy kérdésből kivont darabok alapján hozzon létre egy végső választ

{kontextus}

{hist}
Ember: {input}
Chatbot: '''


gyors = PromptTemplate (
bemeneti_változók = [ 'história' , 'bemenet' , 'kontextus' ] , sablon = sablon
)
memória = ConversationBufferMemory ( memória_kulcs = 'história' , bemeneti_kulcs = 'bemenet' )
lánc = load_qa_chain (
OpenAI ( hőfok = 0 ) , lánc_típus = 'dolog' , memória = memória , gyors = gyors
)

6. lépés: A memória tesztelése

Itt az ideje, hogy tesztelje a modellt úgy, hogy felteszi a kérdést a lekérdezési változó segítségével, majd végrehajtja a chain() metódust a paramétereivel:

lekérdezés = 'Mikor alakult a NATO'

lánc ( { 'input_documents' : dok , 'bemenet' : lekérdezés } , return_only_outputs = Igaz )

Nyomtassa ki a puffermemóriában tárolt adatokat, mivel a modell által adott válasz a közelmúltban a memóriában tárolódik:

nyomtatás ( lánc. memória . puffer )

Ez annyit jelent, hogy memória hozzáadása a LangChain több bemenettel rendelkező láncához.

Következtetés

Ha memóriát szeretne hozzáadni egy több bemenettel rendelkező lánchoz a LangChainben, egyszerűen telepítse a modulokat és a vektortárat a szöveg és a beágyazások tárolására. Ezt követően töltse fel az adatokat/dokumentumot a helyi rendszerről, majd importálja az adatok tárolásához szükséges könyvtárakat az LLM memória felépítéséhez. Állítsa be a prompt sablont úgy, hogy a legfrissebb üzeneteket a puffermemóriában tárolja, majd szöveges üzenetet küldjön a láncnak. Ez az útmutató részletesen bemutatja a memória hozzáadásának folyamatát egy több bemenettel rendelkező lánchoz a LangChainben.