Haz preguntas sobre la historia de la conversación
Con un agente ReAct básico en LangChain, puedes hacer preguntas de seguimiento conservando el historial de conversaciones del agente. Como LLM tiene acceso a todos los mensajes anteriores, ahora puedes hacer nuevas preguntas, y el agente puede utilizar el contexto completo del mensaje para responder.
Ahora harás una pregunta complementaria sobre los lados de un triángulo diferente.
Para poder utilizar las funciones HumanMessage y AIMessage, ya se han importado para ti los siguientes módulos: HumanMessage
, AIMessage
.
Este ejercicio forma parte del curso
Diseño de Sistemas Agenéticos con LangChain
Instrucciones del ejercicio
- Asigna la pregunta en lenguaje natural dada a
new_query
. - Invoca al objeto
app
, pasándole todos los mensajes, incluidos elmessage_history
y elnew_query
. - Utiliza una comprensión de lista para extraer los mensajes de
response["messages"]
etiquetados comoHumanMessage
oAIMessage
. - Pasa la nueva consulta como entrada e imprime los mensajes extraídos pasando las clases de mensajes a
"agent_output"
.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
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 ____]
})