ReAct
Il ben noto progetto AutoGPT si basa sul modello ReAct, che è una combinazione di ragionamento + azione. Il modello LLM grande è responsabile del ragionamento, del controllo delle azioni per raggiungere gli obiettivi e, per gli sviluppatori, l'azione consiste effettivamente nello sviluppo di buoni strumenti o API. In questo capitolo verrà presentato come LangChain implementa il modello ReAct.
Caricamento dei pacchetti base:
from langchain.agents import load_tools
from langchain.agents import initialize_agent
from langchain.agents import AgentType
from langchain_openai import OpenAI
Qui, utilizziamo il modello OpenAI:
llm = OpenAI(temperature=0)
Caricamento di due strumenti incorporati in LangChain: serpapi per la ricerca su Google e llm-math per una calcolatrice matematica, entrambi implementati utilizzando LLM. Pertanto, quando si caricano gli strumenti, dovrebbe essere passato il modello llm da utilizzare.
tools = load_tools(["serpapi", "llm-math"], llm=llm)
Infine, inizializzazione dell'agente con il tipo di agente AgentType.ZERO_SHOT_REACT_DESCRIPTION, che rappresenta il modello ReAct.
agent = initialize_agent(tools, llm, agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION, verbose=True)
Ora, testiamolo!
agent.run("Chi è la fidanzata di Leonardo DiCaprio? Qual è la potenza 0.43 della sua età attuale?")
> Entrata in una nuova catena di esecuzione dell'agente...
Devo scoprire chi è la fidanzata di Leonardo DiCaprio, e poi calcolare la potenza 0.43 della sua età.
Azione: Ricerca
Input azione: "fidanzata Leonardo DiCaprio"
Osservazione: Camila Morrone
Pensiero: Devo scoprire l'età di Camila Morrone
Azione: Ricerca
Input azione: "età Camila Morrone"
Osservazione: 25 anni
Pensiero: Devo calcolare 25 elevato alla potenza 0.43
Azione: Calcolatrice
Input azione: 25^0.43
Osservazione: Risposta: 3.991298452658078
Pensiero: Ora conosco la risposta finale
Risposta finale: Camila Morrone è la fidanzata di Leonardo DiCaprio, e la potenza 0.43 della sua età è 3.991298452658078.
> Catena completata.
"Camila Morrone è la fidanzata di Leonardo DiCaprio, e la potenza 0.43 della sua età è 3.991298452658078."
Uso del modello di chat
Dall'esempio precedente, sappiamo che l'agente deve scegliere un modello grande come motore di ragionamento. Qui, lo cambiamo per utilizzare il modello di chat di OpenAI.
from langchain_openai import ChatOpenAI
chat_model = ChatOpenAI(temperature=0)
agent = initialize_agent(tools, chat_model, agent=AgentType.CHAT_ZERO_SHOT_REACT_DESCRIPTION, verbose=True)
agent.run("Chi è la fidanzata di Leonardo DiCaprio? Qual è la potenza 0.43 della sua età attuale?")