Ultralytics YOLO27: 加入候补名单。
获取 YOLO 许可
返回 Ultralytics 术语表

Function Calling (Tool Use)

函数调用(也称工具使用)让语言模型通过 JSON 参数请求外部函数,再由应用程序执行该函数并返回结果。

函数调用,也称为工具调用或工具使用,是指大型语言模型(LLM)不以纯文本作答,而是请求运行外部函数的能力。应用会通过名称、用途和参数的 JSON Schema 来描述每种可用工具。当请求需要实时数据或执行操作时,模型会返回工具名称和 JSON 参数,应用运行函数后,模型再根据结果生成答案。模型本身不会执行任何操作。Meta 的 Toolformer 于 2023 年 2 月展示了模型可以学会在自己的文本中插入 API 调用;OpenAI 于 2023 年 6 月 13 日在其 API 中加入函数调用,并针对模型进行了微调,使其能检测何时需要调用函数,并生成符合函数签名的参数。如今,各大模型提供商都支持函数调用,开源模型则通过指令微调和聊天模板学习这一能力。

函数调用的工作原理#

一次工具调用是模型与应用之间的一次往返交互,这个过程会重复进行,直到模型获得所需信息:

下面的代码按照 OpenAI 的函数调用指南格式,模拟了一次往返交互的两端,并直接写出模型回复,因此无需 API 密钥即可运行。

import json

from jsonschema import validate

# 随请求发送的工具定义:名称、用途,以及用于参数的 JSON Schema
tool = {
    "type": "function",
    "name": "get_order_status",
    "description": "Look up the shipping status of an order by its number.",
    "parameters": {
        "type": "object",
        "properties": {"order_id": {"type": "string", "pattern": "^[0-9]+$"}},
        "required": ["order_id"],
    },
}

# 模型的输出是一个函数调用,其参数以 JSON 字符串形式传入
call = {"type": "function_call", "call_id": "call_1", "name": "get_order_status", "arguments": '{"order_id": "4417"}'}
args = json.loads(call["arguments"])
validate(args, tool["parameters"])  # 如果参数不符合 schema,会在任何操作运行前引发错误

# 应用运行自己的函数,并在同一个 call_id 下返回结果
orders = {"4417": "Shipped, arriving Thursday"}
print({"type": "function_call_output", "call_id": call["call_id"], "output": orders[args["order_id"]]})

它会打印 {'type': 'function_call_output', 'call_id': 'call_1', 'output': 'Shipped, arriving Thursday'},这是应用在再次调用模型前追加到对话中的项目。在工具上设置 "strict": true 后,API 会应用受约束解码,因此模型生成的参数始终符合 schema。

选择和串联工具#

模型可以在一轮中发出多个彼此独立的调用,例如同时查询两笔订单;应用也可以强制使用某个特定工具、要求使用工具,或禁止在某一轮使用工具。跨轮次串联调用时,每个结果都会决定下一个调用,这种循环能让模型成为运行在智能体运行框架中的AI 智能体。《伯克利函数调用排行榜》会评估这些能力:选择正确的函数、填写函数参数、进行并行和多轮调用,以及在没有合适工具时拒绝调用。由于工具结果会作为输入返回给模型,工具获取的网页或文档可能包含提示注入,因此应用会只授予工具完成工作所需的最低权限,并在购买、删除或发送消息前征求用户确认。

视觉模型很适合作为工具,因为它们的输出本身就是结构化的。在 Ultralytics YOLO 中,Results.summary() 会将 YOLO26 模型检测到的每个对象作为字典返回,其中包含类别名称、类别索引、置信度和边界框坐标;json.dumps 会将这个列表直接转换为工具结果,因此聊天模型或视觉语言模型(VLM)可以通过调用预测模式来统计照片中的对象并定位对象。

  • 计算机操作智能体:通过截图、点击和按键操作软件,因此也适用于没有 API 的应用。只要存在 API,函数调用就能通过一次结构化请求实现相同结果。
  • 结构化输出:约束模型的最终回复,使其符合某个 schema,例如从发票中提取字段。函数调用使用相同的 schema 来请求执行操作,并期待收到操作结果。
  • 检索增强生成(RAG):将检索到的文档添加到提示中。搜索工具可以实现 RAG,而智能体式 RAG让模型决定何时搜索以及搜索什么。
  • 模型上下文协议(MCP):由 Anthropic 于 2024 年 11 月推出的一种开放协议,应用可通过它发现由外部程序提供的工具。模型仍然通过函数调用来调用 MCP 工具。

