社区投稿

发布于 2026 年 08 月 05 日 星期三

大模型 Function Calling 与流式输出实战教程:API 接入从原理到代码

详解大模型 API 的函数调用 Function Calling 原理与流式输出 Streaming 机制,包含工作流程和代码接入要点,帮助开发者快速实现智能体与实时响应。

Function Calling 与流式输出:大模型 API 开发的两大核心能力

在开发 AI 应用时,单纯的文本对话只是基础。真正让大模型变得「实用」的,是函数调用(Function Calling)和流式输出(Streaming)这两项核心能力。本文将讲解它们的原理和使用方法。

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

函数调用允许大模型根据用户意图,自动选择并调用预定义的外部函数。2023 年 OpenAI 率先为 GPT 模型引入该功能,此后 Google Gemini、通义千问、豆包等主流大模型纷纷跟进支持。

其工作流程如下:

  1. 开发者以 JSON 格式向模型描述可用函数(函数名、参数、功能说明)。
  2. 模型根据用户输入,判断是否需要调用函数,并输出函数名和参数。
  3. 开发者在本地执行函数,将结果返回给模型。
  4. 模型根据函数结果生成最终自然语言回复。

关键点在于:模型本身不执行函数,它只生成调用参数。实际执行由开发者代码完成,这保证了安全性和可控性。现代大模型(如 Qwen2.5、DeepSeek)经过工具调用训练后,输出合法 JSON 的准确率已经很高。

流式输出(Streaming)原理

默认的同步调用是等模型生成完所有内容后一次性返回。流式输出则是边生成边返回——模型每产生一个文本片段,就通过 SSE(Server-Sent Events)推送给调用方。

流式输出的核心价值不是省钱或省算力,而是改善用户体验:用户无需等待完整结果生成,第一个字出来就能看到,大幅降低首字延迟(TTFT)的感知时间。OpenAI、Anthropic、Google 等主流 API 均支持流式输出。

代码接入要点

使用 OpenAI 兼容接口调用时,流式输出只需设置 stream 参数为 True。函数调用则通过 tools 参数传入函数描述。两者的代码结构在支持 OpenAI 兼容格式的平台上基本通用。

不过,不同模型厂商在函数调用的字段格式和返回结构上可能存在细微差异。如果直接对接多家厂商,需要处理多套 SDK 和接口协议,开发维护成本较高。

通过 不墨 AI API,你可以使用统一的 OpenAI 兼容接口调用多个国内主流大模型,Function Calling 和流式输出均已适配,无需为不同模型编写不同代码。按量计费,接入简单,适合个人开发者和团队快速上线。

准备好动手实践了?前往 不墨 AI API 官网 获取 API Key,参考文档即可快速开始。