Hvordan bruke retrievere i LangChain?

Hvordan Bruke Retrievere I Langchain



LangChain er rammeverket som lar utviklere bygge store språkmodeller (LLM) som kan brukes til å samhandle med mennesker. Maskiner må lære menneskelige språk for å samhandle med dem ved å bruke LangChain, da det gir alle nødvendige biblioteker og avhengigheter for å bygge disse modellene.

Dette innlegget vil demonstrere prosessen med å bruke retrievere i LangChain.

Hvordan bruke retrievere i LangChain?

Retrievere fungerer som grensesnittet mellom modeller og mennesker, slik at de kan bruke det til å få ønsket utdata ved å bruke inndataene på naturlige språk. Vektorlagre brukes til å lagre data som kan brukes til å hente/trekke ut informasjon/data fra.







Imidlertid er retrieverne mer generelle enn disse databasene. De lagrer ingen data og brukes kun til å hente eller hente data for brukerne. For å lære prosessen med å bygge og bruke retrieverne gjennom LangChain, se på følgende trinn:



Trinn 1: Installer moduler
Installer først de nødvendige modulene som LangChain for å få bibliotekene og avhengighetene til å fortsette med prosessen:



pip installere langkjede





Installer chromadb vektorlager som kan brukes til å database data slik at retrieveren kan hente data fra butikken:

pip installere chromadb



Installer nå OpenAI-rammeverket for å få bibliotekene for bruk av tekstinnbyggingen før du bygger en retriever:

pip installere openai

Etter å ha installert alle nødvendige moduler, konfigurerer du miljøet ved å bruke OpenAI API-nøkkelen:

importere oss
importere getpass

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

Trinn 2: Last opp datasett
Nå, utfør følgende kode for å klikke på 'Velg filer' knappen og last opp dokumentet eller filen fra det lokale systemet:

fra google.colab importfiler
lastet opp = filer.opplasting ( )

Trinn 3: Importer biblioteker
Importer de nødvendige bibliotekene for å bygge og bruke retrieverne i LangChain som ' Liste ', ' Tilbakeringinger ', og mange flere:

fra abc import ABC, abstrakt metode
fra å skrive import Any, List
fra langchain.schema importer dokument
fra langchain.callbacks.manager importer tilbakeringinger

Trinn 4: Opprett en linjeindeks
Dette trinnet oppretter indeksen for retrieveren som kan brukes til å få dataene til å danne vektorlageret ved å importere de nødvendige bibliotekene:

fra langchain.chains import RetrievalQA
fra langchain.llms importerer OpenAI

Her laster du inn dataene ved hjelp av TextLoader() metode med banen til filen lastet opp i trinn 2:

importer TextLoader fra langchain.document_loaders
loader = TextLoader ( «state_of_the_union.txt» , koding = 'utf8' )

Importer bibliotek VectorstoreIndexCreator fra LangChain for å bygge en indeks for databasen:

importer VectorstoreIndexCreator fra langchain.indexes

Definer indeks variabel ved å bruke VectorstoreIndexCreator()-metoden ved å bruke laster variabel:

index = VectorstoreIndexCreator ( ) .from_loaders ( [ laster ] )

Bruk spørringen for å teste indeksen ved å hente data fra dokumentet:

spørring = 'Hva sa presidenten Zelenskyy i sin tale'
index.query ( spørsmål )

Få detaljene i indeksen om hvilken database som har indeks ved å bruke følgende kode:

index.vectorstore

Følgende kode vil forklare alle detaljene om indeksen, dens type og database:

index.vectorstore.as_retriever ( )

Bruk metoden indeks med query() for å be om sammendraget av dokumentet ved å bruke kildeargumentet for å bruke navnet på dokumentet:

index.query ( 'Generelt sammendrag av data fra dette dokumentet' , retriever_kwargs = { 'search_kwargs' : { 'filter' : { 'kilde' : 'state_of_the_union.txt' } } } )

Trinn 5: Opprett innebygginger
Last inn dokumentet for å lage dets innebygging og lagre teksten i numerisk form ved å bruke vektorlageret:

dokumenter = loader.load ( )

Start prosessen med å bygge inn ved å bruke tekstsplitter med argumentene for bitstørrelse og overlapping:

fra langchain.text_splitter importer CharacterTextSplitter
#using text_splitter for å lage små biter av dokumentet for å bruke retriever
text_splitter = CharacterTextSplitter ( chunk_size = 1000 , chunk_overlapp = 0 )
tekster = tekst_splitter.split_dokumenter ( dokumenter )

Bruk OpenAIEmbeddings()-metoden som kan importeres fra LangChain:

fra langchain.embeddings importer OpenAIEmbeddings
embeddings = OpenAIEembeddings ( )

Bruk chromadb-lageret til å lagre innebyggingene som er opprettet fra dokumentet:

fra langchain.vectorstores importerer Chroma
db = Chroma.from_documents ( tekster, innbygginger )

Trinn 6: Test Retrieveren
Når integreringene er opprettet og lagret i databasen, definer ganske enkelt hentevariabelen:

retriever = db.as_retriever ( )

Kall kjedene ved å bruke RetrievalQA()-metoden med OpenAI()-funksjonen og retriever som argumenter:

qa = RetrievalQA.from_chain_type ( llm =OpenAI ( ) , kjedetype = 'ting' , retriever =retriever )

Gi inndata for å teste retrieveren ved å bruke spørsmål variabel inne i qa.run()-metoden:

spørring = 'Hva sa presidenten Zelenskyy i sin tale'
qa.run ( spørsmål )

Bare tilpass VectorstoreIndexCreator () ved å bruke argumentene for å angi forskjellige verdier:

index_creator = VectorstoreIndexCreator (
vectorstore_cls =Chroma,
innebygging =OpenAIEbeddings ( ) ,
tekstsplitter =Tegntekstsplitter ( chunk_size = 1000 , chunk_overlapp = 0 )
)

Det handler om prosessen med å komme i gang med retrievere i LangChain.

Konklusjon

For å bruke retrieverne i LangChain, installer ganske enkelt avhengighetene som kreves for å sette opp OpenAI-miljøet og last deretter opp dokumentet for å teste retrieverne. Deretter bygger du retrieveren ved å bruke en abstrakt baseklasse eller ABC-bibliotek og lager deretter indeksen for databasen for å hente dataene. Konfigurer innebyggingene for dokumentet og kjør retrieveren for å få sammenlignbare resultater fra databasen. Dette innlegget har utdypet prosessen med å bruke retrieverne i LangChain.