Explore solutions

体育领域的计算机视觉

体育领域的计算机视觉

了解 Ultralytics YOLO 如何通过球员和球追踪、表现分析、教练洞察及运动员康复,推动体育视觉技术的发展。
了解详情
航空影像计算机视觉

航空影像计算机视觉

借助 Ultralytics YOLO,将无人机和航空影像转化为实时洞察,应用于农业、水产养殖、环境监测、自然保护和地理空间分析。
了解详情
航空航天中的计算机视觉

航空航天中的计算机视觉

使用 Ultralytics YOLO 模型将视觉 AI 应用于航空监测。借助计算机视觉解决方案,赋能无人机、航空航天工作流、环境保护和地理空间行业。
了解详情
安防领域的计算机视觉

安防领域的计算机视觉

使用 Ultralytics YOLO 模型守护每个场所。视觉 AI 可用于周界监控、威胁检测、车牌识别和工作场所安全。
了解详情
机器人领域的计算机视觉

机器人领域的计算机视觉

使用 Ultralytics YOLO 模型提升智能机器的能力。机器人领域的视觉 AI 可用于自主导航、感知、目标跟踪和实时控制。
了解详情
物流中的计算机视觉

物流中的计算机视觉

借助 Ultralytics YOLO 模型优化物流流程。视觉 AI 可用于包裹检查、分拣、车辆跟踪和仓库安全实时监控。
了解详情
零售中的计算机视觉

零售中的计算机视觉

借助 Ultralytics YOLO 模型重新构想零售。视觉 AI 可用于库存跟踪、货架监控、排队管理和更深入的客户洞察。
了解详情
医疗领域的计算机视觉

医疗领域的计算机视觉

借助 Ultralytics YOLO 模型构建医疗解决方案。医疗领域的视觉 AI 可加快医学影像处理、优化诊断并监测患者。
了解详情
制造业中的计算机视觉

制造业中的计算机视觉

利用 Ultralytics YOLO 模型优化制造流程。视觉 AI 可用于质量控制、缺陷检测、个人防护装备合规检查和装配线自动化。
了解详情
汽车领域的计算机视觉

汽车领域的计算机视觉

利用 Ultralytics YOLO 模型在汽车领域应用计算机视觉。视觉 AI 可提升道路安全、驾驶辅助和车辆自动化水平,让道路更智能。
了解详情
农业中的计算机视觉

农业中的计算机视觉

