Začněte nyníZačněte zdarma

Dotazování na historii konverzace

Se základním ReAct agentem v LangChainu můžeš klást doplňující otázky díky tomu, že agent uchovává historii konverzace. Protože má LLM přístup ke všem předchozím zprávám, může agent využít celý kontext konverzace a odpovídat na nové otázky.

Teď položíš doplňující otázku o stranách jiného trojúhelníku.

Aby bylo možné využít funkce HumanMessage a AIMessage, jsou pro tebe již naimportovány následující moduly: HumanMessage, AIMessage.

Toto cvičení je součástí kurzu

Návrh agentních systémů s LangChain

Zobrazit kurz

Pokyny k cvičení

  • Přiřaď zadanou otázku v přirozeném jazyce do proměnné new_query.
  • Zavolej objekt app a předej mu všechny zprávy, tedy message_history i new_query.
  • Pomocí list comprehension extrahuj zprávy z response["messages"] označené jako HumanMessage nebo AIMessage.
  • Předej nový dotaz jako vstup a vypiš extrahované zprávy předáním tříd zpráv do "agent_output".

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

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 ____]
})
Upravit a spustit kód