LLM 的自定义工具与插件
开发并集成 LLM 可以利用的自定义工具,扩展其核心知识之外的能力
LLM 的自定义工具与插件 是 CoddyKit 上的免费 AI Prompt Engineering 课时。 这是第 3 节课,共 3 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 AI Prompt Engineering 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 AI Prompt Engineering 课程共包含 3 节课。
什么是自定义工具
欢迎来到“使用工具与智能体进行高级提示”课程的最后一课!今天,我们将深入了解大型语言模型(LLM)的自定义工具和插件。
自定义工具可以让 LLM 超越其训练数据,与现实世界或特定系统进行交互。您可以把它们想象成您教给 LLM 的特殊技能。
- 扩展能力:添加新函数。
- 访问实时数据:获取最新信息。
- 执行操作:对外部系统进行更改。
自定义能力与内置能力对比
您已经了解了基础的函数调用和应用程序接口集成。自定义工具可以让这些能力更进一步。
虽然 LLM 可能天生就知道如何“总结文本”,但除非您为它提供相应工具,否则它并不知道如何“查看伦敦的天气”。自定义工具弥合了这一差距,为 LLM 提供核心知识库之外的特定外部能力。
自定义工具的构成
每个自定义工具都需要清晰的定义,这样 LLM 才知道何时以及如何使用它。主要组成部分包括:
- 名称:唯一标识符(例如,
get_current_time)。 - 描述:解释工具的功能以及使用时机。这对 LLM 的决策至关重要。
- 参数:工具运行所需的输入(例如,时间工具所需的
timezone)。 - 预期输出:工具返回的信息类型。
使用架构描述工具
为了“教会”LLM 使用自定义工具,我们会以结构化格式提供工具定义,通常采用 JSON 架构。这一架构会告诉 LLM 正确调用工具所需了解的一切信息。
下面是对 get_current_time 工具进行描述的简化示例:
{
"name": "get_current_time",
"description": "Gets the current time in a specified timezone.",
"parameters": {
"type": "object",
"properties": {
"timezone": {
"type": "string",
"description": "The timezone to get the time for (e.g., UTC, America/New_York)."
}
},
"required": []
}
}构建一个简单工具:获取时间
让我们创建一个实际示例:名为 get_current_time 的工具。这个工具只会返回当前时间,也可以选择返回指定时区的时间。
虽然 LLM 能够理解架构中的描述,但实际编写执行所述操作的代码是我们的责任。当 LLM 决定调用该工具时,这段代码会在外部运行。
工具实现示例
这段 Python 代码展示了 get_current_time 工具在幕后可能的实现方式。当 LLM 调用该工具时,它会执行这个函数(或您所选语言中的类似逻辑)并获取结果。
尝试运行它,看看输出结果吧!
import datetime
def get_current_time(timezone="UTC"):
"""
Returns the current time in the specified timezone.
"""
# For simplicity, we'll return UTC time and note timezone
now = datetime.datetime.now(datetime.timezone.utc)
return f"Current time in {timezone}: {now.strftime('%Y-%m-%d %H:%M:%S')} (UTC basis)"
# This is the entry point that would be called by the LLM's integration layer
if __name__ == "__main__":
print(get_current_time())
print(get_current_time(timezone="America/New_York"))LLM 调用工具的流程
下面介绍 LLM 通常如何使用自定义工具:
- 用户提示词:您向 LLM 提出问题(例如,“纽约现在几点?”)。
- LLM 决策:LLM 会分析您的提示词和可用工具的描述。
- 工具调用:如果某个工具相关,LLM 会生成工具调用(例如,
get_current_time(timezone="America/New_York"))。 - 执行:您的系统执行实际的工具代码。
- 结果:工具的输出会返回给 LLM。
- LLM 响应:LLM 使用工具的输出为您组织最终答案。
使用自定义工具进行提示
当您向能够访问自定义工具的 LLM 提示时,不需要明确告诉它使用工具。您只需提出一个暗示需要使用该工具的问题。
LLM 理解工具描述的能力是关键。优秀的描述能够帮助 LLM 在正确的时间选择正确的工具。
- 提示词:
"What is the current time right now?" - LLM 操作:调用
get_current_time() - 工具输出:
"Current time in UTC: 2023-10-27 10:30:00 (UTC basis)" - LLM 响应:
"The current time is 10:30 AM UTC."
自定义工具的优势
自定义工具为 LLM 解锁了强大的能力:
- 领域专用性:为 LLM 提供超越通用训练范围的知识。
- 实时交互:访问最新信息(例如股票价格、天气)。
- 可执行的人工智能:让 LLM 能够执行操作(例如发送电子邮件、预约)。
- 提高准确性:依靠基于事实的工具输出,减少幻觉。
- 模块化:将 LLM 逻辑与外部系统交互分离。
快速检查:自定义工具
以下哪些是 LLM 的自定义工具定义中不可或缺的组成部分?
回顾:扩展 LLM 能力
本课中,我们探索了自定义工具和插件,这是一种扩展 LLM 能力的强大方式。
- 自定义工具允许 LLM 与外部系统和数据进行交互。
- 它们需要清晰的定义(名称、描述、参数),通常使用 JSON 架构。
- 当 LLM 调用工具时,您需要实现实际运行的逻辑。
- 自定义工具让 LLM 获得领域专用知识、访问实时数据并执行操作,从而超越简单的文本生成。
掌握自定义工具后,您就能构建真正智能且具有交互性的人工智能应用!
常见问题解答
「LLM 的自定义工具与插件」课时是免费的吗?
是的 — 「LLM 的自定义工具与插件」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 AI Prompt Engineering 课程的其余内容,请升级到 CoddyKit PRO。 AI Prompt Engineering 课程共包含 3 节课。
「LLM 的自定义工具与插件」这节课中我会学到什么?
开发并集成 LLM 可以利用的自定义工具,扩展其核心知识之外的能力 你通过在浏览器中直接运行的动手代码来练习 AI Prompt Engineering,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 AI Prompt Engineering 需要有经验吗?
无需任何先前经验。CoddyKit 上的 AI Prompt Engineering 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 3 节课,共 3 节。
「LLM 的自定义工具与插件」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 AI Prompt Engineering 课中编写并运行代码吗?
能。每节 AI Prompt Engineering 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- 函数调用与 API 集成
- 多智能体提示系统
- LLM 的自定义工具与插件