Aggiungere strumenti esterni a un chatbot

Progettare sistemi agentici con LangChain

Dilini K. Sumanapala, PhD

Founder & AI Engineer, Genverv, Ltd.

Strumenti esterni con LangGraph

  Monitor desktop con un microchip al centro con la scritta "API".

     

  • Strumenti API per chatbot

     
    • Notizie
    • Database
    • Social media
    • Altro
Progettare sistemi agentici con LangChain

Aggiungere uno strumento Wikipedia

Persone che leggono, sedute su grandi libri.

  Icona di Wikipedia.

Progettare sistemi agentici con LangChain

Aggiungere uno strumento 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]
Progettare sistemi agentici con LangChain

Aggiungere uno strumento 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"])]}

   

  • Collega gli strumenti

 

  • Aggiorna il nodo del chatbot

  • Abilita Wikipedia

  • L'LLM decide le chiamate agli strumenti

Progettare sistemi agentici con LangChain

Altri strumenti API

  Monitor desktop con un microchip al centro con la scritta "API".

   

Progettare sistemi agentici con LangChain

Aggiungere nodi strumento

# 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 chatbot.

Progettare sistemi agentici con LangChain

Aggiungere nodi strumento

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

Nodi chatbot e strumento.

Progettare sistemi agentici con LangChain

Aggiungere nodi strumento

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



Chatbot con nodi END e strumento, collegati da linee tratteggiate che rappresentano archi condizionali.

Progettare sistemi agentici con LangChain

Aggiungere nodi strumento

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

Diagramma completo del chatbot con nodo chatbot collegato a strumenti e nodo END, e nodo START in alto.

Progettare sistemi agentici con LangChain

Esercitiamoci!

Progettare sistemi agentici con LangChain

Preparing Video For Download...