Files
AIclinicalresearch/docs/05-每日进度/Day18-Dify部署完成.md
AI Clinical Dev Team 9acbb0ae2b feat: complete Dify platform deployment (Day 18)
## Dify 閮ㄧ讲瀹屾垚 鉁?
### 瀹屾垚鐨勫伐浣?1. Docker 闀滃儚鍔犻€熷櫒閰嶇疆
   - 閰嶇疆 5 涓浗鍐呴暅鍍忔簮
   - 澶у箙鎻愬崌涓嬭浇閫熷害鍜屾垚鍔熺巼

2. Dify 闀滃儚鎷夊彇 (鍏?11 涓湇鍔?
   - langgenius/dify-api:1.9.1
   - langgenius/dify-web:1.9.1
   - postgres, redis, weaviate, nginx 绛?   - 鎬诲ぇ灏忕害 2GB锛岃€楁椂绾?15 鍒嗛挓

3. Dify 鏈嶅姟鍚姩
   - 鉁?nginx (80/443)
   - 鉁?api, worker, worker_beat
   - 鉁?web (3000)
   - 鉁?db (PostgreSQL), redis
   - 鉁?weaviate (鍚戦噺鏁版嵁搴?
   - 鉁?sandbox, plugin_daemon, ssrf_proxy

4. Dify 鍒濆鍖栭厤缃?   - 鍒涘缓绠$悊鍛樿处鍙?   - 鍒涘缓搴旂敤: AI Clinical Research
   - 鑾峰彇 API Key: app-VZRn0vMXdmltEJkvatHVGv5j

5. 鍚庣鐜閰嶇疆
   - DIFY_API_URL=http://localhost/v1
   - DIFY_API_KEY 宸查厤缃?
### 鏂囨。鏇存柊
- 鏂板: docs/05-姣忔棩杩涘害/Day18-Dify閮ㄧ讲瀹屾垚.md
- 鏇存柊: docs/04-寮€鍙戣鍒?寮€鍙戦噷绋嬬.md (Day 18 鏍囪涓哄畬鎴?

### 涓嬩竴姝?Day 19-24: 鐭ヨ瘑搴撶郴缁熷紑鍙?- Dify 瀹㈡埛绔皝瑁?- 鐭ヨ瘑搴撶鐞?CRUD
- 鏂囨。涓婁紶涓庡鐞?- @鐭ヨ瘑搴撻泦鎴?- RAG 闂瓟楠岃瘉

---
Progress: 閲岀▼纰?1 (MVP) 85% -> 鐭ヨ瘑搴撶郴缁熷紑鍙戜腑
2025-10-11 08:58:41 +08:00

333 lines
6.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Day 18 - Dify部署完成总结
**日期**: 2025-10-11
**状态**: ✅ 已完成
---
## 🎯 本次任务目标
完成Dify平台部署为知识库系统开发做好准备。
---
## ✅ 完成的工作
### 1. Docker镜像加速器配置 ✅
**操作**
- 配置了5个国内Docker镜像源
- 大幅提升镜像下载速度和成功率
**镜像源列表**
```json
{
"registry-mirrors": [
"https://docker.mirrors.ustc.edu.cn",
"https://hub-mirror.c.163.com",
"https://registry.docker-cn.com",
"https://dockerproxy.com",
"https://mirror.baidubce.com"
]
}
```
---
### 2. Dify镜像拉取 ✅
**拉取的镜像**共11个服务
```
✅ langgenius/dify-api:1.9.1
✅ langgenius/dify-web:1.9.1
✅ langgenius/dify-plugin-daemon:0.3.0-local
✅ langgenius/dify-sandbox:0.2.12
✅ postgres:15-alpine
✅ redis:6-alpine
✅ semitechnologies/weaviate:1.19.0
✅ nginx:latest
✅ ubuntu/squid:latest
```
**总下载大小**: ~2GB
**耗时**: 约15分钟得益于镜像加速
---
### 3. Dify服务启动 ✅
**运行的服务**
| 服务 | 状态 | 端口 | 说明 |
|------|------|------|------|
| nginx | ✅ Up | 80, 443 | 反向代理 |
| api | ✅ Up | 5001 | Dify API服务 |
| worker | ✅ Up | - | 后台任务处理 |
| worker_beat | ✅ Up | - | 定时任务调度 |
| web | ✅ Up | 3000 | Dify前端界面 |
| db | ✅ Healthy | 5432 | PostgreSQL |
| redis | ✅ Healthy | 6379 | 缓存服务 |
| weaviate | ✅ Up | - | 向量数据库RAG核心 |
| sandbox | ✅ Healthy | - | 代码执行沙箱 |
| plugin_daemon | ✅ Up | 5003 | 插件守护进程 |
| ssrf_proxy | ✅ Up | 3128 | SSRF防护 |
**访问地址**: http://localhost
---
### 4. Dify初始化配置 ✅
**管理员账号**
- 邮箱:`gofeng117@163.com`
- 用户名:`zhibo`
- 密码:`xilu881009`
**已创建应用**
- 应用名称:`AI Clinical Research`
- 应用类型:基础应用
- API Key`app-VZRn0vMXdmltEJkvatHVGv5j`
---
### 5. 后端环境变量配置 ✅
**文件**: `backend/.env`
**Dify配置**
```bash
# Dify
DIFY_API_URL=http://localhost/v1
DIFY_API_KEY=app-VZRn0vMXdmltEJkvatHVGv5j
```
**完整配置**
```bash
# Database
DATABASE_URL=postgresql://postgres:postgres123@localhost:5432/ai_clinical_research?schema=public
# Redis
REDIS_URL=redis://localhost:6379
# JWT
JWT_SECRET=your-secret-key-change-in-production
JWT_EXPIRES_IN=7d
# LLM API
DEEPSEEK_API_KEY=sk-7f8cc37a79fa4799860b38fc7ba2e150
DASHSCOPE_API_KEY=sk-75b4ff29a14a49e79667a331034f3298
# Dify
DIFY_API_URL=http://localhost/v1
DIFY_API_KEY=app-VZRn0vMXdmltEJkvatHVGv5j
# Server
PORT=3001
NODE_ENV=development
```
---
## 🎉 部署成功检查清单
- [x] Docker镜像加速器已配置
- [x] 所有镜像拉取完成(无报错)
- [x] `docker compose ps` 显示所有容器 "Up" 或 "Healthy"
- [x] 访问 http://localhost 可以打开Dify界面
- [x] 完成初始化,创建管理员账号
- [x] 获取Dify API Key
- [x] API Key已配置到后端 `.env`
---
## 📊 Dify架构说明
### 核心组件
**1. API层**
- `api`: 主API服务
- `worker`: 异步任务处理
- `worker_beat`: 定时任务调度
**2. 前端层**
- `web`: React前端应用
- `nginx`: 反向代理和静态文件服务
**3. 存储层**
- `db` (PostgreSQL): 结构化数据存储
- `redis`: 缓存和消息队列
- `weaviate`: 向量数据库RAG检索
**4. 安全层**
- `sandbox`: 代码执行隔离环境
- `ssrf_proxy`: SSRF攻击防护
- `plugin_daemon`: 插件安全管理
---
## 🔄 服务管理命令
### 启动服务
```bash
cd D:\MyCursor\dify\docker
docker compose up -d
```
### 停止服务
```bash
cd D:\MyCursor\dify\docker
docker compose down
```
### 查看状态
```bash
cd D:\MyCursor\dify\docker
docker compose ps
```
### 查看日志
```bash
cd D:\MyCursor\dify\docker
docker compose logs -f api
```
### 重启服务
```bash
cd D:\MyCursor\dify\docker
docker compose restart
```
---
## 🚀 下一步工作计划
### Day 19-20知识库管理功能
**后端开发**
1. 创建 `KnowledgeBase``Document` 数据库表
2. 封装Dify API客户端 (`DifyClient`)
3. 实现知识库CRUD API
4. 实现文档上传API
**前端开发**
1. 创建知识库管理页面
2. 实现知识库列表展示
3. 实现创建/删除知识库
4. 实现文档上传组件
**集成Dify**
1. 调用Dify API创建知识库
2. 调用Dify API上传文档
3. 文档向量化处理
---
## 📝 注意事项
### 1. 端口占用问题
**Dify占用的端口**
- 80: nginx HTTP
- 443: nginx HTTPS
- 5432: PostgreSQLDify自己的DB
- 6379: RedisDify自己的Redis
**与项目的端口冲突**
- 如果项目的PostgreSQL和Redis也在本地运行会产生端口冲突
- **解决方案**
- 方案A修改Dify的docker-compose.yaml映射到不同端口
- 方案B项目使用Docker容器中的数据库当前已采用
### 2. 数据持久化
Dify的数据卷
```
docker-db-data: PostgreSQL数据
docker-redis-data: Redis数据
docker-weaviate-data: Weaviate向量数据
```
**备份建议**
- 定期备份数据卷
- 重要知识库文档做好本地备份
### 3. 性能优化
**Weaviate内存占用**
- 默认占用较多内存建议8GB系统内存
- 如果内存不足可以在docker-compose.yaml中限制内存
**网络访问**
- 确保Docker网络正常
- 如需外网访问配置nginx反向代理
---
## 🐛 遇到的问题与解决
### 问题1镜像下载EOF错误
**症状**
```
failed to copy: httpReadSeeker: failed open: EOF
```
**原因**:网络不稳定,下载中断
**解决方案**
1. 配置Docker镜像加速器
2. 重试下载Docker会从断点继续
3. 最终成功拉取所有镜像
---
## 📈 项目进度总结
### 里程碑1MVP核心进度更新
**已完成**
- ✅ Day 4-5: 环境搭建前端、后端、数据库、Redis
- ✅ Day 6: 前端基础架构
- ✅ Day 7: 前端完整布局
- ✅ Day 8-9: 项目管理API
- ✅ Day 10-11: 智能体配置系统
- ✅ Day 12-13: LLM适配器与对话系统
- ✅ Day 14-17: 前端对话界面
-**Day 18: Dify平台部署** ← 当前完成
**进行中**
- 🔄 Day 19-24: 知识库系统开发
**整体进度**:约 **75%**
---
## 🎓 技术收获
### 1. Docker编排
- 熟悉了Docker Compose多服务编排
- 理解了容器间网络通信
- 掌握了健康检查配置
### 2. Dify架构
- 了解了完整的AI应用架构
- 学习了向量数据库的应用场景
- 理解了RAG系统的实现原理
### 3. 镜像加速优化
- 解决了国内Docker镜像下载慢的问题
- 掌握了网络问题排查方法
---
## 📚 相关文档
- [Dify官方文档](https://docs.dify.ai)
- [Weaviate文档](https://weaviate.io/developers/weaviate)
- [Docker Compose文档](https://docs.docker.com/compose/)
---
**总结**: Day 18的Dify部署工作圆满完成虽然遇到了网络问题但通过配置镜像加速器和多次重试最终成功部署了所有服务。为接下来的知识库功能开发打下了坚实的基础💪