什么是Function Calling?

1. 概述

Function Calling 是大语言模型(LLM,例如 GPT 系列)提供的一种机制,使模型能够在对话过程中调用外部函数、API 或本地方法。

它解决了模型 只会回答、不知道外部世界最新信息 的局限,让 LLM 从"聊天助手"变成"可操作的智能代理"。


2. 工作原理

基本流程

  1. 开发者注册函数

    • 定义函数名称、描述(description)、参数结构(parameters)。
  2. 用户发起自然语言请求

    • 模型分析语义。
  3. 模型决定是否调用函数

    • 如果与函数描述匹配 → 输出 JSON 调用请求。
    • 如果能直接回答 → 直接输出自然语言。
  4. 系统执行函数

    • 根据 JSON 参数调用外部逻辑/API。
  5. 返回结果给模型

    • 模型基于结果生成用户可读的回答。

3. 函数描述的作用

函数描述(description + parameters)相当于 本地的 Prompt,指导模型何时使用函数、如何构造参数。

例如:

json 复制代码
{
  "name": "getWeather",
  "description": "获取指定城市和日期的天气情况(气温、晴雨、多云、雪)。当用户提到天气、气温、冷热、是否下雨时调用。",
  "parameters": {
    "type": "object",
    "properties": {
      "city": { "type": "string", "description": "城市名称,例如 北京" },
      "date": { "type": "string", "description": "日期,格式 YYYY-MM-DD" }
    },
    "required": ["city"]
  }
}
  • description → 像局部 Prompt,告诉模型什么时候用。
  • parameters → 约束输入,避免模型乱传参。

4. 识别机制

模型判断是否调用函数,主要依赖以下三点:

  1. 函数描述(本地 Prompt)

    • 描述越清晰,调用越精准。
  2. 用户语义

    • 模型先理解用户输入,再匹配函数用途。
  3. 上下文/系统 Prompt

    • 可以在系统消息中指导模型"仅在必要时调用函数"。

5. 设计函数描述的最佳实践

  1. 明确用途

    • 写清楚函数能解决什么问题。
  2. 触发条件

    • 描述用户可能使用的关键词或场景。
  3. 参数语义化

    • 给每个参数写清楚含义、示例。
  4. 避免模糊

    • 不要只写"天气查询",要写"气温、晴雨、多云、雪"。
  5. 覆盖常见问法

    • 例如天气函数可以提及"天气、气温、冷热、下雨"。

6. 示例

例 1:查询天气

用户:

"北京明天会下雨吗?"

模型输出调用:

json 复制代码
{
  "name": "getWeather",
  "arguments": { "city": "北京", "date": "2025-09-03" }
}

系统执行 API → 返回:

json 复制代码
{ "temperature": 28, "condition": "小雨" }

模型回答:

北京明天 28°C,有小雨。


例 2:查订单状态

用户:

"订单 12345 的物流情况?"

模型输出调用:

json 复制代码
{
  "name": "getOrderStatus",
  "arguments": { "orderId": "12345" }
}

7. 总结

  • Function Calling = 模型调用外部函数的机制
  • 函数描述 = 本地 Prompt,决定模型是否、如何调用函数
  • 本质:自然语言理解 → 函数选择 → 参数生成 → 系统执行 → 结果转化

它让 LLM 从"会聊天"升级为"会办事",是构建智能应用的关键能力。

相关推荐
回眸&啤酒鸭1 天前
【回眸】Minicart 电商购物车核心功能落地指南
人工智能
一隅论数智1 天前
给AI一张“业务概念地图“:本体如何从哲学走向企业智能
大数据·人工智能·经验分享·笔记·学习·学习方法·政务
AI的探索之旅1 天前
97 个 OpenCV 实例(三十):双目立体,从标定到点云
人工智能·opencv·计算机视觉
AlbertZein1 天前
Step-5-Preview 上手实测:3D 游戏、金融分析、网页设计一次跑完
人工智能·aigc
LaughingZhu1 天前
Product Hunt 每日热榜 | 2026-09-19
人工智能·深度学习·神经网络·搜索引擎·百度
美狐美颜SDK开放平台1 天前
开发直播APP时如何接入视频美颜SDK?开发流程与注意事项
android·人工智能·计算机视觉·音视频·直播美颜sdk
wukangjupingbb1 天前
智能网联汽车安全能力框架
人工智能
龙亘川1 天前
明月照湾区,智启新赛道:从顶流文旅IP盛会看智慧文旅升级路径
人工智能·智慧城市·开源软件·数据可视化
飞猫的边缘AI1 天前
边缘AI应用:家用AI摄像头怎么做数据训练?
人工智能·边缘计算·ai算法·边缘ai