# 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: 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 ``` **原因**:网络不稳定,下载中断 **解决方案**: 1. 配置Docker镜像加速器 2. 重试下载(Docker会从断点继续) 3. 最终成功拉取所有镜像 --- ## 📈 项目进度总结 ### 里程碑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镜像下载慢的问题 - 掌握了网络问题排查方法 --- ## 📚 相关文档 - [Dify官方文档](https://docs.dify.ai) - [Weaviate文档](https://weaviate.io/developers/weaviate) - [Docker Compose文档](https://docs.docker.com/compose/) --- **总结**: Day 18的Dify部署工作圆满完成!虽然遇到了网络问题,但通过配置镜像加速器和多次重试,最终成功部署了所有服务。为接下来的知识库功能开发打下了坚实的基础!💪