RAGFlow本地私有化部署
@author 赵健
1. 知识库介绍
AnythingLLM官网 : https://anythingllm.com
RAGFlow官网 : https://ragflow.io/

1.1 RAGFlow介绍
RAGFlow 是一个开源的 Retrieval-Augmented Generation(检索增强生成,RAG)引擎,由 Infiniflow 团队开发。它特别强调「深度文档理解」(deep document understanding)。目的是把复杂、格式多样的数据(PDF、Word、表格、扫描件、ppt、图片等)处理好,构建知识库,使得当用户查询时,能够检索相关内容,并由大语言模型(LLM)基于这些检索到的内容生成答案,并带有可信的引用出处。它也支持 Agent 模型/工作流,意味着可以把检索+生成结合一些自动化任务、推理、脚本执行等能力。
1.1.1 关键功能/特点
下面是 RAGFlow 的主要特性:
| 深文档理解 (Deep Document Understanding) | 能够处理复杂格式的文档,包括扫描件、图片、表格,做 OCR、版面(layout)分析、表格解析等。 |
| 多数据源与异构格式支持 | 支持 Word、Slides、Excel、TXT、Markdown、图片、PPT 等多种类型文件。 |
| 文档切分(Chunking/Template-based chunking) | 文档被切分成“块”,有多种模板可选,能够针对不同格式选合适的切分方式,也支持人工干预。 |
| 检索 + 重排序机制 (Multiple recall + fused re-ranking) | 不同的检索方式结合,再用重排序/过滤机制来提高检索结果的质量。 |
| 带引用(Citation)与可追踪性 | 回答中会保留检索到的来源或块,以便用户追踪和验证。 |
| 可配置/灵活集成 LLM/Embedding 模型 | 用户可以选用不同 embedding 模型、LLM 提供商,也支持本地模型/远程模型。 |
| Agent 模式与脚本执行功能 | 有预置的 “agent 模板”/代理工作流,可以做代码执行、任务调度等。 |
| 可视化界面与操作体验 | 有 web UI 用于上传文档、查看 chunks、测试检索、聊天 assistant 配置等,用户干预文档解析/切分,调试过程更透明。 |
1.1.2 系统架构/工作流程
简要说 RAGFlow 的架构和流程,让你理解内部怎么运作。
文档上传与解析
用户把各种文件上传到系统,系统后台有任务调度器异步处理这些文件:OCR、layout 分析、表格解析、切分成多个 chunk。
嵌入 (Embedding) 与索引 对文本块做 embedding(语义表示),存储向量 + 文本 +元数据;并建立检索索引。默认是 Elasticsearch,也支持其他“DOC 引擎”比如 Infinity。
检索检出与重排序 (Recall + Re‐Ranking) 当有查询/对话请求时,系统从索引中检索可能相关的 chunks,用多个召回策略,然后用重排序融合这些结果,以保证高相关性。
LLM 生成 (Generation) 检索到的相关文本块作为 context 提供给 LLM,由 LLM 来生成答案。这个回答会带有引用,用户能追踪到是哪些文档/哪一块文本支持这个答案。
Agent/自动化/脚本扩展 可以配置 agent 模板,比如执行代码、自动化任务、对上传内容的自动处理等。
UI + APIs 提供 Web UI 来做文档管理、知识库管理、聊天助手配置、检索测试等,同时也提供 API 接口,方便外部系统/应用集成。
1.2 技术选型
AnythingLLM 和 RAGFlow 都是基于 RAG(检索增强生成)技术的知识库工具,但它们在核心定位、功能侧重和适用场景上存在显著差异。
1.2.1 核心定位与功能对比
AnythingLLM 的核心定位是隐私优先的私有化知识库聊天机器人,强调数据本地化和用户权限管理。 它支持多用户权限管理和工作区隔离,适合对数据隐私要求高的个人或企业场景。其技术栈包括 JavaScript/TypeScript 和 Python,支持多模型(如 Llama、GPT)和向量数据库(如 ChromaDB)。
RAGFlow 则定位为端到端的高质量 RAG 引擎,专注于深度文档理解。它擅长处理复杂格式文档(如 PDF、影印件),并提供基于模板的文本切片与可视化调整功能。 其技术优势在于多路召回与重排序优化,适合对答案准确性要求高的场景(如法律、医疗、金融领域)。
1.2.2 适用场景差异
-
AnythingLLM:适用于需要数据完全本地化、注重隐私保护的场景,例如企业内部知识管理或敏感数据问答。
-
RAGFlow:适用于需要处理多格式复杂文档且对答案准确性要求极高的场景,例如金融财报分析或学术论文知识图谱构建。
1.2.3 技术特点与优势
AnythingLLM 的优势在于轻量化部署和隐私保护,支持桌面应用(Windows/MacOS/Linux)。 而 RAGFlow 的优势在于其专利级文档语义理解技术(如 DeepDoc),支持表格/图表内容提取,准确率超过 92%。
1.2.4 总结对比
| FastGPT | RAG 应用 + 工作流 | 中文社区活跃、上手快、知识库功能好 | 多 Agent/扩展性一般 | 企业内部助手 |
| Dify | AI 应用编排平台 | Agent & Workflow 强大,生态完整 | 偏重低代码,RAG 相对次要 | 想做复杂 AI 应用的团队 |
| RAGFlow | RAG 框架 | 检索解释性好,支持多模态 | 偏底层,业务功能要自己搭 | 研发/科研人员 |
| MaxKB | 轻量知识库问答工具 | 部署简单、学习成本低 | 功能较少,扩展性有限 | 中小团队 |
要是你准备在公司里用:
-
快速搭建问答机器人 → 选 FastGPT 或 MaxKB
-
做复杂 AI 产品(Agent/多流程) → 选 Dify
-
做研发/追求可解释性/多模态 RAG → 选 RAGFlow
2. RAGFlow部署
2.1. 下载
下载地址 : https://github.com/infiniflow/ragflow/releases/

