Adicionando ferramentas externas a um chatbot

Projetando Sistemas Agentes com LangChain

Dilini K. Sumanapala, PhD

Founder & AI Engineer, Genverv, Ltd.

Ferramentas externas com LangGraph

  Monitor com microchip no centro e "API" escrito no meio.

     

  • Ferramentas de API para chatbots

     
    • Notícias
    • Bancos de dados
    • Redes sociais
    • Etc.
Projetando Sistemas Agentes com LangChain

Adicionando uma ferramenta da Wikipedia

Pessoas lendo, sentadas sobre livros grandes.

  Ícone da Wikipedia.

Projetando Sistemas Agentes com LangChain

Adicionando uma ferramenta da Wikipedia

# Modules for building a Wikipedia tool
from langchain_community.utilities import WikipediaAPIWrapper
from langchain_community.tools import WikipediaQueryRun


# Initialize Wikipedia API wrapper to fetch top 1 result api_wrapper = WikipediaAPIWrapper(top_k_results=1)
# Create a Wikipedia query tool using the API wrapper wikipedia_tool = WikipediaQueryRun(api_wrapper=api_wrapper)
tools = [wikipedia_tool]
Projetando Sistemas Agentes com LangChain

Adicionando uma ferramenta da Wikipedia

# Bind the Wikipedia tool to 
# the language model
llm_with_tools = llm.bind_tools(tools)


# Modify chatbot function to # respond with Wikipedia def chatbot(state: State): return {"messages": [llm_with_tools.invoke( state["messages"])]}

   

  • Vincular ferramentas

 

  • Atualizar o nó do chatbot

  • Habilitar Wikipedia

  • O LLM decide chamadas de ferramenta

Projetando Sistemas Agentes com LangChain

Outras ferramentas de API

  Monitor com microchip no centro e "API" escrito no meio.

   

Projetando Sistemas Agentes com LangChain

Adicionando nós de ferramenta

# Modules for adding tool conditions 
# and nodes
from langgraph.prebuilt import 
ToolNode, tools_condition


# Add chatbot node to the graph graph_builder.add_node("chatbot", chatbot)

Nó do chatbot.

Projetando Sistemas Agentes com LangChain

Adicionando nós de ferramenta

# Modules for adding tool conditions 
# and nodes
from langgraph.prebuilt import 
ToolNode, tools_condition

# Add chatbot node to the graph
graph_builder.add_node("chatbot",
                       chatbot)


# Create a ToolNode to handle tool calls # and add it to the graph tool_node = ToolNode(tools=[wikipedia_tool]) graph_builder.add_node("tools", tool_node)

Nós do chatbot e da ferramenta.

Projetando Sistemas Agentes com LangChain

Adicionando nós de ferramenta

# Set up a condition to direct from chatbot 
# to tool or end node
graph_builder.add_conditional_edges(
             "chatbot", tools_condition)



Chatbot com nós END e de ferramenta, conectados por linhas tracejadas representando arestas condicionais.

Projetando Sistemas Agentes com LangChain

Adicionando nós de ferramenta

# Set up a condition to direct from chatbot 
# to tool or end node
graph_builder.add_conditional_edges(
             "chatbot", tools_condition)



# Conectar tools de volta ao chatbot e # adicionar nós START e END graph_builder.add_edge("tools", "chatbot") graph_builder.add_edge(START, "chatbot") graph_builder.add_edge("chatbot", END)

Diagrama completo: nó do chatbot conectado a tools e END, com START no topo.

Projetando Sistemas Agentes com LangChain

Vamos praticar!

Projetando Sistemas Agentes com LangChain

Preparing Video For Download...