本文最后更新于124 天前,其中的信息可能已经过时,如有错误请发送邮件到big_fw@foxmail.com
一个开源项目如何让 AI 准确回答私密数据问题
开篇:一个真实的问题
想象你是一家企业的 IT 主管。公司有海量文档:财务报表、产品手册、法律合同、技术文档…
现在,CEO 问你:”能不能用 AI 帮我快速查阅这些文档?”
你回答:”没问题,用 ChatGPT!”
但当 ChatGPT 回答 “2024年第三季度的净利润是多少?” 时,它要么说 “我不知道”,要么编造一个数字…
问题出现了:
- 🚫 ChatGPT 没有你公司的数据
- 🚫 即使告诉它数据,它也容易出错
- 🚫 答案来源不明,无法追溯
这就是 RAGFlow 要解决的核心问题。
第一部分:什么是 RAG?
传统 AI 的困境
用户问:「2024年净利润多少?」
ChatGPT 的理解:
「我的训练数据截止到 2024 年 4 月,
而且我完全不知道你公司的数据。
我没办法准确回答。」
结果:编造答案或说不知道 ❌
RAG 的解决方案
RAG = Retrieval-Augmented Generation(检索增强生成)
核心思想很简单:
与其让 AI 凭记忆回答,
不如先从你的文档中检索相关信息,
然后让 AI 基于这些真实信息生成答案。
流程:
用户问题
↓
从文档库中搜索相关内容
↓
把搜索结果提给 AI
↓
AI 根据这些内容生成答案
效果对比:
- ❌ 传统:ChatGPT 凭空想象,准确率 30%
- ✅ RAG:基于真实文档,准确率 90%+
RAGFlow 的特别之处
这一步看起来简单,但如果做不好,效果会很差。比如:
❌ 错误做法:
1. 上传 PDF
2. 按固定字数(512字)切割
3. 丢给向量数据库
4. 搜索 → 返回结果
问题:
├─ 表格被打散,数据破碎
├─ 图片被丢弃,信息丢失
├─ 搜索准确率低,经常找错
└─ 答案不可信,没有来源
结果:虽然是 RAG,但准确率还是很差 ❌
✅ RAGFlow 做法:
1. 用深度学习理解文档结构
2. 保留表格、图片等关键信息
3. 基于语义边界智能切割
4. 多路搜索 + 融合排序
5. 每个答案都有来源引用
结果:真正的高准确率 ✅
这就是 “Quality in, quality out” 的含义。
第二部分:RAGFlow 的核心架构
整体流程(一图胜千言)
┌─────────────────────────────────────────┐
│ 用户上传文档(Word、PPT、PDF、网页等) │
└────────────┬────────────────────────────┘
↓
┌──────────────────────────────────────────┐
│ DeepDoc:深度文档理解 │
│ ├─ 识别布局:标题、正文、表格、图片 │
│ ├─ 智能 OCR:识别扫描件和手写文字 │
│ └─ 多模态:用 AI 理解图表含义 │
└────────────┬────────────────────────────┘
↓
┌──────────────────────────────────────────┐
│ 智能切片:基于语义边界分割 │
│ ├─ 不是按字数,而是按逻辑分段 │
│ ├─ 保留表格、列表等结构 │
│ └─ 支持手动调整和预览 │
└────────────┬────────────────────────────┘
↓
┌──────────────────────────────────────────┐
│ 生成向量:用 AI 模型理解每段内容 │
│ └─ 相似内容 → 相似向量 │
└────────────┬────────────────────────────┘
↓
┌──────────────────────────────────────────┐
│ 存储到数据库 │
│ ├─ 向量数据库(快速搜索) │
│ └─ 文本数据库(保存原文) │
└────────────┬────────────────────────────┘
↓
✅ 准备完毕,等待提问
↓
┌──────────────────────────────────────────┐
│ 用户提问(支持中文、英文等) │
└────────────┬────────────────────────────┘
↓
┌──────────────────────────────────────────┐
│ 多路召回:用多种方式搜索 │
│ ├─ 向量搜索:找语义相近的内容 │
│ ├─ 关键词搜索:精确匹配 │
│ └─ 融合排序:把最相关的排最前 │
└────────────┬────────────────────────────┘
↓
┌──────────────────────────────────────────┐
│ 调用 AI 模型生成答案 │
│ └─ 基于检索到的真实内容 │
└────────────┬────────────────────────────┘
↓
┌──────────────────────────────────────────┐
│ 返回结果:答案 + 来源 │
│ ├─ 答案内容 │
│ ├─ 来自哪个文档 │
│ ├─ 具体在第几页 │
│ └─ 原文摘录 │
└──────────────────────────────────────────┘
四个关键环节详解
环节 1:DeepDoc —— 比人更懂文档
问题:PDF 文档很复杂
- 表格被打散(行与行分开)
- 图表无法理解(直接丢弃)
- 多列排版被打乱(左右顺序搞混)
传统方案:直接读取文本,按行切割 ❌
RAGFlow 方案:
DeepDoc 的三步工作流:
1️⃣ 布局分析
用计算机视觉识别:
├─ 这是标题还是正文?
├─ 这里有表格吗?
├─ 图片在哪里?
└─ 多列排版的正确顺序是什么?
2️⃣ 结构保留
输出结构化内容:
├─ 标题 → 保留为"# 标题"
├─ 表格 → 保留表格格式
└─ 图片 → 用 AI 生成描述
3️⃣ 内容完整
确保语义不破碎:
├─ 表格行不分开
├─ 列表项保持完整
└─ 图文对应准确
具体例子:
原始 PDF 中的表格:
┌─────────┬─────────┐
│ 城市 │ 销售额 │
├─────────┼─────────┤
│ 北京 │ 100万 │
│ 上海 │ 150万 │
└─────────┴─────────┘
❌ 传统切割结果:
"城市 北京 销售额 100万 城市 上海..."
(表格完全破坏了)
✅ RAGFlow 结果:
"2024年销售数据
| 城市 | 销售额 |
| 北京 | 100万 |
| 上海 | 150万 |"
(表格结构完全保留)
环节 2:智能切片 —— 怎样分割最合理?
问题:文档要分成多个小块存到数据库
- 块太小:信息不完整,AI 回答时缺少上下文
- 块太大:查询时加载数据太多,速度慢
传统方案:固定 512 字(无脑分割)❌
RAGFlow 方案:
根据文档类型选择不同模板:
📄 学术论文模板:
按章节分割
├─ 摘要(一块)
├─ 引言(一块)
├─ 方法(一块)
├─ 结果(一块)
├─ 讨论(一块)
└─ 参考文献(一块)
优点:每块都是完整的研究逻辑
📋 产品手册模板:
按功能分割
├─ 产品介绍
├─ 功能 A(包括说明 + 示例)
├─ 功能 B(包括说明 + 示例)
└─ 常见问题
📰 新闻稿模板:
按逻辑分割
├─ 导语(最重要的信息)
├─ 主体(详细说明)
├─ 背景信息
└─ 相关链接
✨ 特殊:手动调整
系统会显示切片效果的预览图
你可以:
├─ 看到每块的内容
├─ 手动调整分割位置
├─ 立即看到效果
└─ 直到满意为止
环节 3:多路搜索 —— 不能漏掉答案
问题:用一种方式搜索,可能找不到最相关的内容
传统方案:只用向量搜索 ❌
RAGFlow 方案:三种方式同时搜索,然后投票
用户提问:「2024年中国 GDP 增长率是多少?」
🔍 搜索路径 1:向量相似度
"GDP" 的向量 + "经济增长" 的向量 + ...
↓
找到所有提到"经济增长、GDP"的文段
↓
按相似度排序,取 Top 20
🔍 搜索路径 2:关键词匹配(BM25)
精确查找包含"2024"且包含"GDP"的文段
↓
取 Top 20
🔍 搜索路径 3:融合重排序
把 1 和 2 的结果综合
├─ 给每个结果评分
├─ 向量分 + 关键词分
├─ 最后用 AI 再排一遍
└─ 输出最相关的 Top 5
📊 最终排序:
1. [文段 A - 得分 0.98] ← 最相关!
2. [文段 B - 得分 0.95]
3. [文段 C - 得分 0.92]
4. [文段 D - 得分 0.88]
5. [文段 E - 得分 0.85]
为什么这样做:
- 向量搜索:理解”意思相近”
- 关键词搜索:精确找到关键信息
- 融合排序:取两者之长,避免漏掉答案
环节 4:生成答案 —— AI 的最后一步
AI 收到的输入:
用户问题:「2024年中国 GDP 增长率?」
检索到的相关文段(Top 5):
[文段 1] "2024年中国 GDP 达到140万亿元,
同比增长5.2%..."
[文段 2] "这一增长率超过全球平均增长率..."
[文段 3] "主要贡献来自服务业和高新技术..."
... 更多文段
↓ AI 的工作 ↓
1. 理解这些文段的核心信息
2. 整合成一个连贯的答案
3. 补充必要的解释
4. 标注答案来源
↓ 输出结果 ↓
答案:
"2024年中国 GDP 增长率为 5.2%,
达到 140 万亿元。这一增长率
超过了全球平均水平,主要得益
于服务业和高新技术的快速发展。"
来源:
├─ 来自文档:《2024年经济数据报告》
├─ 具体位置:第 12 页
├─ 原文:「2024年中国 GDP 达到140万亿元,
同比增长5.2%...」
└─ 可信度:95%
第三部分:为什么 RAGFlow 更好?
核心对比
vs 传统 RAG 系统
| 对比项 | 传统系统 | RAGFlow |
|---|---|---|
| 文档理解 | ❌ 无法处理复杂排版 | ✅ DeepDoc 深度理解 |
| 表格处理 | ❌ 表格被打散 | ✅ 保留表格结构 |
| 图片处理 | ❌ 直接丢弃 | ✅ 用 AI 生成描述 |
| 切片调整 | ❌ 无法调整 | ✅ 可视化预览 + 手动调整 |
| 搜索准确率 | ⚠️ 一般(70-80%) | ✅ 很高(90%+) |
| 开箱即用 | ❌ 需要自己集成 | ✅ 一键启动 |
| 部署方式 | ⚠️ 通常云端 | ✅ 本地/云都支持 |
| 成本 | ❌ 按查询次数收费 | ✅ 开源免费 |
vs LangChain(开发框架)
| 对比项 | LangChain | RAGFlow |
|---|---|---|
| 定位 | 开发者框架 | 完整产品 |
| 用户群 | 会编程的人 | 所有人 |
| 易用性 | ⚠️ 需要写代码 | ✅ 点点鼠标 |
| 学习曲线 | 陡峭 | 平缓 |
| 部署难度 | 需要定制 | 开箱即用 |
| 灵活性 | ✅ 极高 | ⚠️ 有局限 |
怎么选:
- 需要快速上手?→ 选 RAGFlow
- 需要深度定制?→ 选 LangChain
技术亮点
亮点 1:无限上下文
问题:ChatGPT 一次最多只能处理 128k tokens(约 50 万字)
传统方案的困境:
知识库 = 1000 万字
一次查询能用的 = 50 万字
❌ 其他 950 万字永远用不上
RAGFlow 的解决方案:
知识库 = 1000 万字
✅ 通过智能搜索,快速找到最相关的内容
✅ 即使知识库再大,也能秒级响应
✅ 相当于"无限上下文"
亮点 2:异构数据源统一处理
RAGFlow 可以处理各种类型的数据:
文档格式:Word、PPT、Excel、PDF、纯文本
网页内容:自动抓取并清理
数据库:直接连接,转换为可查询内容
媒体文件:图片 OCR、视频转录
特殊文件:扫描件、手写稿、影印件
一个平台 = 搞定所有数据类型 ✅
亮点 3:跨语言查询
场景:知识库中有英文论文,用户用中文提问
传统方案:
用户提问(中文)
→ 无法搜索英文内容
❌ 答案不完整
RAGFlow:
用户提问(中文)
→ 自动翻译成英文
→ 搜索英文内容
→ 答案翻译回中文
✅ 完美处理多语言混合
第四部分:实际应用场景
场景 1:企业知识库 + 智能客服
现状:
├─ 产品手册 10000+ 页
├─ FAQ 数千条
├─ 售后政策复杂
└─ 客服每天手工查文档
传统方案:
❌ 效率低:每个问题都要翻文档
❌ 错误多:容易遗漏信息
❌ 不满意:客户等待时间长
使用 RAGFlow:
✅ 上传所有文档
✅ 客服输入客户问题
✅ AI 自动从文档中找答案
✅ 1 秒内返回准确答案 + 出处
效果数据:
• 响应时间:从 5 分钟 → 1 秒
• 准确率:85% → 95%
• 客户满意度:82% → 94%
• 客服工作量:减少 60%
场景 2:教育 / 学习助手
场景:学生 24/7 学习帮助
系统包含:
├─ 课本教材(全本)
├─ 老师讲义和课件
├─ 历年考试真题
├─ 标准答案和解析
└─ 相关参考资料
学生使用:
Q1: "第五章的重点是什么?"
A: "第五章重点包括... [附原文位置]"
Q2: "这道题怎么解?"
A: "解题步骤是... [附相似题目示例]"
Q3: "这个概念和另一个有什么区别?"
A: "区别在于... [附教材原文对比]"
优势:
✅ 学生随时获得帮助
✅ 老师减少重复答题
✅ 学习效果数据化
✅ 支持自主学习
场景 3:法律案例检索
律师的工作场景:
需求:
"帮我找 3 个与本案类似的判例"
传统方式:
❌ 手工查阅数千份文件
❌ 耗时数小时
❌ 容易遗漏
使用 RAGFlow:
输入:案件信息 + 关键要点
处理:秒级检索数千份文件
输出:最相似的 5 个判例 + 相似度评分
优势:
✅ 速度快(小时 → 秒)
✅ 全面性好(不会遗漏)
✅ 可对比分析
✅ 为诉讼提供有力支撑
场景 4:医学文献查阅
医生的需求:
"最新的针对该病症的治疗方案是什么?"
传统方式:
❌ 手工查阅数百篇论文(需要几天)
❌ 需要懂英文(多数论文是英文)
❌ 容易漏掉重要发现
使用 RAGFlow:
上传:最新的医学论文库
提问:自然语言提问(支持中文)
返回:最相关的 5 篇论文摘要
+ 关键治疗方案
+ 完整引用信息
优势:
✅ 速度快(天 → 分钟)
✅ 多语言支持(中文查询,英文论文)
✅ 为论文撰写提供充分依据
✅ 提高医疗决策质量
第五部分:怎样使用 RAGFlow?
快速开始
第一步:部署
# 一条命令启动
docker-compose up -d
# 等待 30 秒
# 打开浏览器:http://localhost:5173
# 看到登录界面 ✅
第二步:创建知识库
点击"新建知识库"
输入:知识库名称(如"公司文档库")
完成 ✅
第三步:上传文档
拖拽上传文档(支持多个)
系统自动处理:
├─ 格式识别
├─ 内容提取
├─ 结构分析
├─ 切片处理
└─ 索引构建
等待完成(通常 1-5 分钟)✅
第四步:开始提问
在对话框输入问题
AI 秒级返回答案 + 来源
完成! 🎉
核心配置(给技术人员)
系统配置项:
1. LLM 选择
├─ OpenAI GPT-4(最强,但收费)
├─ 开源模型(免费,但性能一般)
└─ 其他商用模型(Claude、Kimi 等)
2. 向量数据库
├─ Elasticsearch(开源,功能完整)
└─ Infinity(更轻量级)
3. 文档处理参数
├─ 切片大小(通常 800-1000 字)
├─ 重叠区域(通常 100-200 字)
└─ 是否启用 DeepDoc(推荐启用)
4. 检索参数
├─ 返回文段数(通常 5-10 条)
├─ 相似度阈值(通常 0.6-0.8)
└─ 是否启用多路召回(推荐启用)
第六部分:常见问题解答
Q1:RAGFlow 的准确率真的有 95% 吗?
准确率不是固定的,取决于:
1️⃣ 文档质量
✅ 清晰 PDF → 准确率 95%+
⚠️ 扫描件、手写稿 → 准确率 80-90%
❌ 模糊、残缺文档 → 准确率 50%
2️⃣ 提问的清晰度
✅ "2024年净利润是多少?" → 准确率高
⚠️ "公司最近怎么样?" → 准确率一般
❌ "讲讲这个..." → 可能无法回答
3️⃣ 数据覆盖度
✅ 知识库中有相关内容 → 准确率 90%+
❌ 知识库中没有内容 → 无法回答
4️⃣ LLM 能力
✅ GPT-4 → 准确率最高
⚠️ GPT-3.5 → 准确率一般
❌ 开源小模型 → 准确率可能较低
结论:
与其问"准确率多少",
不如问"怎样优化准确率"
优化方法:
├─ 上传清晰的源文档
├─ 让用户提清晰的问题
├─ 用 GPT-4 等高质量模型
├─ 定期更新知识库
└─ 根据反馈调整切片参数
Q2:如果知识库中没有答案怎么办?
情况 1:知识库中确实没有
✅ RAGFlow 会诚实地说:"知识库中未找到相关内容"
✅ 不会编造答案(这是优势!)
情况 2:想要扩展搜索范围
✅ RAGFlow 支持集成网络搜索
✅ 自动网络查询 + 关联返回
✅ 类似 ChatGPT 的 Web 搜索功能
配置方法:
在设置中启用 Tavily(网络搜索 API)
之后:
- 知识库有 → 返回知识库答案
- 知识库无 → 自动网络搜索
Q3:部署和维护成本高吗?
开源版本成本:
1️⃣ 软件成本
0 元(完全开源免费)
2️⃣ 服务器成本
小规模(<10k 文档):
├─ 8GB 内存服务器
├─ 50GB 存储
└─ 约 ¥60-100/月
中等规模(10k-100k 文档):
├─ 32GB 内存服务器
├─ 500GB 存储
└─ 约 ¥200-300/月
3️⃣ LLM 成本
如果用 OpenAI:
├─ GPT-4:约 ¥1000-2000/月(中等使用)
├─ GPT-4o:约 ¥500-1000/月(推荐)
└─ 或用开源模型:0 元(但性能一般)
4️⃣ 维护成本
✅ 开源项目,自己维护
❌ 没有商业支持(但有社区)
总成本估算:
• 小公司试用:¥500-1000/月
• 中等规模生产环境:¥2000-5000/月
对比商用 RAG 工具:
❌ 商用通常 ¥5000+/月
✅ RAGFlow 便宜 70%+
Q4:数据安全怎么保证?
传统云服务的风险:
❌ 数据上传到云端
❌ 无法完全控制
❌ 可能泄露商业机密
RAGFlow 的优势:
✅ 完全本地部署
✅ 数据永远不上云
✅ 完全可控
部署方式:
├─ 公司内网部署
├─ 防火墙隔离
├─ 数据库加密
├─ 只允许内部访问
└─ 定期备份
代码透明性:
✅ 开源项目,所有代码可见
✅ 可以自己审计代码
✅ 没有隐藏的数据采集
结论:
如果数据敏感 → RAGFlow 最安全 ✅
第七部分:总结与启示
我们学到了什么?
1️⃣ RAG 的核心价值
大模型 + 私密数据 = 准确的答案
关键是"怎样理解和检索数据"
2️⃣ RAGFlow 的创新
质量优先:不是快速简单,而是准确可靠
用户体验:不需要技术,开箱即用
成本优化:开源免费,自己可控
3️⃣ 应用前景
企业 AI 的标准方案
从"通用 AI" → "专业 AI"的过渡
4️⃣ 对我们的意义
├─ 如果想用 AI 处理企业数据 → RAGFlow 首选
├─ 如果想快速原型开发 → RAGFlow 合适
├─ 如果需要高度定制 → 可以修改源码
└─ 如果想学习 RAG 技术 → 绝佳教材
下一步建议
短期(1-2 周):
□ 了解 RAG 基本原理
□ 本地安装并尝试
□ 用公司的一份样本文档测试
中期(2-4 周):
□ 调整参数优化效果
□ 构建完整的知识库
□ 评估是否满足需求
长期(1 个月+):
□ 考虑生产环境部署
□ 制定 SOP(标准操作流程)
□ 评估是否扩展到其他部门
背景资料
核心技术术语(不需要深入理解)
Embedding(向量化):
把文本转换成一个数字向量
相似的内容 → 相似的向量
这样就能快速计算相似度
向量数据库:
存储这些向量的专用数据库
支持快速的相似度搜索
速度比普通数据库快 1000 倍
BM25 算法:
一种经典的关键词搜索方法
精确度很高,已被验证
多路召回:
用多种搜索方式同时搜索
然后综合排序结果
准确率更高
推荐资源
想深入学习?
📖 官方文档:
https://docs.ragflow.io
💻 GitHub 项目:
https://github.com/infiniflow/ragflow
🎥 视频教程:
官方 YouTube 频道(搜索 RAGFlow)
💬 社区讨论:
GitHub Discussions
结语
RAGFlow 代表了一个重要趋势:
从”万能的通用 AI” → “专业的领域 AI”
每个企业都在问:”我们能用 AI 解决自己的问题吗?”
RAGFlow 的回答是:“可以,而且很简单。”
现在你明白了 RAGFlow 是什么、怎样工作、能解决什么问题。
接下来的选择取决于你的企业需求。
感谢你花时间了解 RAGFlow!有任何问题,欢迎讨论。
