问题域/PD-176

流式响应

Streaming Response

HTTP SSE 和 WebSocket 双通道实时流式传输 LLM 生成内容

子问题

1.HTTP StreamingResponse 实现

2.WebSocket 连接管理

3.多 provider 流式适配

4.前端流式消费

5.token 超限时的渐进式降级策略

6.Next.js API Route 作为 HTTP 流代理的透传实现

各项目的解法1 solutions

Signals

横向对比

维度DeepWiki
传输协议HTTP SSE + WebSocket 双通道,WebSocket 为主、HTTP 为 fallback
流式接口每个 Provider client 的 acall() 返回 async generator,上层 async for 统一消费
Provider 适配7 种 provider 逐一 if-elif 适配,chunk 格式各异需独立提取
容错降级token 超限自动去 RAG context 重试,WebSocket 不可用降级 HTTP SSE
前端消费WebSocket onmessage 逐 chunk 累积到 React state,Next.js API Route 代理 HTTP 流

最佳实践

1.FastAPI StreamingResponse 用于 HTTP 流

2.WebSocket 用于双向实时通信

3.async generator 统一流式接口

4.每个 Provider client 的 acall() 统一返回 async generator 屏蔽差异

5.前端 useRef 管理 WebSocket 生命周期,useEffect cleanup 防止内存泄漏