多粒度检索
项目地址:https://github.com/WiSiW/AI-RAG
实现内容
- L1 章节摘要块
- 按章节/小节聚合 L2 chunk,并调用增强模型生成 150–300 字摘要,附带章节标题。
- 向量表示类型为 l1_summary,同时进入 BM25。
- 模型失败时使用 L2 摘要拼接回退,并标记为 degraded。
- L2 段落级语义块
- 保留现有分块与 ID,默认 512 token,可继续通过知识库配置使用 512–1024 token。
- 保留 original/summary/question 多表示向量和 BM25 索引。
- L3 原子块
- 从 L2 中抽取关键句、表格行、参数行、代码行、错误/异常行。
- 每个 L2 最多生成 8 个 L3 原子块。
- 表示类型为 l3_atomic,仅写入密集向量索引。
- 元数据包含 parent_chunk_id、父 chunk 序号、页码、元素类型和抽取原因。
- 检索
- 新增 l1 和 l3 召回路由。
- 默认权重:bm25=1.0、l1=0.8、original=1.0、summary=1.0、questions=1.0、l3=0.6,支持按知识库调整。
- L3 命中结果保留父段落关联,经由 PostgreSQL 回填原始粒度内容。
- 数据与回填
- document_chunks 新增 granularity_level、granule_type、parent_chunk_id,并自动兼容旧数据库。
- 存量知识库可通过“重建增强索引”重新生成 L1/L3;L2 的 chunk_id 和正文保持稳定。
- API、文档预览和检索质检页面已展示粒度、元素类型、父块和 L1/L3 路由信息。
最后更新: 2026年11月03日 15:01