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.

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 ?")