Mehrstufige Unterhaltung mit Memory aktivieren
Du bist fast bereit, dein Chatbot-Update mit der Schulverwaltung zu teilen! Damit Schüler:innen eine reibungslose Lernerfahrung haben, sollten sie Rückfragen stellen können. So können sie ihre Fragen im Gespräch nachschärfen, falls in der ersten Antwort des Chatbots Informationen fehlen. Du passt jetzt die Streaming-Funktion deines Chatbots an, um mehrere Turns zu ermöglichen, und gibst dabei sowohl die Nutzeranfrage als auch die Chatbot-Antwort aus. Um Memory zu aktivieren, sendet LangGraph bei Rückfragen die gesamte Unterhaltung an das LLM. Zum Start wurden die config-Parameter für eine:n Nutzer:in bereits gesetzt:
config = {"configurable": {"thread_id": "1"}}
Diese Übung ist Teil des Kurses
Agentische Systeme mit LangChain entwerfen
Anleitung zur Übung
- Gib für jeden Turn zuerst die
queryder Nutzerin bzw. des Nutzers aus der Listequeriesaus. - Iteriere mit
app.stream()übermsgundmetadata, übergibqueryalscontentvonHumanMessagezusammen mitconfig, und verbinde diemsg.content-Werte. - Um die Antworten des Chatbots zu extrahieren, gib
msg.contentaus und schließe dabei allemsgmit dem LabelHumanMessageaus. Füge vor der nächsten Anfrage eine neue Zeile hinzu.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# 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)