Hogyan használjunk retrievereket a LangChainben?

Hogyan Hasznaljunk Retrievereket A Langchainben



A LangChain az a keretrendszer, amely lehetővé teszi a fejlesztők számára, hogy nagy nyelvi modelleket (LLM) készítsenek, amelyek segítségével interakcióba léphetnek az emberekkel. A gépeknek meg kell tanulniuk emberi nyelveket, hogy a LangChain segítségével interakcióba léphessenek velük, mivel ez biztosítja az összes szükséges könyvtárat és függőséget e modellek felépítéséhez.

Ez a bejegyzés bemutatja a retrieverek LangChain használatának folyamatát.

Hogyan használjunk retrievereket a LangChainben?

A retrieverek interfészként működnek a modellek és az emberek között, így a természetes nyelveken megadott bemeneti adatok segítségével elérhetik a kívánt kimenetet. A vektortárak olyan adatok tárolására szolgálnak, amelyekből információkat/adatokat lehet szerezni/kivonni.







A retrieverek azonban általánosabbak, mint ezek az adatbázisok. Nem tárolnak semmilyen adatot, és csak a felhasználók adatainak lekérésére vagy lekérésére szolgálnak. A retrieverek LangChain segítségével történő felépítésének és használatának megismeréséhez nézze meg a következő lépéseket:



1. lépés: Modulok telepítése
Először telepítse a szükséges modulokat, például a LangChaint, hogy a könyvtárai és függőségei folytassák a folyamatot:



csipog telepítés langchain





Telepítse a chromadb vektortárolót, amely felhasználható adatok adatbázisára a retriever számára, hogy lekérje az adatokat a tárolóból:

csipog telepítés chromadb



Most telepítse az OpenAI keretrendszert, hogy beszerezze a könyvtárait a szövegbeágyazás használatához, mielőtt egy retrievert készítene:

csipog telepítés openai

Az összes szükséges modul telepítése után egyszerűen állítsa be a környezetet az OpenAI API-kulcs segítségével:

importálni minket
import getpass

os.environ [ 'OPENAI_API_KEY' ] = getpass.getpass ( 'OpenAI API kulcs:' )

2. lépés: Adatkészlet feltöltése
Most futtassa a következő kódot, hogy rákattintson a „Fájlok kiválasztása” gombot, és töltse fel a dokumentumot vagy fájlt a helyi rendszerből:

google.colab importfájlokból
feltöltve = fájlok.feltöltés ( )

3. lépés: Könyvtárak importálása
Importálja a szükséges könyvtárakat a retrieverek létrehozásához és használatához a LangChainben, például ' Lista ', ' Visszahívások ', és még sok más:

abc importból ABC, abstractmethod
az import Any, List beírásától
innen: langchain.schema Import Document
a langchain.callbacks.manager webhelyről importálja a visszahívásokat

4. lépés: Egysoros index létrehozása
Ez a lépés létrehozza a retriever indexét, amely felhasználható az adatoknak a vektortár létrehozásához a szükséges könyvtárak importálásával:

innen: langchain.chains import RetrievalQA
a langchain.llms-ből importálja az OpenAI-t

Itt töltse be az adatokat a TextLoader() módszer a 2. lépésben feltöltött fájl elérési útjával:

importálja a TextLoader-t a langchain.document_loaders webhelyről
loader = TextLoader ( 'state_of_the_union.txt' , kódolás = 'utf8' )

Könyvtár importálása VectorstoreIndexCreator a LangChainből az adatbázis indexének létrehozásához:

importálja a VectorstoreIndexCreator programot a langchain.indexes webhelyről

Határozza meg a index változó a VectorstoreIndexCreator() metódus használatával a rakodó változó:

index = VectorstoreIndexCreator ( ) .from_loaders ( [ rakodó ] )

Alkalmazza a lekérdezést az index teszteléséhez úgy, hogy adatokat kér le a dokumentumból:

lekérdezés = 'Mit mondott Zelenszkij elnök a beszédében?'
index.query ( lekérdezés )

Szerezze meg az index részleteit, hogy melyik adatbázis rendelkezik a index a következő kód használatával:

index.vectorstore

A következő kód minden részletet elmagyaráz az indexről, annak típusáról és adatbázisáról:

index.vectorstore.as_retriever ( )

Használja az indexet a query() metódussal, amely a dokumentum összefoglalását kéri a forrás argumentum használatával a dokumentum nevének használatához:

index.query ( 'A dokumentum adatainak általános összefoglalása' , retriever_kwargs = { 'search_kwargs' : { 'szűrő' : { 'forrás' : 'a_szakszervezet_állapota.txt' } } } )

5. lépés: Hozzon létre beágyazásokat
Töltse be a dokumentumot a beágyazás létrehozásához, és tárolja a szöveget numerikus formában a vektortár segítségével:

dokumentumok = loader.load ( )

Indítsa el a beágyazás folyamatát a text_splitter a darabok mérete és az átfedés argumentumaival:

innen: langchain.text_splitter import CharacterTextSplitter
#using text_splitter segítségével kis darabokat hozhat létre a dokumentumból a retriever használatához
text_splitter = KarakterTextSplitter ( chunk_size = 1000 , chunk_overlap = 0 )
texts = text_splitter.split_documents ( dokumentumokat )

Alkalmazza a LangChainből importálható OpenAIEMbeddings() metódust:

a langchain.embeddings-ből importálja az OpenAIEmbeddings-et
embeddings = OpenAIEembeddings ( )

Használja a chromadb tárolót a dokumentumból létrehozott beágyazások tárolásához:

a langchain.vectorstores webhelyről importálja a Chromát
db = Chroma.from_documents ( szövegek, beágyazások )

6. lépés: Tesztelje a Retrievert
A beágyazások létrehozása és az adatbázisban való tárolása után egyszerűen adja meg a retriever változót:

retriever = db.as_retriever ( )

Hívja meg a láncokat a RetrievalQA() metódussal, az OpenAI() függvény és a retriever argumentumaival:

qa = RetrievalQA.from_chain_type ( llm =OpenAI ( ) , lánc_típus = 'dolog' , vizsla =retriever )

Adja meg a bemenetet a retriever teszteléséhez a lekérdezés változó a qa.run() metóduson belül:

lekérdezés = 'Mit mondott Zelenszkij elnök a beszédében?'
qa.run ( lekérdezés )

Egyszerűen testreszabhatja a VectorstoreIndexCreator () argumentumai segítségével különböző értékeket állíthat be:

index_creator = VectorstoreIndexCreator (
vectorstore_cls =Chroma,
beágyazás =OpenAIEmbeddings ( ) ,
text_splitter =CharacterTextSplitter ( chunk_size = 1000 , chunk_overlap = 0 )
)

Ez minden a retrieverekkel való kezdő lépésről szól a LangChainben.

Következtetés

A retrieverek LangChainben való használatához egyszerűen telepítse az OpenAI környezet beállításához szükséges függőségeket, majd töltse fel a dokumentumot a retrieverek teszteléséhez. Ezt követően készítse el a visszakeresőt egy absztrakt alaposztály vagy ABC-könyvtár segítségével, majd hozza létre az adatbázis indexét az adatok lekéréséhez. Konfigurálja a dokumentum beágyazásait, és futtassa a visszakeresőt, hogy összehasonlítható eredményeket kapjon az adatbázisból. Ez a bejegyzés a retrieverek LangChainben való használatának folyamatát részletezi.