Come aggiungere memoria all'agente delle funzioni OpenAI in LangChain?

Come Aggiungere Memoria All Agente Delle Funzioni Openai In Langchain



LangChain è il framework contenente le dipendenze per la creazione di Large Language Models o LLM. Fornisce inoltre gli strumenti per creare agenti in grado di eseguire tutti i passaggi intermedi dall'acquisizione della query da parte dell'utente al recupero della risposta. OpenAI è un ambiente che fornisce output leggibile e strutturato da Internet utilizzando il file “risultati-ricerca-google” modulo.

Contorno rapido

Questo post dimostrerà quanto segue:

Come aggiungere memoria all'agente delle funzioni OpenAI in LangChain?

OpenAI è un'organizzazione di intelligenza artificiale (AI) fondata nel 2015 e all'inizio era un'organizzazione senza scopo di lucro. Microsoft ha investito molte fortune dal 2020 poiché l’elaborazione del linguaggio naturale (NLP) con l’intelligenza artificiale è in forte espansione con chatbot e modelli linguistici.







La creazione di agenti OpenAI consente agli sviluppatori di ottenere risultati più leggibili e mirati da Internet. Aggiungere memoria agli agenti consente loro di comprendere meglio il contesto della chat e di archiviare nella loro memoria anche le conversazioni precedenti. Per apprendere il processo di aggiunta di memoria all'agente delle funzioni OpenAI in LangChain, è sufficiente seguire i seguenti passaggi:



Passaggio 1: installazione dei framework

Prima di tutto, installa le dipendenze LangChain dal file “langchain-sperimentale” framework utilizzando il seguente codice:



pip installa langchain - sperimentale





Installa il “risultati-ricerca-google” modulo per ottenere i risultati della ricerca dal server di Google:

pip installa google - ricerca - risultati



Inoltre, installa il modulo OpenAI che può essere utilizzato per creare i modelli linguistici in LangChain:

pip installa openai

Passaggio 2: configurazione degli ambienti

Dopo aver ottenuto i moduli, configura gli ambienti utilizzando le chiavi API dal file OpenAI E SerpAPi conti:

importare Voi
importare getpass

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

Esegui il codice sopra per inserire le chiavi API per accedere a entrambi gli ambienti e premi Invio per confermare:

Passaggio 3: importazione delle librerie

Ora che la configurazione è completa, utilizza le dipendenze installate da LangChain per importare le librerie richieste per costruire la memoria e gli agenti:

da langchain. Catene importare LLMMathChain
da langchain. llms importare OpenAI
#ottieni la libreria per effettuare ricerche da Google su Internet
da langchain. utilità importare SerpAPIWrapper
da langchain. utilità importare SQLDatabase
da langchain_experimental. mq importare SQLDatabaseChain
#ottieni la libreria per creare strumenti per inizializzare l'agente
da langchain. agenti importare Tipo agente , Attrezzo , inizializza_agente
da langchain. chat_models importare ChatOpenAI

Passaggio 4: creazione del database

Per procedere con questa guida, dobbiamo creare il database e connetterci all'agente per estrarne le risposte. Per creare il database, è necessario scaricare SQLite utilizzando questo guida e conferma l'installazione utilizzando il seguente comando:

sqlite3

Eseguendo il comando precedente nel file Terminale Windows visualizza la versione installata di SQLite (3.43.2):

Successivamente, vai semplicemente alla directory del tuo computer in cui verrà creato e archiviato il database:

cdDesktop
cd mydb
sqlite3 Chinook. db

Da qui l'utente può semplicemente scaricare il contenuto del database collegamento nella directory ed eseguire il comando seguente per creare il database:

. Leggere Chinook_Sqlite. mq
SELEZIONARE * DAL LIMITE dell'artista 10 ;

Il database è stato creato con successo e l'utente può cercare dati al suo interno utilizzando diverse query:

Passaggio 5: caricamento del database

Una volta creato correttamente il database, caricare il file “.db” file in Google Collaboratory utilizzando il seguente codice:

da Google. ET AL importare File
caricato = File. caricamento ( )

Scegli il file dal sistema locale facendo clic su 'Scegliere i file' pulsante dopo aver eseguito il codice sopra:

Una volta caricato il file, copia semplicemente il percorso del file che verrà utilizzato nel passaggio successivo:

