ComenzarEmpieza gratis

Habilita la conversación multi-turno con memoria

¡Ya casi estás listo para compartir la actualización de tu chatbot con la administración del centro! Para que el alumnado tenga una experiencia fluida, es importante permitir que hagan preguntas de seguimiento. Así, si falta alguna información en la primera respuesta del chatbot, podrán reformular sus dudas manteniendo una conversación. Ahora vas a adaptar la función de streaming de tu chatbot para permitir múltiples turnos, imprimiendo tanto la consulta del usuario como la respuesta del chatbot. Para habilitar la memoria, LangGraph enviará la conversación completa al LLM cuando se hagan preguntas de seguimiento. Para empezar, tus parámetros de config ya están establecidos para un usuario:

config = {"configurable": {"thread_id": "1"}}

Este ejercicio forma parte del curso

Diseño de sistemas agénticos con LangChain

Ver curso

Instrucciones del ejercicio

  • En cada turno, empieza imprimiendo la query del usuario desde la lista queries.
  • Itera por msg y metadata usando app.stream(), pasando query como content de HumanMessage junto con config, y une los valores de msg.content.
  • Para extraer las respuestas del chatbot, imprime msg.content excluyendo cualquier msg etiquetado como HumanMessage, añadiendo una nueva línea antes de la siguiente consulta.

Ejercicio interactivo práctico

Prueba este ejercicio y completa el 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)
Editar y ejecutar código