Ovaj će post pokazati postupak korištenja retrivera u LangChainu.
Kako koristiti retrivere u LangChainu?
Retriveri djeluju kao sučelje između modela i ljudi tako da ga mogu koristiti za dobivanje željenog izlaza pomoću unosa na prirodnim jezicima. Vektorske pohrane koriste se za pohranu podataka koji se mogu koristiti za dobivanje/izvlačenje informacija/podataka.
Međutim, retriveri su općenitiji od ovih baza podataka. Oni ne pohranjuju nikakve podatke i koriste se samo za dobivanje ili dohvaćanje podataka za korisnike. Kako biste naučili proces izgradnje i korištenja retrivera kroz LangChain, pogledajte sljedeće korake:
Korak 1: Instalirajte module
Prvo instalirajte potrebne module kao što je LangChain kako biste dobili njegove biblioteke i ovisnosti za nastavak procesa:
pip instalirati langchain
Instalirajte chromadb vektorsku pohranu koja se može koristiti za bazu podataka za retriver za dohvaćanje podataka iz pohrane:
pip instalirati chromadb
Sada instalirajte OpenAI framework da dobijete njegove biblioteke za korištenje ugrađivanja teksta prije izgradnje retrivera:
pip instalirati openai
Nakon instaliranja svih potrebnih modula, jednostavno postavite okruženje pomoću OpenAI API ključa:
uvezi nasimport getpass
os.okolina [ 'OPENAI_API_KEY' ] = getpass.getpass ( 'OpenAI API ključ:' )
Korak 2: Prenesite skup podataka
Sada izvršite sljedeći kod da biste kliknuli na “Odaberi datoteke” i prenesite dokument ili datoteku iz lokalnog sustava:
učitano = datoteke.upload ( )
Korak 3: Uvezite biblioteke
Uvezite potrebne biblioteke za izgradnju i korištenje retrivera u LangChainu, kao što je ' Popis ', ' Povratni pozivi ', i još mnogo toga:
od upisivanja import Any, List
from langchain.schema import Document
iz langchain.callbacks.manager uvoz povratnih poziva
Korak 4: Stvorite stvaranje jednog linijskog indeksa
Ovaj korak stvara indeks za retriver koji se može koristiti za dobivanje podataka za formiranje vektorske pohrane uvozom potrebnih biblioteka:
iz langchain.llms uvozi OpenAI
Ovdje učitajte podatke pomoću TextLoader() metoda s putanjom datoteke prenesene u koraku 2:
uvesti TextLoader iz langchain.document_loadersloader = TextLoader ( 'state_of_the_union.txt' , kodiranje = 'utf8' )
Uvoz knjižnice VectorstoreIndexCreator iz LangChaina za izradu indeksa za bazu podataka:
uvozi VectorstoreIndexCreator iz langchain.indexesDefinirajte indeks varijabla pomoću metode VectorstoreIndexCreator() pomoću utovarivač varijabla:
indeks = VectorstoreIndexCreator ( ) .od_utovarivača ( [ utovarivač ] )Primijenite upit za testiranje indeksa dohvaćanjem podataka iz dokumenta:
upit = Što je predsjednik Zelenskyy rekao u svom govoru?indeks.upit ( upit )
Dobijte pojedinosti o indeksu o tome koja baza podataka ima indeks pomoću sljedećeg koda:
indeks.vectorstoreSljedeći kod će objasniti sve detalje o indeksu, njegovoj vrsti i bazi podataka:
index.vectorstore.as_retriever ( )
Upotrijebite metodu index with query() koja traži sažetak dokumenta koristeći izvorni argument za korištenje naziva dokumenta:
indeks.upit ( 'Opći sažetak podataka iz ovog dokumenta' , retriever_kwargs = { 'search_kwargs' : { 'filtar' : { 'izvor' : 'state_of_the_union.txt' } } } )
Korak 5: Stvorite ugradnje
Učitajte dokument za stvaranje njegovog ugrađivanja i pohranite tekst u numeričkom obliku koristeći vektorsku pohranu:
Pokrenite postupak ugradnje pomoću razdjelnik_teksta s argumentima o veličini dijelova i preklapanju:
iz langchain.text_splitter uvozi CharacterTextSplitter#using text_splitter za stvaranje malih dijelova dokumenta za korištenje retrievera
text_splitter = CharacterTextSplitter ( veličina_komadka = 1000 , komad_preklapanja = 0 )
tekstovi = text_splitter.split_documents ( dokumenata )
Primijenite metodu OpenAIEmbeddings() koja se može uvesti iz LangChaina:
iz langchain.embeddings uvozi OpenAIEmbeddingsugradnje = OpenAIEembeddings ( )
Upotrijebite chromadb pohranu za pohranjivanje umetanja stvorenih iz dokumenta:
iz langchain.vectorstores uvoz Chromadb = Chroma.iz_dokumenata ( tekstovi, ugradnje )
Korak 6: Testirajte Retriever
Nakon što su ugradnje stvorene i pohranjene u bazi podataka jednostavno definirajte varijablu retriever:
Pozovite lance pomoću metode RetrievalQA() s funkcijom OpenAI() i retrieverom kao argumentima:
qa = RetrievalQA.from_chain_type ( llm =OpenAI ( ) , vrsta_lanca = 'stvari' , retriver =retriver )Unesite unos za testiranje retrivera pomoću upit varijabla unutar metode qa.run():
upit = Što je predsjednik Zelenskyy rekao u svom govoru?qa.trčati ( upit )
Jednostavno prilagodite VectorstoreIndexCreator () koristeći svoje argumente za postavljanje različitih vrijednosti:
index_creator = VectorstoreIndexCreator (vectorstore_cls =Kroma,
ugrađivanje =OpenAIEembeddings ( ) ,
razdjelnik_teksta =CharacterTextSplitter ( veličina_komadka = 1000 , komad_preklapanja = 0 )
)
To je sve o procesu početka rada s retriverima u LangChainu.
Zaključak
Da biste koristili retrivere u LangChainu, jednostavno instalirajte ovisnosti potrebne za postavljanje OpenAI okruženja i zatim prenesite dokument da testirate retrivere. Nakon toga izgradite retriver pomoću apstraktne osnovne klase ili ABC biblioteke i zatim kreirajte indeks za bazu podataka za dohvaćanje podataka. Konfigurirajte ugradnje za dokument i pokrenite retriver kako biste dobili usporedive rezultate iz baze podataka. Ovaj post razradio je proces korištenja retrivera u LangChainu.