news 2026/1/16 7:26:57

RAGFlow 2

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
RAGFlow 2

这段文字介绍的是 RAGFlow 的“标签集(Tag Sets)”功能。

简单来说,这是一个结构化筛选机制。它允许你给上传的文件打上特定的“标签”,然后在检索时,强制系统只在带有特定标签的文件范围内进行搜索,而不是大海捞针。

这相当于给你的知识库加上了类似电商网站的“筛选器”(比如只看“品牌:Apple”且“价格:5000以上”的商品)。


1. 功能核心逻辑与实例说明

核心逻辑
  • 传统 RAG:用户问“预算是多少?”,系统在所有文件中搜索,可能搜出 IT 部门的预算、食堂的预算、两年前的预算,结果很乱。
  • 带 Tag 的 RAG:系统预先定义维度(如“部门”、“年份”)。检索时,限定部门=IT年份=2024,系统在符合条件的文件里找“预算”。
场景实例:跨国公司的合同管理

假设你有一个庞大的知识库,存放了公司 10 年来所有的合同文档。

1. 标签定义(设置阶段):
管理员在 RAGFlow 后台定义两组标签:

  • Tag Key 1:地区(Values: 中国区, 北美区, 欧洲区)
  • Tag Key 2:合同类型(Values: 采购, 销售, 租赁)

2. 文件打标(上传阶段):

  • 上传《2024年北京办公室租赁协议.pdf》 -> 打标:地区=中国区合同类型=租赁
  • 上传《2023年纽约服务器采购单.pdf》 -> 打标:地区=北美区合同类型=采购

3. 用户提问(使用阶段):

  • 场景 A(无标签):用户问“所有的租赁违约金比例是多少?”

    • 结果:RAGFlow 会把北京的、纽约的、甚至 10 年前的租赁合同混在一起回答,LLM 可能会产生幻觉或给出错误的数据拼接。
  • 场景 B(使用 Tag Sets):用户(或 Agent)在聊天设置中勾选标签地区=中国区

    • 结果:RAGFlow物理屏蔽掉所有非中国区的文件。
    • LLM 回答:“根据中国区的租赁协议,违约金比例通常为年租金的 20%。”(非常精准,绝不会混入北美的数据)。

2. 功能实现链条 (Implementation Chain)

这个功能的实现链条比 TOC 简单,因为它主要涉及元数据管理(Metadata Management)数据库过滤(DB Filtering)

第一阶段:标签定义与绑定 (Configuration & Binding)
  1. Schema 定义:

    • 动作:管理员在系统层面定义 Tag Key(标签名)和对应的可选 Values。
    • 数据结构:类似于{"Department": ["HR", "IT", "Sales"]}
  2. 文件入库与打标 (File Upload & Tagging):

    • 动作:上传文件时,前端 UI 弹窗让用户选择标签。
    • 绑定:系统将文件 ID 与选定的标签进行关联。
    • 继承:这个标签属性会被该文件切分出来的每一个 Chunk(切片)所继承。
  3. 向量存储 (Storage):

    • 动作:存入向量数据库(Elasticsearch/Infinity/Milvus)。

    • 关键点:存进去的数据不仅包含向量(Vector),还包含元数据字段(Metadata Fields)。

    • 数据形态:

      {"content":"租赁违约金为20%...","vector":[0.12,0.55,...],"tags":{<--关键字段"地区":"中国区","合同类型":"租赁"}}
第二阶段:带过滤的检索 (Filtered Retrieval)
  1. 用户查询构造 (Query Construction):

    • 输入:用户提问“违约金多少?” +前端勾选/API指定Filter: {"地区": "中国区"}
  2. 预过滤 (Pre-filtering) ——性能与精度的关键

    • 动作:在进行向量相似度计算之前,向量数据库先执行过滤操作。
    • 逻辑:SELECT * FROM chunks WHERE tags.地区 == '中国区'
    • 效果:假如库里有 100 万个切片,只有 1 万个属于中国区,那么系统通过标签瞬间排除了 99% 的干扰项。
  3. 向量搜索 (Vector Search):

    • 动作:仅在那剩下的 1 万个切片中,寻找与“违约金多少”语义最相似的切片。
  4. 生成回答:

    • 动作:LLM 拿到精准的切片,生成答案。

总结:Tag Sets 与 TOC 的区别

为了让你更清楚,我把刚才解释的 TOC 和现在的 Tag Sets 做个对比:

功能TOC (提取目录)Tag Sets (标签集)
作用对象文档内部的结构文档之间的分类
解决痛点解决“断章取义”,补充上下文解决“大海捞针”,排除无关干扰
实现方式它是内容的补充(把目录文字塞进 Chunk)它是硬过滤器(利用数据库字段做 Filter)
形象比喻读书时,看某一页的同时,旁边放着目录大纲。进图书馆时,只走进“历史类”书架,不看“科幻类”。

