Fai domande sulla cronologia della conversazione
Con un agente ReAct di base in LangChain, puoi fare domande di follow-up mantenendo la cronologia della conversazione dell'agente. Poiché l'LLM ha accesso a tutti i messaggi precedenti, ora puoi fare nuove domande e l'agente può usare tutto il contesto dei messaggi per rispondere.
Ora farai una domanda di follow-up sui lati di un triangolo diverso.
Per poter usare le funzionalità di HumanMessage e AIMessage, i seguenti moduli sono già stati importati per te: HumanMessage, AIMessage.
Questo esercizio fa parte del corso
Progettare sistemi agentici con LangChain
Istruzioni dell'esercizio
- Assegna la domanda in linguaggio naturale fornita a
new_query. - Invoca l'oggetto
app, passando tutti i messaggi, inclusimessage_historyenew_query. - Usa una list comprehension per estrarre i messaggi da
response["messages"]etichettati comeHumanMessageoAIMessage. - Passa la nuova query come input e stampa i messaggi estratti passando le classi dei messaggi a
"agent_output".
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
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 ____]
})