Poser des questions sur l'historique de conversation
Avec un agent ReAct de base dans LangChain, vous pouvez poser des questions de suivi en conservant l'historique de conversation de l'agent. Comme le LLM a accès à tous les messages précédents, vous pouvez maintenant poser de nouvelles questions et l'agent peut utiliser tout le contexte pour répondre.
Vous allez maintenant poser une question de suivi à propos des côtés d'un autre triangle.
Pour pouvoir utiliser les fonctionnalités de HumanMessage et AIMessage, les modules suivants ont déjà été importés pour vous : HumanMessage, AIMessage.
Cette activité fait partie du cours
Concevoir des systèmes agentiques avec LangChain
Instructions de l’exercice
- Assignez la question en langage naturel fournie à
new_query. - Appelez l'objet
appen lui passant tous les messages, y comprismessage_historyetnew_query. - Utilisez une compréhension de liste pour extraire les messages de
response["messages"]étiquetésHumanMessageouAIMessage. - Passez la nouvelle requête en entrée et affichez les messages extraits en transmettant les classes de messages à
"agent_output".
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
message_history = response["messages"]
____ = "What about one with sides 12 and 14?"
# Invoke the app with the full message history
response = app.____({"messages": ____ + [("human", ____)]})
# Extract the human and AI messages from the result
filtered_messages = [msg for msg in ____["____"] if isinstance(msg, (____, ____)) and msg.content.strip()]
# Pass the new query as input and print the final outputs
print({
"user_input": ____,
"agent_output": [f"{msg.____.____}: {msg.content}" for msg in ____]
})