一、前言

随着大语言模型(LLM)的广泛应用,检索增强生成(RAG)技术已成为解决模型幻觉、打通企业私有知识的关键手段。然而,在实际落地中,向量数据库的构建并非易事——面对 PDF、Word、Excel、PPT 等多种非结构化文档的分门别类处理、内容清洗、多模态分析等环节,开发者往往需要编写大量定制脚本,耗费巨大精力。

RAGFlow 作为一款开源的 RAG 工作流框架,提供了一套简单高效的"化散为整"解决方案。本文将从概念、架构、部署到实战,系统梳理 RAGFlow 的核心知识。

二、RAGFlow 是什么

2.1 概念

RAGFlow 是一种结合了检索增强生成(Retrieval-Augmented Generation, RAG)技术的工作流程框架,主要用于构建和优化基于大型语言模型的知识密集型应用系统。

其核心特性包括:

  • 检索增强生成(RAG):将外部知识库检索与生成式 AI 模型相结合。先检索相关信息,再让模型基于检索结果生成回答,显著提升准确性与可靠性。

  • 工作流程化:将 RAG 的各环节(文档处理、索引构建、检索、生成等)组织成可配置的工作流,开发者可灵活定制和优化每个环节。

  • 模块化设计:包含文档加载器、文档处理器、嵌入模型、向量存储、检索器和生成器等模块,每个模块可独立配置和替换。

  • 可视化与监控:提供工作流可视化和性能监控工具,降低调试门槛。

  • 内置评估框架:可对 RAG 系统各环节进行量化评估与优化。

2.2 典型应用场景

  • 企业知识库智能问答

  • 文档智能搜索

  • 个性化推荐系统

  • 行业知识专家助手

2.3 使用 RAGFlow 的意义

在企业知识库开发中,往往需要导入多种非规整格式的文档。RAGFlow 的优势在于:

  1. 多格式自动解析:支持 PDF、Word、Excel、PPT、TXT 等常见文件类型,自动分析内容并解析存储

  2. 独立知识库空间:可自由创建多个独立的知识库,实现知识隔离管理

  3. 可视化操作:通过 Web 界面完成上传、删除、解析等操作,无需编写代码

  4. 灵活的知识助手:可创建知识助手掌握不同知识库,一个助手可关联一个或多个知识库

  5. 来源可追溯:回答中会标注信息来源,并给出源文件引用

三、环境要求

在部署 RAGFlow 之前,请确保环境满足以下最低配置:

资源 要求
CPU 至少 4 核心(x86 架构)
内存 至少 16 GB
存储 至少 50 GB 磁盘空间

注意:低于此配置虽然也能运行,但响应速度会显著下降。RAGFlow 的镜像文件约 7.6 GB,网络环境也需考虑。

四、安装部署指南

RAGFlow 基于 Docker 运行,以下以 Ubuntu 系统为例。

4.1 安装 Docker

# 更新软件包
sudo apt update
sudo apt upgrade -y
​
# 安装 Docker 依赖
sudo apt-get install ca-certificates curl gnupg lsb-release
​
# 添加 Docker 官方 GPG 密钥(使用阿里云镜像加速)
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
​
# 添加 Docker 软件源
sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
​
# 安装 Docker
sudo apt-get install docker-ce docker-ce-cli containerd.io
​
# 启动并验证
sudo systemctl start docker
sudo systemctl status docker

4.2 配置系统参数

# 编辑 sysctl 配置
sudo vim /etc/sysctl.conf
​
# 添加以下参数
vm.max_map_count = 262144
​
# 使配置生效
sysctl -p

4.3 部署 RAGFlow

获取 RAGFlow 源码并解压:

sudo mkdir /opt/mirrors
cd /opt/mirrors
unzip ragflow-main.zip -d /opt/

导入 Docker 镜像(核心组件说明见下表):

docker load -i elasticsearch.tar   # 全文搜索引擎
docker load -i infinity.tar        # 高性能向量数据库
docker load -i minio.tar           # 对象存储服务
docker load -i mysql.tar           # 关系型数据库
docker load -i valkey.tar          # 高性能键值缓存

