RAGSpine
核心概念

术语表

RAGSpine 术语——每个词条一条精确定义,全部以代码库为依据。

项目术语,按字母顺序排列。每个词条均按其在代码库中的实际用法定义;深入了解请参阅所链接的概念页面。

防编造机制守卫(Anti-fabrication guard)

当结构化通道未返回 found 事实时,编排器中将答案改写为"未找到"的那个步骤。它在控制流(agent/agent.py)中强制执行,而不是靠提示词。参见防编造机制

Chunk store

基于 sqlite 的叙事文档 chunk 存储(retrieval/chunking/chunk_store.py)。每个 chunk 携带 doc_id + source_locator(NOT NULL)以及元数据(titleentityperiodsensitivity 等)。当前行还持久化 parent_idheadingwindow_textparent_locator,用于仅供生成使用的 small-to-big/窗口扩展。

Economy 检索模式

economy / bm25 / lexical 服务预设。它既不构造 embedding 后端也不构造向量库,仅执行词法检索。

澄清网关(Clarification gateway)

该步骤(clarify_scopeagent/intent.py)通过一种刻意的不对称来决定:是_先追问_(缺失指标)、带着显式假设作答(缺失实体/期间),还是_拒绝_(作用域之外的实体)。

复合(路由)

一个既是数值型又是叙事型的问题(识别出的指标 + 叙事线索)。agent 先运行结构化路径,再追加一个叙事归因部分。

双通道

结构化数值路径 + 叙事 RAG 路径,二者确定性地运行,并且——对复合问题——进行比较与合并。参见双通道

dim_key

对事实的_身份_维度(metricentitychannelperiod)计算出的规范化排序 JSON 自然键。它是事实存储中 UNIQUE upsert 的冲突键;仅存在于存储层,写入时重新计算——绝不是 Fact 的字段。

fact_metric

存放所有结构化数值事实的 sqlite 表,每行对应一个指标 × 实体 × 期间 × 渠道组合,并带有完整血缘(source_doc_idsource_locator)。由 storage/fact_store.py 支撑。

FAQ 短路

一个经 SME 审核的问题→答案缓存(service/faq/),绕过 LLM,位于防编造机制守卫之前、保守排除规则之后。参见 FAQ 短路

found / not_found / unrecognized_param

query_metric 工具返回的三态:存在值(found)、无匹配行(not_found),或某个参数无法归一化为受控代码(unrecognized_param)。结构化通道绝不返回猜测值。

术语表(同义词归一化)

将中/英/缩写同义词归一化为受控指标 / 实体 / 期间代码的映射层(common/glossary.py)。对任何无法识别的输入返回 None 而不是猜测——它是结构化通道的入口。

本方公司 / CompanyProfile

部署方自己的公司身份、指标、实体和竞争对手列表,从配置(config/company.example.toml)加载。任何地方都没有硬编码的公司;"ACME" 只是虚构的演示 profile。

意图槽位(Intent slots)

由意图解析器从问题中提取、用于路由和查询的四个解析槽位——metricentityperiodchannelagent/intent.py)。

历史轮次(History turn)

传给 answer_question(history=...)/v1/ask(role, text) 元组。历史仅作为 LLM 生成上下文;它被排除在意图/安全决策、检索查询和证据之外。

IR / StyledGrid

文档在被摄取进事实存储和 chunk 存储之前,被抽取成的冻结中间表示(感知样式与颜色)。

IntentParser(Protocol)

意图提取的可插拔缝(ADR 0010)。默认是零 LLM、配置驱动的 RuleIntentParser安全不可插拔——安全门独立于解析器,从原始问题重新推导作用域。

Listwise 重排

可选的第二遍重排器(retrieval/rerank/listwise_rerank.py),将头部候选发送给 LLM 评审进行相关性排序,任何失败都回退到 RRF 顺序。RESTRICTED 候选绝不进入评审提示词。

MockProvider

确定性、离线的 LLMProvider 实现(agent/llm_provider.py)。让核心在没有 API key 的情况下完全离线运行——演示和测试的默认选择。

叙事通道

面向"为什么 / 发生了什么"类问题的 RAG 路径:混合检索 → 可选重排 → 带引用的合成。默认链是纯 BM25 + RRF(未接入向量后端)。

元数据过滤器

对 chunk 元数据的经过校验的收窄谓词。支持的运算符为 eqneinningtgteltltebetween;过滤保持传入结果的顺序。

多索引检索

逐库检索后进行 RRF 融合。每个结果保留 library_id 来源;路由失败时回退到所有已配置的库。

父子扩展

Small-to-big 检索:由子块决定排名和引用,而持久化的父块/窗口文本成为单独的、仅供生成使用的 prompt_text。受限子块与其窗口一起被丢弃。

来源溯源(Provenance)

每个事实、chunk 和答案携带的 source_doc_id(chunk 为 doc_id)+ source_locator。端到端携带,绝不丢弃。参见来源溯源

Protocol

一个类型化的 Protocol 边界,在此注入外部依赖(LLM provider、embedding 后端、listwise 评审、OCR 后端、叙事检索器、任务队列)。核心不 import 任何 SDK,只依赖这些抽象。

预览协议 v1

仅用于展示的工作流投影,包含版本、脱敏后的节点/边和确定性几何信息。它不包含任何提示词、变量、provider、凭据或可执行配置。

query_metric

结构化通道的 function-calling 工具(agent/query_tools.py)。通过术语表归一化其参数,查询 fact_metric,并返回带血缘的三态结果——绝不返回编造的数字。

Reciprocal Rank Fusion(RRF)

在混合检索中融合 BM25 与向量排名的排名融合方法(rrf_fusek=60);每个排名为条目的融合得分贡献 1 / (k + rank)

RESTRICTED 隔离

RESTRICTED 级内容在到达提示词之前,会在两个出口(retrieval/linkretrieval/rerank)被剥离的不变量。参见 RESTRICTED 隔离

审核队列

面向低置信度或存在冲突的已摄取条目的人工(SME)审核队列状态机(ingestion/review/)。与异步作业队列不同;事实的 review_status(如 pendingapprovedrejectedblocked)控制其查询可见性。

安全门

确定性、永不可插拔的前门(agent/security_gate.py,ADR 0010),通过最长匹配检测外部/竞争对手实体,用等长空格掩码它们,并在任何工具 / 检索器 / LLM 调用之前拒绝作用域之外的问题。

敏感级别

逐 chunk 的分级(common/sensitivity.py):默认 INTERNAL,由确定性、配置驱动、失败安全的信号升级为 RESTRICTED

结构化通道

确定性的数值路径:术语表归一化 → 对 fact_metric 存储执行 query_metric → 从事实值渲染答案,并附带血缘。绝不臆造数字。

工作流目录

由包持有、供 scaffold 命令和网站使用的模板。它包含 7 个精选工作流和 993 个生成的描述符,覆盖 39 个行业、27 个用例和五种原型。上游 Dify/n8n 页面仅作为来源元数据;其工作流配置既不再分发,也不会在运行时下载。

工作流脚手架

一个纯配置操作:显式选择或语义匹配目录模板,否则生成固定的 Dify 0.6 start → llm → end 图。它返回配置,但既不写入也不执行;CLI 单独负责安全的文件输出。

本页目录