从事地质找矿行业、水工环地质勘查行业、岩土工程勘察行业的电脑小白,电脑系统为Win11,有英伟达显卡2080ti双显卡显卡共44gb,电脑内存96GB,如何利用Ollama + DeepSeek + Docker + RAGFlow+Dify本地部署私人知识库加工作流,自动提取报告模板自动生成word报告,Ollama + DeepSeek + Docker (Docker Desktop需要汉化)+ RAGFlow+Dify都必须安装在D盘的单独文件夹内,且软件安装禁止安装在c盘,所有数据存储于D盘的特有文件夹内,需要具体部署步骤及操作说明。
时间: 2025-07-24 21:34:30 浏览: 18
<think>我们将在Windows 11系统上部署一个基于Ollama、DeepSeek、Docker、RAGFlow和Dify的私有知识库和工作流系统,用于自动化生成Word报告。所有软件和数据都将存储在D盘。
步骤概览:
1. 安装Docker Desktop for Windows并配置存储路径到D盘。
2. 安装Ollama并配置模型存储路径到D盘,下载DeepSeek模型。
3. 部署RAGFlow(使用Docker),配置数据存储到D盘。
4. 部署Dify(使用Docker),配置数据存储到D盘。
5. 配置RAGFlow与Dify的集成,以及Ollama作为推理引擎。
6. 创建知识库和工作流,实现报告自动生成。
详细步骤:
### 1. 安装Docker Desktop
- 下载Docker Desktop for Windows: https://www.docker.com/products/docker-desktop/
- 安装时,确保勾选“使用WSL 2而不是Hyper-V”(如果系统支持WSL2)。
- 安装完成后,打开Docker设置,在“Resources” -> “Advanced”中,将Docker的存储路径修改为D盘(例如:`D:\docker`)[^1]。
- 同时,在“Resources” -> “WSL Integration”中,启用已安装的Linux发行版(如Ubuntu)。
### 2. 安装Ollama
- 下载Ollama Windows版本:https://ollama.com/download
- 安装时,选择自定义安装路径,例如:`D:\ollama`。
- 安装完成后,打开命令提示符或PowerShell,设置环境变量,将模型存储路径指向D盘:
```cmd
setx OLLAMA_MODELS "D:\ollama\models"
```
- 重启终端,然后下载DeepSeek模型(例如deepseek-coder):
```cmd
ollama run deepseek-coder:6.7b
```
注意:模型较大,下载需要时间。
### 3. 部署RAGFlow
RAGFlow是一个基于深度文档理解的RAG引擎。我们将使用Docker来部署。
- 创建RAGFlow的配置文件和数据目录在D盘:
```
D:\ragflow
├── docker-compose.yml
└── data (用于存储向量库和文件)
```
- 在`D:\ragflow`目录下创建`docker-compose.yml`文件,内容如下:
```yaml
version: '3'
services:
ragflow:
image: banyanlab/ragflow:latest
container_name: ragflow
ports:
- "9380:9380"
volumes:
- D:\ragflow\data:/app/ragflow/data
environment:
- RAGFLOW_API_KEY=your_api_key # 设置一个API密钥
restart: always
```
- 打开终端(确保Docker已运行),进入`D:\ragflow`目录,运行:
```cmd
docker-compose up -d
```
- 等待容器启动后,访问 http://localhost:9380 即可进入RAGFlow的Web界面。
### 4. 部署Dify
Dify是一个开源的LLM应用开发平台,支持工作流。
- 在D盘创建Dify的目录结构:
```
D:\dify
├── docker-compose.yml
├── data (存储数据库和配置文件)
└── logs
```
- 在`D:\dify`目录下创建`docker-compose.yml`文件,使用官方提供的多容器编排文件(参考:https://github.com/langgenius/dify/blob/main/docker/docker-compose.yaml),但需要修改存储卷位置。
修改后的`docker-compose.yml`示例:
```yaml
version: '3'
services:
api:
image: langgenius/dify-api:latest
container_name: dify-api
ports:
- "5001:5001"
volumes:
- D:\dify\data:/data
- D:\dify\logs:/app/log
environment:
- FLASK_ENV=production
- SQLALCHEMY_DATABASE_URI=sqlite:////data/dify.db?check_same_thread=false
- LOGGING_DIR=/app/log
- CONSOLE_LOG_MODE=plain
restart: always
worker:
image: langgenius/dify-api:latest
container_name: dify-worker
command: celery -A app.celery worker -l INFO
volumes:
- D:\dify\data:/data
- D:\dify\logs:/app/log
environment:
- FLASK_ENV=production
- SQLALCHEMY_DATABASE_URI=sqlite:////data/dify.db?check_same_thread=false
- LOGGING_DIR=/app/log
- CONSOLE_LOG_MODE=plain
restart: always
web:
image: langgenius/dify-web:latest
container_name: dify-web
ports:
- "3000:3000"
restart: always
```
- 在`D:\dify`目录下运行:
```cmd
docker-compose up -d
```
- 等待容器启动后,访问 http://localhost:3000 即可进入Dify的Web界面。
### 5. 配置集成
- **在Dify中配置Ollama作为模型提供商**:
在Dify的“设置”->“模型提供商”中,选择“自定义”(或Ollama),填写Ollama的API地址(默认在本地运行,地址为http://localhost:11434/api/generate),并设置模型名称(如deepseek-coder:6.7b)。
- **在Dify中配置RAGFlow**:
在Dify的“知识库”设置中,选择“添加知识库”,并填写RAGFlow的API地址(http://localhost:9380)和API密钥(在RAGFlow启动时设置的环境变量RAGFLOW_API_KEY)。
### 6. 创建知识库和工作流
- **在RAGFlow中上传地质找矿、水工环勘查等行业的文档**,构建知识库。
- **在Dify中创建工作流**:
- 使用“知识库检索”节点连接到RAGFlow的知识库。
- 使用“LLM”节点(使用Ollama的DeepSeek模型)生成报告内容。
- 添加“输出”节点,将生成的报告内容导出为Word格式(Dify支持导出为文本,然后可以通过模板生成Word,或者使用Python节点调用docx库生成Word文件)。
注意:Dify本身不直接生成Word文件,但可以通过自定义代码节点实现。例如,使用Python节点,利用`python-docx`库生成Word报告。
示例工作流:
1. 用户输入:报告主题和参数。
2. 知识库检索:从RAGFlow中检索相关地质资料。
3. LLM生成:根据检索结果,生成报告正文。
4. 格式化输出:将正文按照Word模板填充,生成.docx文件。
关于Word报告生成的代码节点示例(在Dify的Python节点中):
```python
from docx import Document
from docx.shared import Inches
def generate_word_report(context):
# context是前面节点传递过来的数据,包含报告内容
doc = Document()
doc.add_heading('地质报告', level=1)
doc.add_paragraph(context['report_content'])
# 保存到临时文件,并提供下载链接
output_path = "/tmp/report.docx" # 注意:在Docker容器中,需要挂载卷以持久化
doc.save(output_path)
return {"file_path": output_path}
```
注意:在Dify中使用自定义代码节点需要确保Dify的worker容器中安装了`python-docx`。可以通过修改Dify的worker镜像,或者在Dify的管理后台安装依赖(如果支持)。
### 注意事项
- 所有服务的端口不要冲突。
- 数据备份:定期备份D盘下的`docker`、`ollama`、`ragflow`、`dify`目录。
- 性能要求:运行多个容器和LLM模型需要较高的内存和CPU,建议机器配置不低于16GB内存。
§§相关问题§§
1. 如何验证Ollama模型是否成功加载?
2. RAGFlow支持哪些类型的文档解析?
3. Dify中如何调试工作流?
4. 如何将生成的Word报告自动发送给用户?</think>### 在Win11中部署AI工具链实现地质报告自动化
以下是详细部署步骤,所有软件均安装在D盘(以`D:\AI_Toolchain`为例),数据存储在`D:\AI_Data`:
#### 一、环境准备
1. **启用WSL2**(Windows子系统Linux):
```powershell
wsl --install -d Ubuntu
wsl --set-default-version 2
```
[^1]
2. **创建存储目录**:
```powershell
mkdir D:\AI_Toolchain
mkdir D:\AI_Data
```
#### 二、核心组件安装
##### 1. Docker Desktop
- 下载安装包:[https://www.docker.com/products/docker-desktop/](https://www.docker.com/products/docker-desktop/)
- 安装时选择D盘路径:`D:\AI_Toolchain\Docker`
- 配置存储路径:
```json
// settings.json
"data-root": "D:\\AI_Data\\docker"
```
##### 2. Ollama
- 下载Windows版:[https://ollama.com/download](https://ollama.com/download)
- 安装到:`D:\AI_Toolchain\Ollama`
- 配置环境变量:
```powershell
[System.Environment]::SetEnvironmentVariable('OLLAMA_MODELS', 'D:\AI_Data\ollama\models', 'Machine')
```
- 下载DeepSeek模型:
```powershell
ollama run deepseek-coder:6.7b
```
##### 3. RAGFlow
- 创建配置文件目录:`D:\AI_Data\ragflow`
- 启动容器:
```powershell
docker run -d --name ragflow \
-v D:\AI_Data\ragflow:/opt/ragflow/data \
-p 9380:9380 \
banyanlab/ragflow:latest
```
##### 4. Dify
- 创建数据目录:`D:\AI_Data\dify`
- 启动服务:
```powershell
docker run -d --name dify \
-v D:\AI_Data\dify:/data \
-p 3000:3000 \
langgenius/dify:latest
```
#### 三、地质知识库构建
1. **上传行业文档**:
- 访问 http://localhost:9380
- 上传地质规范、矿区数据、岩土检测报告等PDF/DOCX文件
- 存储路径:`D:\AI_Data\geology_kb`
2. **配置RAG管道**:
```yaml
# ragflow/config.yaml
chunk_size: 512
vector_store:
type: milvus
host: milvus-standalone
```
#### 四、工作流集成
1. **Dify连接组件**:
- Ollama API:`http://localhost:11434/api/generate`
- RAGFlow API:`http://localhost:9380/v1/retrieval`
2. **创建报告生成工作流**:
```mermaid
graph LR
A[用户输入矿区编号] --> B(RAG检索地质数据)
B --> C[DeepSeek分析地层结构]
C --> D[生成Word报告模板]
D --> E[填充岩土参数]
E --> F[输出.docx文件]
```
3. **Python生成Word示例**:
```python
from docx import Document
from dify_api import get_ai_response
def generate_report(project_id):
# 从Dify获取结构化数据
geology_data = get_ai_response(f"提取矿区{project_id}的地层数据")
# 创建Word文档
doc = Document()
doc.add_heading(f'{geology_data["矿区名称"]}地质报告', 0)
doc.add_paragraph(f"岩土类型: {geology_data['主要岩层']}")
doc.add_table(rows=geology_data['检测数据'])
# 保存到D盘
doc.save(f"D:\\AI_Data\\reports\\{project_id}.docx")
```
#### 五、验证部署
1. 访问入口:
- RAGFlow: http://localhost:9380
- Dify: http://localhost:3000
2. 测试命令:
```powershell
curl http://localhost:11434/api/generate -d '{
"model": "deepseek-coder",
"prompt": "生成页岩层的工程特性描述"
}'
```
#### 六、数据备份方案
1. 设置定时任务备份D盘数据:
```powershell
# backup_script.ps1
Compress-Archive -Path D:\AI_Data -DestinationPath D:\Backups\AI_Data_$(Get-Date -Format yyyyMMdd).zip
```
> **注意事项**:
> 1. 确保Windows虚拟化已启用(BIOS设置)
> 2. 地质行业文档需脱敏处理后再上传[^2]
> 3. 首次运行需下载约15GB容器镜像
> 4. 建议配置32GB+内存满足多容器运行
阅读全文
相关推荐


















