news 2026/1/27 7:50:17

RAGFlow

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
RAGFlow

RAGFlow 主要解决文档检索和生成中的准确性问题。
MIRIX 则是一个 多代理个人助理框架,基于 LLM 的多代理记忆系统。

Chunk

🚀 流程实例:以一份 PDF 财务报告为例

假设用户向 RAGFlow 上传了一份2024 年 Q1 的公司财务报告 PDF,并希望提问相关数据。整个流程分解如下:

阶段概念/操作解释 (前因后果)
I. 前因:原始数据原始文档(Source Document)一份完整的、非结构化或半结构化的 PDF 报告,包含封面、目录、多页文本、表格、图表等。
II. 核心:切块 (Chunking)Chunking 过程RAGFlow 的核心工作。它使用预先选择的切块模板(例如,针对表格的模板)来解析 PDF,并执行以下操作:
1.深度理解:识别出表格的边界、标题和每行数据。
2.智能切分:将表格的一行数据或一个独立的段落切分成一个Chunk
III. 后果 1:Chunk 结果Chunk (切块)例如,PDF 中一个关于“营收数据”的表格行,被转化为一个 Chunk。这个 Chunk 不仅仅包含表格数据,RAGFlow 还会附加上下文(比如表格的标题、它所属的章节)以增加语义完整性。
IV. 后果 2:嵌入 (Embedding)Embedding (向量化)嵌入模型将上一步生成的每个Chunk文本转化为一个高维向量
V. 最终用途:检索 (Retrieval)向量存储(Vector Store)所有的 Chunk 向量被存储在ElasticsearchInfinity中。
当用户提问(如:“一季度软件服务的营收是多少?”)时,问题也会被向量化,然后在向量存储中快速找到语义最相似的 Chunk(包含“一季度”、“软件服务”、“营收”信息的 Chunk)。

🔍 结论:Chunk 的作用

Chunk 的质量直接决定了 RAG 的可用性。

  • 如果 Chunk 太大:它可能包含太多不相关的信息,稀释了关键语义,导致检索不精确。
  • 如果 Chunk 太小:它可能破坏一个完整的语义单元(例如,将表格的一行数据分成了两半),导致 LLM 无法获得完整上下文来生成准确的答案。

RAGFlow 强调切块模板可视化干预,就是为了让用户能最大限度地优化这个Chunking过程,从而确保 LLM 接收到的信息是高质量且完整的。


多路召回(Multiple Recall)?

实例解释:查找“销售额”

我们以一个包含公司年报的 RAGFlow 知识库为例。

假设用户提出了一个问题:

用户查询:“2023 年 Q4 软件服务的营收是多少?”

1. 单一召回的局限性

如果只使用向量召回(语义搜索),系统可能会出现偏差:

  • 问题:用户问的是“营收”,但向量模型可能会检索到语义相似的词,如“利润”、“净收入”等,而错过了精确包含“营收”这个关键词的表格数据。
  • 结果:找到了很多关于公司财务情况的定性描述(文本),但没有找到精确的数字(表格)。

2. 多路召回的运作方式

RAGFlow 的多路召回会同时发起至少三种类型的查询:

召回路径 (Path)策略类型作用和搜索目标检索结果(示例 Chunk)
路径一向量召回 (Vector Recall)侧重语义相似度。将用户查询向量化,搜索所有语义上最接近“2023 年 Q4 软件服务”的 Chunks。Chunk A (文本描述):“2023 年第四季度,我们的软件服务增长势头强劲,是核心收入驱动力…”
路径二关键词召回 (Keyword Recall)侧重精确匹配。在Elasticsearch中搜索精确包含 “2023”、“Q4”、“软件服务”、“营收” 等关键词的 Chunks。Chunk B (表格行):"软件服务
路径三结构化召回 (Structured Recall)侧重结构化信息。针对被 RAGFlow 识别的表格问答结构,执行特定的结构查询(如果支持)。Chunk C (表格元数据):直接从识别的表格中定位到 2023 Q4 对应的“软件服务”行。

3. 结果融合与重排 (Fusion and Re-ranking)

