RAGFlow:企业级 RAG 引擎,让文档真正被理解

RAGFlow:企业级 RAG 引擎,让文档真正被理解

智能体

📖 简介

RAGFlow 是深度文档理解的企业级 RAG 引擎,85k+ Stars。独特的文档解析技术让 PDF/表格/图片中的信息能被 AI 精准检索。

📝 详细介绍

RAGFlow:企业级RAG引擎,让文档真正被理解

RAGFlow 解决的问题很具体:企业里大量 PDF、Word、Excel、PPT 等非结构化文档,传统 Search 和 RAG 方案要么解析成纯文本丢失排版与表格结构,要么分块后无法准确回答依赖表格、列表、长文档跨段的问题。RAGFlow 通过深度文档解析 + 智能分块 + 混合检索,让系统能理解文档的物理布局和语义结构,从而给出基于事实的、带引用的准确回答。

GitHub 数据

指标数据
Stars16.8k
主要语言Python
开源协议Apache-2.0
最近更新2025-04-10

项目背景

RAGFlow 由 infiniflow 团队开发,核心成员来自阿里、微软等企业,有多年搜索引擎和 NLP 工程经验。团队发现现有的 RAG 框架(如 LangChain 的 naive RAG)在面对真实企业文档时问题突出:

  • PDF 中的表格、图片、页眉页脚被简单丢弃或按文本流截断;
  • 分块策略缺乏对文档结构的感知,导致同一表格被切到不同 chunk;
  • 检索轮询后无法提供引用源,用户不敢信任回答。

RAGFlow 的定位是“企业级”,意味着它必须处理文档多样性、保证高精度、提供可视化配置和 API。因此从底层文档解析器到检索流水线完全自研,而非简单包装 LLM。

核心功能解析

深度文档解析(Deep Document Parsing)

不同于大多数 RAG 工具调用 PyMuPDF、python-docx 等通用库,RAGFlow 内置基于深度学习布局分析的解析器。它能识别表格边界、合并单元格、列表层级、图片位置,并保留原始排版信息。解析结果以结构化 JSON 输出,包含每个元素的类型(text/table/table_row/list_item/picture)、坐标、字体信息。

配置解析时,可在系统设置中选择解析方式。例如通过 API 触发解析:

# 通过 REST API 上传文档并解析
curl -X POST http://localhost:9380/api/v1/dataset/upload 
  -H "Authorization: Bearer <your-token>" 
  -F "file=@report.pdf" 
  -F "parser_config={"layout_recognition":"deep","table_recovery":true}"

智能分块与检索

RAGFlow 提供多种分块策略:滑动窗口(固定 token 数,可重叠)、段落感知(基于标题/空行自然分割)、表格保持(保证同一表格不跨块)。分块后自动生成向量和全文索引,支持 Hybrid Search(向量相似度 + BM25 关键词)与 Rerank 重排序。检索结果会附带来源快照(PDF 截图),方便验证。

在配置文件或 API 中可设置分块参数:

# chunk_tokens 控制每块最大 token 数,chunk_overlap 控制重叠 token
{
  "chunk_method": "ragflow_auto",
  "chunk_tokens": 512,
  "chunk_overlap": 64,
  "embedding_model": "BAAI/bge-large-zh-v1.5"
}

内置 Rerank 与引用溯源

检索出 top-K 候选后,RAGFlow 使用 Cross-Encoder 模型对结果重新排序,提升精度。最终 LLM 回答时,每个句子后面可自动生成脚注引用,点击脚注展示原始文档的截屏片段。这是企业级场景的刚需,尤其合规审计时。

快速上手

推荐通过 Docker Compose 部署,一条命令启动所有服务(包括 Elasticsearch、MySQL、Redis、MinIO):

# 克隆仓库
git clone https://github.com/infiniflow/ragflow.git
cd ragflow

# 使用 docker-compose 启动(默认使用 CPU 推理)
docker compose -f docker-compose.yml up -d

# 如需 GPU 加速,使用 GPU 版本
docker compose -f docker-compose-gpu.yml up -d

# 访问 http://localhost:9380 进入 Web UI
# 初始用户名 admin,密码 ragflow

然后上传一个 PDF,选择解析模型,创建知识库,即可在对话界面测试。

技术亮点

RAGFlow 最值得关注的设计决策是 文档解析与分块的解耦。解析阶段输出带布局标签的元素序列,分块阶段则根据标签类型和用户配置(如最小块大小、最大块数、表格强制完整)动态划分。这种架构避免了“先分块再解析”导致的语义断裂,也支持插入自定义解析器。例如,工程师可以绕过内置的深度模型,直接提供已解析好的 JSON 数据。

另一个工程亮点是 流式文档处理流水线:上传文档后立即开始解析,解析结果写入消息队列,后台 worker 并行进行分块、向量化、全文索引,整个过程异步非阻塞。这意味着一个大文件(几百页 PDF)上传后,用户几乎不需要等待即可进行搜索(实际索引尚未完成时,系统自动使用部分数据返回结果,并逐步更新)。

另外,RAGFlow 的 多轮对话记忆管理 并非依赖 LLM 的 context window,而是将历史记录结构化存储到向量库中,每次查询自动检索相关历史,从而支持超长对话而不超出上下文限制。

同类对比

项目优势劣势
RAGFlow深度文档解析;表格/列表精准复原;自带 Rerank 和引用溯源;中文优化部署相对重(依赖 ES、MySQL);社区经验不如 LangChain 丰富
LangChain生态大、集成多、灵活性最高文档解析能力弱,需自己编写 loader;无开箱即用的 UI 和引用验证
Dify可视化工作流,低代码,支持多种 RAG 变体解析深度不足;表格处理常失败;高并发时稳定性一般
FastGPTKibana 式体验,配置直观底层基于 LangChain,解析能力受限于 LangChain loader
MaxKB轻量、聚焦知识库问答,支持本地模型对复杂排版文档(如报表)解析效果差,缺少多渠道引用

总结

如果你的业务需要从 PDF/Word 中准确提取表格数据、列表排名、合并单元格信息,并且对回答的出处有严格审计要求(金融、法律、医疗),RAGFlow 是目前开源方案中唯一能真正做到“文档结构理解”的企业级引擎。

推荐人群:企业知识库搭建者、RAG 系统开发工程师、需要高精度文档问答的团队。

🚀

AI 项目推荐

智能体
标签
#RAG #文档理解 #知识库 #企业搜索
浏览
👁️ 4
发布日期
2026-07-30