社区投稿

发布于 2026 年 08 月 16 日 星期日

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

详解大模型 API 流式输出(SSE)和函数调用(Function Calling)的原理与接入方法,附代码示例,助你快速实现实时响应与工具调用。

什么是流式输出?

流式输出(Streaming)是大模型 API 的一项核心能力。当模型生成回复时,如果关闭流式模式,你需要等待整个回复全部生成完毕才能看到结果;而开启流式模式后,模型会逐 Token 持续返回文本片段,用户能实时看到打字效果,大幅提升交互体验。

在技术实现上,流式输出使用 SSE(Server-Sent Events)协议,响应头 Content-Type 为 text/event-stream。以 Kimi API 为例,只需在请求参数中设置 stream 参数为 true 即可启用。OpenAI 兼容接口的流式格式已逐渐成为行业标准,主流国产模型基本都支持。

什么是 Function Calling?

Function Calling(函数调用)让大模型能够与外部工具交互。当用户提问涉及外部信息时,模型不会凭空编造,而是返回一个结构化的函数调用请求,包含函数名和参数。你的代码执行该函数后,将结果返回给模型,模型再基于真实数据给出最终回答。

典型的流程是:定义工具 -> 用户提问 -> 模型返回工具调用信息 -> 你的代码执行函数 -> 将结果传回模型 -> 模型生成最终回复。阿里云百炼的千问模型、DeepSeek 等都已支持 Function Calling 功能。

流式输出与 Function Calling 的代码实现

使用 OpenAI 兼容 SDK,流式输出和函数调用可以同时使用。核心代码思路如下:

首先创建客户端并定义工具函数的 JSON Schema,描述函数名称、参数类型和用途。然后在调用 chat completions 接口时,同时传入 tools 参数和 stream 参数为 true。模型在流式响应中会逐步返回文本内容和工具调用信息,你可以通过遍历响应 chunks 来分别处理。

关键点在于:流式模式下,tool_calls 信息也是分片返回的,需要你在代码中逐步拼接函数名和参数字符串,等拼接完成后再执行实际函数调用。

一站式接入方案

如果你想在一个接口上同时使用流式输出和 Function Calling,并自由切换 DeepSeek、通义千问、豆包等模型,不墨 AI API 提供了完整的 OpenAI 兼容接口,支持流式输出和 Function Calling,一个 Key 即可调用多个国产大模型。

无论你是搭建智能客服、AI 助手还是自动化工作流,不墨 AI API 平台 都能帮你快速落地,按量计费,无需预付高额费用,即开即用。