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
<Kurs>Agentische Systeme mit LangChain entwerfen</Kurs>Übungsanweisungen
- 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 praktische Übung
Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.
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 ____]
})