RAGFlow:开源RAG引擎
一句话简介
基于深度文档理解的开源RAG引擎,提供可溯源的问答与文档解析能力,适用于企业级知识库与智能问答场景。
标签
适用应用场景
- 企业内智能问答系统
- 法律与合规文档检索
- 技术文档知识助手
- 客户支持自动化
README 中文摘要
项目概述
RAGFlow 是一款领先的开源检索增强生成(RAG)引擎,将前沿 RAG 能力与 Agent 能力相融合,为大语言模型构建高质量的上下文层。其核心基于统一的上下文引擎,并提供预构建的 Agent 模板,帮助开发者高效地将复杂数据转化为可投入生产的高保真 AI 系统,适用于各种规模的企业。
核心特性
"高质量输入,高质量输出"
- 基于深度文档理解技术,从结构复杂非结构化数据中提取知识。
- 支持在海量文本中精准定位关键信息,检索范围无上限。
基于模板的分块
- 智能化且可解释,提供多种模板以适配不同场景。
可追溯引用,降低幻觉
- 文本分块过程可视化,便于人工干预。
- 快速查看关键引用,答案附带可追溯来源。
兼容异构数据源
- 支持 Word、Slides、Excel、TXT、图片、扫描件、结构化数据、网页等多种格式。
自动化 RAG 工作流
- 提供精简的 RAG 编排能力,兼顾个人用户与大型企业。
- 支持可配置的 LLM 与嵌入模型,多路召回融合重排序,并提供直观易用的 API。
系统架构
RAGFlow 系统由数据接入层、文档解析与分块模块、检索与重排序模块、Agent 编排引擎及 LLM 调用层组成。用户可上传异构文档,经深度文档解析后形成可追溯的知识片段;检索阶段结合向量与关键词多路召回,再由重排序模型融合排序;最终结合上下文注入 LLM,生成带引用的回答。
自托管部署
环境要求
- CPU >= 4 核,RAM >= 16 GB,磁盘 >= 50 GB
- Docker >= 24.0.0、Docker Compose >= v2.26.1
- Python >= 3.13
- 仅在使用代码执行器(沙箱)功能时需要安装 gVisor
启动步骤
- 设置内核参数:
# 查看当前值
sysctl vm.max_map_count
# 临时设置
sudo sysctl -w vm.max_map_count=262144
# 永久生效:写入 /etc/sysctl.conf
vm.max_map_count=262144
- 克隆仓库并切换至目标版本:
git clone https://github.com/infiniflow/ragflow.git
cd ragflow/docker
git checkout v0.26.4 # 与 Docker 镜像版本保持一致
- 启动容器(CPU 模式):
docker compose -f docker-compose.yml up -d
# 如需 GPU 加速 DeepDoc 任务,先取消 .env 中 DEVICE=gpu 的注释
当前官方镜像仅支持 x86 平台;ARM64 用户需参考官方文档自行构建镜像。
- 检查启动状态:
docker logs -f docker-ragflow-cpu-1
看到 Running on all addresses (0.0.0.0) 字样即表示启动成功。浏览器访问 http://IP_OF_YOUR_MACHINE 即可登录使用。
切换文档引擎
默认使用 Elasticsearch,可切换至 Infinity。在 docker/.env 中将 DOC_ENGINE 设置为 infinity,先销毁旧容器再重启即可。
注意:
-v参数会清空数据卷;ARM64 平台暂不支持 Infinity。
配置说明
系统涉及三类配置文件:
docker/.env:基础环境变量,如SVR_HTTP_PORT、MYSQL_PASSWORD、MINIO_PASSWORD。docker/service_conf.yaml.template:后端服务配置,容器启动时自动填充环境变量。docker/docker-compose.yml:容器编排文件。
修改默认 HTTP 端口(80)时,编辑 docker-compose.yml 将 80:80 改为 <YOUR_SERVING_PORT>:80。任何配置变更后均需重启容器生效。
构建 Docker 镜像
git clone https://github.com/infiniflow/ragflow.git
cd ragflow/
docker build --platform linux/amd64 -f Dockerfile -t infiniflow/ragflow:nightly .
若处于代理环境,可通过 --build-arg 传入代理参数。
源码开发模式
适合本地调试与二次开发:
# 安装依赖管理工具
pipx install uv
# 同步依赖并下载模型资源
uv sync --python 3.13
uv run python3 ragflow_deps/download_deps.py
# 启用 Git hooks
git config --local --unset core.hooksPath
uv tool install lefthook
lefthook install
# 启动基础服务(MinIO、Elasticsearch、Redis、MySQL)
docker compose -f docker/docker-compose-base.yml up -d
随后将 es01 infinity mysql minio redis sandbox-executor-manager 指向 127.0.0.1,安装 jemalloc,按需设置 HF_ENDPOINT 镜像源,再启动后端与前端服务:
source .venv/bin/activate
export PYTHONPATH=$(pwd)
bash docker/launch_backend_service.sh
cd web
npm install
npm run dev
开发完成后停止服务:
pkill -f "ragflow_server.py|task_executor.py"
文档与社区
官方文档涵盖快速上手、配置说明、发布日志、用户指南与开发者指南,并提供常见问题解答。社区渠道包括 Discord、X(原 Twitter)与 GitHub Discussions,欢迎通过贡献指南参与项目建设。
摘要更新于 2026-08-13 00:31:13
· 原文 17461 字符
· md5 279f78193aa7…