【RAGFlow代码详解-28】部署和基础设施

爆改RagFlow 中完成的,此方法会根据文件创建一个或多个异步任务,方便异步执行。进行触发的,实际的处理是在。 阅读详情

Docker 部署架构

RAGFlow 使用多阶段 Docker 构建过程和 Docker Compose 编排进行部署。该系统支持完整和轻量级部署变体。

多阶段 Docker 构建

在这里插入图片描述
构建过程由 Dockerfile 2-214中定义的三个阶段组成:

  • 基础阶段 :使用系统依赖项、ML 模型和运行时环境设置 Ubuntu 22.04
  • 构建器阶段 :通过 uv 安装 Python 依赖,构建 React 前端,并生成版本信息
  • 生产阶段 :复制构建的工件并创建最终的运行时映像

服务编排

在这里插入图片描述

Docker Compose 编排 docker/docker-compose.yml 1-75 中 定义的多个服务主 ragflow-server 容器运行由 docker/entrypoint.sh 1-211 控制的 多个进程

集装箱入口点和流程管理

入口点脚本通过命令行选项提供灵活的流程管理:

选择目的违约
–disable-webserver禁用 nginx + ragflow_server启用
–disable-taskexecutor禁用后台辅助角色启用
–enable-mcpserver启用 MCP 服务器禁用
–workers=任务执行器数量1
–host-id=唯一主机标识符主机名

该脚本处理配置模板并根据标志启动服务:

# Web server startup
if [[ "${ENABLE_WEBSERVER}" -eq 1 ]]; then
    /usr/sbin/nginx
    python3 api/ragflow_server.py &
fi

# Task executor startup  
if [[ "${ENABLE_TASKEXECUTOR}" -eq 1 ]]; then
    for (( i=0; i<WORKERS; i++ )); do
        task_exe "${i}" "${HOST_ID}" &
    done
fi

构建系统和 CI/CD

GitHub Actions 工作流

RAGFlow 使用两个主要的 GitHub Actions 工作流进行持续集成和部署:

在这里插入图片描述
测试工作流 .github/workflows/tests.yml 1-176
构建了 slim 和 full 变体,然后针对不同的文档存储后端运行全面的测试。发布工作流
.github/workflows/release.yml 1-119 处理具有 Docker 映像发布和 PyPI 包分发的自动发布。

依赖关系管理

生成过程使用专用的依赖项下载脚本来处理:

  • ML 模型 :从 Hugging Face 存储库下载用于文档处理和嵌入
  • 系统库 :获取 Chrome/ChromeDriver 二进制文件、Tika 服务器、SSL 库
  • 自然语言数据 :下载用于文本处理的 NLTK 语料库

该脚本支持中国镜像选项,以便通过 --china-mirrors 标志在受限网络中进行访问。

MCP 服务器部署

模型上下文协议 (MCP) 服务器为 AI 模型交互提供了标准化接口,并且可以部署在多种配置中。

MCP 服务器架构

在这里插入图片描述
mcp/server/server.py 1-457 中 定义的 MCP 服务器支持两种部署模式:

  • 自托管模式 :单租户部署,使用固定 API 密钥进行 RAGFlow 访问
  • 主机模式 :客户端提供授权标头的多租户部署

传输选项包括旧版 SSE 终结点和具有可选 JSON 响应的新式可流式 HTTP。

MCP 服务器配置

服务器通过命令行选项和环境变量接受广泛的配置:

参数环境变量违约描述
–base-urlRAGFLOW_MCP_BASE_URLhttp://127.0.0.1:9380RAGFlow API 基本 URL
–hostRAGFLOW_MCP_HOST127.0.0.1MCP 服务器绑定地址
–portRAGFLOW_MCP_PORT9382MCP 服务器端口
–modeRAGFLOW_MCP_LAUNCH_MODEself-host部署模式
–api-keyRAGFLOW_MCP_HOST_API_KEY-自托管模式的 API 密钥

Docker Compose 集成允许通过容器命令参数激活 MCP 服务器:

command:
  - --enable-mcpserver
  - --mcp-host=0.0.0.0
  - --mcp-port=9382
  - --mcp-base-url=http://127.0.0.1:9380
  - --mcp-mode=self-host

版本管理

RAGFlow 实现动态版本检测,适应不同的部署环境:
在这里插入图片描述
api/versions.py 23-52 中的 版本系统优先考虑 Docker 构建期间生成的 VERSION 文件,回退到开发环境中的 Git 标签信息。构建变体(slim/full)由 LIGHTEN 环境变量确定。

基础结构服务依赖项

