SAG 多跳检索
SAG(Semantic / Structural Augmented Graph)是 KnowFlow v2.4.3 新增的多跳检索能力。它把知识库中的文档抽取成 event(事件) 与 entity(实体) 组成的图谱,检索时可以从一篇文档命中的实体「跳」到另一篇文档的相关事件,从而跨文档串联证据,回答传统检索难以处理的复杂、多步推理类问题。
什么是 SAG
传统 RAG 检索是「一跳」的:把问题向量化,召回最相似的若干分块。对于「A 和 C 有什么关系」这类需要经过中间实体 B 才能串联的问题,一跳检索往往召回不全。
SAG 以事件为中心构建知识图谱:
- 文档入库时,SAG 会额外抽取其中的事件与实体,并建立它们之间的关联
- 同一知识库内、多篇文档提到的同一实体会合并为一个实体节点
- 检索时以整个知识库为范围进行多跳扩展:命中文档 A 的实体后,可继续跳转到文档 B 中与该实体相关的事件
SAG 的实体去重与检索都是知识库(source)级,不是单文件级。因此同一知识库内的各文档应保持一致的 SAG 开启状态。
适用场景
✅ 推荐使用:
- 需要跨多篇文档串联信息、进行多步推理的问答
- 实体关系密集的知识库(如案例库、调研报告、法规与判例)
⚠️ 谨慎评估:
- 简单的事实型问答,原生混合检索通常已经足够,不一定需要 SAG
- SAG 会带来额外的嵌入与抽取成本,建议按需在特定知识库开启
前置条件
开启 SAG 前,请确认部署环境满足以下要求:
- 已部署 SAG 服务,并通过环境变量
SAG_BASE_URL配置了服务地址(Docker 部署下通常为容器内网地址,如http://sag:4173)。SAG 服务端口仅在内网可达,不对外暴露。 - PostgreSQL 已启用 pgvector 扩展(需使用含 pgvector 的镜像,如
pgvector/pgvector:pg16)。SAG 的图谱与向量数据复用该 PostgreSQL 实例。 - 嵌入模型维度为 1024。这是 SAG 的硬性约束,当前租户的默认嵌入模型必须为 1024 维,否则无法开启。
SAG 作为独立容器与 KnowFlow 走 Docker 内网 HTTP 通信,仓库内已内置 docker/sag/ 相关编排与镜像构建产物。具体部署方式请参考安装部署文档。
开启 SAG
在知识库级开启
- 进入目标知识库,打开配置 / 设置页面
- 找到 多跳检索(SAG) 开关
- 打开开关,系统会执行以下操作:
- 校验前置条件:检查 SAG 服务是否可达、当前嵌入模型是否为 1024 维、模型是否已配置
- 自动同步模型:将 RAGFlow 当前配置的嵌入模型与用于事件/实体抽取的 LLM 同步到 SAG 服务,用户无需在 SAG 侧重复配置
- 校验与同步成功后开关生效并保存配置;若失败(如维度不符、模型未配置、SAG 不可达),系统会给出对应的错误提示
开启后会发生什么
- 文档入库双写:文档解析入库时,会在写入原有检索链路的同时,异步同步一份到 SAG 服务进行事件/实体抽取与图谱构建。该过程为后台异步任务,不阻塞入库返回。
- 删除文档自维护:删除文档时会同步从 SAG 删除,并智能保留跨文档共享的实体。
- 聊天检索自动走 SAG:知识库开启 SAG 后,聊天问答的检索会自动路由到 SAG 多跳检索,用户无感知。
开启 SAG 后,文档会被 RAGFlow 与 SAG 双重嵌入,会带来额外的嵌入成本。建议仅在真正需要多跳能力的知识库上开启,并可为 SAG 独立选用成本更低的 1024 维嵌入模型。
SAG 图谱可视化
知识库开启 SAG 并有数据后,左侧导航会出现 SAG 图谱 标签:
- 进入后自动拉取该知识库最新的事件/实体图谱
- 以力导向图(Force Graph)方式渲染,节点按类型(实体 / 事件)着色
- 鼠标悬停可查看节点详情
在检索测试中对比 SAG
检索测试页是验证 SAG 价值、对比两种检索效果的地方:
- 进入知识库的 检索测试 页
- 勾选 使用知识图谱 开关
- 若该知识库已开启 SAG,检索会自动切换到 SAG 多跳检索(否则走默认检索)
- 结果面板会展示多跳推理的检索链路与各阶段耗时,并保持引用溯源与 chunk 高亮和传统 RAG 对齐
检索测试页本身是调试/对比工具,保留显式的「使用知识图谱」开关,可以直接对比 SAG 与原生混合检索的效果,方便验证 SAG 是否带来提升。真实聊天检索才是「开了就自动走」。
常见问题
Q:SAG 会改动原有的检索链路吗?
不会。SAG 是「加法」式集成,原有 RAGFlow 检索链路零改动,可随时关闭 SAG 回退到原生检索。
Q:为什么开关打不开,提示维度不符?
SAG 要求嵌入模型为 1024 维。请在模型配置中将该租户的默认嵌入模型切换为 1024 维模型后再开启。
Q:开启后立刻检索为什么没有 SAG 结果?
文档到 SAG 的双写是异步后台任务,入库后图谱可能尚未构建完成。请稍候片刻,待抽取任务完成后再检索。