Document streaming optimization phase

This commit is contained in:
2026-07-08 17:07:12 +08:00
parent 6f3bbd3803
commit d476c54580

View File

@@ -108,15 +108,15 @@
## 当前执行计划
本次先从阶段 1 开始:
阶段 1 已完成,下一步进入阶段 2“模型真实流式输出”。
1. 新增后端进程内并发管理器。
2. 用户端支持排队状态提示。
3. 将配置项加入系统设置。
4. 验证队列满、排队中、正常生成三种路径。
5. 记录第一阶段已完成内容和遗留限制。
阶段 2 本次实施范围:
后续再继续阶段 2 的真实模型流式输出
1. 先支持 OpenAI 兼容协议和 Anthropic Messages 协议的上游真实流式
2. MiniMax、Gemini 等非主线协议暂时保持非流式调用,并通过统一事件接口降级输出。
3. 后端在接收模型 chunk 时同步通过 SSE 输出给用户端,并在结束后累计完整回答落库。
4. 流式过程中如果模型调用失败,返回 `error` 事件,并记录失败日志。
5. 用户中断或连接断开时,尽量关闭上游模型连接;已收到但未完成的回答不作为成功消息落库。
## 风险记录
@@ -159,3 +159,15 @@
5. Docker dev 环境已重新构建并启动backend、user-client、admin-web、mysql 均正常运行。
6. 队列管理器验证通过:`max_active_requests=1``max_queue_size=1` 时,第一个请求获得执行名额,第二个请求进入排队,第三个请求被拒绝,释放名额后第二个请求恢复执行。
7. 真实 `/chat/completions` SSE 验证通过:接口先返回 `generating` 事件,随后返回连续 `content` 事件。
## 阶段 2 实施记录
2026-07-08 开始实现第二阶段“模型真实流式输出”。
设计决策:
1. 先不改动现有非流式 `ChatService.create_answer` 主逻辑,新增独立流式服务承载用户端 `/chat/completions`
2. 流式模型调用优先覆盖 OpenAI 兼容协议和 Anthropic Messages 协议。
3. 非流式协议保留降级路径,保证模型配置多样性不被破坏。
4. 本阶段仍使用同步 `httpx` 的流式能力;真正 async 化放到阶段 3。
5. 本阶段不引入 Redis全局多 worker 协调继续放到阶段 4。