OpenAI Chat Completions 流式事件

2026-11-10 15:38 更新

Chat Completions流式事件

实时流式传输聊天补全,通过服务器发送事件(SSE)接收模型返回的补全分块。了解更多。

事件:chat.completion.chunk

表示模型根据提供的输入返回的聊天补全响应的流式分块。了解更多。

结构定义

结构名称:CreateChatCompletionStreamResponse

  • id: string

聊天补全的唯一标识,每个分块具有相同ID。

  • choices: array of object { delta, index, finish_reason, logprobs }

聊天补全候选项列表。n大于1时可有多个元素;如果设置了stream_options: {"include_usage": true},最后一个分块的列表也可能为空。

  • delta: object { audio, content, function_call, 3 more }

模型流式响应生成的聊天补全增量。流式音频可通过部分更新传入ID、Base64数据或转录文本;最后一次音频更新仅包含过期时间戳。

  • audio: optional object { id, data, expires_at, transcript }

部分音频响应。音频分块可能携带ID、Base64数据或转录文本;最后一次音频更新仅包含过期时间戳。

  • id: optional string

此音频响应的唯一标识。

  • data: optional string

模型生成的音频字节,经过Base64编码,格式由请求指定。

  • expires_at: optional integer(Unix 时间戳)

此音频响应不再能从服务器访问、无法继续用于多轮对话的Unix时间戳,单位为秒。

  • transcript: optional string

此音频分块的转录文本。

  • content: optional string or null

分块消息的内容。

  • function_call: optional object { arguments, name }

已弃用,由tool_calls取代。模型生成的待调用函数名称及参数。

  • arguments: optional string

模型以JSON格式生成的函数调用参数。请注意,模型并非总能生成有效JSON,也可能生成函数结构定义中没有的参数。调用函数前,请在代码中验证这些参数。

  • name: optional string

要调用的函数名称。

  • refusal: optional string or null

模型生成的拒绝消息。

  • role: optional "developer" or "system" or "user" or 2 more

此消息作者的角色。

  • "developer"

  • "system"

  • "user"

  • "assistant"

  • "tool"

  • tool_calls: optional array of object { index, id, function, type }

  • index: integer

  • id: optional string

工具调用的ID。

  • function: optional object { arguments, name }

  • arguments: optional string

模型以JSON格式生成的函数调用参数。请注意,模型并非总能生成有效JSON,也可能生成函数结构定义中没有的参数。调用函数前,请在代码中验证这些参数。

  • name: optional string

要调用的函数名称。

  • type: optional "function"

工具类型,目前仅支持function。

  • "function"

  • index: integer

候选项在候选项列表中的索引。

  • finish_reason: optional "stop" or "length" or "tool_calls" or 2 more or null

模型停止生成词元的原因。stop表示遇到自然停止点或提供的停止序列;length表示达到请求指定的最大词元数量;content_filter表示内容因内容筛选器标记而被省略;tool_calls表示模型调用了工具;function_call(已弃用)表示模型调用了函数。仅包含delta.audio.expires_at的最后一次音频更新中不提供此字段。

  • "stop"

  • "length"

  • "tool_calls"

  • "content_filter"

  • "function_call"

  • logprobs: optional object { content, refusal } or null

候选项的对数概率信息。

  • content: array of ChatCompletionTokenLogprob or null

带有对数概率信息的消息内容词元列表。

  • token: string

词元。

  • bytes: array of number or null

表示该词元UTF-8字节的整数列表。字符由多个词元表示、且需要合并它们的字节表示才能得到正确文本时,这一字段很有用。如果词元没有字节表示,此值可为null。

  • logprob: number

该词元的对数概率,仅当它属于概率最高的20个词元时提供;否则用-9999.0表示该词元的概率极低。

  • top_logprobs: array of object { token, bytes, logprob }

此词元位置上概率最高的词元及其对数概率列表。条目数量可能少于请求的top_logprobs。

  • token: string

词元。

  • bytes: array of number or null

表示该词元UTF-8字节的整数列表。字符由多个词元表示、且需要合并它们的字节表示才能得到正确文本时,这一字段很有用。如果词元没有字节表示,此值可为null。

  • logprob: number

该词元的对数概率,仅当它属于概率最高的20个词元时提供;否则用-9999.0表示该词元的概率极低。

  • refusal: array of ChatCompletionTokenLogprob or null

带有对数概率信息的消息拒绝词元列表。

  • token: string

词元。

  • bytes: array of number or null

表示该词元UTF-8字节的整数列表。字符由多个词元表示、且需要合并它们的字节表示才能得到正确文本时,这一字段很有用。如果词元没有字节表示,此值可为null。

  • logprob: number

该词元的对数概率,仅当它属于概率最高的20个词元时提供;否则用-9999.0表示该词元的概率极低。

  • top_logprobs: array of object { token, bytes, logprob }

此词元位置上概率最高的词元及其对数概率列表。条目数量可能少于请求的top_logprobs。

  • created: integer(Unix 时间戳)

聊天补全创建时的Unix时间戳,单位为秒。每个分块具有相同时间戳。

  • model: string

生成补全所用的模型。

  • object: "chat.completion.chunk"

对象类型,固定为chat.completion.chunk。

  • "chat.completion.chunk"

  • moderation: optional object { input, output } or null

请求输入和生成输出的内容审核结果。请求带审核的补全时,此字段出现在审核分块中。

  • input: ModerationResults { model, results, type } or Error { code, message, type }

对请求输入的内容审核。

  • ModerationResults object { model, results, type }

请求输入或生成输出的成功审核结果。

  • model: string

