人工智能 (AI) 正在以前所未有的速度发展,而工具调用 (Tool Calling)函数调用 (Function Calling) 正是驱动这场变革的关键技术。本文将深入浅出地介绍这两个核心概念,揭示它们如何赋予 AI 超能力,使其能够超越自身局限,与现实世界进行互动,从而更好地为我们服务。

为什么我们需要工具调用 (Tool Calling)?

大型语言模型 (LLM),例如 ChatGPT, Grok 等,虽然经过海量数据的训练,具备强大的语言理解和生成能力,但它们自身存在着固有的局限性:

  • 无法访问实时信息: LLM 无法直接获取诸如今天的天气、股票价格等实时变化的数据。它们所掌握的信息是训练数据中的历史数据,无法跟上瞬息万变的世界。
  • 无法执行复杂计算: 虽然 LLM 可以进行一些简单的计算,但对于复杂的数学运算、数据分析等任务,它们的能力显得不足。
  • 无法直接控制外部设备: LLM 无法直接发送电子邮件、控制智能家居设备等,它们只是一个“思考者”,而不是一个“行动者”。

这些局限性限制了 LLM 在实际应用中的价值。为了克服这些限制,工具调用 (Tool Calling) 应运而生。

什么是工具调用 (Tool Calling)?

工具调用 (Tool Calling) 本质上是指 AI 利用外部服务或程序 (即“工具”) 来辅助完成自身无法独立完成的任务。 这些工具可以提供 AI 所需的实时数据、计算能力或控制能力,从而扩展 AI 的应用范围和能力边界。

举例说明: 想象一下,你向 AI 助手询问:“今天北京的天气怎么样?” AI 助手自身无法得知实时天气,但它可以通过工具调用,调用一个天气 API (一种外部服务,提供天气信息),获取北京的实时天气数据,然后将结果告诉你。 在这个例子中,天气 API 就是工具,而 AI 助手调用天气 API 的过程就是工具调用

工具调用 (Tool Calling) 的种类

AI 可以使用的工具种类繁多,几乎涵盖了所有我们可以想象到的外部服务或程序。 一些常见的工具包括:

  • 天气 API: 用于获取实时天气信息,例如温度、湿度、风力等。
  • 计算器: 用于执行各种数学运算,例如加减乘除、三角函数、指数函数等。
  • 搜索引擎: 用于在互联网上搜索信息,例如新闻、文章、图片、视频等。 Google Search API 是一个很常用的工具。
  • 邮件发送器: 用于发送电子邮件,例如通知、提醒、营销邮件等。
  • 数据库查询: 用于从数据库中检索数据,例如客户信息、产品信息、订单信息等。
  • 智能家居控制: 用于控制智能家居设备,例如灯、空调、电视等。
  • 翻译 API: 用于将文本从一种语言翻译成另一种语言。 Google Translate API 就是一个很好的例子。

什么是函数调用 (Function Calling)?

既然我们已经了解了什么是工具,那么接下来就需要理解 AI 如何使用这些工具。 函数调用 (Function Calling) 正是 AI 与工具进行交互的方式。

每个工具都可以被看作是一个小的函数或程序,要使用它,AI 必须知道:

  • 函数名称 (Function Name): 例如,get_weather (获取天气)。
  • 函数描述 (Function Description): 对函数功能的简要描述,例如“获取指定城市当前的天气信息”。
  • 输入参数 (Input Parameters): 函数运行所需要的输入信息,例如 city="Beijing" (城市名称为北京)。

函数调用 (Function Calling) 允许开发者精确定义工具的功能和使用方式,并将其与 AI 模型连接起来。

工具调用 (Tool Calling) 的工作流程

让我们通过一个具体的例子来说明工具调用 (Tool Calling) 的工作流程:

  1. 用户提问: “今天上海的天气怎么样?”
  2. AI 判断是否需要工具: AI 分析用户的问题,判断需要获取天气信息,因此需要调用外部工具。
  3. AI 构建函数调用: AI 根据问题,构建一个函数调用,例如 get_current_weather(city="Shanghai")。这个函数调用包含了函数名称 get_current_weather 和输入参数 city="Shanghai"
  4. 工具被触发: AI 将函数调用发送给相应的工具 (例如天气 API)。天气 API 接收到函数调用后,根据输入参数 city="Shanghai",查询上海的实时天气数据。
  5. 工具返回结果: 天气 API 将查询到的结果返回给 AI,例如 “18°C,多云”。
  6. AI 给出最终答案: AI 接收到工具返回的结果后,将其整合到最终答案中,例如 “今天上海的天气是 18°C,多云”。

工具调用 (Tool Calling) 的优势

工具调用 (Tool Calling) 彻底改变了 AI 的能力,赋予了它以下优势:

  • 实时信息: AI 可以访问实时信息,从而提供更准确、更及时的答案。例如,它可以告诉你最新的新闻、股票价格、航班信息等。
  • 精确答案: AI 不再需要猜测或依靠过时的信息,它可以调用工具来获取准确的答案。例如,它可以调用计算器来计算复杂的问题,或者调用翻译 API 来翻译文本。
  • 多任务处理: AI 可以同时执行多个任务,例如发送电子邮件、预订机票、控制智能家居设备等。
  • 自动化: 工具调用 (Tool Calling) 可以帮助企业和开发者构建智能工作流程,自动化重复性任务,提高工作效率。 例如,可以创建一个 AI 客服机器人,自动回复客户的常见问题,或者创建一个 AI 营销助手,自动生成营销文案。

