From e85e958389ae72153417d33c0d9d1d075f06cee2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8D=BF=E4=BA=91=E7=A7=8B=E6=9C=88?= <15273589815@163.com> Date: Mon, 14 Sep 2026 20:41:34 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8E=92=E9=9A=9C=E8=A1=A8=E8=A1=A5=E4=B8=80?= =?UTF-8?q?=E6=9D=A1=EF=BC=9A=E6=89=80=E6=9C=89=E9=A1=B5=E9=9D=A2=E4=B8=80?= =?UTF-8?q?=E8=B5=B7=E5=8D=A1=20=E2=86=92=20Milvus=20=E6=8A=96=E5=8A=A8=20?= =?UTF-8?q?+=20=E5=90=8C=E6=AD=A5=E8=B0=83=E7=94=A8=E9=98=BB=E5=A1=9E?= =?UTF-8?q?=E4=BA=8B=E4=BB=B6=E5=BE=AA=E7=8E=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## 为什么补这一条 把审查报告的 P1–P3 共 45 项按 8 个演示场景筛完,**"会砸演示"的是 0 条** (P0 四条已全修)。剩下的分两类:37 项演示路径根本走不到,8 项是"边缘" (平时无感、特定条件才暴露)。 这 8 项里只有 **P1-2** 属于"一处慢、全平台卡":检索层用的是**同步** Milvus 客户端, 单次 `search` 卡 3 秒会让整个 API 进程停摆 3 秒,连 Worker 心跳一起停。 它同时也是**最容易被误判**的一个 —— 现象是"客服、风控、看板一起变慢", 而排障表原有的 6 条全是**单点**故障(503 行情 / Worker 没起 / 浏览器缓存 / 知识库没同步 / MySQL 没起 / 风控样本用完),**没有一条对得上"全场同时变慢"**。 没有这一条,现场会往"服务挂了"的方向查,而它其实是外部依赖抖动、不需要改代码、 也不需要重启。 所以这条的价值不在改代码,而在**把一个边缘隐患变成一眼能认出的现象**: 演示版本选择不修 P1-2(Milvus 正常时完全无感),代价就是必须知道它长什么样。 ## 依据(都是会话内实际核过的) - 客服链路确认:`app/service/knowledge_tool.py:29` 的 `search_knowledge` 工具 → `get_knowledge_search_service().search(...)`; 而 `knowledge_search_service.py:207-213 / 224 / 229` 调的是**同步** `MilvusClient` (`app/infrastructure/vector_memory.py` 的 `def search(...)`,非 `async def`)。 - 对照:项目在其它 10+ 处已用 `asyncio.to_thread`(如 `app/infrastructure/fund_market_adapter.py:273/382`),说明异步规范已建立, 这 4 处是遗漏 —— 但**不是演示阻塞项**,本次不改。 - "风控日报会不会砸"(P1-6,报告标了【确定】)也核过了:`_distribution` 的 `counts` 键是字段**值**,两个调用点用的 `risk_level`(中文高/中/低)与 `alert_type` 都是字符串,`str(key) == key` 恒成立,**触发不了** —— 场景 6 安全。 ## 改动范围 只改 `docs/44-演示流程.md` 的 §4 排障表,**新增一行**,未动其它内容。 --- docs/44-演示流程.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/44-演示流程.md b/docs/44-演示流程.md index 7910495..b10d3fd 100644 --- a/docs/44-演示流程.md +++ b/docs/44-演示流程.md @@ -320,6 +320,7 @@ A:**这项本期是占位值,不是真实算出来的**,不回避这一点 |---|---|---| | 客户下单返回 `503 行情已过期` | 行情快照过期(**有效期仅 15 分钟**) | `python tools/sync_market_prices.py` —— **立即生效,无需重启服务** | | 客服一直"繁忙/超时" | **Worker 没在跑** | 看 `start.ps1` 起的第二个窗口;或 `python -m app.worker` | +| **所有页面一起变慢/卡住**(不是某一个请求超时,而是客服、风控、看板**同时**迟钝) | 检索层用的是**同步** Milvus 客户端,单次 `search` 卡住会**阻塞整个 API 进程**(连 Worker 心跳一起停)—— 已知项,见 `docs/演示用/代码库全面审查报告-2026-09-14.md` **P1-2** | 先在 Docker Desktop 确认 Milvus 在跑;**不用改代码也不用重启** —— Milvus 恢复后自动正常。这条是「演示版本不修、但要能一眼认出」的典型:平时完全无感,只有 Milvus 抖动时才现形 | | 改了页面看不到效果 | 浏览器缓存 | `Ctrl+F5` 硬刷新 | | 知识库问答答不上 | 向量没同步 | 确认 Worker 在跑,然后跑 `tools/seed_knowledge_demo.py` | | 平台起不来 | MySQL 没起 | 看 `start.ps1` 的依赖检查输出 |