# LambdaRAG TODO List > 基于 Maritime 180题 (90.8%) + Finance 95题 (55%) 实验结果 > 综合自身问题分析 + 业界最佳实践 (CRAG/RAGAS/GraphRAG/FAIR-RAG等) > 2026-04-08 --- ## P0 — 立即可做 (< 30 min each, 高回报) ### P0-1: 修复 graph keywords 错误 - **问题**: `[graph] Error: 'keywords'` 每次查询都报错 - **原因**: 规则分类路径返回的 dict 没有 `keywords` 字段 - **改动**: `search_unified.py` 的 `_rule_based_entities` 确保返回 keywords - **文件**: `search_unified.py` - **预期**: 消除报错,graph 路径正常工作 ### P0-2: 分类规则增加领域词 + 优先级排序 - **问题**: Finance 意图准确率 46%, Maritime 60% - **原因**: process/compare 边界模糊,"能不能报销"同时命中两个 - **改动**: - process 关键词优先于 compare(先匹配 process) - Finance 增加: 报销/预约/退回/建账/扣税/签字/审批/发放 - Maritime 增加: 检验/登记/适任/发证/申请/备案 - 改为评分制而非先命中返回 - **文件**: `search_unified.py` intent_entity_extract - **预期**: 意图准确率 +15-20% ### P0-3: 查询日志 (JSONL) - **问题**: 无法追踪哪些问题失败、哪些策略有效 - **改动**: 每次查询后 append 到 `feedback/query_log.jsonl` ```json {"ts":"2026-04-08T12:00:00", "query":"...", "intent":"fact", "strategy":"v3(fact|...)", "has_result":true, "elapsed":3.2, "path_counts":{"bm25":10,"vector":8,"graph":3,"wiki":2}} ``` - **文件**: `search_unified.py` search() 末尾 - **预期**: 数据基础,后续所有优化的度量依据 ### P0-4: "未找到"记录到 feedback - **问题**: Finance 45题未找到,不知道缺什么文档 - **改动**: 当回答含"未找到"时,记录到 `feedback/missing_queries.jsonl` - **文件**: `app.py` rag_answer() + `search_unified.py` - **预期**: 指导知识库补充,定期分析哪些问题需要新文档 --- ## P1 — 本周内 (< 2hr each, 显著提升) ### P1-1: Corrective RAG — 检索质量门控 - **问题**: 检索到不相关文档但仍生成回答(如行政清单 vs 法律原文) - **改动**: RRF 融合后、生成前,用 LLM 快速评估 top-3 文档相关性 - 相关性 < 0.4 → 自动改写 query 重新检索(retry 1次) - Lambda: `Guard(fusion_search, quality_check, retry=1, on_fail=reformulate)` - **文件**: `search_unified.py` 新增 `_check_retrieval_quality` - **预期**: 减少"未找到"5-10题,减少错误回答 ### P1-2: compare 类跳过实体增强 - **问题**: compare 类 v3 比 v2 下降 4%(93→89%) - **原因**: 实体增强把两个法律名扩展为更多词,反而稀释了精确匹配 - **改动**: `entity_enhanced_search` 中 compare 类用原始 query 不做增强 - **文件**: `search_unified.py` - **预期**: compare +4% 回到 93% ### P1-3: FAIR-RAG 内联证据评估(改 prompt) - **问题**: LLM 有时生成无依据的内容 - **改动**: answer prompt 增加要求:每个论点标注 `[证据:doc_id, 置信度:0-1]` - 置信度 < 0.7 的论点不输出 - **文件**: `instance.yml` 的 prompts.fact_answer / process_answer - **预期**: 减少编造,提高引用准确性 ### P1-4: 语义查询缓存 - **问题**: 重复问题每次都要全量检索 + LLM - **改动**: - 查询前 embed query → 对比缓存 → 相似度 > 0.92 返回缓存 - 缓存存: `feedback/query_cache.json` (LRU 1000条, TTL 4hr) - **文件**: `search_unified.py` search() 开头加缓存检查 - **预期**: 30-50% 缓存命中,延迟 12.5s → 0.5s ### P1-5: temporal 时间展开 - **问题**: temporal 类 82%,"近五年"等模糊时间无法匹配 - **改动**: 检测到时间模糊词时,自动展开为绝对年份 - "近五年" → "2021年 2022年 2023年 2024年 2025年" - "最新" → 当前年份 - **文件**: `search_unified.py` 或 `_path_bm25` 中增加时间展开 - **预期**: temporal +5-10% --- ## P2 — 下周 (< 1天 each, 架构提升) ### P2-1: RAGAS 自动评估框架 - **问题**: 只有关键词命中率,无法评估回答质量 - **改动**: 新增 `eval_ragas.py` - 3 个指标: faithfulness, relevancy, context_precision - 用本地 vLLM 做 LLM-as-judge - 批量评估 + 结果存 `feedback/eval_results.jsonl` - **文件**: 新文件 `scripts/eval_ragas.py` - **预期**: 每次改动有量化评估,回归测试 ### P2-2: 上下文分块 (Contextual Chunking) - **问题**: "本条例"、"上述规定"等指代不明 - **改动**: build_vector_index.py 中,每个 chunk 前加 LLM 生成的上下文 - `"[文件:《海上交通安全法》第三章 船舶检验] 原文内容..."` - **文件**: `build_vector_index.py` - **预期**: 向量检索准确率 +10%,一次性重建索引 ### P2-3: 领域同义词表 - **问题**: "适任证书"vs"资格证书","报销"vs"列支",检索不互通 - **改动**: - 新增 `feedback/synonym_map.json` - BM25 tokenize 时自动展开同义词 - 从 query_expand 历史中积累 - **文件**: `search_engine.py` tokenize + `feedback/synonym_map.json` - **预期**: 检索召回 +5% ### P2-4: MinerU 深度文档解析 - **问题**: 84个扫描版 PDF 无法提取,表格结构丢失 - **改动**: 用服务器已有的 MinerU Docker 镜像替代 PyMuPDF - **文件**: 新文件 `scripts/extract_mineru.py` - **预期**: +84 个文件可检索,表格质量提升 ### P2-5: 路由成功率统计 + 自适应权重 - **问题**: 权重是手动调的,不同领域需要不同权重 - **改动**: - 从 query_log.jsonl 统计各 (intent, strategy) 的成功率 - 每 100 次查询自动更新 `feedback/routing_stats.json` - 用成功率加权替代固定权重 - **文件**: `search_unified.py` + 新文件 `scripts/update_routing.py` - **预期**: 自动调优,适配不同领域 --- ## P3 — 长期 (架构演进) ### P3-1: MA-RAG 多智能体分解 - 复杂问题先分解为子问题,各自检索后合并 - 对应现有的 `map_reduce` pattern + `DeepAnalysis` tool ### P3-2: LazyGraphRAG 增量图谱 - 每次查询结果中提取新关系,增量更新图谱 - 对应现有 knowledge_feedback 设计 ### P3-3: 更强模型重编译 Wiki - 用 72B+ 模型重新编译 Wiki,提升摘要和关系质量 ### P3-4: 用户反馈收集 - Web Demo 加 👍/👎 按钮,收集用户反馈 - 用反馈训练分类器和调整权重 --- ## 完成进度追踪 | ID | 状态 | 完成日期 | |----|------|---------| | P0-1 | ✅ | 2026-04-08 | | P0-2 | ✅ | 2026-04-08 | | P0-3 | ✅ | 2026-04-08 | | P0-4 | ✅ | 2026-04-08 | | P1-1 | ✅ | 2026-04-08 | | P1-2 | ✅ | 2026-04-08 | | P1-3 | ⬜ | | | P1-4 | ⬜ | | | P1-5 | ✅ | 2026-04-08 | | P2-1 | ⬜ | | | P2-2 | ⬜ | | | P2-3 | ⬜ | | | P2-4 | ⬜ | | | P2-5 | ⬜ | |