Questa guida illustrerà il processo di aggiunta di memoria a una catena con più input in LangChain.
Come aggiungere memoria a una catena con più input in LangChain?
La memoria può essere aggiunta agli LLM o ai chatbot per archiviare i messaggi o i dati più recenti in modo che il modello possa comprendere il contesto del comando. Per apprendere il processo di aggiunta di memoria a una catena con più input in LangChain, segui semplicemente i seguenti passaggi:
Passaggio 1: installare i moduli
Innanzitutto, installa il framework LangChain poiché ha una varietà di dipendenze per creare modelli linguistici:
pip installa langchain
Installa chromadb per archiviare i dati utilizzati dalla memoria nell'archivio vettoriale Chroma:
pip installa chromadb
Tiktoken è il tokenizzatore utilizzato per creare piccole porzioni di documenti di grandi dimensioni in modo da poterli gestire facilmente:
pip installa tiktoken
OpenAI è il modulo che può essere utilizzato per costruire catene e LLM utilizzando il metodo OpenAI():
pip installa openai
Passaggio 2: configurazione dell'ambiente e caricamento dei dati
Il passaggio successivo dopo aver installato tutti i moduli richiesti per questo processo è impostazione dell'ambiente utilizzando la chiave API dall'account OpenAI:
importare Voiimportare getpass
Voi . circa [ 'OPENAI_API_KEY' ] = getpass . getpass ( 'Chiave API OpenAI:' )
Carica i documenti utilizzando la libreria di file per costruire le catene nel framework LangChain:
da Google. ET AL importare Filecaricato = File. caricamento ( )
Passaggio 3: importare librerie
Una volta caricato correttamente il documento, è sufficiente importare le librerie richieste dal modulo Langchain:
da langchain. incastri . openai importare OpenAIEmbeddingsda langchain. incastri . coerenza importare CohereEmbedding
da langchain. text_splitter importare CharacterTextSplitter
da langchain. vectorstores . ricerca_vettoriale_elastica importare ElasticVectorSearch
da langchain. vectorstores importare Croma
da langchain. archivio documenti . documento importare Documento
Passaggio 4: creazione di memoria utilizzando il database Chroma
Ora inizia a costruire lo spazio vettoriale per archiviare gli incorporamenti e i token del documento caricato in precedenza:
con aprire ( 'stato_dell_unione.txt' ) COME F:stato dell'unione = F. Leggere ( )
text_splitter = CharacterTextSplitter ( dimensione_pezzo = 1000 , blocco_sovrapposizione = 0 )
testi = text_splitter. testo_diviso ( stato dell'unione )
incastri = OpenAIEmbeddings ( )
Configura il database Chroma per archiviare il testo e gli incorporamenti dal documento:
docsearch = Croma. da_testi (testi , incastri , metadati = [ { 'fonte' : io } per io In allineare ( soltanto ( testi ) ) ]
)
Testa la memoria chiedendo il comando nella variabile query e quindi esegui il metodo similarity_search():
domanda = 'Quando è stata costituita la NATO'documenti = docsearch. similarity_search ( domanda )
Passaggio 5: configurazione del modello di prompt
Questo passaggio spiega il processo di configurazione del modello per i prompt importando le seguenti librerie:
da langchain. Catene . domanda_risposta importare load_qa_chainda langchain. llms importare OpenAI
da langchain. richiede importare Modello Prompt
da langchain. memoria importare Memoria buffer di conversazione
Successivamente, configura semplicemente il modello o la struttura per la query ed esegui la catena una volta aggiunta la memoria al modello:
modello = '''Sei una modella che sta chiacchierando con un essere umanoDati i pezzi estratti da un lungo documento e una domanda, crea una risposta finale
{contesto}
{cronologia}
Umano: {input}
Chatbot:'''
richiesta = Modello Prompt (
input_variabili = [ 'storia' , 'ingresso' , 'contesto' ] , modello = modello
)
memoria = Memoria buffer di conversazione ( chiave_memoria = 'storia' , chiave_input = 'ingresso' )
catena = load_qa_chain (
OpenAI ( temperatura = 0 ) , tipo_catena = 'cose' , memoria = memoria , richiesta = richiesta
)
Passaggio 6: testare la memoria
Ecco il momento di testare il modello ponendo la domanda utilizzando la variabile query e quindi eseguendo il metodo chain() con i suoi parametri:
domanda = 'Quando è stata costituita la NATO'catena ( { 'input_documenti' : documenti , 'ingresso' : domanda } , return_only_outputs = VERO )
Stampa i dati archiviati nella memoria buffer poiché la risposta data dal modello è archiviata di recente in memoria:
stampa ( catena. memoria . respingente )
Si tratta di aggiungere memoria a una catena con più input in LangChain.
Conclusione
Per aggiungere memoria a una catena con più input in LangChain, è sufficiente installare i moduli e l'archivio vettoriale per archiviare il testo e gli incorporamenti. Successivamente, carica i dati/documenti dal sistema locale e quindi importa le librerie richieste per archiviare i dati per creare la memoria per LLM. Configurare il modello di prompt per archiviare i messaggi più recenti nella memoria buffer e quindi inviare il testo alla catena. Questa guida ha approfondito il processo di aggiunta di memoria a una catena con più input in LangChain.