Aktivera flerturskonversation med minne
Nu är du nästan redo att dela din uppdaterade chattbot med skoladministrationen! För att studenterna ska få en smidig upplevelse är det viktigt att de kan ställa följdfrågor. På så sätt kan de justera sina frågor om något svar är ofullständigt. Du ska nu anpassa chattbotens strömningsfunktion för att stödja flera turer, och skriva ut både användarens fråga och chattbotens svar. För att aktivera minnet skickar LangGraph hela konversationen till LLM:en när följdfrågor ställs. Till att börja med har dina config-parametrar redan konfigurerats för en användare:
config = {"configurable": {"thread_id": "1"}}
Den här övningen är en del av kursen
Designa agentbaserade system med LangChain
Övningsinstruktioner
- Börja varje tur med att skriva ut användarens
queryfrån listanqueries. - Iterera genom
msgochmetadatamedapp.stream(), skickaquerysomcontentiHumanMessagetillsammans medconfig, och slå ihopmsg.content-värdena. - För att extrahera chattbotens svar, skriv ut
msg.contentoch exkludera allamsgav typenHumanMessage, och lägg till en ny rad innan nästa fråga.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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)