流式输出¶
本主题介绍了如何从 Cortex Code Agent SDK 获取实时流式响应。
默认情况下,SDK 会在模型完成每条响应的生成后,才产出完整的 AssistantMessage 对象。要在生成文本和思维块时接收增量更新,请通过将 includePartialMessages (TypeScript) 或``include_partial_messages`` (Python) 设置为 true 来启用部分消息流式传输。
启用部分消息后,Cortex Code 会针对部分文本和思维内容发出 StreamEvent 对象。完整的工具调用仍作为 AssistantMessage 对象到达,而工具结果仍作为 UserMessage 对象到达。
启用流式输出¶
启用后,SDK 除了输出通常的 AssistantMessage、UserMessage 和 ResultMessage 对象外,还会输出包含部分流式事件的 StreamEvent 消息。您的代码需要:
检查每条消息的类型,以区分
StreamEvent和其他类型。对于
StreamEvent,提取event字段并检查其type。查找
delta.type为text_delta的content_block_delta事件。
StreamEvent 参考¶
启用部分消息后,您会收到封装在对象中的原始流事件:
event 字段包含由 Cortex Code 发出的原始部分流式事件。常见事件类型:
事件类型 |
描述 |
|---|---|
|
新文本或思维块的开始 |
|
增量文本或思维更新 |
|
当前文本或思维块的结尾 |
消息流¶
启用部分消息后,您通常会按以下顺序接收消息:
如果不启用部分消息,您仍会收到相同的完整助手、用户和结果消息,但不会收到 StreamEvent。根据会话情况,SDK 还可以发出 system 事件,如初始化、状态和后台任务通知。
实现流式文本响应¶
为了在文本生成时同步显示,请查找 delta.type 为 text_delta 的 content_block_delta 事件。
构建流式 UI¶
以下示例在一个本地缓冲区中累积流式文本,并在每次新的 text_delta 到达时重新渲染当前响应。在实际应用中,请将 render 函数替换为您所用框架的状态更新逻辑:
已知限制¶
功能 |
对流式传输的影响 |
|---|---|
结构化输出 |
JSON 结果仅出现在 |
法律声明¶
如果 Cortex Code 配置使用 模型和服务直通条款 中提供的模型,则您对该模型的使用将进一步受该页面上该模型的条款的约束。
输入和输出的 Data Classification 如下表所示。
输入 Data Classification |
输出 Data Classification |
名称 |
|---|---|---|
Usage Data |
客户数据 |
涵盖的 AI 功能 [1] |
有关更多信息,请参阅 Snowflake AI 和 ML。