06 - 编码:流式传输与响应控制

难度:中级 时长:~20 分钟 关键概念:Streaming、Token 限制、实时反馈

概述

本示例演示了流式响应(Streaming Responses)token 限制(Token Limits),这是构建具有受控输出的响应式 AI 智能体的两项核心技术。

流式传输问题

传统(非流式)方式

问题:用户体验差(长时间等待)、无进度指示、无法中断错误响应。

流式方式(本示例)

优势:即时反馈、进度可见、可提前中断、感觉互动性强。

流式工作原理

逐 Token 生成

onTextChunk 回调

Token 限制:maxTokens

Token 预算

成本与质量

Token 限制输出质量使用场景
100简短,可能被截断快速回答
500简洁但完整简短解释
2000(示例)详细完整解释
无限制有冗长风险长度未知时

实时应用场景

模式 1:交互式 CLI

模式 2:Web 应用

模式 3:多消费者

性能特征

延迟与吞吐量

高级概念

缓冲策略

  • 无缓冲(即时):每个 token 立即回调,最流畅但开销更大
  • 行缓冲:累积到换行符后刷新,更适合段落输出
  • 时间缓冲:累积 50ms 后批量刷新,降低回调频率

上下文大小感知

智能体架构中的流式传输

最佳实践

  1. 始终设置 maxTokens — 防止无限制生成
  2. 处理部分更新 — 立即显示但等待完成后保存
  3. 提供反馈 — 在首个 token 到达时隐藏加载指示器
  4. 监控性能 — 跟踪 tokens/second 指标

对比

功能intro.jscoding.js(本示例)
流式传输
Token 限制✓ (2000)
实时输出
进度可见
用户控制