Organiza las respuestas del chatbot con memoria

Diseño de sistemas agénticos con LangChain

Dilini K. Sumanapala, PhD

Founder & AI Engineer, Genverv, Ltd.

Transmisión de salidas de varias herramientas

    Flujo completo del grafo.

 

  • Imprime salidas con varias herramientas
      - Agent: [Herramienta 1: respuesta]
      - Agent: [Herramienta 2: respuesta]
    
  • Imprime la consulta y activa la memoria
      - User: [Consulta]
      - Agent: [Herramienta 1: respuesta]
    
      - User: [Pregunta de seguimiento]
      - Agent: [Herramienta 1: respuesta de seguimiento]
    
Diseño de sistemas agénticos con LangChain

Transmisión de salidas de varias herramientas

from langchain_core.messages import AIMessage, HumanMessage


config = {"configurable": {"thread_id": "1"}}
# Crea el mensaje de entrada con la consulta del usuario def multi_tool_output(query):
inputs = {"messages": [HumanMessage(content=query)]}
# Transmite mensajes y metadatos desde la app del chatbot for msg, metadata in app.stream(inputs, config, stream_mode="messages"):
# Comprueba que el mensaje tiene contenido y no es humano if msg.content and not isinstance(msg, HumanMessage): print(msg.content, end="", flush=True)
print("\n")
Diseño de sistemas agénticos con LangChain

Prueba con varias herramientas

Comprueba la asignación dinámica de herramientas
multi_tool_output("Is `Stella won no wallets` a palindrome?")

multi_tool_output("What happened on April 12th, 1955?")
La frase o palabra 'Stella won no wallets' es un palíndromo.

Sí, la frase "Stella won no wallets" es un palíndromo.
El 12 de abril de 1955 es notable por varias razones, sobre todo en ciencia y tecnología. Ese día se anunció al público la primera vacuna antipoliomielítica exitoso desarrollada por el Dr. Jonas Salk. Esta vacuna fue un gran avance en la lucha contra la poliomielitis, una enfermedad que causó temor y numerosos brotes, especialmente en niños. El anuncio marcó un punto de inflexión en salud pública y llevó a campañas de vacunación masivas que contribuyeron casi a la erradicación de la polio...
Diseño de sistemas agénticos con LangChain

Preguntas de seguimiento con varias herramientas

# Imprime primero la consulta del usuario en cada interacción
def user_agent_multiturn(queries):
    for query in queries:
        print(f"User: {query}")


# Transmite mensajes para cada consulta, excluyendo metadatos print("Agent: " + "".join(msg.content for msg, metadata in app.stream( {"messages": [HumanMessage(content=query)]}, config, stream_mode="messages")
# Filtra los mensajes humanos para imprimir solo los del agente if msg.content and not isinstance(msg, HumanMessage)) + "\n")
queries = ["What happened on the 12 April 1961?", "What about 10 December 1948?", "Is `Mr. Owl ate my metal worm?` a palindrome?", "What about 'palladium stadium?'"] user_agent_multiturn(queries)
Diseño de sistemas agénticos con LangChain

Salida de la conversación completa

  • Eventos históricos
User: ¿Qué pasó el 12 de abril de 1961?
Agent: El 12 de abril de 1961, Yuri Gagarin, un cosmonauta soviético, se convirtió en el primer humano en viajar 
al espacio a bordo de la nave Vostok 1...

User: ¿Y el 22 de noviembre de 1963?
Agent: El 10 de diciembre de 1948... marca la Declaración Universal de Derechos Humanos (DUDH).
  • Comprobación de palíndromos
User: ¿`Mr. Owl ate my metal worm?` es un palíndromo?
Agent: La frase o palabra 'Mr. Owl ate my metal worm?' es un palíndromo...

User: ¿Y 'palladium stadium'?
Agent: No, la frase `palladium stadium` no es un palíndromo...
Diseño de sistemas agénticos con LangChain

¡Vamos a practicar!

Diseño de sistemas agénticos con LangChain

Preparing Video For Download...