最后一步,系统会对这三条路径返回的全部 Chunks 进行统一处理

  1. 融合 (Fusion):将所有路径的结果合并到一个列表中。
  2. 重排 (Re-ranking):使用一个更强大的模型或算法(例如,混合评分算法)对合并后的 Chunks 再次进行排序。

通过这个过程,即使关键词召回(路径二)找到了最准确的数字表格,它也能确保最终被送给 LLM 的信息列表中,精确包含答案的 Chunk B能排在最前面。

最终结果:LLM 接收到最相关的 Chunks (包含精确的 1.2 亿美元数据),从而生成一个准确且有数据支撑的回答。

Ollama IPEX-LLM Xinference

部署本地大模型是目前非常热门的话题,Ollama、Xinference、IPEX-LLM实际上处于大模型部署生态中不同的“生态位”,而Triton则属于工业级的“重武器”。

为了让你更直观地理解,我们可以把部署大模型比作**“开一家餐厅(提供模型服务)”**。


一、 三者角色的核心区别

1. Ollama:极简的“自动售货机”
  • 定位:面向开发者和个人用户的极简桌面级工具。

  • 特点:

    • 傻瓜式:下载 -> 安装 ->ollama run llama3,一键搞定。
    • 轻量:主要依赖 GGUF 格式(量化模型),对显存要求低,CPU 也能跑得不错。
    • 生态:社区非常活跃,很多 WebUI、IDE 插件都首选支持 Ollama。
  • 局限:主要是为了跑 LLM(对话模型),虽然也支持 Embedding,但对多模态、分布式推理、微调的支持不如专业的全面。

2. Xinference (Xorbits Inference):全能的“连锁自助餐厅”
  • 定位:面向企业级开发和数据科学家的全能型推理框架。

  • 特点:

    • 大一统:不仅支持 LLM,还原生支持Embedding(向量模型)、Rerank(重排序模型)、Image(绘图)、Audio(语音)。做 RAG(知识库)应用时,这一个框架就能把所有模型服务都包圆了。
    • 后端灵活:它像一个“中介”,底层可以自动调用 vLLM、CTranslate2、GGUF 等不同的推理引擎。
    • 分布式:支持多机多卡,如果你有两台电脑,想连起来跑一个大模型,Xinference 原生支持。
  • 局限:安装和配置比 Ollama 稍微复杂一点点(需要 Python 环境),资源占用相对高一些。

3. IPEX-LLM (Intel Extension for PyTorch):专属的“发动机加速器”
  • 定位:Intel 硬件专用的加速库。

  • 特点:

    • 它不是一个服务器:严格来说,它不是像 Ollama 那样直接给你提供 API 的服务软件,而是一个库(Library)
    • 化腐朽为神奇:它的作用是让 PyTorch 模型在Intel 的 CPU(如酷睿 Ultra)、集成显卡(Intel Arc 核显)和独立显卡上跑得飞快。
    • 兼容性:你可以在 Ollama 或 Xinference 的底层使用 IPEX-LLM 来加速(如果你的电脑是 Intel 芯片)。
  • 局限:如果你用的是 NVIDIA (N卡) 或 AMD 显卡,这个跟你没关系。


二、 它们与 NVIDIA Triton 的关系

Triton Inference Server (NVIDIA)是这里的“老大哥”,属于工业级/数据中心级的“中央厨房”。

  • 关系:

    • Ollama/Xinference是为了易用性而设计的,它们牺牲了一些极致的并发性能,换取了“好部署、好管理”。
    • Triton是为了极致吞吐量稳定性设计的。
  • 主要区别:

    • Triton 的强项:动态批处理(Dynamic Batching,同时处理几百个人的请求)、多模型并发、支持 TensorRT 极致加速。它通常用于像 ChatGPT 官网、京东客服这种高并发的生产环境。
    • Triton 的缺点:配置极其痛苦(写config.pbtxt),学习曲线陡峭。对于本地单用户来说,用 Triton 属于“杀鸡用牛刀”,而且这把牛刀还很重,拿不动。

三、 实际使用场景与选择建议

为了帮你选择,我构建了几个典型的实际场景:

场景 A:程序员/学生,想在 MacBook 或 游戏本上试玩 Llama3,写代码辅助
  • 选择:Ollama
  • 理由:你不需要配置 Python 环境,不想折腾依赖库。下载完就能用,配合各类插件(如 VSCode 的 Continue 插件)无缝集成。
