Come aggiungere memoria a una catena con più input in LangChain?

Come Aggiungere Memoria A Una Catena Con Piu Input In Langchain



Chatbot e modelli linguistici di grandi dimensioni vengono utilizzati da milioni di persone in tutto il mondo e questi modelli possono generare testo a comando. LangChain è uno dei framework più efficaci ed efficienti che consente agli sviluppatori di creare tali modelli e bot. L'utente fornisce prompt o query come input e il modello comprende il comando prima di generare il testo che sembra più correlato o simile al comando.

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 Voi
importare 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 File

caricato = 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 OpenAIEmbeddings

da 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_chain

da 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 umano
Dati 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.