Hvordan bruger man retrievere i LangChain?

Hvordan Bruger Man Retrievere I Langchain



LangChain er rammen, der giver udviklere mulighed for at bygge store sprogmodeller (LLM'er), der kan bruges til at interagere med mennesker. Maskiner skal lære menneskelige sprog for at interagere med dem ved hjælp af LangChain, da det giver alle de nødvendige biblioteker og afhængigheder til at bygge disse modeller.

Dette indlæg vil demonstrere processen med at bruge retrievere i LangChain.

Hvordan bruger man retrievere i LangChain?

Retrievere fungerer som grænsefladen mellem modeller og mennesker, så de kan bruge det til at få det ønskede output ved hjælp af input på naturlige sprog. Vektorlagre bruges til at gemme data, som kan bruges til at hente/udtrække information/data fra.







Dog er retrieverne mere generelle end disse databaser. De gemmer ingen data og bruges kun til at hente eller hente data til brugerne. For at lære processen med at bygge og bruge retrieverne gennem LangChain, se på følgende trin:



Trin 1: Installer moduler
Først skal du installere de nødvendige moduler som LangChain for at få dets biblioteker og afhængigheder til at fortsætte med processen:



pip installere langkæde





Installer chromadb vektorlager, som kan bruges til at database data, så retrieveren kan hente data fra butikken:

pip installere chromadb



Installer nu OpenAI framework for at få dets biblioteker til at bruge tekstindlejring, før du bygger en retriever:

pip installere openai

Når du har installeret alle de nødvendige moduler, skal du blot opsætte miljøet ved hjælp af OpenAI API-nøglen:

import os
importere getpass

os.miljø [ 'OPENAI_API_KEY' ] = getpass.getpass ( 'OpenAI API-nøgle:' )

Trin 2: Upload datasæt
Udfør nu følgende kode for at klikke på 'Vælg filer' knappen og upload dokumentet eller filen fra det lokale system:

fra google.colab importfiler
uploadet = filer.upload ( )

Trin 3: Importer biblioteker
Importer de nødvendige biblioteker for at bygge og bruge retrieverne i LangChain såsom ' Liste ', ' Tilbagekald ', og mange flere:

fra abc import ABC, abstrakt metode
fra at skrive import Enhver, Liste
fra langchain.schema importer dokument
fra langchain.callbacks.manager importer tilbagekald

Trin 4: Opret One Line Index Creation
Dette trin opretter indekset for retrieveren, der kan bruges til at få dataene til at danne vektorlageret ved at importere de nødvendige biblioteker:

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

Her skal du indlæse data ved hjælp af TextLoader() metode med stien til filen uploadet i trin 2:

importer TextLoader fra langchain.document_loaders
loader = TextLoader ( 'state_of_the_union.txt' , indkodning = 'utf8' )

Importer bibliotek VectorstoreIndexCreator fra LangChain for at bygge et indeks til databasen:

importer VectorstoreIndexCreator fra langchain.indexes

Definer indeks variabel ved hjælp af VectorstoreIndexCreator()-metoden ved hjælp af læsser variabel:

index = VectorstoreIndexCreator ( ) .from_loaders ( [ læsser ] )

Anvend forespørgslen til at teste indekset ved at hente data fra dokumentet:

forespørgsel = 'Hvad sagde præsidenten Zelenskyy i sin tale'
indeks.forespørgsel ( forespørgsel )

Få detaljerne i indekset om, hvilken database der har indeks ved hjælp af følgende kode:

index.vectorstore

Følgende kode vil forklare alle detaljer om indekset, dets type og database:

index.vectorstore.as_retriever ( )

Brug metoden indeks med query() til at bede om et resumé af dokumentet ved hjælp af kildeargumentet for at bruge navnet på dokumentet:

indeks.forespørgsel ( 'Generelt resumé af data fra dette dokument' , retriever_kwargs = { 'search_kwargs' : { 'filter' : { 'kilde' : 'state_of_the_union.txt' } } } )

Trin 5: Opret indlejringer
Indlæs dokumentet for at skabe dets indlejring, og gem teksten i den numeriske form ved hjælp af vektorlageret:

dokumenter = loader.load ( )

Start processen med at indlejre ved hjælp af tekstsplitter med chunks størrelse og overlap argumenter:

fra langchain.text_splitter importer CharacterTextSplitter
#using text_splitter til at oprette små bidder af dokumentet for at bruge retriever
text_splitter = CharacterTextSplitter ( chunk_size = 1000 , chunk_overlap = 0 )
tekster = text_splitter.split_documents ( Dokumenter )

Anvend OpenAIEmbeddings() metode, der kan importeres fra LangChain:

fra langchain.embeddings importer OpenAIEmbeddings
indlejringer = OpenAIEembeddings ( )

Brug chromadb-lageret til at gemme de indlejringer, der er oprettet fra dokumentet:

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

Trin 6: Test Retrieveren
Når indlejringerne er oprettet og gemt i databasen, skal du blot definere retrievervariablen:

retriever = db.as_retriever ( )

Kald kæderne ved hjælp af RetrievalQA()-metoden med OpenAI()-funktionen og retriever som dens argumenter:

qa = RetrievalQA.from_chain_type ( llm =ÅbenAI ( ) , kæde_type = 'ting og sager' , retriever =retriever )

Angiv input til at teste retrieveren ved hjælp af forespørgsel variabel inde i qa.run() metoden:

forespørgsel = 'Hvad sagde præsidenten Zelenskyy i sin tale'
qa.run ( forespørgsel )

Du skal blot tilpasse VectorstoreIndexCreator () ved at bruge sine argumenter til at indstille forskellige værdier:

index_creator = VectorstoreIndexCreator (
vectorstore_cls =Chroma,
indlejring =OpenAIE-indlejringer ( ) ,
tekstsplitter =Tegntekstsplitter ( chunk_size = 1000 , chunk_overlap = 0 )
)

Det handler om processen med at komme i gang med retrievere i LangChain.

Konklusion

For at bruge retrieverne i LangChain skal du blot installere de afhængigheder, der kræves for at opsætte OpenAI-miljøet og derefter uploade dokumentet for at teste retrieverne. Derefter skal du bygge retrieveren ved hjælp af en abstrakt basisklasse eller ABC-bibliotek og derefter oprette indekset til databasen for at hente dataene. Konfigurer indlejringerne for dokumentet og kør retrieveren for at få sammenlignelige resultater fra databasen. Dette indlæg har uddybet processen med at bruge retrieverne i LangChain.