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 dc4c5bc..dcb829d 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 @@ -278,3 +278,28 @@ 1. 飞书检索、RAG 构建、数据库读写仍是同步逻辑;本阶段只优化模型长连接流式调用。 2. 首字时间仍会受到飞书读取和 RAG 构建耗时影响。 3. 队列仍是进程内队列,多 worker 全局并发控制需要阶段 4 Redis 队列。 + +## 阶段 3B 实施计划 + +目标:在不改动当前知识库检索脏文件的前提下,新增异步飞书读取和异步 RAG 构建路径,让用户端问答链路里的飞书搜索、Wiki 节点读取、Docx/File 下载不再使用同步 `httpx`。 + +实施范围: + +1. 新增 `AsyncFeishuKnowledgeService`: + - 飞书搜索接口使用 `httpx.AsyncClient.post`。 + - 飞书 tenant token 获取使用异步 HTTP。 + - Wiki node info、children、Docx blocks、Drive file download 使用异步 HTTP。 + - 复用现有进程内缓存和解析函数,避免同步/异步两套路由结果不一致。 +2. 新增 `AsyncRagService`: + - 权限范围和 Prompt 读取仍使用当前同步 DB session。 + - 外部飞书读取切到 async 服务。 + - 兼容当前工作区里已经存在的历史对话/摘要 prompt 签名;旧签名则自动回退。 +3. `ChatStreamService.stream_answer_async` 切到 `AsyncRagService.build_result`。 +4. 同步 `ChatStreamService.stream_answer` 保持不变,作为兼容和回退路径。 + +风险控制: + +1. 不直接编辑当前已有未提交改动的 `feishu_service.py` 和 `rag_service.py`。 +2. 不改变搜索 payload、结果解析、知识片段打分规则。 +3. 不改变用户端 SSE 协议。 +4. 本阶段仍不引入 Redis,全局缓存和全局队列放到阶段 4。