- Complete knowledge base list and detail pages - Complete document upload component - Fix CORS config (add PUT/DELETE method support) - Fix file upload issues (disabled state and beforeUpload return value) - Add detailed debug logs (cleaned up) - Create Day 21-22 completion summary document
6.9 KiB
6.9 KiB
Day 18 - Dify部署完成总结
日期: 2025-10-11
状态: ✅ 已完成
🎯 本次任务目标
完成Dify平台部署,为知识库系统开发做好准备。
✅ 完成的工作
1. Docker镜像加速器配置 ✅
操作:
- 配置了5个国内Docker镜像源
- 大幅提升镜像下载速度和成功率
镜像源列表:
{
"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配置:
# Dify
DIFY_API_URL=http://localhost/v1
DIFY_API_KEY=app-VZRn0vMXdmltEJkvatHVGv5j
完整配置:
# 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
🎉 部署成功检查清单
- Docker镜像加速器已配置
- 所有镜像拉取完成(无报错)
docker compose ps显示所有容器 "Up" 或 "Healthy"- 访问 http://localhost 可以打开Dify界面
- 完成初始化,创建管理员账号
- 获取Dify API Key
- 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: 插件安全管理
🔄 服务管理命令
启动服务
cd D:\MyCursor\dify\docker
docker compose up -d
停止服务
cd D:\MyCursor\dify\docker
docker compose down
查看状态
cd D:\MyCursor\dify\docker
docker compose ps
查看日志
cd D:\MyCursor\dify\docker
docker compose logs -f api
重启服务
cd D:\MyCursor\dify\docker
docker compose restart
🚀 下一步工作计划
Day 19-20:知识库管理功能
后端开发:
- 创建
KnowledgeBase和Document数据库表 - 封装Dify API客户端 (
DifyClient) - 实现知识库CRUD API
- 实现文档上传API
前端开发:
- 创建知识库管理页面
- 实现知识库列表展示
- 实现创建/删除知识库
- 实现文档上传组件
集成Dify:
- 调用Dify API创建知识库
- 调用Dify API上传文档
- 文档向量化处理
📝 注意事项
1. 端口占用问题
Dify占用的端口:
- 80: nginx HTTP
- 443: nginx HTTPS
- 5432: PostgreSQL(Dify自己的DB)
- 6379: Redis(Dify自己的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
原因:网络不稳定,下载中断
解决方案:
- 配置Docker镜像加速器
- 重试下载(Docker会从断点继续)
- 最终成功拉取所有镜像
📈 项目进度总结
里程碑1(MVP核心)进度更新
已完成:
- ✅ 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镜像下载慢的问题
- 掌握了网络问题排查方法
📚 相关文档
总结: Day 18的Dify部署工作圆满完成!虽然遇到了网络问题,但通过配置镜像加速器和多次重试,最终成功部署了所有服务。为接下来的知识库功能开发打下了坚实的基础!💪