Delta(增量) 协议

别名: 增量

流式响应中每个事件携带的「增量」:`choices[0].delta.content` 是一小块文本,完整输出 = 累积所有 delta,与普通响应的 `choices[0].message.content` 语义等价。

它是什么

Delta(增量)是 OpenAI 兼容的流式响应中每个事件携带的「变化量」。普通响应里 choices[0].message 一次给出完整消息;流式响应里它变成 choices[0].delta——每一帧只携带一小块增量,客户端累积所有 delta.content 才能拼出完整文本。

帧的结构

一个典型的流式序列:

  • 第一帧 delta.role: "assistant"——没有 content,只宣布「下面开始是模型的话」;
  • 中间若干帧 delta.content——真正的增量,通常是一个 token 或一小段字符;
  • 倒数第二帧 delta 为空对象,只有 finish_reason: "stop" 表示生成完毕;
  • 最后 data: [DONE] 哨兵表示整个流结束。

注意点

三处防守缺一不可:只认 data: 行;先判断 [DONE]JSON.parsedelta.content 必须是字符串才处理(role 帧、finish_reason 帧没有 content,直接跳过)。另外 usage 帧在 [DONE] 之前出现,但不是每个兼容实现都发,要当可选信息处理。后续做工具调用时,delta.tool_calls 增量是同一套机制(见第 06 章)。

相关词条

出现在这些章节