Passaggio 6: configurazione del modello linguistico

Costruisci il modello linguistico, le catene, gli strumenti e le catene utilizzando il seguente codice:

llm = ChatOpenAI ( temperatura = 0 , modello = 'gpt-3.5-turbo-0613' )
ricerca = SerpAPIWrapper ( )
llm_math_chain = LLMMathChain. da_llm ( llm = llm , prolisso = VERO )
db = SQLDatabase. da_uri ( 'sqlite:///../../../../../content/Chinook.db' )
db_chain = SQLDatabaseChain. da_llm ( llm , db , prolisso = VERO )
utensili = [
Attrezzo (
nome = 'Ricerca' ,
funz = ricerca. correre ,
descrizione = 'Poni domande mirate per ottenere risposte alle domande sugli affari recenti' ,
) ,
Attrezzo (
nome = 'Calcolatrice' ,
funz = llm_math_chain. correre ,
descrizione = 'utile per rispondere/risolvere problemi matematici' ,
) ,
Attrezzo (
nome = 'FooBar-DB' ,
funz = db_chain. correre ,
descrizione = 'utile per rispondere a domande su FooBar e l'input dovrebbe essere sotto forma di domanda contenente il contesto completo' ,
) ,
]
  • IL llm La variabile contiene le configurazioni del modello linguistico utilizzando il metodo ChatOpenAI() con il nome del modello.
  • La ricerca La variabile contiene il metodo SerpAPIWrapper() per creare gli strumenti per l'agente.
  • Costruisci il llm_math_chain per ottenere le risposte relative al dominio della Matematica utilizzando il metodo LLMMathChain().
  • La variabile db contiene il percorso del file che ha il contenuto del database. L'utente deve modificare solo l'ultima parte che è “contenuto/Chinook.db” del percorso mantenendo il “sqlite:///../../../../../” lo stesso.
  • Costruisci un'altra catena per rispondere alle domande dal database utilizzando il file db_chain variabile.
  • Configura strumenti come ricerca , calcolatrice , E FooBar-DB rispettivamente per cercare la risposta, rispondere a domande di matematica e query dal database:

Passaggio 7: aggiunta di memoria

Dopo aver configurato le funzioni OpenAI, crea e aggiungi semplicemente la memoria all'agente:

da langchain. richiede importare MessaggiPlaceholder
da langchain. memoria importare Memoria buffer di conversazione

agent_kwargs = {
'messaggi_prompt_extra' : [ MessaggiPlaceholder ( nome_variabile = 'memoria' ) ] ,
}
memoria = Memoria buffer di conversazione ( chiave_memoria = 'memoria' , return_messages = VERO )

Passaggio 8: inizializzazione dell'agente

L'ultimo componente da creare e inizializzare è l'agente, contenente tutti i componenti come llm , attrezzo , OPENAI_FUNCTIONS e altri da utilizzare in questo processo:

agente = inizializza_agente (
utensili ,
llm ,
agente = Tipo agente. OPENAI_FUNCTIONS ,
prolisso = VERO ,
agent_kwargs = agent_kwargs ,
memoria = memoria ,
)

Passaggio 9: test dell'agente

Infine, testa l'agente avviando la chat utilizzando il pulsante ' CIAO ' Messaggio:

agente. correre ( 'CIAO' )

Aggiungi alcune informazioni alla memoria eseguendo l'agente con esso:

agente. correre ( 'il mio nome è John Snow' )

Ora prova la memoria ponendo la domanda sulla chat precedente:

agente. correre ( 'qual è il mio nome' )

L'agente ha risposto con il nome recuperato dalla memoria, quindi la memoria funziona correttamente con l'agente:

È tutto per ora.

Conclusione

Per aggiungere memoria all'agente delle funzioni OpenAI in LangChain, installare i moduli per ottenere le dipendenze per l'importazione delle librerie. Successivamente, crea semplicemente il database e caricalo sul notebook Python in modo che possa essere utilizzato con il modello. Configura il modello, gli strumenti, le catene e il database prima di aggiungerli all'agente e inizializzarlo. Prima di testare la memoria, creala utilizzando ConversationalBufferMemory() e aggiungila all'agente prima di testarla. Questa guida ha spiegato come aggiungere memoria all'agente delle funzioni OpenAI in LangChain.