Tag Sets 的价值在于:当你的知识库非常庞大且混杂时,它是保证回答准确性(避免张冠李戴)的最有效、成本最低的手段。

RAPTOR

这段文字介绍的是RAPTOR (Recursive Abstractive Processing for Tree-Organized Retrieval)功能。

简单来说,RAPTOR 是一种**“递归摘要”技术。它的目的是让 RAG 系统不仅能回答细节问题,还能回答宏观的、需要综合全篇内容**的问题。

如果把普通 RAG 比作“用放大镜找细节”,那么 RAPTOR 就是“先用无人机拍全景,再用放大镜找细节”。


1. 核心功能与实例说明

痛点:普通 RAG 的局限性

普通 RAG 是把文档切成小块(Chunk)。

  • 如果你问:“合同里第3条罚款是多少?”(细节题),普通 RAG 很强。
  • 如果你问:“这份合同主要讲了哪些风险?”(宏观概括题),普通 RAG 就傻眼了。因为它检索到的都是零散的碎片,缺乏一个“概括性”的切片来回答这个问题。
RAPTOR 的解决方案

RAPTOR 会在后台自动把这些碎片聚类,然后让 LLM 写摘要,形成一个“树状结构”。

场景实例:一家科技公司的《年度战略规划报告》

这份报告有 100 页,内容很杂,涉及财务、技术研发、市场营销等。

1. 构建 RAPTOR 树(索引阶段):

  • 底层(Level 0 - 原始切片):

    • 切片 A:“Q1 投入研发资金 500 万…”
    • 切片 B:“Q2 招聘 AI 算法工程师 10 人…”
    • 切片 C:“下半年将在华南地区开设 5 家分店…”
    • 切片 D:“建议预留 20% 预算应对原材料涨价…”
  • 中层(Level 1 - 聚类摘要):

    • 系统发现 A 和 B 都在讲技术,于是把它们聚在一起,让 LLM 写个摘要:
    • 摘要节点 1:“上半年重点在于加大 AI 研发投入,包括资金与人才。”
    • 系统发现 C 和 D 都在讲运营和风控,聚在一起写个摘要:
    • 摘要节点 2:“下半年侧重市场扩张及供应链风险控制。”
  • 顶层(Level 2 - 全局摘要):

    • 系统把“摘要节点 1”和“摘要节点 2”再聚在一起,写出最终摘要:
    • 根节点:“本年度战略核心是‘技术为先,稳步扩张’,在确保研发领先的同时控制供应链风险。”

2. 用户提问(检索阶段):

  • 用户问:“公司今年的核心战略思想是什么?”
  • 普通 RAG:可能会检索到“招聘 10 人”这种细节,回答得很片面。
  • RAPTOR RAG:用户的提问与顶层(根节点)的向量最匹配。
  • 回答:“核心战略是‘技术为先,稳步扩张’…”

2. 功能实现链条 (Implementation Chain)

RAPTOR 的实现比 TOC 更复杂,它涉及到大量的数学计算(聚类)和 LLM 生成。

第一阶段:构建递归树 (Indexing & Tree Construction)
  1. 切片与向量化 (Chunking & Embedding):

    • 将文档切分成基础切片(Leaf Nodes),并计算向量。
  2. 聚类 (Clustering):

    • 算法:使用如高斯混合模型(GMM)或 UMAP 等算法。
    • 动作:系统计算切片之间的语义距离,把讲相似话题的切片归为一堆(Cluster)。即使这些切片在文档里相隔很远(比如第 1 页和第 50 页都提到了“成本”),也会被聚在一起。
  3. 摘要生成 (Summarization):

    • 动作:把这一个 Cluster 里的所有文本喂给 LLM。
    • Prompt:“请总结这些片段的共同主题和要点。”
    • 产出:生成一个新的文本块(Summary Node)。
  4. 递归循环 (Recursion):

    • 系统判断生成的摘要数量是否还很多?如果是,就对这些**“摘要”**再次进行聚类和再摘要。
    • 以此类推,直到生成一个或几个最终的根节点。
  5. 混合存储:

    • 将原始切片、第一层摘要、第二层摘要…全部存入向量数据库。
第二阶段:多粒度检索 (Tree-Traversed Retrieval)
  1. 查询向量化:用户的问题被转化为向量。

  2. 全层级匹配 (Collapsed Search):

    • RAGFlow 会在所有层级(原始细节 + 中层摘要 + 高层概括)中同时进行搜索。
  3. 命中策略:

    • 如果问细节(“招多少人?”),向量会命中底层切片
    • 如果问概括(“战略是什么?”),向量会命中高层摘要节点
  4. 生成回答:LLM 基于命中的节点生成答案。