RAGFlow 的部署需要在具有特定启动依赖关系和运行状况检查的多个基础设施服务之间进行协调:

在这里插入图片描述
Docker Compose 配置通过运行状况检查和依赖项声明确保正确的服务启动顺序。卷挂载提供持久存储和配置注入点。

Ragflow技术栈分析及二次开发指南 Ragflow是目前团队化部署大模型+RAG的优质方案,不过其仍不适合直接部署使用,本文将从实际使用的角度,对其进行二次开发 阅读详情

相关推荐

macOS 上部署 RAGFlow

还在为在 macOS 上部署 RAGFlow 0.14.1 发愁?别慌!本文为你呈上详细部署指南。先检查系统配置,再安装指定版本的 Docker 和 Docker Compose。在安装 RAGFlow 前后端时,教你解决 Python 依赖项安装中 xgboost 包版本不兼容等问题。对于后端服务启动报错、前端服务配置与启动、访问服务时遇到的模块缺失等难题,都给出了具体解决办法。哪怕是新手小白,跟着这份指南一步步操作,也能顺利完成部署。想快速上手 RAGFlow 0.14.1?快收藏这篇文章!

小白巨白的博客 7240

RAGflow添加API接口报错[项目代码]

在华为云部署RAGflow并尝试添加ModelArts Studio中的模型时,遇到报错:无法访问模型DeepSeek-R1___OpenAI-API,错误代码400,提示无法检查授权请求头。错误原因是客户端请求存在语法或逻辑问题。最终解决方案是去掉API地址中v1后面的参数,成功解决问题。

【本地私有化部署大模型】ubuntu+ragflow+deepseek-r1的部署过程以及问题记录

Ubuntu+RagFlow+DeepSeek-R1本地部署and记录

mmljkt的博客 4880

实现RAGFlow-0.14.1的输入框多行输入和消息框的多行显示

虽然对话的多行输入没有问题了,对话chat上的消息显示没有跟随输入分行,只是将分行的地方加了一个空格,显得很怪异,现在将chat的消息显示也适配一下多行。我使用MacBook Pro,chip 是 Apple M3 Pro,Memory是18GB,macOS是 Sonoma 14.6.1。目前RAGFlow前端的chat功能,输入的内容是单行的,不能主动使用Shift+Enter实现分行。要实现消息内容中的换行处理,确保用户输入的内容能够正确地显示多行,我们需要确保在。中,可以看到消息输入功能是通过。

weixin_56460049的博客 2377

本地部署 RAGFlow

本地部署 RAGFlow

engchina的专栏 8166

RAGFlow部署和使用

前提条件RAGFlow 是一款基于深度文档理解构建的开源 RAG(Retrieval-Augmented Generation)引擎。RAGFlow 可以为各种规模的企业及个人提供一套精简的 RAG 工作流程,结合大语言模型(LLM)针对用户各类不同的复杂格式数据提供可靠的问答以及有理有据的引用。前提条件CPU >= 4 核安装确保不小于 262144:如需确认如果你的改动会在下次系统重启时被重置。如果希望做永久改动,还需要在文件里把进入docker。

meiyoudianhuafei的博客 2622

RAGFlow框架优化经验分享(附代码):图文识别+动态分块 、API调优+源码修改

不使用RAGFlow 的自动分块,而是手动控制分块,使用chunk_method="one"将整个文档作为一个块导入,然后使用自定义逻辑创建更细粒度的分块。这种做法无疑可以实现最精细的控制、保留文档完整性,当然缺点就是实现上会相对麻烦。

z551646的博客 2740

【Ragflow】7. Ragflow-plus和Ragflow有什么关系?主流问题Q&A

Ragflow 是主流 RAG 结合大模型问答的框架之一,然而其开源版本存在诸多问题,例如,团队使用时,成员间知识库共享操作繁琐,缺乏有效的用户管理后台。因此,我对其进行二次开发,解决了部分问题。解决方案开源共享出来,起名为仓库地址:https://github.com/zstar1003/ragflow-plus。

兴趣使然的创作者 2814

RAGFlow 本地部署及 Dify 调用,让你的本地大模型更有深度(保证好使)

在人工智能飞速发展的今天,大模型的应用越来越广泛。然而,许多人在使用大模型时面临着各种限制,例如数据隐私问题、高昂的云服务费用等。本地部署大模型并结合有效的工具来提升其性能成为了一种极具吸引力的解决方案。本文将为大家详细介绍如何通过 RAGFlow 进行本地部署,并利用 Dify 进行调用,让你的本地大模型发挥出更强大的能力,为各种应用场景提供有力支持。

