Projetando Sistemas Agentes com LangChain
Dilini K. Sumanapala, PhD
Founder & AI Engineer, Genverv, Ltd.

- Agent: [Tool 1: answer]
- Agent: [Tool 2: answer]
- User: [Query]
- Agent: [Tool 1: answer]
- User: [Follow-up query]
- Agent: [Tool 1: follow-up answer]
from langchain_core.messages import AIMessage, HumanMessageconfig = {"configurable": {"thread_id": "1"}}# Criar a mensagem de entrada com a pergunta do usuário def multi_tool_output(query):inputs = {"messages": [HumanMessage(content=query)]}# Fazer streaming de mensagens e metadados do app do chatbot for msg, metadata in app.stream(inputs, config, stream_mode="messages"):# Verificar se há conteúdo e se não é do humano if msg.content and not isinstance(msg, HumanMessage): print(msg.content, end="", flush=True)print("\n")
multi_tool_output("Is `Stella won no wallets` a palindrome?")multi_tool_output("What happened on April 12th, 1955?")
A frase ou palavra 'Stella won no wallets' é um palíndromo.Sim, a frase "Stella won no wallets" é um palíndromo.12 de abril de 1955 foi notável por vários motivos, especialmente em ciência e tecnologia. Nessa data, a primeira vacina bem-sucedida contra a pólio, desenvolvida pelo Dr. Jonas Salk, foi anunciada ao público. Esse avanço foi decisivo no combate à poliomielite, doença que causava medo e surtos, afetando principalmente crianças. O anúncio marcou um ponto de virada na saúde pública e levou a campanhas de vacinação em larga escala que quase erradicaram a pólio...
# Imprimir a pergunta do usuário primeiro em cada interação def user_agent_multiturn(queries): for query in queries: print(f"User: {query}")# Fazer streaming das mensagens das perguntas, excluindo metadados print("Agent: " + "".join(msg.content for msg, metadata in app.stream( {"messages": [HumanMessage(content=query)]}, config, stream_mode="messages")# Filtrar mensagens humanas para imprimir as do 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)
User: O que aconteceu em 12 de abril de 1961?
Agent: Em 12 de abril de 1961, Yuri Gagarin, cosmonauta soviético, foi o primeiro humano a ir
ao espaço a bordo da espaçonave Vostok 1...
User: E em 22 de novembro de 1963?
Agent: 10 de dezembro de 1948... marca a Declaração Universal dos Direitos Humanos (DUDH).
User: `Mr. Owl ate my metal worm?` é um palíndromo?
Agent: A frase ou palavra 'Mr. Owl ate my metal worm?' é um palíndromo...
User: E 'palladium stadium'?
Agent: Não, a expressão `palladium stadium` não é um palíndromo...
Projetando Sistemas Agentes com LangChain