Erste SchritteKostenlos loslegen

Erstelle eine Funktion, die eine LLM Antwort zurückgibt

Dein Chatbot hat jetzt eine Menge Werkzeuge zur Verfügung. Es ist immer noch nützlich, LLM selbst aufzurufen, wenn eine Frage keinen Bezug zu einem der Tools hat, die dem Chatbot hinzugefügt wurden. Jetzt definierst du eine Funktion, die die letzte Nachricht in der Konversation auf mögliche Tool-Aufrufe überprüft. Wenn keine vorhanden sind, verwendet der Chatbot einfach die LLM, um eine Antwort zu geben. Um sowohl die Anfragen der Nutzer als auch die Antworten des Chatbots bearbeiten zu können, wurden die folgenden Module importiert, damit du verschiedene Arten von Nachrichten bearbeiten kannst.

from langchain_core.messages import AIMessage, HumanMessage

Diese Übung ist Teil des Kurses

Agentensysteme mit LangChain entwerfen

Kurs anzeigen

Anleitung zur Übung

  • Rufe die letzte Nachricht von der state mit "messages" auf.
  • Schreibe eine bedingte Anweisung, um zu prüfen, ob die last_message eine AIMessage ist und ob diese Nachricht auch tool_calls enthält.
  • Wenn die Bedingung erfüllt ist, gibst du den ersten "response" aus tool_calls zurück, der aus dem last_message im Feld content des AIMessage entnommen wurde.
  • Wenn die Bedingung nicht erfüllt ist, wende .invoke() auf model_with_tools an, um eine Antwort zu generieren und übergebe den vollständigen Gesprächsverlauf von state["messages"].

Interaktive Übung zum Anfassen

Probieren Sie diese Übung aus, indem Sie diesen Beispielcode ausführen.

# Extract the last message from the history
def call_model(state: MessagesState):
    ____ = ____["____"][____]

    # If the last message has tool calls, return the tool's response
    if isinstance(____, ____) and ____.____:
        
        # Return only the messages from the tool call
        return {"messages": [____(content=____.____[0]["____"])]}
    
    # Otherwise, proceed with a regular LLM response
    return {"messages": [____.____(____["____"])]}
Bearbeiten und Ausführen von Code