diff --git a/DEPTH_ROADMAP.md b/DEPTH_ROADMAP.md index e5a5f54..4ae6891 100644 --- a/DEPTH_ROADMAP.md +++ b/DEPTH_ROADMAP.md @@ -69,15 +69,25 @@ - 验收 ✅ live:active=死 ollama 主 + deepseek 备 → 任务连主拒连→自动切 deepseek→4s 完成。 - v1 局限:Stream 仅建流同步报错时切(已回流 token 的中途失败不切)。 -### [~] T2.2 RAG 深度(三路做实✅;离线质量评测待补) +### [x] T2.2 RAG 深度(三路做实✅;离线质量评测✅) 实测纠正:RAG 三路(向量/全文/图谱)+RRF+rerank 早已实现,之前"降级/桩"全是基建没起的假象。 基建拉起后发现真问题:**对中文只有向量路在干活**(`hybrid: 向量=1 全文=0 图谱=0`)。 - [x] 修全文路:Bleve 默认分词器不切中文 → text 字段改 cjk 分词器(bigram),kb/doc 用 keyword - [x] 修图谱路:`$q CONTAINS a.name` 漏后缀错配(查"星云一号"漏实体"星云一号卫星")→ 加查询 字符 n-gram(2..8) 双向子串匹配 - [x] live 验证:同查询 `向量=1 全文=0 图谱=0` → `向量=1 全文=1 图谱=9`,三路全活;中文混合 1/3→3/3 -- [ ] 检索质量度量(离线评测集 recall@k/MRR + 混合 vs 单路对比)—— 待补,量化"混合比单路好多少" -- 验收:三路都真出结果✅;可度量待补。 +- [x] 检索质量度量(离线评测集 recall@k/MRR + 混合 vs 单路对比)—— `scripts/rageval.py` 可复用评测台; + 引擎加 `SearchByMode`(vector/fulltext/graph/hybrid 纯检索),kb_search 加 mode 参数。 + **live 跑分(24篇语料/16查询,含纯语义改写)**: + | 模式 | recall@5 | MRR | 纯语义改写 | + |---|---|---|---| + | vector | 1.00 | ~0.9 | 4/4 | + | fulltext | 0.88 | 0.77 | **2/4** | + | graph | 0.75 | 0.59 | **1/4** | + | **hybrid** | **1.00** | ~0.9 | **4/4** | + 结论:关键词/实体查询各路都强;**纯语义改写让全文/图谱漏召回,混合兜回 4/4**—— + 混合 = 各路上界的稳健组合,recall 始终 ≥ 最佳单路。图谱路最弱(依赖 LLM 抽取+实体匹配)。 +- 验收 ✅:三路都真出结果 + 质量可度量、混合价值量化(稳健兜底)。 ### [~] T2.3 Prompt 版本管理 + 输出缓存(缓存半做) - [x] 模型输出缓存:`cachingModel`(llm/cache.go)包在 failover 外层,缓存 Generate(非流式), @@ -130,7 +140,7 @@ |---|---| | T0 激活 | 2 / 2 ✅ | | T1 收口 | 1 / 2 | -| T2 深化 | 1 / 4 | +| T2 深化 | 3 / 4 | | T3 硬化 ⏸ | 0 / 5 | > 推进顺序:T0.1 → T0.2 → T1.1 → T1.2 → T2.1 → T2.4(三段✅) → **T2.4 P0 Bleve 落盘** → … → (T3 按需)。