场景 B:你需要开发一个 RAG(企业知识库)应用
  • 选择:Xinference
  • 理由:RAG 不仅需要对话模型,还需要 Embedding 模型把文档变成向量,需要 Rerank 模型优化搜索结果。Xinference 可以用一套 API 同时启动这三种模型,管理起来非常方便,而且兼容 OpenAI 格式 API,代码改动小。
场景 C:你的公司买了一批 Intel 的服务器,或者是新的 Intel Core Ultra 笔记本
  • 选择:IPEX-LLM (作为底层)
  • 理由:如果直接用普通的 PyTorch 或 Ollama 的默认后端,Intel 显卡可能无法调用或速度很慢。你需要安装集成了 IPEX-LLM 的 Ollama 版本,或者在代码中 importipex_llm,才能榨干 Intel 硬件的性能。
场景 D:你需要在生产环境上线一个服务,预计每秒有 1000 人同时访问
  • 选择:Triton (配合 vLLM 或 TensorRT-LLM)
  • 理由:这种时候 Ollama 会卡死,Xinference 可能也会有瓶颈。你需要 Triton 强大的调度能力和显存管理能力来保证高并发下的低延迟。

总结对照表

特性OllamaXinferenceIPEX-LLMTriton
核心定位个人/开发者工具全栈模型部署框架Intel 硬件加速库工业级推理服务器
上手难度⭐ (极简)⭐⭐ (简单)⭐⭐⭐ (需改代码/配置)⭐⭐⭐⭐⭐ (困难)
模型支持主打 LLM (GGUF)LLM + 图片 + 音频 + 向量PyTorch 模型所有主流 AI 框架
硬件倾向Apple Silicon, NV卡, CPUNV卡 (推荐), CPUIntel CPU/GPU 专用NVIDIA GPU 专用
适合场景本地测试、AI 助手搭建复杂 AI 应用 (RAG)Intel 设备加速高并发生产环境

一句话建议:
如果你是个人玩,闭眼选Ollama;如果你要搞开发做系统,选Xinference;如果你是 Intel 硬件受害者(或受益者),务必带上IPEX-LLM;如果你要抗住高并发流量,再去研究Triton

数据集和核心文件系统

实例说明:一个文件,两个数据集

假设您有一个包含 2024 年 Q1 和 Q2销售数据的 PDF 文件,文件名为Sales_Report_2024.pdf

步骤操作核心文件系统数据集 A (市场分析)数据集 B (财务检索)
1. 上传Sales_Report_2024.pdf上传到 RAGFlow。原始文件被安全存储在这里。--
2. 链接 A将文件链接数据集 A(用于市场分析)。原始文件不变。持有文件的引用。使用“Q&A 切块模板”“中英文嵌入模型”进行切块和向量化。-
3. 链接 B将文件链接数据集 B(用于财务检索)。原始文件不变。持有文件的引用持有文件的引用。使用“表格切块模板”“财务专业嵌入模型”进行切块和向量化。
4. 检索用户在 RAGFlow 中选择数据集 A 或 B 进行提问。原始文件不变。中英文向量空间中搜索 Q&A 风格的 Chunks。财务向量空间中搜索表格风格的 Chunks。

结果的优势:

  1. 高效性:原始文件只存储了一次(在核心文件系统)。
  2. 灵活性:同一个文件可以应用不同的 RAG 策略(不同的切块模板和嵌入模型)来适应不同的业务需求。
  3. 安全性:如果您决定删除数据集 A,只会删除 A 中生成的切块和向量,原始文件仍保留在核心文件系统中,可以继续供数据集 B 使用。

Chunk,layout, 框

这是一个非常好的问题,因为这是理解 RAGFlow 这种深度文档理解型 RAG 引擎的关键。

我们通过一个具体的合同文件实例,来清晰区分Layout 模型检测出的“框”和最终的Chunk (切块)


📄 实例:合同文件中的一个条款和表格

假设我们有一个 PDF 格式的合同文件,其中包含一个条款和一张相关的简单表格。

1. Layout 模型:检测“框” (结构边界)

Layout 模型的工作是纯粹的机器视觉任务,它像一个高效的机器人视觉系统,只关注文档在页面上的物理排版结构边界

