Faça perguntas sobre o histórico de conversas
Com um agente ReAct básico no LangChain, você pode fazer perguntas de acompanhamento mantendo o histórico de conversas do agente. Como o LLM tem acesso a todas as mensagens anteriores, agora você pode fazer novas perguntas, e o agente pode usar o contexto completo da mensagem para responder.
Agora você fará uma pergunta de acompanhamento sobre os lados de um triângulo diferente.
Para poder usar os recursos HumanMessage e AIMessage, os seguintes módulos já foram importados para você: HumanMessage
, AIMessage
.
Este exercício faz parte do curso
Projetando sistemas agênticos com LangChain
Instruções de exercício
- Atribua a pergunta de linguagem natural fornecida a
new_query
. - Chame o objeto
app
, transmitindo todas as mensagens, incluindomessage_history
enew_query
. - Use uma compreensão de lista para extrair mensagens de
response["messages"]
rotuladas comoHumanMessage
ouAIMessage
. - Passe a nova consulta como entrada e imprima as mensagens extraídas passando as classes de mensagens para
"agent_output"
.
Exercício interativo prático
Experimente este exercício preenchendo este código de exemplo.
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 ____]
})