Document streaming optimization phase
This commit is contained in:
@@ -108,15 +108,15 @@
|
|||||||
|
|
||||||
## 当前执行计划
|
## 当前执行计划
|
||||||
|
|
||||||
本次先从阶段 1 开始:
|
阶段 1 已完成,下一步进入阶段 2“模型真实流式输出”。
|
||||||
|
|
||||||
1. 新增后端进程内并发管理器。
|
阶段 2 本次实施范围:
|
||||||
2. 用户端支持排队状态提示。
|
|
||||||
3. 将配置项加入系统设置。
|
|
||||||
4. 验证队列满、排队中、正常生成三种路径。
|
|
||||||
5. 记录第一阶段已完成内容和遗留限制。
|
|
||||||
|
|
||||||
后续再继续阶段 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 均正常运行。
|
5. Docker dev 环境已重新构建并启动:backend、user-client、admin-web、mysql 均正常运行。
|
||||||
6. 队列管理器验证通过:`max_active_requests=1`、`max_queue_size=1` 时,第一个请求获得执行名额,第二个请求进入排队,第三个请求被拒绝,释放名额后第二个请求恢复执行。
|
6. 队列管理器验证通过:`max_active_requests=1`、`max_queue_size=1` 时,第一个请求获得执行名额,第二个请求进入排队,第三个请求被拒绝,释放名额后第二个请求恢复执行。
|
||||||
7. 真实 `/chat/completions` SSE 验证通过:接口先返回 `generating` 事件,随后返回连续 `content` 事件。
|
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。
|
||||||
|
|||||||
Reference in New Issue
Block a user