Ako používať retrievery v LangChain?

Ako Pouzivat Retrievery V Langchain



LangChain je rámec, ktorý umožňuje vývojárom vytvárať veľké jazykové modely (LLM), ktoré možno použiť na interakciu s ľuďmi. Stroje sa musia naučiť ľudské jazyky, aby s nimi mohli komunikovať pomocou LangChain, pretože poskytuje všetky potrebné knižnice a závislosti na zostavenie týchto modelov.

Tento príspevok bude demonštrovať proces používania retrieverov v LangChain.

Ako používať retrievery v LangChain?

Retrievery fungujú ako rozhranie medzi modelmi a ľuďmi, takže ich môžu použiť na získanie požadovaného výstupu pomocou vstupu poskytovaného v prirodzených jazykoch. Vektorové úložiská sa používajú na ukladanie údajov, ktoré možno použiť na získanie/extrahovanie informácií/údajov.







Retrievery sú však všeobecnejšie ako tieto databázy. Neuchovávajú žiadne údaje a používajú sa iba na získanie alebo načítanie údajov pre používateľov. Ak sa chcete naučiť proces zostavovania a používania retrieverov prostredníctvom LangChain, pozrite si nasledujúce kroky:



Krok 1: Nainštalujte moduly
Najprv nainštalujte požadované moduly ako LangChain, aby ste mohli pokračovať v procese s jeho knižnicami a závislosťami:



pip Inštalácia langchain





Nainštalujte vektorový obchod chromadb, ktorý možno použiť na databázovanie údajov pre retriever na načítanie údajov z obchodu:

pip Inštalácia chromadb



Teraz nainštalujte rámec OpenAI, aby ste získali jeho knižnice na používanie vkladania textu pred vytvorením retrievera:

pip Inštalácia openai

Po nainštalovaní všetkých požadovaných modulov jednoducho nastavte prostredie pomocou kľúča OpenAI API:

importujte nás
importovať getpass

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

Krok 2: Nahrajte množinu údajov
Teraz spustite nasledujúci kód a kliknite na 'Vybrať súbory' a nahrajte dokument alebo súbor z lokálneho systému:

z importovaných súborov google.colab
nahrané = súbory.nahrať ( )

Krok 3: Importujte knižnice
Importujte potrebné knižnice na zostavenie a používanie retrieverov v LangChain, ako napríklad „ Zoznam ',' Spätné volania ', a mnoho ďalších:

z abc import ABC, abstraktná metóda
od zadania importovať Any, List
z langchain.schema importovať dokument
z langchain.callbacks.manager importovať Spätné volania

Krok 4: Vytvorte vytvorenie jedného riadkového indexu
Tento krok vytvorí index pre retriever, ktorý možno použiť na získanie údajov na vytvorenie vektorového úložiska importovaním požadovaných knižníc:

z langchain.chains importujte RetrievalQA
z langchain.llms importujte OpenAI

Tu načítajte údaje pomocou TextLoader() metóda s cestou k súboru nahranému v kroku 2:

importovať TextLoader z langchain.document_loaders
loader = TextLoader ( 'state_of_the_union.txt' , kódovanie = 'utf8' )

Importovať knižnicu VectorstoreIndexCreator z LangChain na vytvorenie indexu pre databázu:

importovať VectorstoreIndexCreator z langchain.indexes

Definujte index premennej pomocou metódy VectorstoreIndexCreator() pomocou nakladač premenná:

index = VectorstoreIndexCreator ( ) .from_loaders ( [ nakladač ] )

Použite dotaz na testovanie indexu načítaním údajov z dokumentu:

dotaz = 'Čo povedal prezident Zelenskyj vo svojom prejave?'
index.dotaz ( dopyt )

Získajte podrobnosti o indexe o tom, ktorá databáza má index pomocou nasledujúceho kódu:

index.vectorstore

Nasledujúci kód vysvetlí všetky podrobnosti o indexe, jeho type a databáze:

index.vectorstore.as_retriever ( )

Ak chcete použiť názov dokumentu, použite metódu index s dotazom () a požiadajte o súhrn dokumentu pomocou zdrojového argumentu:

index.dotaz ( 'Všeobecný súhrn údajov z tohto dokumentu' , retriever_kwargs = { 'search_kwargs' : { 'filter' : { 'zdroj' : 'state_of_the_union.txt' } } } )

Krok 5: Vytvorte vloženia
Načítajte dokument na vytvorenie jeho vloženia a uložte text v číselnej forme pomocou vektorového úložiska:

dokumenty = nakladač.naložiť ( )

Začnite proces vkladania pomocou text_splitter s argumentmi veľkosti a prekrytia:

z langchain.text_splitter importujte CharacterTextSplitter
#using text_splitter na vytvorenie malých častí dokumentu na použitie retrievera
text_splitter = CharacterTextSplitter ( chunk_size = 1000 , chunk_overlap = 0 )
texty = text_splitter.split_documents ( Dokumenty )

Použite metódu OpenAIEmbedings(), ktorú je možné importovať z LangChain:

z langchain.embeddings importovať OpenAIEmbeddings
embeddings = OpenAIEembeddings ( )

Na uloženie vložených prvkov vytvorených z dokumentu použite obchod chromadb:

z langchain.vectorstores import Chroma
db = Chroma.from_documents ( texty, vloženia )

Krok 6: Otestujte retriever
Keď sú vloženia vytvorené a uložené v databáze, jednoducho definujte premennú retrievera:

retriever = db.as_retriever ( )

Zavolajte reťazce pomocou metódy RetrievalQA() s funkciou OpenAI() a jej argumentmi:

qa = RetrievalQA.from_chain_type ( llm =OpenAI ( ) , chain_type = 'veci' , retriever = retriever )

Poskytnite vstup na testovanie retrievera pomocou dopyt premenná v metóde qa.run():

dotaz = 'Čo povedal prezident Zelenskyj vo svojom prejave?'
qa.run ( dopyt )

Jednoducho si prispôsobte VectorstoreIndexCreator () pomocou svojich argumentov na nastavenie rôznych hodnôt:

index_creator = VectorstoreIndexCreator (
vectorstore_cls =Chroma,
vkladanie =OpenAIEmbeddings ( ) ,
text_splitter =CharacterTextSplitter ( chunk_size = 1000 , chunk_overlap = 0 )
)

To je všetko o procese, ako začať s retrievermi v LangChain.

Záver

Ak chcete použiť retrievery v LangChain, jednoducho nainštalujte závislosti potrebné na nastavenie prostredia OpenAI a potom nahrajte dokument na testovanie retrieverov. Potom vytvorte retriever pomocou abstraktnej základnej triedy alebo knižnice ABC a potom vytvorte index pre databázu na získanie údajov. Nakonfigurujte vloženia pre dokument a spustite retriever, aby ste získali porovnateľné výsledky z databázy. Tento príspevok rozpracoval proces používania retrieverov v LangChain.