针对文档理解优化的 RAG 系统,解决知识库应用的核心瓶颈,适合生产环境部署。
RAGFlow 是领先的开源检索增强生成(Retrieval-Augmented Generation,RAG)引擎,它将前沿的 RAG 技术与 Agent 能力相融合,为 LLM 打造更出色的上下文层。RAGFlow 提供了一套精简高效的 RAG 工作流,可适配各种规模的企业。凭借融合式上下文引擎和预构建的 Agent 模板,RAGFlow 让开发者能够以卓越的效率和精度,将复杂数据转化为高保真、可用于生产环境的 AI 系统。
欢迎体验我们的云服务:https://cloud.ragflow.io。
2026-06-15 支持飞书、Discord、Telegram、Line 等多种聊天渠道。
2026-04-24 支持 DeepSeek v4。
2026-03-24 OpenClaw 上线 RAGFlow Skill——提供官方 Skill,可通过 OpenClaw 访问 RAGFlow 数据集。
2025-12-26 AI Agent 支持「Memory」。
2025-11-19 支持 Gemini 3 Pro。
2025-11-12 支持从 Confluence、S3、Notion、Discord、Google Drive 同步数据。
2025-10-23 支持将 MinerU 和 Docling 用作文档解析方式。
2025-10-15 支持可编排的数据摄取流水线。
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 数量限制的海量数据,也能找到“数据草堆中的针”。
智能且可解释。
提供丰富的模板选项。
将文本分块过程可视化,支持人工干预。
快速查看关键参考内容和可追溯引用,为有依据的回答提供支撑。
支持 Word、Slides、Excel、TXT、图像、扫描件、结构化数据、网页等多种格式。
为个人和大型企业量身打造精简的 RAG 编排流程。
LLM 和 embedding 模型均可配置。
多路召回与融合重排序相结合。
提供直观的 API,可与业务无缝集成。
Docker >= 24.0.0 & Docker Compose >= v2.26.1
gVisor:仅当你计划使用 RAGFlow 的代码执行器(sandbox)功能时才需要。
如果你的本地计算机(Windows、Mac 或 Linux)尚未安装 Docker,请参阅 Install Docker Engine。
确保 vm.max_map_count >= 262144:检查 vm.max_map_count 的值:sysctl vm.max_map_count。如果低于该值,请将 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
确保 vm.max_map_count >= 262144:
检查 vm.max_map_count 的值:
sysctl vm.max_map_count
如果低于该值,请将 vm.max_map_count 重设为至少 262144。
# In this case, we set it to 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
git clone https://github.com/infiniflow/ragflow.git
使用预构建的 Docker 镜像启动服务器:
使用预构建的 Docker 镜像启动服务器:
所有 Docker 镜像都面向 x86 平台构建。目前我们尚未提供 ARM64 的 Docker 镜像。如果你使用的是 ARM64 平台,请按照本指南构建与你的系统兼容的 Docker 镜像。
下面的命令会下载 v0.26.4 版本的 RAGFlow Docker 镜像。不同 RAGFlow 版本的说明请参阅下表。如果要下载 v0.26.4 之外的 RAGFlow 版本,请先在 docker/.env 中相应更新 RAGFLOW_IMAGE 变量,再使用 docker compose 启动服务器。
cd ragflow/docker
git checkout v0.26.4
# Optional: use a stable tag (see releases: https://github.com/infiniflow/ragflow/releases)
# This step ensures the **entrypoint.sh** file in the code matches the Docker image version.
# Use CPU for DeepDoc tasks:
docker compose -f docker-compose.yml up -d
# To use GPU to accelerate DeepDoc tasks:
# sed -i '1i DEVICE=gpu' .env
# docker compose -f docker-compose.yml up -d
注意:在 v0.22.0 之前,我们同时提供包含 embedding 模型的镜像,以及不含 embedding 模型的 slim 镜像。具体如下:
从 v0.22.0 开始,我们只发布 slim 版本,并且不再在镜像 tag 后追加 -slim 后缀。
服务器启动并运行后,检查服务器状态:docker logs -f docker-ragflow-cpu-1。出现以下输出,表示系统启动成功:____ ___ ______ ______ __ / __ \ / | / // // / _ __ / // // /| | / / __ / / / // __ | | /| / / / , // ___ |/ // // __/ / // // /| |/ |/ / // ||// ||_/// // _/ |/|__/ * Running on all addresses (0.0.0.0)。如果跳过这个确认步骤,直接登录 RAGFlow,浏览器可能会提示网络异常,因为此时 RAGFlow 可能尚未完成初始化。
服务器启动并运行后,检查服务器状态:
docker logs -f docker-ragflow-cpu-1
出现以下输出,表示系统启动成功:
____ ___ ______ ______ __
/ __ \ / | / ____// ____// /____ _ __
/ /_/ // /| | / / __ / /_ / // __ \| | /| / /
/ _, _// ___ |/ /_/ // __/ / // /_/ /| |/ |/ /
/_/ |_|/_/ |_|\____//_/ /_/ \____/ |__/|__/
* Running on all addresses (0.0.0.0)
如果跳过这个确认步骤,直接登录 RAGFlow,浏览器可能会提示网络异常,因为此时 RAGFlow 可能尚未完成初始化。
在浏览器中输入服务器的 IP 地址,然后登录 RAGFlow。使用默认设置时,只需输入 http://IP_OF_YOUR_MACHINE(不含端口号),因为采用默认配置时,可以省略默认的 HTTP 服务端口 80。
在浏览器中输入服务器的 IP 地址,然后登录 RAGFlow。
使用默认设置时,只需输入 http://IP_OF_YOUR_MACHINE(不含端口号),因为采用默认配置时,可以省略默认的 HTTP 服务端口 80。
在 service_conf.yaml.template 中,通过 user_default_llm 选择所需的 LLM factory,并在 API_KEY 字段中填入对应的 API key。更多信息请参阅 llm_api_key_setup。大功告成!
在 service_conf.yaml.template 中,通过 user_default_llm 选择所需的 LLM factory,并在 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
RAGFlow 默认使用 Elasticsearch 存储全文数据和向量。如需切换到 Infinity,请按以下步骤操作:
停止所有正在运行的容器:docker compose -f docker/docker-compose.yml down -v
停止所有正在运行的容器:
docker compose -f docker/docker-compose.yml down -v
-v 会删除 Docker 容器的 volumes,现有数据也会被清除。
将 docker/.env 中的 DOC_ENGINE 设置为 infinity。
将 docker/.env 中的 DOC_ENGINE 设置为 infinity。
启动容器:docker compose -f docker/docker-compose.yml up -d
启动容器:
docker compose -f docker/docker-compose.yml up -d
目前尚未正式支持在 Linux/arm64 计算机上切换到 Infinity。
该镜像大小约为 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
安装 uv;如果已经安装,可以跳过此步骤:
pipx install uv
克隆源代码并安装 Python 依赖:git clone https://github.com/infiniflow/ragflow.git cd ragflow/ uv sync --python 3.13 # 安装 RAGFlow 依赖的 Python 模块 uv run python3 ragflow_deps/download_deps.py git config --local --unset core.hooksPath uv tool install lefthook lefthook install
克隆源代码并安装 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
使用 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
如果无法访问 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
如果你的操作系统中没有 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
启动后端服务:
source .venv/bin/activate
export PYTHONPATH=$(pwd)
bash docker/launch_backend_service.sh
安装前端依赖:cd web npm install
安装前端依赖:
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 Roadmap 2026。
RAGFlow 因开源协作而蓬勃发展。秉持这一精神,我们欢迎来自社区的多元贡献。如果你希望参与其中,请先阅读我们的 Contribution Guidelines。