ReAct

Das bekannte AutoGPT-Projekt basiert auf dem ReAct-Modell, das eine Kombination aus Logik + Aktionen ist. Das große LLM-Modell ist für die Logik verantwortlich, steuert Aktionen zur Zielerreichung und für Entwickler geht es bei Aktionen tatsächlich darum, gute Tools oder APIs zu entwickeln. Dieses Kapitel wird vorstellen, wie LangChain das ReAct-Modell implementiert.

ReAct

Laden der Grundpakete:

from langchain.agents import load_tools
from langchain.agents import initialize_agent
from langchain.agents import AgentType
from langchain_openai import OpenAI

Hier verwenden wir das OpenAI-Modell:

llm = OpenAI(temperature=0)

Laden von zwei integrierten Tools in LangChain: serpapi für die Google-Suche und llm-math für einen mathematischen Taschenrechner, beide implementiert mit LLM. Daher sollte beim Laden der Tools das zu verwendende llm-Modell übergeben werden.

tools = load_tools(["serpapi", "llm-math"], llm=llm)

Schließlich Initialisieren des Agenten mit dem Agententyp AgentType.ZERO_SHOT_REACT_DESCRIPTION, der das ReAct-Modell repräsentiert.

agent = initialize_agent(tools, llm, agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION, verbose=True)

Lassen Sie uns das jetzt testen!

agent.run("Wer ist Leonardo DiCaprios Freundin? Was ist 0.43 potenziert mit ihrem aktuellen Alter?")
> Betreten einer neuen AgentExecutor-Kette...
    Ich muss herausfinden, wer Leonardo DiCaprios Freundin ist, und dann das Alter von 0.43 potenzieren.
    Aktion: Suche
    Eingabe für die Aktion: "Leonardo DiCaprio Freundin"
    Beobachtung: Camila Morrone
    Denken: Ich muss Camila Morrones Alter herausfinden
    Aktion: Suche
    Eingabe für die Aktion: "Camila Morrone Alter"
    Beobachtung: 25 Jahre alt
    Denken: Ich muss 25 potenziert mit 0.43 berechnen
    Aktion: Taschenrechner
    Eingabe für die Aktion: 25^0.43
    Beobachtung: Antwort: 3.991298452658078

    Denken: Ich kenne jetzt die endgültige Antwort
    Endgültige Antwort: Camila Morrone ist Leonardo DiCaprios Freundin und 0.43 potenziert mit ihrem Alter ergibt 3.991298452658078.

    > Kette abgeschlossen.

    "Camila Morrone ist Leonardo DiCaprios Freundin und 0.43 potenziert mit ihrem Alter ergibt 3.991298452658078."

Verwendung des Chat-Modells

Aus dem vorherigen Beispiel wissen wir, dass der Agent ein großes Modell als Logik-Engine auswählen muss. Hier ändern wir es, um das Chat-Modell von OpenAI zu verwenden.

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("Wer ist Leonardo DiCaprios Freundin? Was ergibt 0.43 potenziert mit ihrem aktuellen Alter?")