用于生成审核结果的审核模型。

  • results: array of object { categories, category_applied_input_types, category_scores, 3 more }

审核结果列表。

  • categories: map[boolean]

审核类别到布尔值的字典;输入被该类别标记时为true。

  • category_applied_input_types: map[array of "text" or "image"]

各类别分数所反映的输入模态。

  • "text"

  • "image"

  • category_scores: map[number]

审核类别到分数的字典。

  • flagged: boolean

布尔值,表示内容是否被任一类别标记。

  • model: string

产生此结果的审核模型。

  • type: "moderation_result"(默认 "moderation_result")

对象类型,审核成功时固定为moderation_result。

  • "moderation_result"

  • type: "moderation_results"

对象类型,固定为moderation_results。

  • "moderation_results"

  • Error object { code, message, type }

尝试审核时产生的错误。

  • code: string

错误代码。

  • message: string

错误消息。

  • type: "error"

对象类型,固定为error。

  • "error"

  • output: ModerationResults { model, results, type } or Error { code, message, type }

对生成输出的内容审核。

  • ModerationResults object { model, results, type }

请求输入或生成输出的成功审核结果。

  • model: string

用于生成审核结果的审核模型。

  • results: array of object { categories, category_applied_input_types, category_scores, 3 more }

审核结果列表。

  • categories: map[boolean]

审核类别到布尔值的字典;输入被该类别标记时为true。

  • category_applied_input_types: map[array of "text" or "image"]

各类别分数所反映的输入模态。

  • "text"

  • "image"

  • category_scores: map[number]

审核类别到分数的字典。

  • flagged: boolean

布尔值,表示内容是否被任一类别标记。

  • model: string

产生此结果的审核模型。

  • type: "moderation_result"(默认 "moderation_result")

对象类型,审核成功时固定为moderation_result。

  • "moderation_result"

  • type: "moderation_results"

对象类型,固定为moderation_results。

  • "moderation_results"

  • Error object { code, message, type }

尝试审核时产生的错误。

  • code: string

错误代码。

  • message: string

错误消息。

  • type: "error"

对象类型,固定为error。

  • "error"

  • obfuscation: optional string

用于统一流式分块大小的混淆字符串,以缓解某些侧信道攻击。默认包含此字段;当stream_options.include_obfuscation为false时省略。

  • service_tier: optional "auto" or "default" or "flex" or 3 more or null(默认 "auto")

指定处理请求所使用的处理类型。

  • 设为'auto'时,请求按项目设置中配置的服务层级处理;除非另有配置,项目使用'default'。
  • 设为'default'时,请求按所选模型的标准价格与性能处理。
  • 设为'flex'时,请求使用Flex处理服务层级。
  • 如需在请求级别启用快速模式,请在Responses或Chat Completions请求中加入service_tier=fast或service_tier=priority。无论请求指定fast还是priority,响应均显示service_tier=priority。
  • 未设置时,默认行为为'auto'。

设置service_tier后,响应体会包含实际处理模式对应的service_tier值,可能与请求参数值不同。

  • "auto"

  • "default"

  • "flex"

  • "scale"

  • "priority"

  • "fast"

  • system_fingerprint: optional string

此指纹表示模型运行时的后端配置。可结合请求中的seed参数,判断是否发生了可能影响确定性的后端变化。

  • usage: optional CompletionUsage or null

可选字段,仅在请求中设置stream_options: {"include_usage": true}时出现。此字段出现时,除最后一个分块外均为null;最后一个分块包含整个请求的词元用量统计。

注意: 如果流中断或被取消,你可能收不到包含请求总词元用量的最后一个用量分块。

  • completion_tokens: integer(默认 0)

生成补全所用的词元数量。

  • prompt_tokens: integer(默认 0)

提示词中的词元数量。

  • total_tokens: integer(默认 0)

请求使用的词元总量,即提示词词元数加补全词元数。

  • completion_tokens_details: optional object { accepted_prediction_tokens, audio_tokens, reasoning_tokens, 2 more }

补全词元用量的细分统计。

  • accepted_prediction_tokens: optional integer(默认 0)

使用预测输出时,预测内容中实际出现在补全结果里的词元数量。

  • audio_tokens: optional integer(默认 0)

模型生成的音频输入词元数量。

  • reasoning_tokens: optional integer(默认 0)

模型为推理生成的词元数量。

  • rejected_prediction_tokens: optional integer(默认 0)

使用预测输出时,预测内容中没有出现在补全结果里的词元数量。不过,与推理词元类似,这些词元仍计入补全词元总量,用于计费、输出和上下文窗口限制的计算。

  • text_tokens: optional integer

模型生成的文本输出词元数量。

  • prompt_tokens_details: optional object { audio_tokens, cache_write_tokens, cached_tokens, 2 more }

提示词词元用量的细分统计。

  • audio_tokens: optional integer(默认 0)

提示词中的音频输入词元数量。

  • cache_write_tokens: optional integer(默认 0)

写入缓存的提示词词元数量,未经调整。

  • cached_tokens: optional integer(默认 0)

提示词中的缓存词元数量。

  • image_tokens: optional integer

提示词中的图像输入词元数量。

  • text_tokens: optional integer

提示词中的文本输入词元数量。

示例

中文说明:以下为原文JSON数据示例,字段名、枚举、数值及标识符保留;示例值不代表实际调用结果。

{"id":"chatcmpl-123","object":"chat.completion.chunk","created":1694268190,"model":"gpt-6-astra", "system_fingerprint": "fp_44709d6fcb", "choices":[{"index":0,"delta":{"role":"assistant","content":""},"logprobs":null,"finish_reason":null}],"obfuscation":"r4N7vQ2m"}
以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号