Loading...

文章背景图

RAGFlow:深度文档理解RAG引擎安装与使用指南

2026-10-21
0
- 字
- 分钟
|

RAGFlow:深度文档理解RAG引擎安装与使用指南

RAGFlow

官方信息

项目名称RAGFlow
仓库地址https://github.com/infiniflow/ragflow
官方网站https://ragflow.io
最新更新时间2026-10-21
Star 数45k+
项目定位基于深度文档理解的开源 RAG 引擎,擅长处理复杂 PDF 和表格

项目背景

RAGFlow 是由 infiniflow 团队开源的 RAG(Retrieval-Augmented Generation)引擎。市面上大多数 RAG 系统在处理纯文本时表现不错,但一遇到带复杂表格、图片、扫描件、多栏排版的 PDF 就抓瞎——切分不对、表格丢失、检索召回率低。RAGFlow 的核心卖点就是"深度文档理解":它用视觉模型 + 布局分析来解析文档,能准确识别标题、段落、表格、图片,并保留它们之间的逻辑关系。

在企业知识库场景中,大量文档是合同、财报、技术白皮书、医学文献——这些都是复杂排版的 PDF。传统的 RAG 方案把 PDF 粗暴转成纯文本再切分,结果就是"问财报里某季度营收"根本答不对,因为表格信息已经丢了。RAGFlow 通过 DeepDoc 文档解析引擎,把 PDF 还原成结构化的 Markdown 带表格,再做切片和向量化,检索质量显著提升。

RAGFlow 同时提供了完整的 Web UI:上传文档、选择解析模板、测试检索效果、调试 Prompt、发布 API——一条龙服务,不需要写代码。

核心特性

  • DeepDoc 深度文档解析:OCR + 布局分析 + 表格识别,支持扫描件 PDF、多栏排版、复杂表格。
  • 多种切分模板:通用、论文、法律、手册、表格、图片等预设模板,针对不同文档类型优化切分策略。
  • 混合检索:向量检索 + 全文检索(BM25)+ 重排序(Rerank),三路融合提升召回。
  • 引用溯源:回答会标注来自原文的哪一页、哪一段,可点击查看出处。
  • 可视化调试:可以看到每个 chunk 的内容、向量相似度分数,调参直观。
  • 多模型接入:支持 OpenAI、DeepSeek、通义、Ollama、本地嵌入模型。
  • API 优先:所有功能都有 REST API,可嵌入自有应用。

环境要求

项目最低要求推荐配置
操作系统Ubuntu 20.04+Ubuntu 22.04 LTS
Docker20.10+24.0+
Docker Composev2.0+v2.20+
CPU4 核8 核+
内存8 GB16 GB+
磁盘20 GB50 GB+ SSD
GPU(可选)无NVIDIA 4GB+(加速文档解析)

详细部署步骤

第一步:安装 Docker

curl -fsSL https://get.docker.com | bash
systemctl start docker && systemctl enable docker
docker --version && docker compose version

第二步:克隆 RAGFlow

cd /opt
git clone https://github.com/infiniflow/ragflow.git
cd ragflow/docker

第三步:配置环境变量

# 编辑 .env 文件
vim .env

# 关键配置:
# 服务器内存小于 16GB 用 slim 镜像;大于 16GB 用完整镜像
# 镜像版本在 docker-compose.yml 中修改:
#   ragflow:ragflow:x.y.y-slim   # 轻量版(CPU 推理,约 2GB)
#   ragflow:ragflow:x.y.y       # 完整版(含本地 embedding 模型,约 9GB)

# 时区
TIMEZONE=Asia/Shanghai

# 端口(默认 80,被占用就改)
SVR_HTTP_PORT=9380

第四步:启动 RAGFlow

# 拉取镜像并启动
docker compose up -d

# 查看日志,等待初始化完成
docker compose logs -f ragflow

首次启动会下载模型文件,需要 5-15 分钟,看到 Uvicorn running on http://0.0.0.0:9380 即启动成功。

第五步:初始化账号

浏览器访问 http://你的服务器IP:9380:

  • 首次使用点击"注册"
  • 输入邮箱、密码(管理员账号)
  • 登录后进入主界面

第六步:配置 LLM 模型

右上角头像 → 模型提供商,以 DeepSeek 为例:

  1. 选择 DeepSeek
  2. 填入 API Key
  3. 保存,设为默认聊天模型

如果用本地 Ollama:

  1. 选择 Ollama
  2. 服务器地址填 http://host.docker.internal:11434(Docker 内访问宿主)
  3. 填入模型名(如 qwen2.5:7b)

第七步:创建知识库并上传文档

  1. 左侧"知识库" → 新建知识库
  2. 选择切片方法:
    • General:通用文档,适合普通文本
    • Book:书籍类,保留章节结构
    • Paper:学术论文,按摘要/引言/方法切分
    • Law:法律条文,按条款切分
    • Manual:产品手册
    • Table:纯表格文档
  3. 选择 Embedding 模型(如 BAAI/bge-large-zh-v1.5)
  4. 上传 PDF / Word / Excel / TXT
  5. 等待解析完成(状态变为"已完成")

第八步:测试检索效果

  1. 进入知识库 → "测试"标签
  2. 输入一个问题,查看召回的 chunks 和相似度分数
  3. 调整 Top N、相似度阈值、重排序开关
  4. 满意后进入"聊天" → 新建助手,关联该知识库

第九步:API 调用

在"头像 → API"中生成 API Key,然后:

# 发起对话
curl -X POST 'http://your-server:9380/api/v1/chats/chat-id/completions' \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
    "question": "这份文件的核心结论是什么?",
    "stream": false
  }'

常见坑与解决

  • OOM 启动失败:8GB 内存机器用 slim 镜像,并设置 MEM_LIMIT=4G。
  • PDF 解析乱码:扫描件需要 OCR,确认用的是完整版镜像(不是 slim)。
  • 中文检索效果差:Embedding 模型选中文优化的 bge-large-zh,不要用英文模型。
  • 文档上传后一直 parsing:检查 Elasticsearch 状态 docker compose logs es,通常是内存不足。

使用方法示例

默认端口 9380,注册第一个账号即为管理员。RAGFlow 内置的 Elasticsearch + Infinity 向量数据库全部在 Docker 内,无需额外安装。生产环境建议把 9380 端口反代到 Nginx 并加 HTTPS。

常见问题 FAQ

Q1:RAGFlow 和 Dify 知识库有什么区别?
A:RAGFlow 专注文档解析深度,复杂 PDF/表格处理能力强;Dify 是全功能 LLM 平台,知识库只是其中一个模块。如果你主要需求是"喂大量 PDF 进去问答",RAGFlow 更好;如果还要工作流和 Agent,选 Dify。

Q2:支持多少并发?
A:默认 Docker 配置支持 10-50 并发,生产环境建议加 GPU 跑 Embedding 和 Rerank,并用 Nginx 负载均衡。

Q3:数据存在哪里?
A:文档原文和 chunk 存在 Elasticsearch,向量存在 Infinity/ES,元数据存在 MySQL。都在 Docker volumes 里。

Q4:能微调模型吗?
A:RAGFlow 是 RAG 引擎,不做微调。它的定位是检索增强,不是训练平台。

Q5:开源协议?
A:基于 Apache 2.0,允许商用。

跳转链接

评论交流

文章目录