Layout 模型检测出的“框” (Boxes)目的(机器视觉)核心问题
条款文本框识别这是一个“文本段落”区域。“这个区域的边界在哪里?”
表格标题框识别这是表格的“标题”或“标签”。“这是什么类型的元素?”
表格行/单元格框识别表格中每个单元格的内容和边界。“这个表格是如何分割的?”

结果:Layout 模型输出了一堆带有坐标的“框”,告诉 RAGFlow 哪里是标题,哪里是正文,哪里是表格。

2. Chunking (切块):创建“语义单元”

Chunking 过程(由 RAGFlow 的切块模板驱动)是一个知识工程任务,它使用 Layout 模型的结果作为输入,目标是创建具有完整语义的知识片段 (Chunk)

RAGFlow 切块的“语义单元” (Chunk)目的(知识工程)核心问题
Chunk 1:条款文本将整个条款文本作为一个独立 Chunk。“这个段落的语义是什么?”
Chunk 2:表格行 1关键区别点:它会结合表格标题该行内容,创建一个 Chunk。“如何让这个 Chunk 独立地回答问题?”

核心区别实例

假设表格内容是:

产品价格交付日期
软件授权$100002025/12/31
❌ 错误的切块(简单画框)

如果 Chunk 只是简单地复制表格行 1 的内容“软件授权 | $10000 | 2025/12/31”,那么检索时 LLM 就会困惑:这是什么的价格?

✅ RAGFlow 智能切块(语义关联)

RAGFlow 的切块模板会利用 Layout 模型的结构信息,生成一个语义丰富的 Chunk

Chunk Text (用于 Embedding):“这是合同附件 3 中的表格行。产品:软件授权,价格:10000 美元,交付日期:2025 年 12 月 31 日。”


🌟 总结:从“框”到“Chunk”的转变

特征对比Layout 模型检测出的“框”RAGFlow 最终的 “Chunk”
本质物理结构边界(像素和坐标)。逻辑语义单元(文本和上下文)。
作用输入:提供文档的排版指导。输出:用于向量化和检索的最小知识单位。
内容孤立的文本或数据。融合了上下文和结构信息的完整语句。
目标识别**“是什么元素”**。确保 Chunk 能够独立回答**“为什么”“是什么意思”**。

结论:Layout 模型画出的“框”是 RAGFlow 智能切块的原材料,而Chunk才是经过 RAGFlow知识工程加工后的“成品”,这个成品具有完整的语义,可以直接交给 LLM 使用。

2. 什么是关键词索引(Full-Text/Keyword Index)?

关键词索引是支撑多路召回(Multiple Recall)中的全文搜索那一路的关键。

实例:关键词索引

假设 RAGFlow 处理了您的 Chunk:

Chunk 文本关键词索引中的记录召回机制
Chunk Text:“核心产品营收 软件服务 2024 Q1 1.2 亿…”核心产品营收软件服务2024Q11.2亿用户查询“2024 Q1 软件营收”时,系统在关键词索引中进行精确匹配,找到包含这四个词的 Chunk,并给予高分。

作用:确保当用户使用精准词语(如日期、产品名称、特定术语)提问时,系统能迅速且准确地找到对应的 Chunk。这是对向量召回(语义搜索)的有效补充。


3. 手动修改 Chunk 文本具体指什么?

手动修改主要有三种形式,旨在修复机器切块的边界错误语义缺失

手动干预类型实例为什么需要(机器不智能)
1. 边界修正(合并/拆分)机器切分错误:机器将一个完整的句子:“公司今年决定…(换行)…重点投资 AI 领域。”切成了两个 Chunk。
人工操作:双击第一个 Chunk,将第二个 Chunk 的文本复制过来,合并成一个完整的句子。
机器擅长视觉分析,但对复杂的跨页、跨段的语义衔接判断容易出错。
2. 上下文补充机器切分结果:一个表格 Chunk 只有数据,没有标题。
人工操作:手动在 Chunk 文本开头添加:“以下是 2024 年 Q1 软件服务的营收数据。”
确保每个 Chunk语义自洽。如果 Chunk 缺失关键上下文,LLM 可能会误解数据。
3. 元数据/关键词注入Chunk 内容:描述了公司的“Llama 3 部署项目”。
人工操作:双击 Chunk,手动添加关键词/标签:“大模型”、“关键项目”、“战略级”。
增强检索效果。许多关键词(如“战略级”)并未在文本中,但用户会用它来搜索。

