Organizza le risposte del chatbot con la memoria

Progettare sistemi agentici con LangChain

Dilini K. Sumanapala, PhD

Founder & AI Engineer, Genverv, Ltd.

Streaming di output da più strumenti

    Flusso completo del grafo.

 

  • Stampa output con più strumenti
      - Agent: [Tool 1: answer]
      - Agent: [Tool 2: answer]
    
  • Stampa la query utente e abilita la memoria
      - User: [Query]
      - Agent: [Tool 1: answer]
    
      - User: [Follow-up query]
      - Agent: [Tool 1: follow-up answer]
    
Progettare sistemi agentici con LangChain

Streaming di output da più strumenti

from langchain_core.messages import AIMessage, HumanMessage


config = {"configurable": {"thread_id": "1"}}
# Crea il messaggio di input con la query dell'utente def multi_tool_output(query):
inputs = {"messages": [HumanMessage(content=query)]}
# Esegui lo streaming di messaggi e metadati dall'app del chatbot for msg, metadata in app.stream(inputs, config, stream_mode="messages"):
# Verifica che il messaggio abbia contenuto e non provenga da un umano if msg.content and not isinstance(msg, HumanMessage): print(msg.content, end="", flush=True)
print("\n")
Progettare sistemi agentici con LangChain

Test con più strumenti

Verifica l'assegnazione dinamica degli strumenti
multi_tool_output("Is `Stella won no wallets` a palindrome?")

multi_tool_output("What happened on April 12th, 1955?")
The phrase or word 'Stella won no wallets' is a palindrome.

Yes, the phrase "Stella won no wallets" is a palindrome.
April 12th, 1955, is notable for several reasons, particularly in the context of science and technology. On this date, the first successful polio vaccine developed by Dr. Jonas Salk was announced to the public. This vaccine was a significant breakthrough in the fight against poliomyelitis, a disease that had caused widespread fear and numerous outbreaks, particularly affecting children. The announcement marked a turning point in public health and led to widespread vaccination campaigns that ultimately contributed to the near-eradication of polio...
Progettare sistemi agentici con LangChain

Domande di follow-up con più strumenti

# Stampa prima la query dell'utente in ogni interazione
def user_agent_multiturn(queries):
    for query in queries:
        print(f"User: {query}")


# Esegui lo streaming dei messaggi relativi alle query, escludendo i metadati print("Agent: " + "".join(msg.content for msg, metadata in app.stream( {"messages": [HumanMessage(content=query)]}, config, stream_mode="messages")
# Filtra i messaggi umani per stampare quelli dell'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)
Progettare sistemi agentici con LangChain

Output della conversazione completa

  • Eventi storici
User: What happened on the 12 April 1961?
Agent: On April 12, 1961, Yuri Gagarin, a Soviet cosmonaut, became the first human to travel 
into space aboard the Vostok 1 spacecraft...

User: What about 22 November 1963?
Agent: December 10, 1948... marks the Universal Declaration of Human Rights (UDHR).
  • Verifica palindromi
User: Is `Mr. Owl ate my metal worm?` a palindrome?
Agent: The phrase or word 'Mr. Owl ate my metal worm?' is a palindrome...

User: What about 'palladium stadium'?
Agent: No, the phrase `palladium stadium` is not a palindrome...
Progettare sistemi agentici con LangChain

Esercitiamoci!

Progettare sistemi agentici con LangChain

Preparing Video For Download...