RAGSpine
架构决策(ADR)

ADR 0005: 精简核心——把休眠能力隔离为 experimental/extras

只交付在默认离线路径上真正运行的部分;把 OCR、真实语义向量和双通道校验器移入清晰标注的实验模块/extras。

状态:accepted · 日期:2026-06-17

不可变记录。免于漂移追踪(无 covers)。取代,而不是编辑。

隶属于 0002 产品方向。以 0003 为前置。

背景

几乎每个子系统都带着已建成、已测试却未接入运行流水线的代码:OCR 扫描版 PDF 抽取器(停在审核队列里,从未被调用)、双通道校验器(孤儿代码,只有它自己的测试在调用)、向量通道(完全接线,但唯一的离线后端是一个自我声明非语义的词法哈希;真实 embedding 推迟到 GPU 基础设施)、颜色图例检测(仅测试使用)、一个 OpenAIProvider 桩,以及两套并行的抽取家族(遗留的 extract_facts vs StyledGrid)。对一个供人评估的库来说,看似死掉、实际不运行的代码是信任问题。

决策

交付一个精简核心,只包含在默认离线路径上真正运行的部分:BM25 + 结构化通道 + agent + 防编造机制。把 OCR、真实语义向量和双通道校验器移入清晰标注的实验模块 / extras,在文档中说明为"已接线、需要 GPU/extra、不在默认保证范围内"。保留一条在用的抽取路径(淘汰或隔离遗留/StyledGrid 的重复)。每个实验模块只有在拥有真实、经 CI 测试的路径后,才提升进核心。

曾考虑的备选方案(已否决)

  • 在任何 1.0 之前全部接入(方案 A):给向量配一个真实的离线 CPU 模型、增加 OCR CI 通道、连上校验器。因当下过重而否决(对逐个赢得提升资格的模块而言,这是最终方向)。
  • 保持现状、诚实记录(方案 C):维持"交付契约、推迟激活"的姿态,只把差距列出来。否决——读起来就是"看着唬人却不运行的代码"。

后果

  • 默认的 pip install 体验诚实且可端到端运行,代价是默认非语义(与 0009 的精简默认一致)。
  • README 的"诚实差距"必须清晰标出每一个实验模块。
  • 定义了提升标准:一个模块只有在拥有真实的 CI 测试路径、且(对检索而言)支撑起 0006 中的基准时,才进入核心。

本页目录