3. RAPTOR vs TOC (目录增强) 的区别

这两个功能都在解决长文档理解问题,但思路不同:

特性TOC (提取目录)RAPTOR (递归摘要)
依赖基础依赖文档物理结构(章节标题、排版)依赖内容语义相似度(话题聚类)
生成内容不创造新内容,只是把目录贴进切片创造新内容(LLM 写出了原文档没有的总结段落)
适用场景规章制度、操作手册 (结构严谨)研报、论文、散乱的会议记录 (需要提炼观点)
跨度能力只能联系上下文附近的切片能联系第1页和第100页的相似观点

总结:
RAPTOR 是 RAGFlow 中最高级的理解功能之一。它让机器像人类专家一样,先读厚(展开细节),再读薄(提炼总结),从而能够回答“What is this about? (这是关于什么的)”这种宏观问题。

Construct knowledge graph

这段文字介绍的是 RAGFlow 的知识图谱(Knowledge Graph / GraphRAG)构建功能。

简单来说,这是 RAG 技术的一个进阶形态。普通的 RAG 是基于“相似度”找内容,而知识图谱是基于**“关联性”找内容。它将文档中的实体(人、地、事、物)** 提取出来,并建立关系网络

如果把普通 RAG 比作在图书馆里按关键词搜索书名,那么知识图谱就是侦探墙上的红线图,把看似无关的线索串联起来。


1. 核心功能与实例说明

痛点:普通 RAG 的“推理盲区”

普通 RAG 擅长回答直接的问题,但很难处理**“多跳推理(Multi-hop Reasoning)”**。

场景实例:供应链风险分析

假设你的知识库里有三份互不相关的文档:

  • 文档 A(产品设计):“我们的最新手机型号Phone-X使用了Z-100 芯片。”
  • 文档 B(采购清单):Z-100 芯片Alpha 科技公司独家供应。”
  • 文档 C (财经新闻):Alpha 科技公司所在的地区刚刚发生了严重的地震,工厂停摆。”
用户的提问:“地震会影响我们的手机出货吗?”

1. 普通 RAG(无图谱):

  • 检索过程:用户问的是“地震”和“手机”。

  • 结果:

    • 系统搜“地震”,找到了文档 C。
    • 系统搜“手机”,找到了文档 A。
    • 但是,系统看不出文档 A 和文档 C 之间有任何联系(因为它们没有共同的关键词)。
  • LLM 回答:“根据文档,Alpha 公司发生了地震。但我不知道这跟我们的手机有什么关系。”

2. 开启知识图谱的 RAGFlow:

  • 索引阶段:系统已经抽取出了实体和关系:

    • (Phone-X) --[使用]--> (Z-100 芯片)
    • (Z-100 芯片) --[供应商]--> (Alpha 科技)
    • (Alpha 科技) --[状态]--> (受地震影响)
  • 检索过程:

    • 系统找到起点实体“地震”和终点实体“手机”。
    • 系统在图谱中沿着“路径”行走:手机 -> 芯片 -> 供应商 -> 地震。
  • LLM 回答:会有严重影响。因为我们的 Phone-X 使用 Z-100 芯片,而该芯片的独家供应商 Alpha 科技正受到地震影响,可能导致断供。”

价值点:发现了“隐性”的逻辑链条,实现了像人类一样的逻辑推理。


2. 功能实现链条 (Implementation Chain)

构建知识图谱的过程比普通索引要慢,因为它需要 LLM 进行深度的语义分析。

第一阶段:图谱构建 (Graph Construction / Indexing)
  1. 实体与关系提取 (Extraction):

    • 输入:原始文档切片。

    • 动作:系统调用 LLM,Prompt 是这样的:“请阅读这段文字,提取出所有的实体(人物、公司、产品、地点)以及它们之间的关系,输出为三元组格式。”

    • 产出:三元组列表,例如:

      • ("Phone-X", "contains", "Z-100 Chip")
      • ("Alpha Tech", "located_in", "Region A")
  2. 实体对齐与融合 (Resolution):

    • 痛点:文档里有的写“Alpha Tech”,有的写“Alpha科技公司”。
    • 动作:算法会将这些指代同一事物的名词合并为一个节点 ID,避免图谱分裂。
  3. 社区发现 (Community Detection) ——GraphRAG 的高级特性

    • 动作:算法(如 Leiden 算法)会分析图谱,找出联系紧密的“小圈子”。比如把所有关于“芯片制造”的实体聚成一个社区。
    • 生成摘要:LLM 为这个社区写一段总结。这有助于回答宏观问题(比如“整个芯片供应链状况如何?”)。
  4. 存储 (Storage):

    • 将节点(Nodes)、边(Edges)和社区摘要存入图数据库(或支持图结构的存储引擎)。
