Linux系统下RagFlow 部署指南 - 直接拉取镜像
Linux系统下RagFlow 部署指南 - 直接拉取镜像

Linux系统下RagFlow 部署指南 - 直接拉取镜像

一、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 配置系统参数

  1. 确保 vm.max_map_count 不小于 262144。
  2. 如需确认 vm.max_map_count 的当前大小,可在终端运行以下命令:
  • 若其值小于 262144,可进行临时重置:
  • 但需注意,此临时改动在系统重启后会恢复原状。若要实现永久更改,需编辑 /etc/sysctl.conf 文件,在其中添加或修改 vm.max_map_count=262144 这一行,保存文件后,执行 sudo sysctl -p 使配置生效。

3.2 安装 Docker

  1. 安装必要依赖:

其中,yum-utils 提供了丰富的工具用于管理 yum 源和软件包,对 Docker 软件包的获取和管理至关重要;device-mapper-persistent-data 和 lvm2 则与 Docker 的存储驱动紧密相关,确保容器数据在宿主机上能够安全、高效地存储和管理。

  1. 添加 Docker 软件源:
    通过添加官方软件源,系统能够及时获取最新且稳定的 Docker 软件包,这不仅保证了安装的 Docker 版本的安全性和可靠性,还为后续的升级和维护工作提供了便利。
  1. 安装 Docker:
    安装完成后,启动 Docker 服务并进行简单测试,例如在终端输入 docker --version 命令查看 Docker 版本信息,以此确保其安装成功并正常运行。若安装过程中出现问题,可根据终端输出的错误提示进行针对性的排查和解决。
  1. 配置镜像加速器(如有需要):
    可根据实际网络环境和需求,配置 Docker 镜像加速器,以加快镜像拉取速度,提高部署效率。

3.3 代码与配置操作

3.3.1 拉取代码

从 GitHub 克隆 RagFlow 代码到本地环境,以便进行后续的定制和部署工作。

3.3.2 将代码移入私有 Git 仓库

将本地克隆的代码转移至私有 Git 仓库,这一步骤能够有效实现代码的版本管理、数据备份,在团队协作或多环境部署场景下,还能方便地实现代码的共享和同步,确保各个环境中的代码保持高度一致。

3.3.3 修改配置文件

  • .env 文件
    该文件主要用于配置 RagFlow 应用程序的各类环境变量,这些变量在整个应用的部署和运行过程中起着关键作用,涵盖了控制不同服务的行为、连接信息、资源限制等方面。考虑到网络环境的差异和访问效率的需求,建议将其中的镜像地址修改为国内地址,这样可以显著提升镜像拉取速度,降低因网络问题导致的部署失败风险,保障部署工作高效、稳定地推进。
  • docker-compose.yml 文件
    此文件主要用于配置 ragflow 服务。在本次部署中,特意将 mysql 的依赖检查功能禁用,这是为了更好地满足当前的部署或测试需求,使得 ragflow 服务在运行时不再依赖于 mysql 服务的健康状态,从而能够更灵活地进行部署和测试。这样的设置为开发人员在特定场景下对 ragflow 服务进行独立操作和调试提供了便利,无需再等待 mysql 服务满足健康条件。
  • docker-compose-base.yml 文件
    该文件主要负责容器化部署相关的配置,定义了 es01、infinity、mysql、minio 和 redis 五个服务。每个服务都有其独特的配置细节,包括从不同的仓库拉取对应的 Docker 镜像,并对环境变量、端口映射、数据卷挂载和健康检查等方面进行了精心设置。此外,文件还定义了多个采用 local 驱动的数据卷,用于实现数据的持久化存储。为确保各服务之间能够顺畅通信,还构建了基于 bridge 驱动的 ragflow 网络。
  • 具体修改操作如下
    • 注释 profiles 部分
      • 在 es01 服务中,将 profiles 部分的 - elasticsearch 进行注释处理,以防止在某些特定情况下出现不必要的自动启用或关联行为。
      • 同样,在 infinity 服务中,将 profiles 部分的 - infinity 注释掉,避免可能产生的特定配置关联。
    • 修改部分服务镜像地址
      • 对于 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 拉取相应的镜像。

3.3.4 提交修改到本地Git仓库

在完成上述配置文件的修改后,务必将代码提交到私有 Git 仓库。这样做有助于后续的使用、管理和团队协作,能够有效保障代码安全,实现完善的版本控制,确保开发部署工作顺利进行。

3.4 部署流程

3.4.1 服务器拉取代码

从本地仓库拉取经过修改的代码,并进入 ragflow 目录,为后续的启动操作做好准备。

3.4.2 拉取镜像并启动服务

在终端执行如下命令,拉取所需镜像并启动 RagFlow 服务,确保各个服务组件正确启动和运行。

3.4.3 确认服务状态

通过查看终端输出或相关日志信息,确认服务是否成功启动。

若出现如下界面提示,则表明服务器启动成功。

3.4.4 访问应用

在浏览器中输入 http://ip,进入 RagFlow 的登录页面,进行注册登录操作,即可开始使用 RagFlow 应用。

四、参考资料(持续更新)

Docker 国内镜像查找:docker.aityp.com/。在部署过程中,如果需要查找特定的 Docker 镜像,可在此网站进行搜索和筛选,以获取适合的镜像资源。

浏览量: 1

发表回复