LangChain使用总结-第二章

发布于:2025-03-12 ⋅ 阅读:(14) ⋅ 点赞:(0)

1、工具调用

        无论是预定义还是自定义的工具,只需保证符合langchain相关协议,在创建agent时传参即可。这样,大模型在遇到不确定的问题时,就会去调用这些工具。调用结果准确与否,与底座模型的理解能力有关,也与你的工具有关。工具在定义时,尽量使用含义明确的变量名,有清晰的说明。这样,大模型才能更准确地读懂你的代码。

(1)加载预定义的工具

        langchain中预定了不少工具,如连接数据库、网页搜索,数学运行等。不过,需要注意的是,不少工具国内暂时用不了。这部分工具都需要访问国外地一些接口,除非你家里有梯子。要么还是找国内的替代,然后自己定义工具。

# 文字到图的工具
from langchain.agents import initialize_agent, load_tools
from langchain_openai import ChatOpenAI

llm = ChatOpenAI(
    temperature=0,
    model="gpt-4",
)

# 需要有dalle模型权限
tools = load_tools(["dalle-image-generator"])
agent = initialize_agent(
    tools,
    llm,
    agent="zero-shot-react-description",
    verbose=True
)
output = agent.invoke("画一幅典型的中国山水田园画")

(2)加载工具集

        工具集指的是为完成某一任务所需的一系列工具的集合,langchain里也有很多预定义的工具集。本质上就是被列表包围的多个工具,因为传参的时候本身就要求传一个列表。

from langchain.agents.agent_toolkits import AzureCognitiveServicesToolkit
import os

# 文字转语音,需要去微软网站注册。也可以换国内的接口
# 一般支持多种预定义的语音,自己上传语音;还可以有不同的语气
os.environ['AZURE_COGS_KEY'] = 'your_key'
os.environ['AZURE_COGS_ENDPOINT'] = 'https://eastus.api.cognitive.microsoft.com/'
os.environ['AZURE_COGS_REGION'] = 'westus2'

toolkit = AzureCognitiveServicesToolkit()

(3)