函数调用

让模型根据提示决定是否调用你定义的函数,并返回结构化参数;函数由应用自己执行,结果再回传给模型生成最终回答。适用于查询数据、调用业务接口等场景。

适用场景

  • 模型需要读取实时信息(如当前时间、天气、订单状态)。
  • 模型需要触发业务动作(如查询数据库、发送通知),且应用要保留最终执行权。
  • 一次回答需要并行调用多个函数(需模型支持 Parallel tool calling)。

前提

项目
要求
部署
支持 Chat Completions 或 Responses 函数调用的模型部署;支持情况随模型、API、部署类型与版本而变(待核实)
端点
https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/
认证
API Key,或 Microsoft Entra ID(需自定义子域名;Python 依赖 openai 与 azure-identity)

三步流程

  1. 调用 Chat Completions,附上 tools 定义与用户输入。
  1. 检查响应中的 tool_calls,解析参数并在应用内执行对应函数。
  1. 把函数结果以 role 为 tool 的消息(带相同的 tool_call_id)追加到 messages,再次调用模型获得最终回答。

工具定义(参数表)

字段
说明
type
固定为 function
function.name
函数名,模型据此选择函数
function.description
函数用途,影响模型是否调用;应写清楚
function.parameters
JSON Schema 对象,列出 properties 与 required
tool_choice
默认 auto(模型自行决定);none 为不调用;指定函数名则强制调用该函数
strict(结构化输出场景)
设为 true 时启用严格模式,见“结构化输出”页面

步骤示例要点

  • 官方示例定义了一个 get_current_time(location) 函数,并在本地用映射表返回时间。
  • 并行调用:提示中包含多个地点时,模型可在一次响应中返回多个 tool_calls,每个都有唯一 id;应用需对每个 id 回传一条 tool 消息。
  • 多函数示例:同一请求中可同时定义天气与时间两个函数。

验证

检查项
预期结果
首次响应
tool_calls 非空,函数名与参数符合 schema
参数解析
json.loads 可解析 arguments
第二次调用
模型的最终回答引用了函数返回的数据

排错表

现象
处理方式
模型没有调用函数
在函数 description 与参数 description 中写清用途与格式;在 system 消息中说明何时应调用函数
模型调用了未提供的函数
在 system 消息中加入“只使用已提供的函数”
参数缺失或格式不符
对参数写更具体的说明与示例;应用端做校验;必要时考虑微调(官方提示)
arguments 不是合法 JSON
官方提示 JSON 可能不总是有效,需加错误处理
使用了 functions 或 function_call 参数
已弃用,改用 tools 与 tool_choice

限制

  • 单次请求的 functions 或 tools 上限为 128(官方配额表)。
  • 工具与函数的描述(description)长度上限为 1,024 个字符。
  • Chat Completions 与 Responses API 的函数调用请求与响应格式不同,不能直接互换。
  • tool_choice 在 o3-mini 与 o1 上受支持(官方提示)。

安全注意

  • 校验模型生成的函数名、参数与调用意图,不要直接执行未经校验的调用。
  • 只使用可信数据源;函数返回的不可信内容可能诱导模型写出非预期的调用。
  • 遵循最小权限:数据库等只给只读账号;不要只依赖函数定义来限制能力。
  • 对有副作用的操作(写库、发消息、付款)增加用户确认步骤。

来源与核对

  • 核对范围:正文已读(三步流程、单工具与并行示例、tool_choice、提示工程与安全建议、函数调用支持与限制已核对;示例代码未逐行复制)。
  • 获取日期:2026-11-05。模型支持范围与版本待核实。
上一篇
结构化输出
下一篇
Responses API
Loading...
文章列表
分享AI实践与思考
入门
Microsoft Foundry
开发工具
治理与网络
观测与评测
工具与知识
模型与部署
Azure OpenAI
Azure AI Search
性能与基准
索引与分块
概念解释
快速上手
Foundry Tools
RAG 与知识工程
检索质量与评测
数据准备
智能体与工具
评测、观测与安全
企业架构与成本
成本与容量
架构
解决方案场景
文档与服务
知识与分析
样例与学习资源
附录