根据 OpenAI 在 2023 年的开发者大会上的分享,使用工具调用 (Tool Calling) 的 AI 应用的用户满意度提高了 30% 以上,效率提高了 20% 以上。

OpenAI Agents SDK 中的 @function_tool

OpenAI Agents SDK 为开发者提供了便捷的工具,可以轻松地将工具连接到 AI Agent。 其中,@function_tool 是一个 Python 装饰器,可以让你将一个 Python 函数声明为一个可以被 AI Agent 调用的工具。

示例:

from openai.agents import Agent

@function_tool
def get_current_weather(city: str) -> str:
    """Returns the current weather for the given city"""
    # 调用天气 API 并返回结果
    # 这里只是一个示例,你需要替换成真正的天气 API 调用代码
    if city == "Beijing":
        return "18°C, 多云"
    elif city == "Shanghai":
        return "20°C, 晴"
    else:
        return "无法获取该城市的天气信息"

agent = Agent(tools=[get_current_weather])

response = agent.run("今天北京的天气怎么样?")
print(response) # 输出:今天北京的天气是 18°C, 多云

在这个例子中,@function_tool 装饰器将 get_current_weather 函数声明为一个工具。 AI Agent 可以自动识别该函数的功能和输入参数,并在需要时调用它。

工具调用 (Tool Calling) vs 传统 AI

| 特性 | 传统 AI | AI with Tool Calling |
| ————– | ——- | ——————– |
| 实时数据 | ❌ | ✅ |
| 实时计算 | ❌ | ✅ |
| 发送邮件 | ❌ | ✅ |
| 控制智能设备 | ❌ | ✅ |

工具调用 (Tool Calling) 的应用场景

工具调用 (Tool Calling) 具有广泛的应用场景,以下是一些示例:

  1. 数学解题器:

    • 问题: “29 乘以 13 等于多少?”
    • AI 行为: AI 调用计算器工具,将 29 和 13 作为输入参数,计算结果为 377。
    • 最终答案: “29 乘以 13 等于 377。”
  2. 航班查询:

    • 问题: “有哪些从迪拜飞往卡拉奇的航班?”
    • AI 行为: AI 调用航班 API 工具,将出发地和目的地作为输入参数,获取航班列表。
    • 最终答案: “以下是从迪拜飞往卡拉奇的航班:[航班列表]”
  3. 智能家居助手:

    • 问题: “关闭客厅的灯。”
    • AI 行为: AI 调用智能家居控制工具,控制客厅的灯关闭。
    • 最终答案: “已关闭客厅的灯。”
  4. 新闻阅读器:

    • 问题: “告诉我关于 AI 的最新消息。”
    • AI 行为: AI 调用新闻搜索工具,搜索关于 AI 的最新消息,并提取摘要。
    • 最终答案: “以下是关于 AI 的最新消息摘要:[新闻摘要]”
  5. 会议纪要生成器:

    • 场景: 在线会议结束后,AI 可以自动将会议录音转换成文字,并利用自然语言处理技术提取关键信息,生成会议纪要。
    • 工具调用: AI 调用语音识别 API 将录音转换为文本,调用自然语言处理 API 提取关键信息。
    • 优势: 节省人工整理会议纪要的时间,提高工作效率。
  6. 内容创作助手:

    • 场景: 帮助用户生成各种类型的文本内容,例如文章、博客、社交媒体帖子等。
    • 工具调用: AI 可以调用图像生成 API 生成配图,调用关键词提取 API 提取文章关键词,调用语法纠错 API 检查语法错误。
    • 优势: 提高内容创作效率,保证内容质量。
  7. 代码生成器:

    • 场景: 根据用户的自然语言描述,自动生成代码。
    • 工具调用: AI 可以调用代码搜索引擎,搜索相关的代码示例,调用代码编译器,检查代码错误。
    • 优势: 降低编程门槛,提高开发效率。

未来展望

工具调用 (Tool Calling)函数调用 (Function Calling) 是 AI 发展的关键技术,它们正在深刻地改变 AI 的能力和应用方式。 随着技术的不断发展,我们可以期待 AI 在未来能够更好地与现实世界进行互动,为我们提供更智能、更便捷的服务。 例如,未来的 AI 助手可能可以自动预订机票、安排行程、处理日常事务,甚至可以帮助我们进行科学研究、解决复杂问题。

总结

工具调用 (Tool Calling)函数调用 (Function Calling) 将 AI 聊天机器人转变为强大的现实世界助手。 工具就像外部助手(例如插件或应用程序),而函数调用是 AI 与工具对话的方式。 无论是检查价格、解决问题还是控制设备——这些概念都赋予了 AI 与现实世界互动的超能力。 所以,下次你使用 ChatGPT 并且它给你实时数据或发送电子邮件时——要知道:一个工具被调用,一个函数被使用了! 掌握工具调用 (Tool Calling)函数调用 (Function Calling) 对于理解和应用现代 AI 技术至关重要。 它们是连接 AI 与现实世界的桥梁,也是 AI 实现更大价值的关键。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注