From d476c54580fe3e76bc8041b8286c09cc3025635e Mon Sep 17 00:00:00 2001 From: Nelson <1475262689@qq.com> Date: Wed, 8 Jul 2026 17:07:12 +0800 Subject: [PATCH] Document streaming optimization phase --- ...026-07-08-concurrency-optimization-plan.md | 26 ++++++++++++++----- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/ai_knowledge_base_v2/development_records/2026-07-08-concurrency-optimization-plan.md b/ai_knowledge_base_v2/development_records/2026-07-08-concurrency-optimization-plan.md index b822a90..377d7c4 100644 --- a/ai_knowledge_base_v2/development_records/2026-07-08-concurrency-optimization-plan.md +++ b/ai_knowledge_base_v2/development_records/2026-07-08-concurrency-optimization-plan.md @@ -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。