Come utilizzare VectorStoreRetrieverMemory in LangChain?

Come Utilizzare Vectorstoreretrievermemory In Langchain



I modelli linguistici di grandi dimensioni o LLM sono la soluzione per i problemi di elaborazione del linguaggio naturale creati utilizzando il framework LangChain. Il modulo LangChain fornisce tutte le dipendenze o librerie necessarie per progettare i modelli di chat o LLM. L'utente può anche impostare il retriever per l'estrazione dei dati dagli archivi vettoriali o dai database utilizzando i modelli.

Questa guida illustrerà come utilizzare VectorStoreRetrieverMemory utilizzando il framework LangChain.

Come utilizzare VectorStoreRetrieverMemory in LangChain?

VectorStoreRetrieverMemory è la libreria di LangChain che può essere utilizzata per estrarre informazioni/dati dalla memoria utilizzando gli archivi vettoriali. Gli archivi vettoriali possono essere utilizzati per archiviare e gestire i dati per estrarre in modo efficiente le informazioni in base al prompt o alla query.







Per apprendere il processo di utilizzo di VectorStoreRetrieverMemory in LangChain, segui semplicemente la seguente guida:



Passaggio 1: installare i moduli

Avvia il processo di utilizzo del memory retriever installando LangChain utilizzando il comando pip:



pip installa langchain





Installa i moduli FAISS per ottenere i dati utilizzando la ricerca per somiglianza semantica:

pip installa faiss-gpu



Installa il modulo chromadb per utilizzare il database Chroma. Funziona come archivio vettoriale per costruire la memoria per il retriever:

pip installa chromadb

È necessario installare un altro modulo tiktoken che può essere utilizzato per creare token convertendo i dati in blocchi più piccoli:

pip installa tiktoken

Installa il modulo OpenAI per utilizzare le sue librerie per creare LLM o chatbot utilizzando il suo ambiente:

pip installa openai

Configura l'ambiente sull'IDE Python o sul notebook utilizzando la chiave API dall'account OpenAI:

importare Voi

importare getpass

Voi . circa [ 'OPENAI_API_KEY' ] = getpass . getpass ( 'Chiave API OpenAI:' )

Passaggio 2: importare librerie

Il passaggio successivo è ottenere le librerie da questi moduli per utilizzare il memory retriever in LangChain:

da langchain. richiede importare Modello Prompt

da appuntamento importare appuntamento

da langchain. llms importare OpenAI

da langchain. incastri . openai importare OpenAIEmbeddings

da langchain. Catene importare Catena di conversazioni

da langchain. memoria importare VectorStoreRetrieverMemory

Passaggio 3: inizializzazione dell'archivio vettori

Questa guida utilizza il database Chroma dopo aver importato la libreria FAISS per estrarre i dati utilizzando il comando di input:

importare faiss

da langchain. archivio documenti importare InMemoryDocstore
#importazione di librerie per la configurazione di database o archivi di vettori
da langchain. vectorstores importare FAISS

#crea incorporamenti e testi per memorizzarli negli archivi vettoriali
incorporamento_dimensione = 1536
indice = faiss. IndicePiattoL2 ( incorporamento_dimensione )
incorporamento_fn = OpenAIEmbeddings ( ) . incorpora_query
vectorstore = FAISS ( incorporamento_fn , indice , InMemoryDocstore ( { } ) , { } )

Passaggio 4: creazione di Retriever supportato da un archivio di vettori

Costruisci la memoria per archiviare i messaggi più recenti nella conversazione e ottenere il contesto della chat:

documentalista = vectorstore. as_retriever ( search_kwargs = dict ( K = 1 ) )
memoria = VectorStoreRetrieverMemory ( documentalista = documentalista )

memoria. salva_contesto ( { 'ingresso' : 'Mi piace mangiare la pizza' } , { 'produzione' : 'fantastico' } )
memoria. salva_contesto ( { 'ingresso' : 'Sono bravo a calcio' } , { 'produzione' : 'OK' } )
memoria. salva_contesto ( { 'ingresso' : 'Non mi piace la politica' } , { 'produzione' : 'Sicuro' } )

Testare la memoria del modello utilizzando l'input fornito dall'utente con la sua cronologia:

stampa ( memoria. carica_variabili_memoria ( { 'richiesta' : 'che sport dovrei guardare?' } ) [ 'storia' ] )

Passaggio 5: utilizzo di Retriever in una catena

Il passaggio successivo è l'utilizzo di un memory retriever con le catene costruendo il LLM utilizzando il metodo OpenAI() e configurando il modello di prompt:

llm = OpenAI ( temperatura = 0 )
_MODELLO PREDEFINITO = '''Si tratta di un'interazione tra un essere umano e una macchina
Il sistema produce informazioni utili con dettagli utilizzando il contesto
Se il sistema non ha la risposta per te, dice semplicemente che non ho la risposta

Informazioni importanti dalla conversazione:
{storia}
(se il testo non è rilevante non usarlo)

Chat attuale:
Umano: {input}
AI:'''

RICHIESTA = Modello Prompt (
input_variabili = [ 'storia' , 'ingresso' ] , modello = _MODELLO PREDEFINITO
)
#configura ConversationChain() utilizzando i valori per i suoi parametri
conversazione_con_riepilogo = Catena di conversazioni (
llm = llm ,
richiesta = RICHIESTA ,
memoria = memoria ,
prolisso = VERO
)
conversazione_con_riepilogo. prevedere ( ingresso = 'Ciao, mi chiamo Perry, che succede?' )

Produzione

L'esecuzione del comando esegue la catena e visualizza la risposta fornita dal modello o LLM:

Procedi con la conversazione utilizzando il prompt basato sui dati memorizzati nell'archivio vettoriale:

conversazione_con_riepilogo. prevedere ( ingresso = 'qual è il mio sport preferito?' )

I messaggi precedenti vengono archiviati nella memoria del modello che può essere utilizzata dal modello per comprendere il contesto del messaggio:

conversazione_con_riepilogo. prevedere ( ingresso = 'Qual è il mio cibo preferito' )

Ottieni la risposta fornita al modello in uno dei messaggi precedenti per verificare come funziona il memory retriever con il modello di chat:

conversazione_con_riepilogo. prevedere ( ingresso = 'Qual è il mio nome?' )

Il modello ha visualizzato correttamente l'output utilizzando la ricerca per similarità dai dati archiviati in memoria:

Si tratta di utilizzare il vector store retriever in LangChain.

Conclusione

Per utilizzare il memory retriever basato su un archivio vettoriale in LangChain, è sufficiente installare i moduli e i framework e configurare l'ambiente. Successivamente, importa le librerie dai moduli per creare il database utilizzando Chroma e quindi imposta il modello di prompt. Metti alla prova il retriever dopo aver archiviato i dati in memoria avviando la conversazione e ponendo domande relative ai messaggi precedenti. Questa guida ha approfondito il processo di utilizzo della libreria VectorStoreRetrieverMemory in LangChain.