Definindo várias ferramentas

Projetando Sistemas Agentes com LangChain

Dilini K. Sumanapala, PhD

Founder & AI Engineer, Genverv, Ltd.

Integrando várias ferramentas

Um bot com várias ferramentas

   

  • Adicionar várias ferramentas personalizadas

  • Automatizar a seleção por consulta

Projetando Sistemas Agentes com LangChain

Aprimorando um chatbot educacional

Pessoas lendo, sentadas em livros grandes.

 

  • Buscar eventos históricos

  • Verificar palíndromos:

     
    • level = level

    • top spot = tops pot

Projetando Sistemas Agentes com LangChain

Várias formas de criar ferramentas

 

  • Invocar o LLM

    Buscar datas históricas com linguagem natural, p.ex.: "5 de novembro"
      Agent: 5 de novembro é famoso pela Conspiração da Pólvora...
    
  • Código em Python

    Achar palíndromos comparando strings diretamente, p.ex.: string == string[::-1]
      Agent: Sim, "madam" é um palíndromo...
    
Projetando Sistemas Agentes com LangChain

Ferramenta de eventos históricos

# Use um decorator para rotular a ferramenta e definir a entrada como string
@tool

def date_checker(date: str) -> str:
"""Fornece uma lista de eventos históricos importantes para uma data em qualquer formato."""
try: # Invoque o LLM para interpretar a data e gerar eventos históricos answer = llm.invoke(f"List important historical events that occurred on {date}.")
# Retorne a resposta return answer.content
# Defina um bloco de exceção para erros na recuperação except Exception as e: return f"Erro ao recuperar eventos: {str(e)}"
Projetando Sistemas Agentes com LangChain

Ferramenta de palíndromo

@tool

# Defina a entrada como string def check_palindrome(text: str):
"""Verifica se uma palavra ou frase é um palíndromo."""
# Remove caracteres não alfanuméricos e converte para minúsculas cleaned = ''.join(char.lower() for char in text if char.isalnum())
# Verifica se o reverso é igual ao original if cleaned == cleaned[::-1]: return f"A frase ou palavra '{text}' é um palíndromo." else: return f"A frase ou palavra '{text}' não é um palíndromo."
Projetando Sistemas Agentes com LangChain

Vinculando várias ferramentas

# Importe os módulos para definir nós de ferramenta
from langgraph.prebuilt import ToolNode


# Lista de ferramentas tools = [wikipedia_tool, date_checker, check_palindrome]
# Passe as ferramentas para ToolNode() tool_node = ToolNode(tools)
# Vincule as ferramentas ao LLM model_with_tools = llm.bind_tools(tools)
Projetando Sistemas Agentes com LangChain

Vamos praticar!

Projetando Sistemas Agentes com LangChain

Preparing Video For Download...