多粒度检索

项目地址: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