1.tool模块是干啥的
让大模型调用 外部函数或API
2.tool模块怎么用啊?
#1.定义一个工具
@tool
def get_weather(city: str) -> str:
"""查询城市天气"""
resp = requests.get(f"https://wttr.in/{city}?format=3")
return resp.text
# 2.创建模型
llm = ChatOpenAI(model="gpt-4o")
# 3.初始化 agent,并注册工具
agent = initialize_agent(
tools=[add],
llm=llm,
agent_type=AgentType.ZERO_SHOT_REACT_DESCRIPTION
)
只要把工具注册进去, Agent就能自己决定什么时候 用哪个 怎么用
3.如何多个工具自动选择
# 工具1:查天气
@tool
def get_weather(city: str) -> str:
"""查询城市天气"""
resp = requests.get(f"https://wttr.in/{city}?format=3")
return resp.text
# 工具2:计算加法
@tool
def add(a: int, b: int) -> int:
"""计算两个数的和"""
return a + b
llm = ChatOpenAI(model="gpt-4o")
# 注册多个工具
agent = initialize_agent(
tools=[get_weather, add],
llm=llm,
agent_type=AgentType.ZERO_SHOT_REACT_DESCRIPTION,
verbose=True # 打印中间推理过程
)
4.内置工具怎么用
from langchain.utilities import SerpAPIWrapper
search = SerpAPIWrapper() # 直接实例化就可以
agent = initialize_agent(
tools=[search],
llm=llm,
agent_type=AgentType.ZERO_SHOT_REACT_DESCRIPTION
)
5.langchain内置的实用工具列举
SerpAPIWrapper:网页搜索;
PythonREPLTool:执行 Python 代码;
ArxivQueryRun:查论文;
WikipediaQueryRun:查百科;
RequestsGetTool:HTTP 请求;
SQLDatabaseToolkit:连接数据库查询;
BrowserToolkit:网页操作。