【LLM】RAGFlow 本地安装&部署

发布于:2025-05-26 ⋅ 阅读:(23) ⋅ 点赞:(0)

GitHub 链接: ragflow

1. RAGFlow 简介

1.1 RAGFlow 是什么?

RAGFlow 是一款基于深度文档理解构建的开源 RAG(Retrieval-Augumented Generation)引擎。RAGFlow 可以为各种规模的企业及个人提供一套精简的 RAG 工作流程,结合大语言模型(LLM)针对用户各类不同的复杂格式数据提供可靠的问答以及有理有据的引用。

1.2 主要功能

  • “Quality in, quality out”
    • 基于深度文档理解,能够从各类复杂格式的非结构化数据中提取真知灼见。
    • 真正在无限上下文(token)的场景下快速完成大海捞针测试。
  • 基于模板的文本切片
    • 不仅仅是智能,更重要的是可控可解释。
    • 多种文本模板可供选择。
  • 有理有据、最大程度降低幻觉(hallucination)
    • 文本切片过程可视化,支持手动调整。
    • 有理有据:答案提供关键引用的快照并支持追根溯源。
  • 兼容各类异构数据源
    • 支持丰富的文件类型,包括 Word 文档、PPT、excel 表格、txt 文件、图片、PDF、影印件、复印件、结构化数据、网页等。
  • 全程无忧、自动化的 RAG 工作流
    • 全面优化的 RAG 工作流可以支持从个人应用乃至超大型企业的各类生态系统。
    • 大语言模型 LLM 以及向量模型均支持配置。
    • 基于多路召回、融合重排序。
    • 提供易用的 API,可以轻松集成到各类企业系统。

1.3 系统架构

在这里插入图片描述

2. RAGFlow 本地安装及部署

2.1 前提条件

CPU ≥ 4核
RAM ≥ 16GB
Disk ≥ 50GB
Docker ≥ 24.0.0 & Docker Compose ≥ v2.26.1

注:若尚未安装 docker,则可参考博客【Docker 安装】手把手教你安装&配置 Docker

2.2 启动服务器

  • 确保 vm.max_map_count 不小于 262144:

    如需确认 vm.max_map_count 的大小:

    sysctl vm.max_map_count
    

    如果 vm.max_map_count 的值小于 262144,可以进行重置:

    # 设为 262144
    sudo sysctl -w vm.max_map_count=262144
    

    本次改动会在下次系统重启时被重置。如果希望做永久改动,还需要在 /etc/sysctl.conf 文件里更新 vm.max_map_count 的值:

    # 编辑 sysctl.conf 文件
    sudo vim /etc/sysctl.conf
    # sysctl.conf 中追加设置
    vm.max_map_count=262144
    
  • 克隆仓库:

    git clone https://github.com/infiniflow/ragflow.git
    
  • 注意事项:
    如果需要下载不同于 v0.18.0-slim 的 Docker 镜像,请在运行 docker compose 启动服务前先更新 docker/.env 文件内的 RAGFLOW_IMAGE 变量。比如可以通过设置 RAGFLOW_IMAGE=infiniflow/ragflow:v0.18.0 来下载 RAGFLOW 镜像的 v0.18.0 完整发行版。

    RAGFlow image tag Image size (GB) Has embedding models? Stable?
    v0.18.0 ≈9 Stable release
    v0.18.0-slim ≈2 × Stable release
    nightly ≈9 Unstable nightly build
    nightly-slim ≈2 × Unstable nightly build

    注:如果遇到 Docker 镜像拉取不下来的问题,可以在 docker/.env 文件内根据变量 RAGFLOW_IMAGE 的注意提示选择华为云或者阿里云的相应镜像。

    • 华为云镜像名:swr.cn-north-4.myhuaweicloud.com/infiniflow/ragflow
    • 阿里云镜像名:registry.cn-hangzhou.aliyuncs.com/infiniflow/ragflow
  • 进入 docker 文件夹修改 .env 文件

    • 这里修改RAGFlow Images 为自带 Embedding Model 的 v0.18.0
      在这里插入图片描述
    • 注意:若之前安装过 redis,则还需修改 redis 端口号
  • 利用提前编译好的 Docker 镜像启动服务器:

    # 运行以下命令会自动下载 RAGFlow slim Docker 镜像 v0.18.0-slim。
    cd ragflow/docker
    
    # 修改文件权限,否则会报错,详情见【踩坑记录】
    chmod +x entrypoint.sh
    
    # Use CPU for embedding and DeepDoc tasks:
    docker compose -f docker-compose.yml up -d
    
    # To use GPU to accelerate embedding and DeepDoc tasks:
    # docker compose -f docker-compose-gpu.yml up -d
    
  • 服务器启动成功后再次确认服务器状态:

    docker logs -f ragflow-server
    

    出现以下界面提示说明则服务器启动成功:
    在这里插入图片描述

  • 在浏览器中输入你的服务器对应的 IP 地址并登录 RAGFlow。

    • 登录页面如下:
      在这里插入图片描述
    • 注册账号并登录之后即可开始 RAGFlow 之旅。

3. 踩坑记录

3.1 Error response from daemon: failed to create task for container: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: error durings container init: exec: “./entrypoint.sh”: permission denied: unknown.

  • 报错页面如下: 在这里插入图片描述
  • 问题分析及解决:
    • 该问题为权限问题,修改对应权限即可解决
    • 解决方法:
      chmod +x entrypoint.sh