流式响应
当您创建响应并将 stream
设置 为 true
时,服务器会在生成 Response 的过程中,通过 Server-Sent Events(SSE)实时向客户端推送事件。本文介绍服务器会推送的各类事件类型及其参数说明。
事件类型概览
流式响应包含以下主要事件类型:
- 响应生命周期事件:
response.created
、response.in_progress
、response.completed
、response.failed
、response.incomplete
- 输出项事件:
response.output_item.added
、response.output_item.done
- 内容部分事件:
response.content_part.added
、response.content_part.done
- 文本增量事件:
response.output_text.delta
、response.output_text.done
- 函数调用事件:
response.function_call_arguments.delta
、response.function_call_arguments.done
- 思维链事件:
response.reasoning_summary_part.added
、response.reasoning_summary_part.done
、response.reasoning_summary_text.delta
、response.reasoning_summary_text.done
- 错误事件:
error
响应生命周期事件
response.created
当响应被创建时触发的事件。
字段 | 类型 | 说明 |
---|---|---|
type | string | 事件的类型,固定为 response.created 。 |
response | object | 创建状态的响应。包含参数与创建模型请求时,非流式调用返回的参数一致。详见 Response 对象。 |
sequence_number | integer | 事件的序列号。 |
示例:
JSON
{
"type": "response.created",
"sequence_number": 0,
"response": {
"id": "resp_123456",
"object": "response",
"status": "in_progress",
"created_at": 1672531200
}
}
response.in_progress
当响应正在进行中时触发的事件。
字段 | 类型 | 说明 |
---|---|---|
type | string | 事件的类型,固定为 response.in_progress 。 |
response | object | 进行中状态的响应。包含参数与创建模型请求时,非流式调用返回的参数一致。 |
sequence_number | integer | 事件的序列号。 |
response.completed
当响应已完成时触发的事件。
字段 | 类型 | 说明 |
---|---|---|
type | string | 事件的类型,固定为 response.completed 。 |
response | object | 已完成状态的响应。包含参数与创建模型请求时,非流式调用返回的参数一致。 |
sequence_number | integer | 事件的序列号。 |
response.failed
当响应失败时触发的事件。
字段 | 类型 | 说明 |
---|---|---|
type | string | 事件的类型,固定为 response.failed 。 |
response | object | 失败状态的响应。包含参数与创建模型请求时,非流式调用返回的参数一致。 |
sequence_number | integer | 事件的序列号。 |
response.incomplete
当响应以未完成状态结束时触发的事件。
字段 | 类型 | 说明 |
---|---|---|
type | string | 事件的类型,固定为 response.incomplete 。 |
response | object | 未完成状态的响应。包含参数与创建模型请求时,非流式调用返回的参数一致。 |
sequence_number | integer | 事件的序列号。 |
输出项事件
response.output_item.added
表示添加了新的输出项。
字段 | 类型 | 说明 |
---|---|---|
type | string | 事件的类型,固定为 response.output_item.added 。 |
item | object | 模型输出内容。详见下方 item 参数说明。 |
output_index | integer | 被添加的输出项的索引。 |
sequence_number | integer | 事件的序列号。 |
item 参数说明:
文本输出(message)
字段 | 类型 | 说明 |
---|---|---|
type | string | 输出消息的类型,固定为 message 。 |
id | string | 输出消息请求的唯一标识。 |
role | string | 输出信息的角色,固定为 assistant 。 |
status | string | 输出消息的状态。 |
content | array | 输出消息的内容。包含 type (固定为 output_text )和 text (模型的文本输出)字段。 |
思维链输出(reasoning)
字段 | 类型 | 说明 |
---|---|---|
type | string | 对象的类型,固定为 reasoning 。 |
id | string | 请求的唯一标识。 |
status | string | 该内容项的状态。 |
summary | array | 推理文本内容。包含 type (固定为 summary_text )和 text (模型生成答复时的推理内容)字段。 |
工具调用输出(function_call)
字段 | 类型 | 说明 |
---|---|---|
type | string | 工具调用的类型,固定为 function_call 。 |
id | string | 工具调用请求的唯一标识。 |
call_id | string | 模型生成的函数工具调用的唯一 ID。 |
name | string | 要运行的函数的名称。 |
arguments | string | 要传递给函数的参数的 JSON 字符串。 |
status | string | 该项的状态。 |
示例:
JSON
{
"type": "response.output_item.added",
"sequence_number": 1,
"output_index": 0,
"item": {
"id": "item_001",
"type": "message",
"role": "assistant",
"status": "in_progress",
"content": []
}
}
response.output_item.done
表示输出项已完成。
字段 | 类型 | 说明 |
---|---|---|
type | string | 事件的类型,固定为 response.output_item.done 。 |
item | object | 已完成的输出项。结构与 response.output_item.added 中的 item 相同。 |
output_index | integer | 已完成的输出项的索引。 |
sequence_number | integer | 事件的序列号。 |
内容部分事件
response.content_part.added
当有新的内容部分被添加时触发。
字段 | 类型 | 说明 |
---|---|---|
type | string | 事件的类型,固定为 response.content_part.added 。 |
part | object | 所添加的内容部分。包含 type (固定为 output_text )和 text (模型输出的文本内容)字段。 |
item_id | string | 内容部分所添加的输出项的 ID。 |
output_index | integer | 内容部分所添加的输出项的索引。 |
content_index | integer | 内容部分的索引。 |
sequence_number | integer | 事件的序列号。 |
示例:
JSON
{
"type": "response.content_part.added",
"sequence_number": 2,
"item_id": "item_001",
"output_index": 0,
"content_index": 0,
"part": {
"type": "output_text",
"text": ""
}
}
response.content_part.done
当内容部分完成时触发。
字段 | 类型 | 说明 |
---|---|---|
type | string | 事件的类型,固定为 response.content_part.done 。 |
part | object | 所完成的内容部分。包含 type |