Začněte nyníZačněte zdarma

Vytvoř funkci pro vrácení odpovědi LLM

Tvůj chatbot teď disponuje řadou nástrojů. Přesto je užitečné volat LLM samostatně, když dotaz nesouvisí s žádným z dostupných nástrojů. Teď nadefinuješ funkci, která zkontroluje poslední zprávu v konverzaci a ověří, zda obsahuje nějaká tool calls. Pokud ne, chatbot jednoduše použije LLM k vygenerování odpovědi. Aby bylo možné pracovat jak s dotazy uživatele, tak s odpověďmi chatbota, jsou pro tebe již naimportovány následující moduly pro práci s různými typy zpráv.

from langchain_core.messages import AIMessage, HumanMessage

Toto cvičení je součástí kurzu

Návrh agentních systémů s LangChain

Zobrazit kurz

Pokyny k cvičení

  • Načti poslední zprávu ze state pomocí klíče "messages".
  • Napiš podmíněný příkaz, který ověří, zda je last_message instancí AIMessage a zda tato zpráva obsahuje tool_calls.
  • Pokud podmínka platí, vrať první "response" z tool_calls načtenou z last_message v poli content objektu AIMessage.
  • Pokud podmínka neplatí, aplikuj .invoke() na model_with_tools pro vygenerování odpovědi a předej mu celou historii konverzace ze state["messages"].

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

# 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": [____.____(____["____"])]}
Upravit a spustit kód