第二阶段:图检索 (Graph Retrieval)
  1. 关键词提取与实体映射:

    • 输入:用户问“地震影响手机吗?”
    • 动作:提取关键词“地震”、“手机”,并在图数据库中找到对应的节点。
  2. 子图遍历 (Subgraph Traversal):

    • 动作:从“手机”节点出发,向外走 1步、2步(K-hop),看看能不能走到“地震”相关的节点。
    • 获取路径:找到了路径Phone-X -> Z-100 -> Alpha Tech -> Earthquake
  3. 上下文注入:

    • 系统不仅把文档原文拿出来,还把这条路径上的关系描述转换成自然语言,作为上下文喂给 LLM。
  4. 生成回答:

    • LLM 根据关系路径生成具有逻辑性的答案。

3. 三种高级功能的横向对比

到现在为止,你已经了解了 RAGFlow 的三个大招,我们来总结一下它们的区别:

功能核心机制形象比喻最强适用场景
TOC (目录增强)结构化地图(不仅看内容,还看你在书的第几章)规章制度、操作手册、长篇法律文书。
RAPTOR (递归摘要)分层概括金字塔(先看塔尖的总结,再看塔底的细节)研报分析、论文综述、回答“这篇文章讲了什么”。
Knowledge Graph (知识图谱)网状关联侦探连线板(A认识B,B认识C,所以A可能认识C)刑侦调查、供应链分析、复杂金融股权穿透。

构建知识图谱是目前 RAG 领域最前沿、最强大的功能之一,它让 AI 从单纯的“复读机”变成了具备初步逻辑能力的“分析师”。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/1/12 3:35:06

Vue3 组件入门:像搭乐高一样玩转前端!

欢迎使用我的小程序&#x1f447;&#x1f447;&#x1f447;&#x1f447; 俱好用助手功能介绍 你好呀&#xff01;如果你刚开始学习 Vue3 组件开发&#xff0c;那你来对地方了&#xff01;想象一下&#xff0c;组件就像是前端世界的乐高积木——小巧、独立、可重复使用&…

作者头像 李华
网站建设 2026/1/15 20:44:15

终极AEUX完整指南:3步实现设计到动画的完美转换

终极AEUX完整指南&#xff1a;3步实现设计到动画的完美转换 【免费下载链接】AEUX Editable After Effects layers from Sketch artboards 项目地址: https://gitcode.com/gh_mirrors/ae/AEUX 你是否曾经在Sketch或Figma中完成了精美的设计&#xff0c;却在After Effect…

作者头像 李华
网站建设 2026/1/15 10:01:08

企业级应用:Dify离线部署在金融行业的实践案例

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 开发一个金融行业专用的Dify离线部署解决方案&#xff0c;包含&#xff1a;1. 多节点集群部署 2. 数据加密传输模块 3. 高可用架构配置 4. 合规性检查工具 5. 性能监控看板。要求支…

作者头像 李华
网站建设 2026/1/15 20:42:40

Anystyle智能引用解析工具:科研文献管理的革命性突破

Anystyle是一款基于人工智能的智能引用解析工具&#xff0c;专门为科研人员和学术工作者设计。它能快速准确地将杂乱无章的参考文献文本转换为结构化数据&#xff0c;支持BibTeX、CSL、RIS等多种标准格式输出&#xff0c;彻底解决文献引用处理难题。 【免费下载链接】anystyle …

作者头像 李华
网站建设 2026/1/15 20:46:58

传统vs现代:0603封装手工焊接与自动化贴片效率对比

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 创建一个0603封装焊接效率对比工具。需要&#xff1a;1. 模拟手工焊接0603的流程并计算平均耗时 2. 模拟SMT产线贴片流程 3. 对比两种方式的单位时间产量、不良率 4. 根据生产批量推…

作者头像 李华
网站建设 2026/1/15 10:31:29

Phigros网页模拟器完整使用教程:零基础打造专属音乐游戏

Phigros网页模拟器完整使用教程&#xff1a;零基础打造专属音乐游戏 【免费下载链接】sim-phi Simulation of Phigros display with js/canvas 项目地址: https://gitcode.com/gh_mirrors/si/sim-phi 想要在浏览器中畅玩Phigros音乐游戏吗&#xff1f;这款基于JavaScrip…

作者头像 李华