Come utilizzare i retriever in LangChain?

Come Utilizzare I Retriever In Langchain



LangChain è il framework che consente agli sviluppatori di creare Large Language Models (LLM) che possono essere utilizzati per interagire con gli esseri umani. Le macchine devono imparare i linguaggi umani per interagire con loro utilizzando LangChain poiché fornisce tutte le librerie e le dipendenze necessarie per costruire questi modelli.

Questo post dimostrerà il processo di utilizzo dei retriever in LangChain.

Come utilizzare i retriever in LangChain?

I retriever fungono da interfaccia tra i modelli e gli esseri umani in modo che possano utilizzarlo per ottenere l'output desiderato utilizzando l'input fornito nei linguaggi naturali. Gli archivi vettoriali vengono utilizzati per archiviare dati che possono essere utilizzati per ottenere/estrarre informazioni/dati.







Tuttavia, i retriever sono più generali di questi database. Non memorizzano alcun dato e vengono utilizzati solo per ottenere o recuperare dati per gli utenti. Per apprendere il processo di creazione e utilizzo dei retriever tramite LangChain, osserva i seguenti passaggi:



Passaggio 1: installare i moduli
Innanzitutto, installa i moduli richiesti come LangChain per far sì che le sue librerie e dipendenze continuino con il processo:



pip installare langchain





Installa l'archivio vettoriale chromadb che può essere utilizzato per i dati del database affinché il retriever possa recuperare i dati dall'archivio:

pip installare chromadb



Ora installa il framework OpenAI per ottenere le sue librerie per utilizzare l'incorporamento del testo prima di creare un retriever:

pip installare openai

Dopo aver installato tutti i moduli richiesti, è sufficiente configurare l'ambiente utilizzando la chiave API OpenAI:

importaci
importa getpass

os.ambiente [ 'OPENAI_API_KEY' ] = getpass.getpass ( 'Chiave API OpenAI:' )

Passaggio 2: carica il set di dati
Ora esegui il seguente codice per fare clic su 'Scegliere i file' pulsante e caricare il documento o il file dal sistema locale:

dai file di importazione di google.colab
caricato = file.caricato ( )

Passaggio 3: importare librerie
Importa le librerie richieste per creare e utilizzare i retriever in LangChain come ' Elenco ', ' Richiamate ', e molti altri:

da abc import ABC, metodo astratto
digitando import Any, List
dal documento di importazione langchain.schema
da langchain.callbacks.manager importa callback

Passaggio 4: creazione della creazione di un indice su una riga
Questo passaggio crea l'indice per il retriever che può essere utilizzato per ottenere i dati per formare l'archivio vettoriale importando le librerie richieste:

da langchain.chains importa RetrievalQA
da langchain.llms importa OpenAI

Qui, carica i dati utilizzando il file Caricatore di testo() metodo con il percorso del file caricato nel passaggio 2:

importa TextLoader da langchain.document_loaders
caricatore = Caricatore di testo ( 'stato_dell'unione.txt' , codifica = 'utf8' )

Importa libreria VectorstoreIndexCreator da LangChain per creare un indice per il database:

importa VideostoreIndexCreator da langchain.indexes

Definire il indice variabile utilizzando il metodo VideostoreIndexCreator() utilizzando il metodo caricatore variabile:

indice =VectorstoreIndexCreator ( ) .from_loaders ( [ caricatore ] )

Applica la query per testare l'indice recuperando i dati dal documento:

domanda = 'Cosa ha detto il presidente Zelenskyj nel suo discorso'
indice.query ( domanda )

Ottieni i dettagli dell'indice su quale database ha il file indice utilizzando il seguente codice:

indice.vettorestore

Il seguente codice spiegherà tutti i dettagli sull'indice, il suo tipo e il database:

Index.Vectorstore.as_retriever ( )

Utilizza il metodo index with query() chiedendo il riepilogo del documento utilizzando l'argomento source per utilizzare il nome del documento:

indice.query ( 'Riepilogo generale dei dati di questo documento' , retriever_kwargs = { 'search_kwargs' : { 'filtro' : { 'fonte' : 'stato_dell_unione.txt' } } } )

Passaggio 5: crea incorporamenti
Carica il documento per crearne l'incorporamento e memorizza il testo in forma numerica utilizzando l'archivio vettoriale:

documenti = caricatore.load ( )

Avviare il processo di incorporamento utilizzando il file text_splitter con gli argomenti relativi alla dimensione dei blocchi e alla sovrapposizione:

da langchain.text_splitter importa CharacterTextSplitter
#usando text_splitter per creare piccole parti del documento da usare retriever
text_splitter = CarattereTextSplitter ( dimensione_pezzo = 1000 , blocco_sovrapposizione = 0 )
testi = testo_splitter.split_documents ( documenti )

Applica il metodo OpenAIEmbeddings() che può essere importato da LangChain:

da langchain.embeddings importa OpenAIEmbeddings
incorporamenti = OpenAIEembeddings ( )

Utilizza lo store chromadb per archiviare gli incorporamenti creati dal documento:

da langchain.Vectorstores importa Chroma
db = Chroma.from_documents ( testi, incorporamenti )

Passaggio 6: testare il retriever
Una volta creati e archiviati gli incorporamenti nel database, è sufficiente definire la variabile retriever:

recuperatore = db.as_retriever ( )

Chiama le catene utilizzando il metodo RetrievalQA() con la funzione OpenAI() e retriever come argomenti:

qa = RecuperoQA.da_tipo_catena ( llm =ApriAI ( ) , tipo_catena = 'cose' , documentalista =recuperatore )

Fornire l'input per testare il retriever utilizzando il file domanda variabile all'interno del metodo qa.run():

domanda = 'Cosa ha detto il presidente Zelenskyj nel suo discorso'
qa.run ( domanda )

Personalizza semplicemente il VectorstoreIndexCreator () utilizzando i suoi argomenti per impostare valori diversi:

creatore_indice = CreatoreIndiceVettore (
vectorstore_cls =Croma,
incorporamento =OpenAIEmbeddings ( ) ,
text_splitter =Divisore testocarattere ( dimensione_pezzo = 1000 , pezzo_sovrapposizione = 0 )
)

Questo è tutto incentrato sul processo per iniziare con i retriever in LangChain.

Conclusione

Per utilizzare i retriever in LangChain è sufficiente installare le dipendenze necessarie per configurare l'ambiente OpenAI e quindi caricare il documento per testare i retriever. Successivamente, crea il retriever utilizzando una classe base astratta o una libreria ABC e quindi crea l'indice affinché il database recuperi i dati. Configura gli incorporamenti per il documento ed esegui il retriever per ottenere risultati comparabili dal database. Questo post ha elaborato il processo di utilizzo dei retriever in LangChain.