Activar conversación multigiro con memoria
¡Estás a punto de compartir la actualización de tu chatbot con la administración de la escuela! Para que los alumnos tengan una experiencia de aprendizaje fluida, es importante permitirles hacer preguntas de seguimiento. De este modo, si falta alguna información en la primera respuesta del chatbot, los alumnos pueden modificar sus preguntas manteniendo una conversación. Ahora adaptarás la función de transmisión de tu chatbot para permitir varios turnos, imprimiendo tanto la consulta del usuario como la respuesta del chatbot. Para habilitar la memoria, LangGraph enviará la conversación completa a LLM cuando se hagan preguntas de seguimiento. Para empezar, tus parámetros de config
ya están configurados para un usuario:
config = {"configurable": {"thread_id": "1"}}
Este ejercicio forma parte del curso
Diseño de Sistemas Agenéticos con LangChain
Instrucciones de ejercicio
- Para cada turno, empieza imprimiendo el
query
del usuario de la listaqueries
. - Iterar a través de
msg
ymetadata
utilizandoapp.stream()
, pasandoquery
comocontent
deHumanMessage
junto conconfig
, y unir los valores demsg.content
. - Para extraer las respuestas del chatbot, imprime
msg.content
excluyendo cualquiermsg
etiquetadoHumanMessage
, añadiendo una nueva línea antes de la siguiente consulta.
Ejercicio interactivo práctico
Pruebe este ejercicio completando este código de muestra.
# Print the user query first for every interaction
def user_agent_multiturn(queries):
for ____ in ____:
print(f"User: {____}")
# Stream through messages corresponding to queries, excluding metadata
print("Agent: " + "".join(____.____ for ____, ____ in app.____(
{"messages": [____(____=_____)]}, config, stream_mode="messages")
# Filter out the human messages to print agent messages
if ____.____ and not isinstance(____, ____)) + "____")
queries = ["Is `stressed desserts?` a palindrome?", "What about the word `kayak`?",
"What happened on the May 8th, 1945?", "What about 9 November 1989?"]
user_agent_multiturn(queries)