Kako koristiti retrivere u LangChainu?

Kako Koristiti Retrivere U Langchainu



LangChain je okvir koji programerima omogućuje izradu velikih jezičnih modela (LLM) koji se mogu koristiti za interakciju s ljudima. Strojevi moraju naučiti ljudske jezike da bi s njima komunicirali koristeći LangChain jer pruža sve potrebne biblioteke i ovisnosti za izgradnju ovih modela.

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 nas
import 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:

iz datoteka za uvoz google.colab
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 abc import ABC, apstraktna metoda
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.chains import RetrievalQA
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_loaders
loader = TextLoader ( 'state_of_the_union.txt' , kodiranje = 'utf8' )

Uvoz knjižnice VectorstoreIndexCreator iz LangChaina za izradu indeksa za bazu podataka:

uvozi VectorstoreIndexCreator iz langchain.indexes

Definirajte 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.vectorstore

Sljedeć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:

dokumenti = loader.load ( )

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 OpenAIEmbeddings
ugradnje = OpenAIEembeddings ( )

Upotrijebite chromadb pohranu za pohranjivanje umetanja stvorenih iz dokumenta:

iz langchain.vectorstores uvoz Chroma
db = Chroma.iz_dokumenata ( tekstovi, ugradnje )

Korak 6: Testirajte Retriever
Nakon što su ugradnje stvorene i pohranjene u bazi podataka jednostavno definirajte varijablu retriever:

retriver = db.as_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.