通过 Assistant API 流式输出,您可以实时获取 Assistant 的运行结果。这些结果称为 Assistant 事件流,包含了 Assistant 运行时产生的状态信息和对话消息。为了正确处理这些对话消息,您需要了解消息增量对象和运行步骤增量对象。
消息增量对象
事件名:thread.message.delta在流式运行中大模型生成的消息片段。
字段名 | 类型 | 描述 |
|---|---|---|
id | string | 消息的标识符。 |
object | string | 对象类型,与事件名保持一致。始终是 thread.message.delta。 |
delta | object | 大模型生成的消息片段对象。 |
delta.role | string | 生成消息的角色。可以是 user 或 assistant 中的一个。 |
delta.file_ids | array | 暂未使用的字段。 |
delta.content | object | 消息内容对象。 |
delta.content.type | string | 消息内容类型,始终是 text。 |
delta.content.text | object | 消息中包含的文本内容对象。 |
delta.content.text.annotations | array | 暂未使用的字段。 |
delta.content.text.value | string | 消息中包含的文本内容。 |
运行步骤增量对象
事件名:thread.run.step.delta在流式运行中工具调用返回的消息片段。
字段名 | 类型 | 描述 |
|---|---|---|
id | string | 运行步骤的标识符。 |
object | string | 对象类型,与事件名保持一致。始终是 thread.run.step.delta。 |
delta | object | 工具调用返回的消息片段对象。 |
delta.step_details | object | 片段的详细步骤信息对象。 |
delta.step_details.type | string | 步骤详情类型, 可能是 message_creation 或 tool_calls |
delta.step_details.message_creation | object | 步骤创建消息的详细信息。 |
delta.step_details.message_creation.type | string | 始终为 message_creation。 |
delta.step_details.message_creation.message_id | string | 此步骤创建的消息 ID。 |
delta.step_details.tool_calls | array | 工具调用的详细信息列表。 |
delta.step_details.tool_calls.type | string | 工具调用的类型,可能为 code_interpreter, quark_search, text_to_image, calculator |
delta.step_details.tool_calls.code_interpreter | object | 代码解释器的消息对象。 |
delta.step_details.tool_calls.code_interpreter.arguments | string | 代码解释器的输入参数,包括代码类型,完整代码。由大模型生成。 |
delta.step_details.tool_calls.code_interpreter.output | string | 代码解释器的输出参数,包括执行结果。由代码解释器生成。 |
delta.step_details.tool_calls.quark_search | object | 夸克搜索的消息对象。 |
delta.step_details.tool_calls.quark_search.arguments | string | 夸克搜索的输入参数,包括改写后的查询语句。由大模型生成。 |
delta.step_details.tool_calls.quark_search.output | string | 夸克搜索的输出参数,包括成功标记,错误码,错误消息,搜索结果列表(标题、地址、描述、类型、消息源)。由夸克搜索生成。 |
delta.step_details.tool_calls.text_to_image | object | 文生图的消息对象。 |
delta.step_details.tool_calls.text_to_image.arguments | string | 文生图的输入参数,包括模型名,风格,图像大小,图像数量,正向提示词和负向提示词。由大模型生成。 |
delta.step_details.tool_calls.text_to_image.output | string | 文生图的输出参数,包括请求id,任务id,任务状态,提交时间,预计完成时间,结束时间,生成结果,图像数量,成功标记和失败标记。由文生图生成。 |
delta.step_details.tool_calls.calculator | object | 计算器的消息对象。 |
delta.step_details.tool_calls.calculator.arguments | string | 计算器的输入参数,包括输入公式和请求头。由大模型生成。 |
delta.step_details.tool_calls.calculator.output | string | 计算器的输出参数,包括公式和结果。由计算器生成。 |
Assistant 事件流
在流式运行 Assistant 时发生的事件。
在 Assistant API 中,流式数据也称为“事件流”,由event(事件)和data(事件数据)组成:
-
event:每当创建新对象、转换到新状态或流式传输时,服务器都会发出事件。 例如,创建新的运行thread.run.created、运行完成thread.run.completed等。 -
data:包含了事件相关的详细数据。 例如状态、文本或工具消息、错误等。
事件名 | 数据类型 | 描述 |
|---|---|---|
thread.created | thread | 创建新线程时发生。 |
thread.run.created | run | 创建新运行时发生。 |
thread.run.queued | run | 当运行移动到 queued 状态时发生。 |
thread.run.in_progress | run | 当运行移动到 in_progress 状态时发生。 |
thread.run.requires_action | run | 当运行移动到 requires_action 状态时发生。 |
thread.run.completed | run | 在运行完成时发生。 |
thread.run.failed | run | 当运行失败时发生。 |
thread.run.cancelled | run | 当运行被取消时发生。 |
thread.run.expired | run | 发生在运行过期时。 |
thread.run.step.created | run step | 在创建运行步骤时发生。 |
thread.run.step.in_progress | run step | 当运行步骤移动到 in_progress 状态时发生。 |
thread.run.step.delta | run step delta | 在运行步骤的部分内容被流式传输时发生。 |
thread.run.step.completed | run step | 在运行步骤完成时发生。 |
thread.run.step.failed | run step | 发生在运行步骤失败时。 |
thread.run.step.cancelled | run step | 当运行步骤被取消时发生。 |
thread.run.step.expired | run step | 发生在运行步骤过期时。 |
thread.message.created | message | 在消息创建时发生。 |
thread.message.in_progress | message | 当消息变为 in_progress 状态时发生。 |
thread.message.delta | message delta | 当消息的部分内容被流式传输时发生。 |
thread.message.completed | message | 当消息完成时发生。 |
thread.message.incomplete | message | 当消息在完成之前结束时发生。 |
error | error | 当发生错误时触发。这可能是由于内部服务器错误或超时引起的。 |
常见问题
- 在配置流式输出时,如果您遇到代码执行错误,请参阅错误码排查错误类型。
- 如需了解 Assistant API 流式输出的配置方法,请参阅Assistant API 流式输出快速入门以了解更多信息。