Function Calling(函数调用)

Function Calling(函数调用)是大型语言模型(LLM)主动调用预定义外部函数或工具的能力,使AI系统能够执行实际操作而不仅仅是生成文本。

定义

Function Calling(函数调用)是现代AI代理系统的核心能力之一,它允许大语言模型在对话过程中识别需要执行特定操作的时机,并调用预先定义的外部函数来完成实际任务。与传统LLM仅输出文本不同,具备函数调用能力的模型可以触发代码执行、API请求、数据库操作等真实世界行为。

这项技术最早由OpenAI在2023年引入GPT-4 API中,随后被各大模型厂商广泛采用。它是实现AI代理(Agent)的关键技术基础,使得AI从"被动应答"转向"主动执行"。

工作原理

函数调用流程通常包含以下步骤:

  1. 函数定义:开发者预先定义一组可用的函数,并使用JSON Schema格式描述每个函数的名称、参数和返回值。
  2. 模型推理:当用户提出需要执行操作的问题时,模型分析上下文并判断是否需要调用某个函数。
  3. 参数生成:模型根据函数签名和对话内容,生成符合参数规范的调用请求。
  4. 外部执行:应用程序执行实际的函数调用,获取返回结果。
  5. 结果整合:函数执行结果被返回给模型,模型基于结果生成最终回答。

应用场景

示例

示例:查询天气

// 1. 定义函数
functions = [{
  "name": "get_weather",
  "description": "获取指定城市的天气信息",
  "parameters": {
    "type": "object",
    "properties": {
      "city": {"type": "string", "description": "城市名称"}
    },
    "required": ["city"]
  }
}]

// 2. 用户提问
// "北京今天天气怎么样?"

// 3. 模型生成的函数调用
{
  "name": "get_weather",
  "arguments": {"city": "北京"}
}

// 4. 执行函数后返回结果
{"temperature": "28°C", "condition": "晴", "humidity": "45%"}

// 5. 模型生成最终回答
// "今天北京天气晴朗,气温28°C,湿度45%。"

相关术语

📚 推荐阅读

🛠️ 工具教程 📖 术语百科 📰 AI新闻日报 📝 博客文章