Fragen zur Gesprächshistorie stellen
Mit einem einfachen ReAct-Agenten in LangChain kannst du Folgefragen stellen, indem du die Gesprächshistorie des Agenten beibehältst. Da das LLM Zugriff auf alle vorherigen Nachrichten hat, kannst du nun neue Fragen stellen, und der Agent kann den vollständigen Nachrichtenkontext für seine Antwort nutzen.
Jetzt stellst du eine Folgefrage zu den Seiten eines anderen Dreiecks.
Damit du die Funktionen von HumanMessage und AIMessage verwenden kannst, wurden die folgenden Module bereits für dich importiert: HumanMessage, AIMessage.
Diese Übung ist Teil des Kurses
Agentische Systeme mit LangChain entwerfen
Anleitung zur Übung
- Weise die gegebene Frage in natürlicher Sprache
new_queryzu. - Rufe das Objekt
appauf und übergib alle Nachrichten, einschließlichmessage_historyundnew_query. - Verwende eine List Comprehension, um Nachrichten aus
response["messages"]zu extrahieren, die mitHumanMessageoderAIMessagegekennzeichnet sind. - Übergib die neue Anfrage als Input und gib die extrahierten Nachrichten aus, indem du die Nachrichtenklassen an
"agent_output"übergibst.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
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 ____]
})