2.2. 修改配置文件
注意:
默认是包含embedding models,ragflow的镜像大概9G 但笔者并未使用 v0.21.1 而是使用的v0.21.1-slim版本,我更倾向于更小的安装镜像,同时embedding models,可以使用ollama 来安装或者使用模型提供商提供的比如 siliconflow 或者 阿里云百炼下的 embedding modles
vi .env
# 修改环境配置参数:
# 修改使用的镜像版本, 是slim版还是标准版
# 瘦身版
# RAGFLOW_IMAGE=infiniflow/ragflow:v0.21.1-slim
# 标准版, 指定阿里云下载, 阿里限制每天只能下载100次
#RAGFLOW_IMAGE=registry.cn-hangzhou.aliyuncs.com/infiniflow/ragflow:v0.21.1
# 指定华为云下载
RAGFLOW_IMAGE=swr.cn-north-4.myhuaweicloud.com/infiniflow/ragflow:v0.21.1
# The local time zone. 时区默认是上海
TIMEZONE=Asia/Shanghai
## 如果觉得内存限制太小或者太大可以自行调整,但是ES最低不要低于2G
# The maximum amount of the memory, in bytes, that a specific Docker container can use while running.
# Update it according to the available memory in the host machine.
MEM_LIMIT=3073741824
wq!
修改minio
修改ragflow/docker/docker-compose-base.yml文件
minio:
# docker hub上无此版本
#image: quay.io/minio/minio:RELEASE.2025-06-13T11-33-47Z
image: minio/minio:RELEASE.2025-06-13T11-33-47Z
修改 docker-compose-base.yml (需要时修改)
如果redis镜像无法下载使用中国镜像
redis:
# swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/valkey/valkey:8
#image: valkey/valkey:8
image: swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/valkey/valkey:8
Docker 国内加速(需要时修改)
vim /etc/docker/daemon.json (文件没有手动创建)
{
"registry-mirrors": [
"https://registry.docker-cn.com",
"https://docker.hpcloud.cloud",
"https://docker.m.daocloud.io",
"https://docker.unsee.tech",
"https://docker.1panel.live",
"http://mirrors.ustc.edu.cn",
"https://docker.chenby.cn",
"http://mirror.azure.cn",
"https://dockerpull.org",
"https://dockerhub.icu",
"https://hub.rat.dev",
"https://docker.registry.cyou",
"https://docker-cf.registry.cyou",
"https://dockercf.jsdelivr.fyi",
"https://docker.jsdelivr.fyi",
"https://dockertest.jsdelivr.fyi",
"https://mirror.aliyuncs.com",
"https://dockerproxy.com",
"https://mirror.baidubce.com",
"https://docker.m.daocloud.io",
"https://docker.nju.edu.cn",
"https://docker.mirrors.sjtug.sjtu.edu.cn",
"https://docker.mirrors.ustc.edu.cn",
"https://mirror.iscas.ac.cn"
],
"insecure-registries" : [
"registry.docker-cn.com",
"docker.mirrors.ustc.edu.cn"
]
}
2.3. 下载运行镜像
将上面git中的RAGFlow下载后上传到服务器
# 设置docker compose目录的操作权限, 否则会权限不足而失败
chmod -R 777 /usr/local/ragflow/docker
# 进入到ragflow的docker目录
cd ragflow/docker
# CPU版本使用下面命令
docker-compose docker-compose.yml up -d
# GPU版本使用下面命令
docker-compose -f docker-compose-gpu.yml up -d

2.4. 测试
访问地址: http://192.168.200.129:80
3. RAGFlow配置
3.1. 注册登录


3.2. 设置中文

3.3. 添加模型
添加模型

进入模型供应商界面, 添加私有化部署的deepseek模型, 这里选择ollama

添加选项中的内容如下, 可以参考



3.4. 创建知识库

按照下面添加知识库

语言选择中文,可以选择不同的嵌入模型,解析方法包括了通用、简历、表格等,此处我们选择General,其他配置不用修改,使用默认值。保存配置。
然后上传本地文件,将知识库所需的所有文件都上传上来。
注意:上传后一定要点击“解析”按钮!





