Claude With Amazon Bedrock
← 所有课程
课程 09Claude With Amazon Bedrock

Streaming

摘要音频

本节课没有语音摘要。

学习笔记

📝 学习笔记:流式响应 (Streaming Response)

一、 核心问题与解决方案

  • 延迟问题 (Latency Issue): 传统的请求/响应模式(Request/Response)需要等待模型生成完整回复,响应时间可能很长(例如 3 秒至 30 秒)。
  • 用户期望 (User Expectation): 用户期望在输入问题后能立即看到内容开始生成,而不是长时间等待。
  • 解决方案 (Solution): 使用 converse stream 函数实现流式传输 (Streaming)。

二、 converse stream 工作原理

  • 流式传输定义: converse stream 允许模型在生成文本的过程中,将文本片段(chunks)实时地、逐步地返回给客户端。
  • 初始响应 (Initial Response): 第一次调用时收到的初始响应不会包含任何生成的文本,它仅是一个确认信息,表明请求已接收,模型已开始生成。
  • 事件流 (Event Stream): 实际的响应内容是通过一系列事件 (events) 流式传输的。

三、 关键事件类型 (Event Types)

  • 事件流结构: 响应由多个事件组成,例如:message start、content block start、content block delta、message stop、metadata 等。
  • 核心文本事件: 在仅生成文本的场景中,我们最关注的是 content block delta 事件。
  • 文本内容: 每个 content block delta 事件都包含模型生成的实际文本片段,即 delta text。
  • 事件顺序 (Text Generation Flow):

message start → 多个 content block delta 事件 → content block stop → message stop → metadata

四、 实现逻辑 (Implementation Logic)

  • 处理流程:
  • 遍历从 converse stream 返回的事件流。
  • 检查当前事件是否为 content block delta。
  • 如果是,提取其 delta text(即文本片段)。
  • 将该片段发送到浏览器/前端显示,并累加到总文本变量中。
  • 代码技巧: 在 Python print() 函数中使用 end="" 参数,可以防止每次打印时自动换行,从而实现连续的流式输出效果。
  • 最终目标: 收集所有流式片段,最终形成完整的回复文本,以便后续存储或处理。

Takeaways

  • 流式响应(Streaming Response)通过实时返回文本片段(chunks),解决了传统请求/响应模式下的高延迟问题。
  • converse stream 的响应不是一次性完成的,而是通过一系列事件流逐步返回的。
  • 在事件流中,实际的文本内容是通过 content block delta 事件中的 delta text 字段传输的。
  • 实现流式输出的逻辑是遍历事件流,提取 delta text 片段并实时累加显示,最终构成完整的回复。
抽认卡 8 张卡片
问题
点击显示 · ←/→
答案
点击翻回
导出到 Anki (.tsv) ↓
知识检测 0 题

No quiz for this lesson yet.