Kom igångKom igång gratis

Skapa en funktion för att returnera ett LLM-svar

Din chatbot har nu tillgång till flera verktyg. Det är ändå användbart att anropa LLM:en direkt när en fråga inte är kopplad till något av de tillgängliga verktygen. Nu ska du definiera en funktion som kontrollerar det senaste meddelandet i konversationen efter eventuella verktygsanrop. Om inga sådana finns använder chatboten helt enkelt LLM:en för att generera ett svar. För att kunna hantera både användarens frågor och chatbotens svar har följande moduler importerats åt dig.

from langchain_core.messages import AIMessage, HumanMessage

Den här övningen är en del av kursen

Designa agentbaserade system med LangChain

Visa kurs

Övningsinstruktioner

  • Hämta det senaste meddelandet från state med hjälp av "messages".
  • Skriv en villkorssats som kontrollerar om last_message är ett AIMessage och att meddelandet också innehåller tool_calls.
  • Om villkoret är uppfyllt, returnera det första "response"-värdet från tool_calls i last_message som content-fält i AIMessage.
  • Om villkoret inte är uppfyllt, anropa .invoke()model_with_tools för att generera ett svar och skicka med hela konversationshistoriken från state["messages"].

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# 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": [____.____(____["____"])]}
Redigera och kör kod