Document async Feishu retrieval plan
This commit is contained in:
@@ -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。
|
||||
|
||||
Reference in New Issue
Block a user