Kom igångKom igång gratis

Ställ frågor om konversationshistorik

Med en grundläggande ReAct-agent i LangChain kan du ställa följdfrågor genom att bevara agentens konversationshistorik. Eftersom LLM:en har tillgång till alla tidigare meddelanden kan du ställa nya frågor, och agenten kan använda hela meddelandekontexten för att svara.

Du ska nu ställa en följdfråga om sidorna i en annan triangel.

För att kunna använda funktionerna i HumanMessage och AIMessage har följande moduler redan importerats åt dig: HumanMessage, AIMessage.

Den här övningen är en del av kursen

Designa agentbaserade system med LangChain

Visa kurs

Övningsinstruktioner

  • Tilldela den angivna frågan på naturligt språk till new_query.
  • Anropa app-objektet och skicka in alla meddelanden, inklusive message_history och new_query.
  • Använd en listomfattning för att extrahera meddelanden från response["messages"] märkta som HumanMessage eller AIMessage.
  • Skicka den nya frågan som indata och skriv ut de extraherade meddelandena genom att skicka meddelandeklasserna till "agent_output".

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

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 ____]
})
Redigera och kör kod