RAGFlow 是一个领先的开源检索增强生成 (RAG) 引擎,它将前沿的 RAG 技术与智能体(Agent)能力融合,为大型语言模型(LLM)构建了卓越的上下文层。它提供了一个可适应任何规模企业的精简 RAG 工作流。凭借其融合的上下文引擎和预构建的智能体模板,RAGFlow 使开发者能够以极高的效率和精度,将复杂数据转化为高保真、生产就绪的 AI 系统。
访问 https://demo.ragflow.io 体验我们的在线演示。
⭐️ 为我们的仓库点个星标,以便及时了解激动人心的新功能和改进!获取新版本发布的即时通知!🌟
[!TIP]
如果您尚未在本地机器(Windows、Mac 或 Linux)上安装 Docker,请参阅 安装 Docker Engine。
vm.max_map_count >= 262144:检查
vm.max_map_count的值:
bash $ sysctl vm.max_map_count如果值小于 262144,请将其重置为至少 262144。
```bash
在此示例中,我们将其设置为 262144:
$ sudo sysctl -w vm.max_map_count=262144
```此更改在系统重启后会失效。要使其永久生效,请在 /etc/sysctl.conf 中添加或更新
vm.max_map_count的值:
bash vm.max_map_count=262144
- 克隆仓库:
bash
$ git clone https://github.com/infiniflow/ragflow.git
3. 使用预构建的 Docker 镜像启动服务器:
[!CAUTION]
所有 Docker 镜像均为 x86 平台构建。我们目前不提供 ARM64 平台的 Docker 镜像。
如果您使用的是 ARM64 平台,请按照 此指南 构建与您系统兼容的 Docker 镜像。以下命令将下载
v0.24.0版本的 RAGFlow Docker 镜像。下表描述了不同 RAGFlow 版本的区别。要下载v0.24.0以外的版本,请在使用docker compose启动服务器前,在 docker/.env 文件中相应更新RAGFLOW_IMAGE变量。
$ cd ragflow/docker
# git checkout v0.24.0
# 可选:使用一个稳定的标签(参见发布版本: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之前,我们同时提供包含嵌入模型的镜像和不包含嵌入模型的精简镜像。详情如下:
| RAGFlow 镜像标签 | 镜像大小 (GB) | 包含嵌入模型? | 稳定性 |
|---|---|---|---|
| v0.21.1 | 约 9 | ✔️ | 稳定版本 |
| v0.21.1-slim | 约 2 | ❌ | 稳定版本 |
从
v0.22.0开始,我们只发布精简版,并且镜像标签不再附加 -slim 后缀。
bash
$ docker logs -f docker-ragflow-cpu-1
出现以下输出表明系统已成功启动:
```bash
____ ___ ______ ______ __
/ __ \ / | / ____// ____// /____ _ __
/ /_/ // /| | / / __ / /_ / // __ \| | /| / /
/ _, _// ___ |/ /_/ // __/ / // /_/ /| |/ |/ /
/_/ |_|/_/ |_|\____//_/ /_/ \____/ |__/|__/
* Running on all addresses (0.0.0.0)
```
如果您跳过此确认步骤直接登录 RAGFlow,浏览器可能会提示
network abnormal错误,因为此时您的 RAGFlow 可能尚未完全初始化。
- 在您的网页浏览器中,输入服务器的 IP 地址登录 RAGFlow。
使用默认设置时,您只需输入
http://您的机器IP(无需端口号),因为默认 HTTP 服务端口80在使用默认配置时可以省略。
- 在 service_conf.yaml.template 中,在
user_default_llm中选择所需的 LLM 供应商,并在API_KEY字段中填入相应的 API 密钥。更多信息请参阅 llm_api_key_setup。
现在可以开始使用了!
关于系统配置,您需要管理以下文件:
SVR_HTTP_PORT、MYSQL_PASSWORD 和 MINIO_PASSWORD。./docker/README 文件详细描述了环境设置和服务配置,这些配置可以在 service_conf.yaml.template 文件中作为
${ENV_VARS}使用。
要更改默认的 HTTP 服务端口(80),请前往 docker-compose.yml,将 80:80 改为 <您的服务端口>:80。
对上述配置的更新需要重启所有容器才能生效:
bash $ docker compose -f docker-compose.yml up -d
RAGFlow 默认使用 Elasticsearch 存储全文和向量。要切换到 Infinity,请按照以下步骤操作:
bash
$ docker compose -f docker/docker-compose.yml down -v
[!WARNING]
-v将删除 Docker 容器卷,现有数据将被清除。
DOC_ENGINE 设置为 infinity。bash
$ docker compose -f docker-compose.yml up -d
[!WARNING]
在 Linux/arm64 机器上切换到 Infinity 尚未得到官方支持。
此镜像大小约为 2 GB,依赖外部的 LLM 和嵌入服务。
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 .
uv 和 pre-commit,如果已安装可跳过此步:bash
pipx install uv pre-commit
2. 克隆源代码并安装 Python 依赖:
bash
git clone https://github.com/infiniflow/ragflow.git
cd ragflow/
uv sync --python 3.12 # 安装 RAGFlow 依赖的 Python 模块
uv run download_deps.py
pre-commit install
3. 使用 Docker Compose 启动依赖服务(MinIO、Elasticsearch、Redis 和 MySQL):
bash
docker compose -f docker/docker-compose-base.yml up -d
在 /etc/hosts 中添加以下行,将 docker/.env 中指定的所有主机名解析到 `127.