Files
AIclinicalresearch/docs/05-每日进度/Day18-Dify部署完成.md
AI Clinical Dev Team 239c7ea85e feat: Day 21-22 - knowledge base frontend completed, fix CORS and file upload issues
- 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
2025-10-11 15:40:12 +08:00

6.9 KiB
Raw Blame History

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 Keyapp-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知识库管理功能

后端开发

  1. 创建 KnowledgeBaseDocument 数据库表
  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镜像下载慢的问题
  • 掌握了网络问题排查方法

📚 相关文档


总结: Day 18的Dify部署工作圆满完成虽然遇到了网络问题但通过配置镜像加速器和多次重试最终成功部署了所有服务。为接下来的知识库功能开发打下了坚实的基础💪