Conversa com um agente ReAct

Projetando Sistemas Agentes com LangChain

Dilini K. Sumanapala, PhD

Founder & AI Engineer, Genverv, Ltd.

Conversa

A área de um retângulo com lados 5 e 7 é 35 unidades quadradas.
  • Validando respostas

  • Usuário: "Qual é a área de um retângulo com lados 5 e 7?"

  • Agente: "A área de um retângulo com lados 5 e 7 é 35 unidades quadradas."
Projetando Sistemas Agentes com LangChain

Conversa

tools = [rectangle_area]
query = "Qual é a área de um retângulo com lados 14 e 4?"


# Create the ReAct agent app = create_react_agent(model, tools)
# Invoke the agent with a query and store the messages response = app.invoke({"messages": [("human", query)]})
# Define and print the input and output messages print({ "user_input": query, "agent_output": response["messages"][-1].content})
Projetando Sistemas Agentes com LangChain

Saída da conversa

{'user_input': 'Qual é a área de um retângulo com lados 14 e 4?',
 'agent_output': 'A área de um retângulo com lados 14 e 4 é 56 
 unidades quadradas.'}
Projetando Sistemas Agentes com LangChain

Perguntas de acompanhamento

  • Acompanhamento:
    • Usuário: "E um com lados 12 e 14?"
  • Histórico da conversa:
    • Usuário: "Qual é a área de um retângulo com lados 5 e 7?"
    • Agente: "A área de um retângulo com lados 5 e 7 é 35 unidades quadradas."
    • Usuário: "E um com lados 12 e 14?"
    • Agente: "A área de um retângulo com lados 12 e 14 é 168 unidades quadradas."
  • Saída
    • Usuário: "E um com lados 12 e 14?"
    • Agente: "A área de um retângulo com lados 12 e 14 é 168 unidades quadradas."
Projetando Sistemas Agentes com LangChain

Perguntas de acompanhamento

{'user_input': 'E um com lados 12 e 14?',

'agent_output': ['HumanMessage: Qual é a área de um retângulo com lados 5 e 7?', 'AIMessage: A área de um retângulo com lados 5 e 7 é 35 unidades quadradas.', 'HumanMessage: E um com lados 12 e 14?', 'AIMessage: A área de um retângulo com lados 12 e 14 é 168 unidades quadradas.',
'HumanMessage: E um com lados 12 e 14?', 'AIMessage: A área de um retângulo com lados 12 e 14 é 168 unidades quadradas.']}
Projetando Sistemas Agentes com LangChain

Histórico da conversa

from langchain_core.messages import 
HumanMessage, AIMessage












Projetando Sistemas Agentes com LangChain

Histórico da conversa

from langchain_core.messages import 
HumanMessage, AIMessage


message_history = messages["messages"]

Início da conversa linear com "histórico de mensagens".

Projetando Sistemas Agentes com LangChain

Histórico da conversa

from langchain_core.messages import 
HumanMessage, AIMessage

message_history = messages["messages"]

new_query = "E um com lados 4 e 3?"

Configuração da conversa atualizada com nova pergunta.

Projetando Sistemas Agentes com LangChain

Histórico da conversa

from langchain_core.messages import 
HumanMessage, AIMessage

message_history = messages["messages"]

new_query = "E um com lados 4 e 3?"
# Invoke the app with the full message history messages = app.invoke({"messages": message_history + [("human", new_query)]})

Configuração da conversa atualizada com chamada do app.

Projetando Sistemas Agentes com LangChain

Histórico da conversa

# Extract the human and AI messages
filtered_messages = [msg for msg in 
                    messages["messages"] if 
                    isinstance(msg, 
                    (HumanMessage, 
                    AIMessage)) 
                    and msg.content.strip()]








Configuração da conversa atualizada com filtragem de mensagens.

Projetando Sistemas Agentes com LangChain

Histórico da conversa

# Extract the human and AI messages
filtered_messages = [msg for msg in 
                    messages["messages"] if 
                    isinstance(msg, 
                    (HumanMessage, 
                    AIMessage)) 
                    and msg.content.strip()]


# Format and print the final result print({ "user_input": new_query, "agent_output": [f"{msg.__class__.__name__}: {msg.content}" for msg in filtered_messages]})

Configuração da conversa atualizada com impressão das mensagens.

Projetando Sistemas Agentes com LangChain

Saída do histórico da conversa

{'user_input': 'E um com lados 4 e 3?',

'agent_output': ['HumanMessage: Qual é a área de um retângulo com lados 14 e 4?', 'AIMessage: A área de um retângulo com lados 14 e 4 é 56 unidades quadradas.', 'HumanMessage: E um com lados 4 e 3?', 'AIMessage: A área de um retângulo com lados 4 e 3 é 12 unidades quadradas.',
'HumanMessage: E um com lados 4 e 3?', 'AIMessage: A área de um retângulo com lados 4 e 3 é 12 unidades quadradas.']}
Projetando Sistemas Agentes com LangChain

Vamos praticar!

Projetando Sistemas Agentes com LangChain

Preparing Video For Download...