RAGFlow:开源RAG引擎

infiniflow/ragflow 访问 GitHub ↗
🔤 Go ★ 87540 ⑂ 0 daily #9 (+139) 抓取 2026-08-13

一句话简介

基于深度文档理解的开源RAG引擎,提供可溯源的问答与文档解析能力,适用于企业级知识库与智能问答场景。

标签

  • RAG
  • 检索增强生成
  • 知识库
  • Go
  • LLM

适用应用场景

  • 企业内智能问答系统
  • 法律与合规文档检索
  • 技术文档知识助手
  • 客户支持自动化

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

启动步骤

  1. 设置内核参数:
# 查看当前值
sysctl vm.max_map_count
# 临时设置
sudo sysctl -w vm.max_map_count=262144
# 永久生效:写入 /etc/sysctl.conf
vm.max_map_count=262144
  1. 克隆仓库并切换至目标版本:
git clone https://github.com/infiniflow/ragflow.git
cd ragflow/docker
git checkout v0.26.4  # 与 Docker 镜像版本保持一致
  1. 启动容器(CPU 模式):
docker compose -f docker-compose.yml up -d

# 如需 GPU 加速 DeepDoc 任务,先取消 .env 中 DEVICE=gpu 的注释

当前官方镜像仅支持 x86 平台;ARM64 用户需参考官方文档自行构建镜像。

  1. 检查启动状态:
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_PORTMYSQL_PASSWORDMINIO_PASSWORD
  • docker/service_conf.yaml.template:后端服务配置,容器启动时自动填充环境变量。
  • docker/docker-compose.yml:容器编排文件。

修改默认 HTTP 端口(80)时,编辑 docker-compose.yml80: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…