文章目录[隐藏]
一、RagFlow 概述
RagFlow 是一款开源的 RAG(Retrieval-Augmented Generation)引擎,专注于深度文档理解,能够助力企业及个人构建高效的 RAG 工作流程。借助大语言模型(LLM),它可以精准处理各种复杂格式的数据,为用户提供可靠的问答服务,并附上详实的引用依据。
二、部署前置条件
- 硬件配置要求:
- CPU:至少 4 核,以保障系统在处理 RagFlow 任务时具备充足的运算能力,避免因 CPU 资源不足导致运行卡顿或任务处理延迟。
- RAM:不低于 16GB,为 RagFlow 及其相关服务的运行提供充裕的内存空间,确保数据的高效缓存和处理,减少因内存紧张引发的性能问题。
- Disk:大于等于 50GB,用于存储 RagFlow 运行过程中产生的各类数据,包括但不限于日志文件、临时数据文件以及可能的数据库文件等。
- 软件版本要求:
- Docker:需达到 24.0.0 及以上版本。Docker 作为实现 RagFlow 镜像部署的核心工具,其高版本能够提供更出色的性能和功能支持,确保容器化应用的稳定运行和高效管理。
- Docker Compose:不低于 v2.26.1 版本。它在多容器 Docker 应用的配置和部署中发挥着关键作用,与 Docker 紧密协作,保障 RagFlow 各个组件在容器环境中正确启动、运行和协同工作。
三、启动服务步骤
注意:本指南中的测试服务器采用 Centos7.9 操作系统。
3.1 配置系统参数
- 确保
vm.max_map_count
不小于 262144。 - 如需确认
vm.max_map_count
的当前大小,可在终端运行以下命令:
1 |
sysctl vm.max_map_count |
- 若其值小于 262144,可进行临时重置:
1 |
sudo sysctl -w vm.max_map_count=262144 |
- 但需注意,此临时改动在系统重启后会恢复原状。若要实现永久更改,需编辑
/etc/sysctl.conf
文件,在其中添加或修改vm.max_map_count=262144
这一行,保存文件后,执行sudo sysctl -p
使配置生效。
3.2 安装 Docker
- 安装必要依赖:
1 |
sudo yum install -y yum-utils device-mapper-persistent-data lvm2 |
其中,yum-utils
提供了丰富的工具用于管理 yum 源和软件包,对 Docker 软件包的获取和管理至关重要;device-mapper-persistent-data
和 lvm2
则与 Docker 的存储驱动紧密相关,确保容器数据在宿主机上能够安全、高效地存储和管理。
- 添加 Docker 软件源:
通过添加官方软件源,系统能够及时获取最新且稳定的 Docker 软件包,这不仅保证了安装的 Docker 版本的安全性和可靠性,还为后续的升级和维护工作提供了便利。
1 |
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo |
- 安装 Docker:
安装完成后,启动 Docker 服务并进行简单测试,例如在终端输入docker --version
命令查看 Docker 版本信息,以此确保其安装成功并正常运行。若安装过程中出现问题,可根据终端输出的错误提示进行针对性的排查和解决。
1 |
sudo yum install docker-ce docker-ce-cli containerd.io |
- 配置镜像加速器(如有需要):
可根据实际网络环境和需求,配置 Docker 镜像加速器,以加快镜像拉取速度,提高部署效率。
1 2 3 4 5 6 7 8 |
sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://hub.icert.top/","https://ghcr.geekery.cn"] } EOF sudo systemctl daemon-reload sudo systemctl restart docker |
3.3 代码与配置操作
3.3.1 拉取代码
从 GitHub 克隆 RagFlow 代码到本地环境,以便进行后续的定制和部署工作。
1 |
git clone https://github.com/infiniflow/ragflow.git |
3.3.2 将代码移入私有 Git 仓库
将本地克隆的代码转移至私有 Git 仓库,这一步骤能够有效实现代码的版本管理、数据备份,在团队协作或多环境部署场景下,还能方便地实现代码的共享和同步,确保各个环境中的代码保持高度一致。
3.3.3 修改配置文件
.env
文件:
该文件主要用于配置 RagFlow 应用程序的各类环境变量,这些变量在整个应用的部署和运行过程中起着关键作用,涵盖了控制不同服务的行为、连接信息、资源限制等方面。考虑到网络环境的差异和访问效率的需求,建议将其中的镜像地址修改为国内地址,这样可以显著提升镜像拉取速度,降低因网络问题导致的部署失败风险,保障部署工作高效、稳定地推进。
1 |
RAGFLOW_IMAGE=registry.cn-hangzhou.aliyuncs.com/infiniflow/ragflow:nightly-slim |
docker-compose.yml
文件:
此文件主要用于配置 ragflow 服务。在本次部署中,特意将 mysql 的依赖检查功能禁用,这是为了更好地满足当前的部署或测试需求,使得 ragflow 服务在运行时不再依赖于 mysql 服务的健康状态,从而能够更灵活地进行部署和测试。这样的设置为开发人员在特定场景下对 ragflow 服务进行独立操作和调试提供了便利,无需再等待 mysql 服务满足健康条件。
1 2 3 |
# depends_on: # mysql: # condition: service_healthy |
docker-compose-base.yml
文件:
该文件主要负责容器化部署相关的配置,定义了 es01、infinity、mysql、minio 和 redis 五个服务。每个服务都有其独特的配置细节,包括从不同的仓库拉取对应的 Docker 镜像,并对环境变量、端口映射、数据卷挂载和健康检查等方面进行了精心设置。此外,文件还定义了多个采用 local 驱动的数据卷,用于实现数据的持久化存储。为确保各服务之间能够顺畅通信,还构建了基于 bridge 驱动的 ragflow 网络。- 具体修改操作如下:
- 注释
profiles
部分:- 在 es01 服务中,将
profiles
部分的- elasticsearch
进行注释处理,以防止在某些特定情况下出现不必要的自动启用或关联行为。 - 同样,在 infinity 服务中,将
profiles
部分的- infinity
注释掉,避免可能产生的特定配置关联。
- 在 es01 服务中,将
- 修改部分服务镜像地址:
- 对于 infinity 服务,将其镜像地址设置为
swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/infiniflow/infinity:v0.5.2
,以便使用华为云 SWR 仓库的特定版本镜像。 - mysql 服务的镜像地址更新为
swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/mysql:8.0.39
,同样从华为云 SWR 仓库拉取。 - minio 服务的镜像地址使用
quay.io/minio/minio:RELEASE.2023-12-20T01-00-02Z
,从 quay.io 拉取相应的镜像。
- 对于 infinity 服务,将其镜像地址设置为
- 注释
3.3.4 提交修改到本地Git仓库
在完成上述配置文件的修改后,务必将代码提交到私有 Git 仓库。这样做有助于后续的使用、管理和团队协作,能够有效保障代码安全,实现完善的版本控制,确保开发部署工作顺利进行。
3.4 部署流程
3.4.1 服务器拉取代码
从本地仓库拉取经过修改的代码,并进入 ragflow 目录,为后续的启动操作做好准备。
1 |
git pull <私有仓库地址> |
3.4.2 拉取镜像并启动服务
在终端执行如下命令,拉取所需镜像并启动 RagFlow 服务,确保各个服务组件正确启动和运行。
1 |
docker compose -f docker/docker-compose.yml up -d |
3.4.3 确认服务状态
通过查看终端输出或相关日志信息,确认服务是否成功启动。
1 |
docker logs -f ragflow-server |
若出现如下界面提示,则表明服务器启动成功。
1 2 3 4 5 6 7 8 9 10 |
____ ___ ______ ______ __ / __ \ / | / ____// ____// /____ _ __ / /_/ // /| | / / __ / /_ / // __ \| | /| / / / _, _// ___ |/ /_/ // __/ / // /_/ /| |/ |/ / /_/ |_|/_/ |_|\____//_/ /_/ \____/ |__/|__/ * Running on all addresses (0.0.0.0) * Running on http://127.0.0.1:9380 * Running on http://x.x.x.x:9380 INFO:werkzeug:Press CTRL+C to quit |
3.4.4 访问应用
在浏览器中输入 http://ip
,进入 RagFlow 的登录页面,进行注册登录操作,即可开始使用 RagFlow 应用。
四、参考资料(持续更新)
Docker 国内镜像查找:https://docker.aityp.com/。在部署过程中,如果需要查找特定的 Docker 镜像,可在此网站进行搜索和筛选,以获取适合的镜像资源。
浏览量: 1