RagFlow 完全指南(一):从零搭建开源大模型应用平台(Ollama、VLLM本地模型接入实战)

文章目录

    • [1. 相关资源](#1. 相关资源)
    • [2. 核心特性](#2. 核心特性)
    • [3. 安装与部署](#3. 安装与部署)
      • [3.1 环境准备](#3.1 环境准备)
      • [3.2 部署RagFlow](#3.2 部署RagFlow)
      • [3.3 更新RagFlow](#3.3 更新RagFlow)
      • [3.4 系统配置](#3.4 系统配置)
    • [4. 接入本地模型](#4. 接入本地模型)
      • [4.1 接入 Ollama 本地模型](#4.1 接入 Ollama 本地模型)
        • [4.1.1 步骤](#4.1.1 步骤)
        • [4.1.2 常见问题](#4.1.2 常见问题)
      • [4.2 接入 VLLM 模型](#4.2 接入 VLLM 模型)
    • [5. 应用场景](#5. 应用场景)
    • [6. 总结](#6. 总结)

1. 相关资源

2. 核心特性

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

3. 安装与部署

3.1 环境准备

  • 依赖工具 :安装 DockerDocker Compose

  • 系统要求

    bash 复制代码
    # 查看vm.max_map_count值,要求其不能小于 262144
    sysctl vm.max_map_count
    # 小于的话,进行设置
    sudo sysctl -w vm.max_map_count=262144
    # 永久生效,修改 /etc/sysctl.conf
    vim /etc/sysctl.conf
    # 修改文件中以下内容
    vm.max_map_count=262144

3.2 部署RagFlow

bash 复制代码
cd ~/workspace/ai/tools && git clone --depth 1 https://github.com/infiniflow/ragflow.git && cd ragflow/docker
# 使用CPU
# docker compose -f docker-compose.yml up -d

# 使用GPU
docker compose -f docker-compose-gpu.yml up -d
# 确认服务器状态
docker logs -f ragflow-server

默认通过 http://localhost 即可访问 RagFlow 控制台,首次登录需要设置管理员密码。

3.3 更新RagFlow

bash 复制代码
# 更新 RagFlow
docker compose down
git pull origin main
docker compose pull
docker compose -f docker-compose-gpu.yml up -d

3.4 系统配置

  1. 系统配置涉及以下三份文件:

    • .env:存放一些基本的系统环境变量,比如 SVR_HTTP_PORT、MYSQL_PASSWORD、MINIO_PASSWORD 等。
    • service_conf.yaml.template:配置各类后台服务。
    • docker-compose.yml: 系统依赖该文件完成启动。
      请务必确保 .env 文件中的变量设置与 service_conf.yaml.template 文件中的配置保持一致!
  2. 如果不能访问镜像站点 hub.docker.com 或者模型站点 huggingface.co,请按照 .env 注释修改 RAGFLOW_IMAGEHF_ENDPOINT

  3. ./docker/README 解释了 service_conf.yaml.template 用到的环境变量设置和服务配置。

  4. 如需更新默认的 HTTP 服务端口(80), 可以在 docker-compose.yml 文件中将配置 80:80 改为 <YOUR_SERVING_PORT>:80

  5. 所有系统配置都需要通过系统重启生效 docker compose -f docker-compose-gpu.yml up -d

4. 接入本地模型

笔者实验环境为 Ubuntu24.04,宿主机启动 Ollama 服务 + Docker Compose部署 RagFlow

4.1 接入 Ollama 本地模型

4.1.1 步骤
  1. 点击 RagFlow 平台 右上角头像模型供应商,选择 Ollama,点击 添加模型
  2. 选择 模型类型,输入 模型名称基础URL最大token数,其他选项可使用默认设置即可,点击 确定。其中:
    • 模型名称 为 Ollama 服务中的模型名称,可通过 ollama list 获取
    • 基础URL 为 Ollama 服务地址,例如 http://host.docker.internal:11434
4.1.2 常见问题
  1. Connection refused问题

    使用官方文档中的 http://host.docker.internal:11434 作为基础URL,可能会出现 httpconnectionpool (host=localhost, port=11434): max retries exceeded with url:/cpi/chat (Caused by NewConnectionError ('<urllib3.connection.HTTPConnection object at 0x7f8562812c20>: fail to establish a new connection:[Errno 111] Connection refused')) 错误,此时需要直接使用宿主机的IP地址。

  2. 解决步骤:

    1. 设置 Ollama 服务监听地址

      bash 复制代码
      # 修改 ollama.service 文件,添加 OLLAMA_HOST 环境变量
      sudo vim /etc/systemd/system/ollama.service
      # 在 [Service] 下添加
      Environment="OLLAMA_HOST=0.0.0.0:11434"
      # 重新加载配置文件
      sudo systemctl daemon-reload
      sudo systemctl restart ollama
      # 查看服务状态,确保 ollama 服务以 :::11434 启动
      sudo netstat -tulnp | grep ollama 
      # 重启Dify
      docker compose down
      docker compose up -d
    2. 开启防火墙端口

      如果仍有问题,考虑是否防火墙拦截了 11434 端口,需要配置防火墙规则。

      bash 复制代码
      sudo ufw allow 11434/tcp && sudo ufw reload
    3. 在docker容器中测试地址连通性

      bash 复制代码
      # 进入Dify容器
      docker exec -it ragflow-server bash
      # 测试地址连通性
      curl http://host.docker.internal:11434 # 应成功返回 Ollama is running
      # 或者使用本机IP地址测试
      curl http://192.168.163.248:11434 # 应成功返回 Ollama is running
    4. 获取本机IP地址(容器外执行)

      bash 复制代码
      # 获取本机IP地址,假如输出为 192.168.163.248
      hostname -I | awk '{print $1}'

4.2 接入 VLLM 模型

  1. 点击 RagFlow 平台 右上角头像模型供应商,选择 VLLM,点击 添加模型
  2. 选择 模型类型,输入 模型名称基础URL最大token数,其他选项可使用默认设置即可,点击 确定。其中:
    • 模型名称 为 Ollama 服务中的模型名称,可通过 ollama list 获取
    • 基础URL 为 Ollama 服务地址,例如 http://host.docker.internal:8000/v1

值得注意的是:笔者测试的模型名称为 /home/allen/workspace/ai/models/modelscope/deepseek-ai___DeepSeek-R1-Distill-Qwen-1.5B 时,RagFlow 识别到的实际模型名称为 /home/allen/workspace/ai/models/modelscope/deepseek-ai,导致提示 Fail to access model(/home/allen/workspace/ai/models/modelscope/deepseek-ai).**ERROR**: MODEL_ERROR - Error code: 404 - {'object': 'error', 'message': 'The model"/home/allen/workspace/ai/models/modelscope/deepseek-ai"does not exist.', 'type': 'NotFoundError', 'param': None, 'code': 404} 问题。

5. 应用场景

🔹 知识库智能问答

🔹 自动化数据分析

🔹 私有化客服机器人

6. 总结

RagFlow 通过 RAG 优先设计开箱即用的部署方案,降低了企业构建大模型应用的门槛。其核心优势包括:

  • 精准检索:结合语义搜索与关键词匹配,提升回答可靠性。
  • 灵活扩展:模块化架构支持快速适配新模型与业务需求。
  • 企业级安全:数据全程本地处理,无第三方依赖。

通过本文指南,开发者可快速完成 RagFlow 的部署、模型接入与应用开发,加速 AI 技术在实际业务中的落地。

相关推荐
nenchoumi31195 分钟前
LLM 论文精读(四)LLM Post-Training: A Deep Dive into Reasoning Large Language Models
人工智能·语言模型·自然语言处理
Qdgr_35 分钟前
电厂数据库未来趋势:时序数据库 + AI 驱动的自优化系统
数据库·人工智能·时序数据库
知舟不叙1 小时前
基于OpenCV的人脸识别:LBPH算法
人工智能·opencv·人脸检测·lbph算法
乌恩大侠1 小时前
【东枫科技】使用LabVIEW进行NVIDIA CUDA GPU 开发
人工智能·科技·labview·nvidia·usrp
music&movie2 小时前
手写系列——transformer网络完成加法和字符转译任务
网络·人工智能·transformer
白熊1883 小时前
【计算机视觉】OpenCV实战项目:FunnyMirrors:基于OpenCV的实时哈哈镜效果实现技术解析
人工智能·opencv·计算机视觉
Joern-Lee3 小时前
机器学习极简入门:从基础概念到行业应用
人工智能·机器学习
china10003 小时前
大模型系列(四)--- GPT2: Language Models are Unsupervised Multitask Learners
人工智能·深度学习
Jamence3 小时前
多模态大语言模型arxiv论文略读(六十二)
人工智能·语言模型·自然语言处理