4. 人工干预:太不智能?浪费时间?用户体验不好?

您的顾虑是完全正确的。在理想情况下,我们希望机器完全自动化,但这在处理非结构化文档时是一个现实的取舍

🤖 为什么 RAGFlow 仍然需要人工干预?

RAGFlow 已经比许多简单的 RAG 工具“智能”得多(因为它有 Layout 模型和多种切块模板)。但是,它仍然无法完美处理所有情况:

  1. 复杂排版:许多公司报告使用自定义的、不规则的排版,机器很难理解这种人为设计的上下文
  2. 知识盲区:机器无法知道哪些信息对您和您的团队是最重要的、哪些词语是您的团队内部用来搜索的行话(例如,“A 计划” 实际上指的是 “核心战略项目 2025”)。
  3. 最终准确性要求:对于企业级应用,例如法律或财务咨询,99.99% 的准确率是必须的。即使是 1% 的切块错误,也可能导致客户收到错误信息。

⚖️ 智能、效率与准确性的平衡

RAGFlow 提供的可视化和干预功能,不是为了取代自动化,而是为了实现“自动化 + 专家知识校准”

  • RAGFlow (自动化):负责 95% 的工作,大大提高效率。
  • 用户 (人工干预):只需检查那 5% 的复杂或关键信息,并注入专业的知识和上下文,确保最终知识库的最高准确率和检索效果

因此,虽然手动干预会浪费少量时间,但其带来的检索准确率(尤其是对关键知识)的提升是巨大的,最终保证了用户的信任和更好的问答体验

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

Wan2.2-T2V-A14B在电商短视频生成中的落地实践

Wan2.2-T2V-A14B在电商短视频生成中的落地实践 你有没有算过,一个商品从上架到出圈,到底需要多少条视频? 尤其是在大促期间,每天成千上万的新品涌入平台,传统拍摄剪辑团队早就“爆仓”了。人力成本高、周期长、创意难复…

作者头像 李华
网站建设 2026/1/27 2:21:24

企业级VMware虚拟化环境搭建实战指南

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 创建一个企业级VMware虚拟化环境部署方案,包含ESXi主机配置、vCenter部署、虚拟机模板制作、资源池划分和权限管理。要求提供详细的配置参数和性能优化建议,…

作者头像 李华
网站建设 2026/1/20 20:59:55

Wan2.2-T2V-5B可用于自然灾害演变过程模拟

Wan2.2-T2V-5B:用AI秒级生成灾害演变视频,让应急推演“动”起来 🌪️🔥 你有没有想过—— 一场山火如何在强风下蔓延?洪水会怎样顺着山谷吞噬村庄?地震后的次生滑坡可能影响哪些区域? 过去&…

作者头像 李华
网站建设 2026/1/27 5:14:02

鸿蒙技术干货7:通知发送与跳转服务

今天开始咱们的系统服务调用系列分享。系统服务是鸿蒙应用与底层系统交互的核心通道,而通知服务(NotificationCenter)更是高频刚需 —— 无论是消息推送、事件提醒还是功能跳转,都离不开它。这篇咱们聚焦 NotificationCenter 的核…

作者头像 李华
网站建设 2026/1/25 1:38:33

Wan2.2-T2V-A14B生成视频的音频同步问题怎么解决

Wan2.2-T2V-A14B生成视频的音频同步问题怎么解决 你有没有遇到过这种情况:AI生成的画面流畅自然,主角缓缓站起、眼神坚定地说出那句“我不会放弃”——画面堪称电影级,可一开口,声音却慢了半拍?嘴一张,音还…

作者头像 李华
网站建设 2026/1/22 9:11:05

Steamless:DRM管理工具完全使用指南

在数字游戏时代,DRM保护机制虽然保护了开发者的权益,但也给合法用户带来了诸多不便。Steamless作为专业的DRM管理工具,专门针对SteamStub保护进行优化,让您能够更自由地使用自己购买的游戏。 【免费下载链接】Steamless Steamless…

作者头像 李华