CommencerCommencer gratuitement

Créez une fonction pour renvoyer une réponse LLM

Votre chatbot dispose désormais de nombreux outils. Il est toujours utile d'invoquer le site LLM lorsqu'une question n'a aucun rapport avec les outils qui ont été ajoutés au chatbot. Vous allez maintenant définir une fonction qui vérifie que le dernier message de la conversation ne contient pas d'appels d'outils potentiels. Si aucune n'est disponible, le chatbot utilisera simplement le site LLM pour renvoyer une réponse. Afin de pouvoir traiter à la fois les requêtes de l'utilisateur et les réponses du chatbot, les modules suivants ont été importés pour vous permettre de traiter différents types de messages.

from langchain_core.messages import AIMessage, HumanMessage

Cet exercice fait partie du cours

Concevoir des systèmes agentiques avec LangChain

Afficher le cours

Instructions

  • Accédez au dernier message du site state en utilisant "messages".
  • Écrivez une instruction conditionnelle pour vérifier si le last_message est un AIMessage et si ce message contient également un tool_calls.
  • Si la condition est remplie, renvoyez le premier "response" de tool_calls extrait de last_message dans le champ content de AIMessage.
  • Si la condition n'est pas remplie, appliquez .invoke() à model_with_tools pour générer une réponse, en transmettant l'historique complet de la conversation à partir de state["messages"].

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

# 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": [____.____(____["____"])]}
Modifier et exécuter le code