欢迎光临
我们一直在努力

RAGFlow(检索增强生成)引擎本地私有化部署

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,其他配置不用修改,使用默认值。保存配置。

然后上传本地文件,将知识库所需的所有文件都上传上来。

注意:上传后一定要点击“解析”按钮!

赞(0)
未经允许不得转载:171主机测评 » RAGFlow(检索增强生成)引擎本地私有化部署
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址