Come implementare il self-ask con la catena di ricerca?

Come Implementare Il Self Ask Con La Catena Di Ricerca



LangChain è il modulo per costruire modelli linguistici e chatbot in grado di comprendere ed estrarre testo in linguaggio naturale. I linguaggi naturali sono facilmente comprensibili dagli esseri umani, ma le macchine devono impararli esaminando ripetutamente i dati. I dati/documenti nei linguaggi naturali possono essere utilizzati per addestrare il modello e quindi chiedere suggerimenti dai dati per verificare le prestazioni del modello.

Contorno rapido

Questo post dimostrerà quanto segue:







Come implementare l'auto-domanda con la catena di ricerca



Conclusione



Come implementare il self-ask con la catena di ricerca?

Self-Ask è il processo per migliorare il processo di concatenamento poiché comprende a fondo i comandi. Le catene comprendono la domanda estraendo i dati su tutti i termini importanti dal set di dati. Una volta che il modello è stato addestrato e comprende la query, genera la risposta alla query posta dall'utente.





Per apprendere il processo di implementazione dell'auto-domanda con le catene di ricerca in LangChain, è sufficiente seguire la seguente guida:

Passaggio 1: installazione dei framework

Prima di tutto, avvia il processo installando il processo LangChain utilizzando il seguente codice e ottieni tutte le dipendenze per il processo:



pip installa langchain

Dopo aver installato LangChain, installare ' risultati-ricerca-google ' per ottenere i risultati della ricerca da Google utilizzando l'ambiente OpenAI:

pip installa openai risultati di ricerca di google

Passaggio 2: ambiente di costruzione

Una volta installati i moduli e i framework, configurare l'ambiente per OpenAI E SerpAPi utilizzando le loro API utilizzando il seguente codice. Importa le librerie os e getpass che possono essere utilizzate per inserire le chiavi API dai rispettivi account:

importare Voi
importare getpass

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

Passaggio 3: importazione delle librerie

Dopo aver configurato l'ambiente, importa semplicemente le librerie richieste dalle dipendenze LangChain come utilità, agenti, llm e altre:

da langchain. llms importare OpenAI

da langchain. utilità importare SerpAPIWrapper

da langchain. agenti . output_parser importare SelfAskOutputParser

da langchain. agenti . format_scratchpad importare format_log_to_str

da langchain importare centro

da langchain. agenti importare inizializza_agente , Attrezzo

da langchain. agenti importare Tipo agente

Passaggio 4: creazione di modelli linguistici

Ottenere le librerie di cui sopra è necessario durante tutto il processo poiché OpenAI() viene utilizzato per configurare il modello linguistico. Utilizza il metodo SerpAPIWrapper() per configurare la variabile di ricerca e impostare gli strumenti richiesti affinché l'agente esegua tutte le attività:

llm = OpenAI ( temperatura = 0 )
ricerca = SerpAPIWrapper ( )
utensili = [
Attrezzo (
nome = 'Risposta intermedia' ,
funz = ricerca. correre ,
descrizione = 'utile per quando devi chiedere con la ricerca' ,
)
]

Passaggio 5: utilizzo del linguaggio di espressione LangChain

Iniziare con la configurazione dell'agente utilizzando LangChain Expression Language (LCEL) caricando il modello nella variabile prompt:

richiesta = centro. tiro ( 'hwchase17/auto-chiedi-con-ricerca' )

Definisci un'altra variabile che può essere eseguita per interrompere la generazione di testo e controllare la lunghezza delle risposte:

llm_con_stop = llm. legamento ( fermare = [ ' \N Risposta intermedia:' ] )

Ora configura gli agenti utilizzando Lambda, una piattaforma serverless basata sugli eventi per generare le risposte alle domande. Inoltre, configura i passaggi necessari per addestrare e testare il modello per ottenere risultati ottimizzati utilizzando i componenti configurati in precedenza:

agente = {
'ingresso' : lambda x:x [ 'ingresso' ] ,
'agente_scratchpad' : lambda x: format_log_to_str (
X [ 'passi_intermedi' ] ,
prefisso_osservazione = ' \N Risposta intermedia: ' ,
llm_prefisso = '' ,
) ,
} | richiesta | llm_con_stop | SelfAskOutputParser ( )

Passaggio 6: configurazione dell'esecutore dell'agente

Prima di testare il metodo, importa semplicemente la libreria AgentExecutor da LangChain per rendere reattivo l'agente:

da langchain. agenti importare AgentExecutor

Definisci la variabile agent_executor chiamando il metodo AgentExecutor() e utilizzando i componenti come argomenti:

agente_esecutore = AgentExecutor ( agente = agente , utensili = utensili , prolisso = VERO )

Passaggio 7: esecuzione dell'agente

Una volta configurato l'esecutore dell'agente, testalo semplicemente fornendo la domanda/richiesta nella variabile di input:

agente_esecutore. invocare ( { 'ingresso' : 'Chi è il campione maschile degli US Open' } )

L'esecuzione del codice sopra riportato ha risposto con il nome del campione degli US Open nell'output, ovvero Dominic Thiem:

Passaggio 8: utilizzo dell'agente di domanda automatica

Dopo aver ricevuto la risposta dall'agente, utilizzare il file SELF_ASK_WITH_SEARCH agent con la query nel metodo run():

self_ask_with_search = inizializza_agente (
utensili , llm , agente = Tipo agente. SELF_ASK_WITH_SEARCH , prolisso = VERO
)
self_ask_with_search. correre (
'Qual è la città natale di Dominic Thiem, il campione del mondo degli US Open'
)

La schermata seguente mostra che l'agente di domanda automatica estrae le informazioni su ciascun termine importante dal set di dati. Una volta raccolte tutte le informazioni sulla query e comprese le domande, genera semplicemente la risposta. Le domande che l'agente si pone sono:

  • Chi è Dominic Thiem?
  • Qual è la città natale di Dominic Thiem?

Dopo aver ottenuto le risposte a queste domande, l'agente ha generato la risposta alla domanda originale che è ' Wiener Neustadt, Austria ':

Questo è tutto incentrato sul processo di implementazione del self-ask con una catena di ricerca utilizzando il framework LangChain.

Conclusione

Per implementare l'auto-chiesta con la ricerca in LangChain, installa semplicemente i moduli richiesti come google-search-results per ottenere i risultati dall'agente. Successivamente, configura l'ambiente utilizzando le chiavi API degli account OpenAI e SerpAPi per iniziare il processo. Configura l'agente e crea il modello con il modello di domanda automatica per testarlo utilizzando il metodo AgentExecutor().