Skip to main content

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 前,请确认部署环境满足以下要求:

  1. 已部署 SAG 服务,并通过环境变量 SAG_BASE_URL 配置了服务地址(Docker 部署下通常为容器内网地址,如 http://sag:4173)。SAG 服务端口仅在内网可达,不对外暴露。
  2. PostgreSQL 已启用 pgvector 扩展(需使用含 pgvector 的镜像,如 pgvector/pgvector:pg16)。SAG 的图谱与向量数据复用该 PostgreSQL 实例。
  3. 嵌入模型维度为 1024。这是 SAG 的硬性约束,当前租户的默认嵌入模型必须为 1024 维,否则无法开启。
部署说明

SAG 作为独立容器与 KnowFlow 走 Docker 内网 HTTP 通信,仓库内已内置 docker/sag/ 相关编排与镜像构建产物。具体部署方式请参考安装部署文档。

开启 SAG

在知识库级开启

  1. 进入目标知识库,打开配置 / 设置页面
  2. 找到 多跳检索(SAG) 开关
  3. 打开开关,系统会执行以下操作:
    • 校验前置条件:检查 SAG 服务是否可达、当前嵌入模型是否为 1024 维、模型是否已配置
    • 自动同步模型:将 RAGFlow 当前配置的嵌入模型用于事件/实体抽取的 LLM 同步到 SAG 服务,用户无需在 SAG 侧重复配置
  4. 校验与同步成功后开关生效并保存配置;若失败(如维度不符、模型未配置、SAG 不可达),系统会给出对应的错误提示

开启后会发生什么

  • 文档入库双写:文档解析入库时,会在写入原有检索链路的同时,异步同步一份到 SAG 服务进行事件/实体抽取与图谱构建。该过程为后台异步任务,不阻塞入库返回。
  • 删除文档自维护:删除文档时会同步从 SAG 删除,并智能保留跨文档共享的实体
  • 聊天检索自动走 SAG:知识库开启 SAG 后,聊天问答的检索会自动路由到 SAG 多跳检索,用户无感知。
成本提示

开启 SAG 后,文档会被 RAGFlow 与 SAG 双重嵌入,会带来额外的嵌入成本。建议仅在真正需要多跳能力的知识库上开启,并可为 SAG 独立选用成本更低的 1024 维嵌入模型。

SAG 图谱可视化

知识库开启 SAG 并有数据后,左侧导航会出现 SAG 图谱 标签:

  • 进入后自动拉取该知识库最新的事件/实体图谱
  • 以力导向图(Force Graph)方式渲染,节点按类型(实体 / 事件)着色
  • 鼠标悬停可查看节点详情

在检索测试中对比 SAG

检索测试页是验证 SAG 价值、对比两种检索效果的地方:

  1. 进入知识库的 检索测试
  2. 勾选 使用知识图谱 开关
  3. 若该知识库已开启 SAG,检索会自动切换到 SAG 多跳检索(否则走默认检索)
  4. 结果面板会展示多跳推理的检索链路与各阶段耗时,并保持引用溯源与 chunk 高亮和传统 RAG 对齐
为什么测试页不自动走 SAG

检索测试页本身是调试/对比工具,保留显式的「使用知识图谱」开关,可以直接对比 SAG 与原生混合检索的效果,方便验证 SAG 是否带来提升。真实聊天检索才是「开了就自动走」。

常见问题

Q:SAG 会改动原有的检索链路吗?

不会。SAG 是「加法」式集成,原有 RAGFlow 检索链路零改动,可随时关闭 SAG 回退到原生检索。

Q:为什么开关打不开,提示维度不符?

SAG 要求嵌入模型为 1024 维。请在模型配置中将该租户的默认嵌入模型切换为 1024 维模型后再开启。

Q:开启后立刻检索为什么没有 SAG 结果?

文档到 SAG 的双写是异步后台任务,入库后图谱可能尚未构建完成。请稍候片刻,待抽取任务完成后再检索。