融合 RAG 与 Agent 的开源检索增强生成引擎,新增飞书/Discord/Telegram 多渠道接入,支持 DeepSeek v4。提供完整 Docker 部署与源码,适合企业级知识库搭建。
🔎 系统架构
🔧 构建 Docker 镜像
🔨 从源码启动服务进行开发
RAGFlow 是一个领先的开源检索增强生成(RAG)引擎,将前沿的 RAG 与 AI 智能体能力融合,为大语言模型打造卓越的上下文层。它提供精简的 RAG 工作流程,可适配任意规模的企业。RAGFlow 由收敛型上下文引擎和预置 AI 智能体模板驱动,使开发者能够将复杂数据转化为高保真、生产就绪的 AI 系统,兼具卓越的效率和精准度。
请访问 https://cloud.ragflow.io 体验我们的云服务。
2026-06-15 支持多种聊天渠道,如飞书、Discord、Telegram、Line 等。
2026-04-24 支持 DeepSeek v4。
2026-03-24 RAGFlow Skill on OpenClaw — 提供官方 skill,可通过 OpenClaw 访问 RAGFlow 数据集。
2025-12-26 支持 AI 智能体的「记忆」功能。
2025-11-19 支持 Gemini 3 Pro。
2025-11-12 支持从 Confluence、S3、Notion、Discord、Google Drive 同步数据。
2025-10-23 支持 MinerU 和 Docling 作为文档解析方法。
2025-10-15 支持可编排的 ingestion pipeline。
2025-08-08 支持 OpenAI 最新的 GPT-5 系列模型。
2025-08-01 支持 Agentic Workflow 和 MCP。
2025-05-23 在 Agent 中新增 Python/JavaScript 代码执行器组件。
2025-03-19 支持使用多模态模型理解 PDF 或 DOCX 文件中的图片。
⭐️ 给我们的仓库点个 Star 以跟踪激动人心的新功能和更新!获取新版本的即时通知!🌟
🍭 「质量输入,质量输出」
基于深度文档理解,从具有复杂格式的非结构化数据中进行知识提取。
在真正无限量的 token 数据堆中找出「针」。
🍱 基于模板的分块
智能且可解释。
提供丰富的模板选项供选择。
🌱 减少幻觉的 grounded 引用
可视化文本分块,支持人工介入。
快速查看关键参考文献和可追溯的引用,以支撑 grounded 回答。
🍔 异构数据源的兼容性
支持 Word、幻灯片、Excel、TXT、图片、扫描件、结构化数据、网页等。
🛀 自动化且轻松的 RAG 工作流
为个人和大型企业量身定制的精简 RAG 编排。
可配置的 LLM 以及向量化模型。
多次召回配合融合重排序。
直观的 API 实现与业务系统的无缝集成。
🔎 系统架构
Docker >= 24.0.0 & Docker Compose >= v2.26.1
gVisor:仅在您打算使用 RAGFlow 的代码执行器(沙箱)功能时才需要。
如果您尚未在本地机器(Windows、Mac 或 Linux)上安装 Docker,请参阅安装 Docker Engine。
🚀 启动服务器
确保 vm.max_map_count >= 262144:检查 vm.max_map_count 的值:
sysctl vm.max_map_count
如果不符合要求,将其重置为至少 262144:
# 此处将其设置为 262144:
sudo sysctl -w vm.max_map_count=262144
此更改将在系统重启后重置。为确保更改永久生效,请在 /etc/sysctl.conf 中相应地添加或更新 vm.max_map_count 值:
vm.max_map_count=262144
克隆仓库:
git clone https://github.com/infiniflow/ragflow.git
使用预构建的 Docker 镜像启动服务器:
所有 Docker 镜像均为 x86 平台构建。我们目前不提供 ARM64 的 Docker 镜像。如果您使用的是 ARM64 平台,请按照本指南构建与您的系统兼容的 Docker 镜像。
以下命令下载 RAGFlow Docker 镜像的 v0.26.4 版本。不同 RAGFlow 版本的具体说明见下表。如需下载 v0.26.4 以外版本的 RAGFlow,请在启动服务前根据 docker/.env 中的 RAGFLOW_IMAGE 变量更新相应版本,再使用 docker compose 启动服务。
cd ragflow/docker
git checkout v0.26.4
# 可选:使用稳定标签(参见 releases:https://github.com/infiniflow/ragflow/releases)
# 此步骤确保代码中的 **entrypoint.sh** 文件与 Docker 镜像版本匹配。
# 使用 CPU 处理 DeepDoc 任务:
docker compose -f docker-compose.yml up -d
# 使用 GPU 加速 DeepDoc 任务:
# sed -i '1i DEVICE=gpu' .env
# docker compose -f docker-compose.yml up -d
注意:在 v0.22.0 之前,我们同时提供带向量化模型的镜像和不带向量化模型的 slim 镜像。详情如下:
从 v0.22.0 起,我们仅发布 slim 版本,不再在镜像标签后附加 -slim 后缀。
服务器启动并运行后,检查服务器状态:
docker logs -f docker-ragflow-cpu-1
以下输出确认系统成功启动:
____ ___ ______ ______ __
/ __ \ / | / ____// ____// /____ _ __
/ /_/ // /| | / / __ / /_ / // __ \| | /| / /
/ _, _// ___ |/ /_/ // __/ / // /_/ /| |/ |/ /
/_/ |_|/_/ |_|\____//_/ /_/ \____/ |__/|__/
* Running on all addresses (0.0.0.0)
如果跳过此确认步骤而直接登录 RAGFlow,你的浏览器可能会提示网络异常错误,因为此时 RAGFlow 可能尚未完全初始化。
在 Web 浏览器中输入服务器 IP 地址并登录 RAGFlow。使用默认设置时,只需输入 http://IP_OF_YOUR_MACHINE(省略端口号),因为默认 HTTP 服务端口 80 在默认配置下可省略。
在 Web 浏览器中输入服务器 IP 地址并登录 RAGFlow。
使用默认设置时,只需输入 http://IP_OF_YOUR_MACHINE(省略端口号),因为默认 HTTP 服务端口 80 在默认配置下可省略。
在 service_conf.yaml.template 中,在 user_default_llm 中选择所需的 LLM 厂商,并更新相应 API key 的 API_KEY 字段。详见 llm_api_key_setup。
在 service_conf.yaml.template 中,在 user_default_llm 中选择所需的 LLM 厂商,并更新相应 API key 的 API_KEY 字段。
详见 llm_api_key_setup。
在系统配置方面,你需要管理以下文件:
.env:保存系统的基础设置,如 SVR_HTTP_PORT、MYSQL_PASSWORD 和 MINIO_PASSWORD。
service_conf.yaml.template:配置后端服务。该文件中的环境变量会在 Docker 容器启动时自动填充。Docker 容器内设置的任何环境变量均可使用,允许你根据部署环境自定义服务行为。
docker-compose.yml:系统依赖 docker-compose.yml 来启动。
./docker/README 文件提供了详细的环境设置和服务配置说明,这些配置可用作 service_conf.yaml.template 中的 ${ENV_VARS}。
要更新默认 HTTP 服务端口(80),请前往 docker-compose.yml 将 80:80 改为 <YOUR_SERVING_PORT>:80。
上述配置的更新需要重启所有容器才能生效:
docker compose -f docker-compose.yml up -d
将文档引擎从 Elasticsearch 切换到 Infinity
RAGFlow 默认使用 Elasticsearch 存储全文和向量。要切换到 Infinity,请按以下步骤操作:
停止所有运行中的容器:
docker compose -f docker/docker-compose.yml down -v
-v 会删除 Docker 容器卷,现有数据将被清除。
在 docker/.env 中将 DOC_ENGINE 设置为 infinity。
在 docker/.env 中将 DOC_ENGINE 设置为 infinity。
启动容器:
docker compose -f docker/docker-compose.yml up -d
在 Linux/arm64 机器上切换到 Infinity 尚未正式支持。
🔧 构建 Docker 镜像
此镜像约 2 GB,依赖外部 LLM 和 embedding 服务。
git clone https://github.com/infiniflow/ragflow.git
cd ragflow/
docker build --platform linux/amd64 -f Dockerfile -t infiniflow/ragflow:nightly .
如果你在代理后面,可以通过以下方式传递代理参数:
docker build --platform linux/amd64 \
--build-arg http_proxy=http://YOUR_PROXY:PORT \
--build-arg https_proxy=http://YOUR_PROXY:PORT \
-f Dockerfile -t infiniflow/ragflow:nightly .
🔨 从源码启动服务进行开发
首次克隆仓库后,需要从仓库根目录运行一次 git config --local --unset core.hooksPath、uv tool install lefthook 和 lefthook install,以启用本地 Git hooks。
安装 uv,如果已安装可跳过此步骤:
pipx install uv
克隆源码并安装 Python 依赖:
git clone https://github.com/infiniflow/ragflow.git
cd ragflow/
uv sync --python 3.13 # install RAGFlow dependent python modules
uv run python3 ragflow_deps/download_deps.py
git config --local --unset core.hooksPath
uv tool install lefthook
lefthook install
使用 Docker Compose 启动依赖服务(MinIO、Elasticsearch、Redis 和 MySQL):
docker compose -f docker/docker-compose-base.yml up -d
在 /etc/hosts 中添加以下行,将 docker/.env 中指定的所有主机名解析到 127.0.0.1:
127.0.0.1 es01 infinity mysql minio redis sandbox-executor-manager
如果你无法访问 HuggingFace,可以设置 HF_ENDPOINT 环境变量来使用镜像站点:
export HF_ENDPOINT=https://hf-mirror.com
如果你的操作系统没有 jemalloc,请按以下方式安装:
# Ubuntu
sudo apt-get install libjemalloc-dev
# CentOS
sudo yum install jemalloc
# OpenSUSE
sudo zypper install jemalloc
# macOS
brew install jemalloc
启动后端服务:
source .venv/bin/activate
export PYTHONPATH=$(pwd)
bash docker/launch_backend_service.sh
安装前端依赖:
cd web
npm install
启动前端服务:
npm run dev
以下输出确认系统成功启动:

启动前端服务:
npm run dev
以下输出确认系统成功启动:

开发完成后停止 RAGFlow 前端和后端服务:
pkill -f "ragflow_server.py|task_executor.py"
开发完成后停止 RAGFlow 前端和后端服务:
pkill -f "ragflow_server.py|task_executor.py"
参见 RAGFlow 2026 路线图
RAGFlow 通过开源协作蓬勃发展。本着这一精神,我们欢迎社区的多样化贡献。如果你希望成为其中一员,请先阅读我们的贡献指南。