借助 Ultralytics YOLO 模型,将视觉 AI 引入智慧农业。为作物监测、牲畜追踪和精准农业提供支持,从而提高产量并实现更智能的生产。
了解详情
体育领域的计算机视觉
体育领域的计算机视觉
了解 Ultralytics YOLO 如何通过球员和球追踪、表现分析、教练洞察及运动员康复,推动体育视觉技术的发展。
了解详情
航空影像计算机视觉
航空影像计算机视觉
借助 Ultralytics YOLO,将无人机和航空影像转化为实时洞察,应用于农业、水产养殖、环境监测、自然保护和地理空间分析。
了解详情
航空航天中的计算机视觉
航空航天中的计算机视觉
使用 Ultralytics YOLO 模型将视觉 AI 应用于航空监测。借助计算机视觉解决方案,赋能无人机、航空航天工作流、环境保护和地理空间行业。
了解详情
安防领域的计算机视觉
安防领域的计算机视觉
使用 Ultralytics YOLO 模型守护每个场所。视觉 AI 可用于周界监控、威胁检测、车牌识别和工作场所安全。
了解详情
机器人领域的计算机视觉
机器人领域的计算机视觉
使用 Ultralytics YOLO 模型提升智能机器的能力。机器人领域的视觉 AI 可用于自主导航、感知、目标跟踪和实时控制。
了解详情
物流中的计算机视觉
物流中的计算机视觉
借助 Ultralytics YOLO 模型优化物流流程。视觉 AI 可用于包裹检查、分拣、车辆跟踪和仓库安全实时监控。
了解详情
零售中的计算机视觉
零售中的计算机视觉
借助 Ultralytics YOLO 模型重新构想零售。视觉 AI 可用于库存跟踪、货架监控、排队管理和更深入的客户洞察。
了解详情
医疗领域的计算机视觉
医疗领域的计算机视觉
借助 Ultralytics YOLO 模型构建医疗解决方案。医疗领域的视觉 AI 可加快医学影像处理、优化诊断并监测患者。
了解详情
制造业中的计算机视觉
制造业中的计算机视觉
利用 Ultralytics YOLO 模型优化制造流程。视觉 AI 可用于质量控制、缺陷检测、个人防护装备合规检查和装配线自动化。
了解详情
汽车领域的计算机视觉
汽车领域的计算机视觉
利用 Ultralytics YOLO 模型在汽车领域应用计算机视觉。视觉 AI 可提升道路安全、驾驶辅助和车辆自动化水平,让道路更智能。
了解详情
农业中的计算机视觉
农业中的计算机视觉
借助 Ultralytics YOLO 模型,将视觉 AI 引入智慧农业。为作物监测、牲畜追踪和精准农业提供支持,从而提高产量并实现更智能的生产。
了解详情
体育领域的计算机视觉
体育领域的计算机视觉
了解 Ultralytics YOLO 如何通过球员和球追踪、表现分析、教练洞察及运动员康复,推动体育视觉技术的发展。
了解详情
航空影像计算机视觉
航空影像计算机视觉
借助 Ultralytics YOLO,将无人机和航空影像转化为实时洞察,应用于农业、水产养殖、环境监测、自然保护和地理空间分析。
了解详情
航空航天中的计算机视觉
航空航天中的计算机视觉
使用 Ultralytics YOLO 模型将视觉 AI 应用于航空监测。借助计算机视觉解决方案,赋能无人机、航空航天工作流、环境保护和地理空间行业。
了解详情
安防领域的计算机视觉
安防领域的计算机视觉
使用 Ultralytics YOLO 模型守护每个场所。视觉 AI 可用于周界监控、威胁检测、车牌识别和工作场所安全。
了解详情
机器人领域的计算机视觉
机器人领域的计算机视觉
使用 Ultralytics YOLO 模型提升智能机器的能力。机器人领域的视觉 AI 可用于自主导航、感知、目标跟踪和实时控制。
了解详情
物流中的计算机视觉
物流中的计算机视觉
借助 Ultralytics YOLO 模型优化物流流程。视觉 AI 可用于包裹检查、分拣、车辆跟踪和仓库安全实时监控。
了解详情
零售中的计算机视觉
零售中的计算机视觉
借助 Ultralytics YOLO 模型重新构想零售。视觉 AI 可用于库存跟踪、货架监控、排队管理和更深入的客户洞察。
了解详情
医疗领域的计算机视觉
医疗领域的计算机视觉
借助 Ultralytics YOLO 模型构建医疗解决方案。医疗领域的视觉 AI 可加快医学影像处理、优化诊断并监测患者。
了解详情
制造业中的计算机视觉
制造业中的计算机视觉
利用 Ultralytics YOLO 模型优化制造流程。视觉 AI 可用于质量控制、缺陷检测、个人防护装备合规检查和装配线自动化。
了解详情
汽车领域的计算机视觉
汽车领域的计算机视觉
利用 Ultralytics YOLO 模型在汽车领域应用计算机视觉。视觉 AI 可提升道路安全、驾驶辅助和车辆自动化水平,让道路更智能。
了解详情
农业中的计算机视觉
农业中的计算机视觉
借助 Ultralytics YOLO 模型,将视觉 AI 引入智慧农业。为作物监测、牲畜追踪和精准农业提供支持,从而提高产量并实现更智能的生产。
了解详情

让我们携手构建 AI 的未来!

开启你的旅程,迎接机器学习的未来