CommencezCommencez gratuitement

Activer une conversation à plusieurs tours avec mémoire

Vous êtes presque prêt à présenter la mise à jour de votre agent conversationnel à la direction de l'école ! Pour offrir une expérience d'apprentissage fluide, il est important de permettre aux étudiants de poser des questions de suivi. Ainsi, si des informations manquent dans la première réponse du robot, les étudiants peuvent reformuler leurs questions en poursuivant la conversation. Vous allez maintenant adapter la fonction de diffusion en continu de votre agent pour permettre plusieurs tours, en affichant à la fois la requête de l'utilisateur et la réponse du robot. Pour activer la mémoire, LangGraph enverra la conversation complète au LLM lorsque des questions de suivi seront posées. Pour commencer, vos paramètres config ont déjà été définis pour un utilisateur :

config = {"configurable": {"thread_id": "1"}}

Cette activité fait partie du cours

Concevoir des systèmes agentiques avec LangChain

Voir le cours

Instructions de l’exercice

  • À chaque tour, commencez par afficher la query de l'utilisateur provenant de la liste queries.
  • Itérez sur msg et metadata à l'aide de app.stream(), en passant query comme content de HumanMessage avec config, puis concaténez les valeurs de msg.content.
  • Pour extraire les réponses du robot, affichez msg.content en excluant tout msg étiqueté HumanMessage, et ajoutez une nouvelle ligne avant la requête suivante.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

# Print the user query first for every interaction 
def user_agent_multiturn(queries):  
    for ____ in ____:
        print(f"User: {____}")
        
        # Stream through messages corresponding to queries, excluding metadata 
        print("Agent: " + "".join(____.____ for ____, ____ in app.____(
                {"messages": [____(____=_____)]}, config, stream_mode="messages") 
            
            # Filter out the human messages to print agent messages
            if ____.____ and not isinstance(____, ____)) + "____")       

queries = ["Is `stressed desserts?` a palindrome?", "What about the word `kayak`?",
    "What happened on the May 8th, 1945?", "What about 9 November 1989?"]
user_agent_multiturn(queries)
Modifier et exécuter le code