JovaZou的成长之路 4350

本地部署DeepSeek + Ragflow

Mac、Windows 本地部署DeepSeek + Ragflow,ollama + docker

效率开发者手札 1938

DeepSeek部署及ragflow知识库问题汇总

普通的AI大模型:基于训练好的数据回答,知识库+AI:基于知识库和训练数据回答,网络Tools+知识库+AI:再加上网络数据回答,涉及到agent等知识,后续如果需求的朋友多会考虑出一期。A:仍然是镜像源的问题,设置镜像源后建议重启docker,截至视频发布,视频内镜像源仍可访问,如果还是不行,可以增加镜像源,配置如下。,如果不太熟悉git,一键安装包中已经下载好了,ragflow文件夹中就是,跳过下载,按照步骤操作即可。4.启动模型:也可以启动快捷图标ollama 即可在CMD模式下 使用交互窗口交互。

qq_40358970的博客 8877

0基础玩deepseek+RAGFlow本地部署+搭建知识库

宝子们😎,还在为找资料东奔西走,被付费知识 “割韭菜” 而烦恼吗🧐?今天就给大家分享超实用的技术干货 ——DeepSeek 和 RAGFlow 本地部署,再手把手教你搭建专属知识库📚,让知识管理和获取变得轻松又高效,而且 0 基础也能轻松上手!宝子们😎,还在为找资料东奔西走,被付费知识 “割韭菜” 而烦恼吗🧐?今天就给大家分享超实用的技术干货 ——DeepSeek 和 RAGFlow 本地部署,再手把手教你搭建专属知识库📚,让知识管理和获取变得轻松又高效,而且 0 基础也能轻松上手!1、安装。

m0_58592891的博客 2万+

ragflow 启动unbuntu下部署

demo网址:https://demo.ragflow.io/介绍网址:https://mp.weixin.qq.com/s/zNnL0LXC2yYT-QZhDkOITA。

oneofironlady的博客 2860

RagFlow本地部署使用

开源RAGFlow引擎:打造无幻觉、高精度的文档理解与生成体验RAGflow,这个新兴的开源RAG(Retrieval-Augmented Generation)引擎,正以其独特的深度文档理解能力,为大型语言模型的应用带来了革命性的变革。在处理PDF文件时,我们经常面临提取干净数据的挑战,而RAGFlow的出现,恰恰解决了这一问题,它能够提供准确无误且无幻觉的生成结果。

qq_43548590的博客 4万+

简话 RAG 本地部署(DeepSeek + RAGFlow)

RAG = DeepSeek + OLlama + Docker + RAGFlow + Windows 11 简话 RAG 本地部署

捉虫客 de 博客 1万+

RAGFlow和Dify对比

RAGFlow和Dify都是基于大语言模型(LLM)的应用开发平台,分别专注于深度文档理解与检索增强生成(RAG)和LLM应用开发。RAGFlow以其深度文档解析能力和无幻觉生成著称,而Dify则以其灵活的工作流编排和全面的模型支持见长。以下从多个维度对两者进行详细对比。RAGFlow更适合需要深度文档解析和无幻觉生成的企业,尤其是处理复杂格式文档的场景。Dify更适合需要灵活工作流编排和多模型集成的开发者,尤其是构建复杂AI应用的场景。

寓教于乐。教己助人 1万+

RagFlow的本地部署

RAGFlow 是一款开源的 RAG(Retrieval-Augmented Generation)引擎,可以用于高效处理信息,为多种场景提供智能解决方案,如本地知识库的构建、问答系统的搭建,大量文本信息的处理等。另外,当在UI界面中选择以下其他模型时,会自动从HuggingFace下载,如果不能连接HuggingFace,可以设置以下环境变量,从镜像网点下载;模型名称填写ollama中模型的名称,可以用ollama list命令查看已安装的模型。在添加了的模型中,会显示有ollama。

wjj_fire的博客 1万+

ubuntu22.04部署ragflow和ollama

参考下面这个链接 安装NVIDIA驱动 安装过程中可能会出现下面这个报错: an error occurred while performing building kernel modules see /var/log/nvidia-installer.log for details. unrecognized command-line option…原因是系统gcc版本和内核gcc版本不一致,安装gcc-12 That’s an issue with the Ubuntu kernel. For what

m0_51641706的博客 2794
上一篇: 【RAGFlow代码详解-26】Python SDK
下一篇: 【RAGFlow代码详解-29】Docker 部署
df007df
博客等级 码龄18年 833粉丝 171原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

df007df

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值