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 环境准备

  • 依赖工具 :安装 Docker 与 Docker 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_IMAGE 和 HF_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 技术在实际业务中的落地。

相关推荐
Funny_AI_LAB4 小时前
重构 Coding Agent:当 LLM 没有 KV Cache 时,上下文工程该怎么做?
人工智能·经验分享·语言模型·重构
GISMagic4 小时前
AI 时代的软件工程与架构能力提升路线
人工智能·架构·软件工程
中伟视界4 小时前
化工检修作业新规明日施行,边缘AI如何守好现场?
人工智能
OpenCSG4 小时前
OpenCSG Agentic-27B 正式开源:27B Dense 模型,Agent 执行能力实现全面跃升
人工智能·开源·opencsg
Elastic 中国社区官方博客5 小时前
使用 Lucene 搜索你的 Bean —— Elasticsearch
大数据·开发语言·人工智能·elasticsearch·搜索引擎·全文检索·lucene
雪兽软件5 小时前
AI爆改学术研究?
人工智能·学术研究
合调于形5 小时前
Rengong zhzzneng 《人工智能》词条汉语拼音字母标调拼写实测案例
人工智能·自然语言处理·人机交互·语音识别·学习方法
cg50175 小时前
大模型 SFT(监督微调)该怎么做?(实践版)
人工智能·深度学习·机器学习
Qt云程序员5 小时前
选型参考:光刃RPA 与常见 RPA / 自动化方案的对比
人工智能·自动化·rpa
neocheng_5225 小时前
品牌、内容和效果营销,受AI影响为什么完全不同?
人工智能