Stelle Fragen zur Gesprächsgeschichte
Mit einem einfachen ReAct-Agenten in LangChain kannst du Folgefragen stellen, indem du den Gesprächsverlauf des Agenten aufbewahrst. Da LLM Zugriff auf alle vorherigen Nachrichten hat, kannst du jetzt neue Fragen stellen, und der Agent kann den gesamten Nachrichtenkontext nutzen, um zu antworten.
Du stellst nun eine Folgefrage zu den Seiten eines anderen Dreiecks.
Um die HumanMessage- und AIMessage-Funktionen nutzen zu können, wurden die folgenden Module bereits für dich importiert: HumanMessage
, AIMessage
.
Diese Übung ist Teil des Kurses
Agentensysteme mit LangChain entwerfen
Anleitung zur Übung
- Ordne die gegebene natürlichsprachliche Frage
new_query
zu. - Rufe das Objekt
app
auf und übergebe alle Nachrichten, einschließlichmessage_history
undnew_query
. - Verwende ein Listenverständnis, um Nachrichten aus
response["messages"]
mit den BezeichnungenHumanMessage
oderAIMessage
zu extrahieren. - Übergeben Sie die neue Abfrage als Eingabe und drucken Sie die extrahierten Nachrichten, indem Sie die Nachrichtenklassen an
"agent_output"
übergeben.
Interaktive Übung zum Anfassen
Probieren Sie diese Übung aus, indem Sie diesen Beispielcode ausführen.
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 ____]
})