修改镜像标签,确保与配置文件一致:

vim /opt/ragflow-main/docker/docker-compose-base.yml
​
# 将 es01 的 image 替换为:
image: docker.elastic.co/elasticsearch/elasticsearch:8.11.3

修改环境变量配置:

vim /opt/ragflow-main/docker/.env
​
# 删除华为云镜像源的注释符(约第 105 行)

启动服务:

cd /opt/ragflow-main/docker
docker compose up -d

如果拉取镜像超时,可配置 Docker 镜像加速器(/etc/docker/daemon.json):

{
  "registry-mirrors" : [
    "https://docker.m.daocloud.io",
    "https://mirror.aliyuncs.com"
  ]
}

五、核心组件架构

组件 作用
Elasticsearch 全文搜索引擎,支持高效文本检索
Infinity 字节跳动开源的高性能向量数据库,处理嵌入向量存储与检索
MinIO 兼容 S3 的对象存储,存放文档原始文件
MySQL 关系型数据库,存储元数据和系统配置
Valkey 高性能键值存储,支撑缓存和消息队列

六、配置知识库

6.1 初始化

部署完成后,通过浏览器访问服务器公网 IP,进入 RAGFlow Web 界面:

  1. 注册账号并登录

  2. 在个人设置中将语言切换为中文

6.2 配置模型供应商

阿里云百炼(Tongyi-Qianwen)为例:

  1. 前往 百炼控制台 获取 API-KEY

  2. 在 RAGFlow 中进入「模型供应商」页面

  3. 找到「Tongyi-Qianwen」,添加模型并粘贴 API-KEY

  4. 设置默认模型

千问系列的优势在于模型矩阵全面——大语言模型、多模态模型、重排模型(Rerank)、向量化模型(Embedding)均可通过同一 API 接入,满足大多数任务需求。

6.3 创建知识库

  1. 点击「知识库」→「创建知识库」→ 填写名称和描述 → 保存

  2. 上传知识文档(支持 PDF、Word、Excel、PPT、TXT 等)

  3. 关键步骤:上传后务必点击「解析」按钮,PDF 会调用多模态模型分析,耗时较长请耐心等待

  4. 若解析失败,逐个重新解析即可

6.4 创建知识助手

  1. 进入「助理」页面,点击「创建助理」

  2. 重点:助理描述务必详细填写,否则后续 API 调用时无法灵活处理问题

  3. 为助手关联一个或多个知识库

  4. 创建对话进行测试

测试效果:回答中会给出每条信息的来源标识和源文件引用,说明答案是基于知识库检索生成,而非模型自身知识。

6.5 通用知识助手(推荐配置)

除专业知识库外,建议创建一个通用知识助手来处理非知识库范围内的通用问题:

  • 为通用助手选择性能较好的模型以减少幻觉

  • 设置系统提示词约束其行为边界

  • 通过关键词规则进行助手路由,实现专业问题走专业知识库、通用问题走通用助手的智能分流

七、关键技术要点总结

  1. 文档解析是核心:RAGFlow 的多模态解析能力是其区别于普通向量数据库方案的关键优势,尤其对于 PDF 中的图片、表格内容

  2. 助理描述至关重要:详细的助理描述能显著提升问题处理的灵活性和准确性

  3. 模型选择策略:向量化模型、重排模型、生成模型应搭配选择,千问系列提供了端到端的统一方案

  4. 知识库隔离:不同领域知识应创建独立知识库,通过助手灵活组合,便于管理和维护

  5. 来源可追溯:每个回答都标注信息来源,保证了企业场景下的可信度和可审计性

八、结语

RAGFlow 通过将 RAG 的各个环节标准化、流程化,大幅降低了企业级知识库系统的构建门槛。从多格式文档的自动解析到知识助手的灵活编排,它为开发者提供了一套"开箱即用"但又高度可定制的 RAG 基础设施。

无论是构建企业内部的制度问答系统、产品知识库,还是面向特定领域的行业专家助手,RAGFlow 都是一个值得深入学习和实践的优秀开源项目。


本文基于 RAGFlow 官方文档及实践教程整理,仅供学习交流使用。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