Añadir herramientas externas a un chatbot

Diseño de sistemas agénticos con LangChain

Dilini K. Sumanapala, PhD

Founder & AI Engineer, Genverv, Ltd.

Herramientas externas con LangGraph

  Monitor de escritorio con un microchip en el centro y "API" en medio.

     

  • Herramientas de API para chatbots

     
    • Noticias
    • Bases de datos
    • Redes sociales
    • Etc.
Diseño de sistemas agénticos con LangChain

Añadir una herramienta de Wikipedia

Personas leyendo, sentadas sobre libros grandes.

  Icono de Wikipedia.

Diseño de sistemas agénticos con LangChain

Añadir una herramienta de 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]
Diseño de sistemas agénticos con LangChain

Añadir una herramienta de 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"])]}

   

  • Vincula herramientas

 

  • Actualiza el nodo del chatbot

  • Activa Wikipedia

  • El LLM decide las llamadas

Diseño de sistemas agénticos con LangChain

Otras herramientas de API

  Monitor de escritorio con un microchip en el centro y "API" en medio.

   

Diseño de sistemas agénticos con LangChain

Añadir nodos de herramientas

# 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)

Nodo de chatbot.

Diseño de sistemas agénticos con LangChain

Añadir nodos de herramientas

# 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)

Nodos de chatbot y herramienta.

Diseño de sistemas agénticos con LangChain

Añadir nodos de herramientas

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



Chatbot con nodos END y de herramientas, conectados con líneas discontinuas que representan aristas condicionales.

Diseño de sistemas agénticos con LangChain

Añadir nodos de herramientas

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



# Connect tools back to chatbot and # add START and END nodes graph_builder.add_edge("tools", "chatbot") graph_builder.add_edge(START, "chatbot") graph_builder.add_edge("chatbot", END)

Diagrama completo del chatbot con el nodo de chatbot conectado a herramientas y al nodo END, y el nodo START arriba.

Diseño de sistemas agénticos con LangChain

¡Vamos a practicar!

Diseño de sistemas agénticos con LangChain

Preparing Video For Download...