【RAGFlow代码详解-30】构建系统和 CI/CD

Docker 构建系统

RAGFlow 使用主 Dockerfile 1-214 中定义的复杂多阶段 Docker 构建过程,该过程创建应用程序的完整和精简变体。

多阶段构建架构

在这里插入图片描述
Docker 构建过程

构建过程由 Dockerfile 2-214 中 定义的三个主要阶段组成:

  • 基础阶段 ( Dockerfile 2-139 ):使用系统依赖项(包括 Python 3.10、Node.js 20、Rust 工具链和数据库驱动程序)设置 Ubuntu 22.04 基础。

  • 构建器阶段 ( Dockerfile 142-179 ):使用 uv 包管理器处理依赖项安装,并使用 npm 构建 React 前端。

  • 生产阶段 ( Dockerfile 181-214 ):通过复制构建的项目和应用程序代码来创建最终的运行时映像。

构建变体

系统支持由 LIGHTEN` build 参数控制的两个构建变体:

  • 完整映像 :包括所有 ML 模型和嵌入 ( Dockerfile 21-26 )
  • Slim Image:排除大型嵌入模型以减小图像大小 ( Dockerfile 158-162 )

依赖关系管理

RAGFlow 通过专用的下载脚本和预构建的依赖关系映像来管理外部依赖项。

非常好!我们将在前文的基础上,**重新整理一套完整、清晰、适合地质行业电脑小白用户的 AI 工作流部署方案**。该方案将基于: - **Windows 11 + WSL2** - **Docker Desktop(Linux 容器模式)** - **Ollama(本地大模型)** - **RAGFlow(文档知识库 + 向量检索)** - **Dify(可视化 AI 工作流)** - **Python 脚本(自动生成 Word 报告)** --- ## 📁 部署目标结构 ``` D:\AI_Studio\ ├── apps\ # 所有应用程序安装目录 │ ├── docker\ # Docker Desktop 安装路径 │ ├── python\ # Python 安装路径 │ └── ollama\ # Ollama 原生可执行文件(备选) │ ├── data\ # 数据存储目录 │ ├── models\ # 模型缓存(如 Ollama 模型) │ ├── ragflow_data\ # RAGFlow 数据目录 │ ├── dify_data\ # Dify 数据目录 │ ├── docker\ # Docker 数据卷 │ └── reports\ # Word 报告模板与输出 │ ├── templates\ # Word 模板 │ └── output\ # 自动生成的报告 │ ├── installer\ # 安装统一存放目录 │ ├── Docker Desktop Installer.exe │ ├── ollama-windows-amd64.exe │ └── python-3.11.9-amd64.exe │ └── scripts\ # 自定义脚本目录 └── generate_report.py # 自动生成 Word 报告的 Python 脚本 ``` --- ## 🔧 第一步:准备系统环境 ### ✅ 1. 启用 WSL2(无需手动安装 Ubuntu) 以管理员身份打开 PowerShell: ```powershell # 启用 WSL 功能并安装默认发行版(Ubuntu) wsl --install # 设置默认版本为 WSL2 wsl --set-default-version 2 # 查看已安装的发行版 wsl --list --verbose ``` > ⚠️ 如果未自动安装 Ubuntu,运行: ```powershell wsl --install -d Ubuntu ``` 安装完成后设置用户名密码。 --- ## 🐳 第二步:安装 Docker Desktop(集成 WSL2) ### ✅ 1. 下载安装 放入: ``` D:\AI_Studio\installer\Docker%20Desktop%20Installer.exe ``` ### ✅ 2. 安装 Docker Desktop 双击运行安装程序,并选择安装路径为: ``` D:\AI_Studio\apps\docker ``` > 💡 如果安装程序不支持更改路径,可以先安装到默认位置,再移动文件夹并创建软链接。 ### ✅ 3. 设置 Docker 数据卷路径 编辑或新建配置文件: ``` C:\ProgramData\Docker\config\daemon.json ``` 写入内容: ```json { "data-root": "D:/AI_Studio/data/docker" } ``` 重启 Docker 服务生效。 ### ✅ 4. 切换容器类型为 Linux 模式 右键任务栏 Docker Desktop 图标 → Switch to Linux containers --- ## 🧠 第三步:安装 Ollama(推荐使用 Docker 模式) ### ✅ 方法一:使用 Docker 运行 Ollama(推荐) ```powershell docker run -d -p 11434:11434 -v D:/AI_Studio/data/models:/root/.ollama infiniflow/ollama:latest ``` 拉取模型: ```powershell ollama pull llama3 ``` ### ✅ 方法二:使用原生 Windows 版本(备选) 将下载好的 `ollama-windows-amd64.exe` 放入: ``` D:\AI_Studio\apps\ollama ``` 重命名为 `ollama.exe`,并在 PowerShell 中运行: ```powershell cd D:\AI_Studio\apps\ollama .\ollama.exe serve ``` --- ## 📚 第四步:部署 RAGFlow(基于 Docker) ```powershell mkdir D:\AI_Studio\data\ragflow_data docker run -d ` --name ragflow ` -p 8080:8080 ` -v D:/AI_Studio/data/ragflow_data:/data ` -e LOCAL_MODE=1 ` -e MODEL_PROVIDER=ollama ` -e OLLAMA_BASE_URL=http://host.docker.internal:11434 ` -e DEFAULT_VICUNA_MODEL=llama3 ` infiniflow/ragflow:latest ``` 访问: ``` http://localhost:8080 ``` --- ## 🔧 第五步:部署 Dify(基于 Docker) ```powershell mkdir D:\AI_Studio\data\dify_data docker run -d ` --name dify ` -p 3000:3000 ` -v D:/AI_Studio/data/dify_data:/app/data ` -e DATABASE_URL=file:///app/data/dify.db ` -e OLLAMA_API_BASE=http://host.docker.internal:11434 ` -e MODEL_PROVIDER=ollama ` chatchat/oneclick:latest ``` 访问: ``` http://localhost:3000 ``` --- ## 🐍 第六步:安装 Python(用于自动化脚本) ### ✅ 安装建议版本:Python 3.11.x 下载地址: 🔗 [https://www.python.org/downloads/windows/](https://www.python.org/downloads/windows/) 安装时请勾选: - ✅ Add Python to PATH(添加到系统环境变量) 修改安装路径为: ``` D:\AI_Studio\apps\python ``` ### ✅ 安装常用库 ```powershell pip install docxtpl requests python-docx pandas flask langchain ``` --- ## 📝 第七步:编写自动化生成 Word 报告脚本 保存路径:`D:\AI_Studio\scripts\generate_report.py` ```python from docxtpl import DocxTemplate import os def generate_report(template_name, context): template_path = os.path.join("D:\\AI_Studio\\data\\reports\\templates", template_name) doc = DocxTemplate(template_path) doc.render(context) output_path = os.path.join("D:\\AI_Studio\\data\\reports\\output", f"report_{context['project']}.docx") doc.save(output_path) print(f"Report saved to {output_path}") # 示例调用 generate_report( "geology_template.docx", { "project": "某矿区勘探项目", "location": "新疆某地", "conclusion": "发现高品位铜矿带" } ) ``` --- ## 🔁 第八步:整合工作流(RAGFlow + Dify + Python 报告生成) 你可以通过 Dify 构建如下 AI 工作流: 1. 用户上传 PDF 地质资料 2. Dify 调用 RAGFlow 提取关键信息(如构造、岩性、矿体等) 3. 输出结构化 JSON 数据 4. 传入 Python 脚本填充 Word 模板 5. 自动生成 Word 报告并归档至指定路径 --- ## ✅ 总结部署步骤一览表 | 步骤 | 操作说明 | |------|----------| | 1 | 创建完整目录结构:`installer`, `apps`, `data`, `scripts` | | 2 | 启用 WSL2 并安装 Ubuntu 子系统 | | 3 | 安装 Docker Desktop 到 `D:\AI_Studio\apps\docker` | | 4 | 设置 Docker 数据卷路径为 `D:\AI_Studio\data\docker` | | 5 | 使用 Docker 安装并运行 Ollama | | 6 | 设置 Ollama 模型缓存路径为 `D:\AI_Studio\data\models` | | 7 | 使用 Docker 部署 RAGFlow 到 `D:\AI_Studio\data\ragflow_data` | | 8 | 使用 Docker 部署 Dify 到 `D:\AI_Studio\data\dify_data` | | 9 | 安装 Python 到 `D:\AI_Studio\apps\python` | | 10 | 编写 Python 脚本实现 Word 报告自动生成 | | 11 | 使用 Dify 构建 AI 工作流,整合 RAGFlow Word 生成模块 | --- ##电脑小白自动安装版
07-12
评论
成就一亿技术人!
拼手气红包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、付费专栏及课程。

余额充值