ReAct
Le célèbre projet AutoGPT est basé sur le modèle ReAct, qui est une combinaison de raisonnement + action. Le modèle LLM large est responsable du raisonnement, contrôle les actions pour atteindre les objectifs, et pour les développeurs, l'action consiste en réalité à développer de bons outils ou APIs. Ce chapitre présentera comment LangChain implémente le modèle ReAct.
Chargement des packages de base :
from langchain.agents import load_tools
from langchain.agents import initialize_agent
from langchain.agents import AgentType
from langchain_openai import OpenAI
Ici, nous utilisons le modèle OpenAI :
llm = OpenAI(temperature=0)
Chargement de deux outils intégrés dans LangChain : serpapi pour la recherche Google et llm-math pour une calculatrice mathématique, tous deux implémentés à l'aide de LLM. Par conséquent, lors du chargement des outils, le modèle llm à utiliser doit être passé en paramètre.
tools = load_tools(["serpapi", "llm-math"], llm=llm)
Enfin, initialisation de l'agent avec le type d'agent AgentType.ZERO_SHOT_REACT_DESCRIPTION, représentant le modèle ReAct.
agent = initialize_agent(tools, llm, agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION, verbose=True)
Maintenant, testons !
agent.run("Qui est la petite amie de Leonardo DiCaprio ? Quelle est la puissance 0.43 de son âge actuel ?")
> Entrée dans une nouvelle chaîne d'AgentExecutor…
Je dois découvrir qui est la petite amie de Leonardo DiCaprio, puis calculer la puissance 0.43 de son âge.
Action : Recherche
Entrée de l'action : "petite amie de Leonardo DiCaprio"
Observation : Camila Morrone
Réflexion : Je dois découvrir l'âge de Camila Morrone
Action : Recherche
Entrée de l'action : "âge de Camila Morrone"
Observation : 25 ans
Réflexion : Je dois calculer 25 à la puissance 0.43
Action : Calculatrice
Entrée de l'action : 25^0.43
Observation : Réponse : 3.991298452658078
Réflexion : Je connais maintenant la réponse finale
Réponse finale : Camila Morrone est la petite amie de Leonardo DiCaprio, et la puissance 0.43 de son âge est 3.991298452658078.
> Chaîne terminée.
"Camila Morrone est la petite amie de Leonardo DiCaprio, et la puissance 0.43 de son âge est 3.991298452658078."
Utilisation du modèle de chat
À partir de l'exemple précédent, nous savons que l'agent doit choisir un grand modèle comme moteur de raisonnement. Ici, nous le changeons pour utiliser le modèle de chat d'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("Qui est la petite amie de Leonardo DiCaprio ? Quelle est la puissance 0.43 de son âge actuel ?")