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
Instructions de l’exercice
- À chaque tour, commencez par afficher la
queryde l'utilisateur provenant de la listequeries. - Itérez sur
msgetmetadataà l'aide deapp.stream(), en passantquerycommecontentdeHumanMessageavecconfig, puis concaténez les valeurs demsg.content. - Pour extraire les réponses du robot, affichez
msg.contenten excluant toutmsgé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)