Files
AIclinicalresearch/开发环境配置指南.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

708 lines
13 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.
# 开发环境配置指南
## 🎯 核心建议先本地开发MVP完成后再上云
**理由:**
- ✅ 节省成本开发期2.5个月无需云服务器费用)
- ✅ 调试方便(本地开发响应快)
- ✅ 灵活性高(随时修改配置)
- ✅ 降低风险(等功能稳定后再上云)
---
## 📅 分阶段部署策略
### 阶段1本地开发0-2个月⭐ 当前阶段
**环境:** 开发人员本地电脑
**需要的硬件:**
- CPU: 4核心以上
- 内存: 16GB以上推荐
- 硬盘: 50GB可用空间
- 操作系统: Windows 10+、macOS、Linux
**需要安装:**
- Docker Desktop运行Dify
- Node.js 18+(后端开发)
- PostgreSQL 15+或用Docker
- Redis 7+或用Docker
**费用:** ¥0使用现有设备
**适用于:**
- 搭建基础架构
- 开发核心功能
- 本地测试
- MVP开发
---
### 阶段2内测环境2-2.5个月)
**环境:** 小型云服务器
**推荐配置:**
- CPU: 2核心
- 内存: 4GB
- 硬盘: 40GB
- 带宽: 1Mbps
**云厂商选择:**
- 阿里云:轻量应用服务器 约¥60/月
- 腾讯云:轻量应用服务器 约¥50/月
**费用:** ¥50-60/月
**适用于:**
- 小范围内测5-10人
- 功能验证
- 性能初步测试
---
### 阶段3正式上线3个月后
**环境:** 生产级云服务器
**推荐配置:**
- CPU: 4核心
- 内存: 8GB
- 硬盘: 100GB SSD
- 带宽: 5Mbps
**费用:** ¥200-300/月
**适用于:**
- 正式对外服务
- 100+用户规模
---
## 💻 本地开发环境配置(详细步骤)
### 方案A全Docker方式推荐 ⭐)
**优点:** 环境隔离、配置简单、一键启动
#### 1. 安装Docker Desktop
**Windows**
```bash
# 下载并安装 Docker Desktop
# https://www.docker.com/products/docker-desktop/
# 启动后验证
docker --version
docker-compose --version
```
**macOS**
```bash
# 使用 Homebrew
brew install --cask docker
# 或下载安装包
# https://www.docker.com/products/docker-desktop/
```
#### 2. 创建项目目录
```bash
mkdir ai-clinical-research
cd ai-clinical-research
```
#### 3. 创建 docker-compose.yml
```yaml
# docker-compose.yml
version: '3.8'
services:
# PostgreSQL 数据库
postgres:
image: postgres:15-alpine
container_name: acr-postgres
environment:
POSTGRES_DB: ai_clinical_research
POSTGRES_USER: dev_user
POSTGRES_PASSWORD: dev_password
ports:
- "5432:5432"
volumes:
- postgres_data:/var/lib/postgresql/data
restart: unless-stopped
# Redis 缓存
redis:
image: redis:7-alpine
container_name: acr-redis
ports:
- "6379:6379"
volumes:
- redis_data:/data
restart: unless-stopped
# DifyRAG系统
dify:
image: langgenius/dify-api:latest
container_name: acr-dify
environment:
- DB_USERNAME=dify
- DB_PASSWORD=dify_password
- DB_HOST=dify-postgres
- DB_PORT=5432
- DB_DATABASE=dify
- REDIS_HOST=dify-redis
- REDIS_PORT=6379
- SECRET_KEY=your-secret-key-change-this
ports:
- "5001:5001"
depends_on:
- dify-postgres
- dify-redis
restart: unless-stopped
# Dify 专用 PostgreSQL
dify-postgres:
image: postgres:15-alpine
container_name: acr-dify-postgres
environment:
POSTGRES_DB: dify
POSTGRES_USER: dify
POSTGRES_PASSWORD: dify_password
volumes:
- dify_postgres_data:/var/lib/postgresql/data
restart: unless-stopped
# Dify 专用 Redis
dify-redis:
image: redis:7-alpine
container_name: acr-dify-redis
volumes:
- dify_redis_data:/data
restart: unless-stopped
# Dify Web界面可选开发调试用
dify-web:
image: langgenius/dify-web:latest
container_name: acr-dify-web
environment:
- CONSOLE_API_URL=http://localhost:5001
ports:
- "3000:3000"
depends_on:
- dify
restart: unless-stopped
volumes:
postgres_data:
redis_data:
dify_postgres_data:
dify_redis_data:
networks:
default:
name: acr-network
```
#### 4. 启动所有服务
```bash
# 启动所有容器
docker-compose up -d
# 查看运行状态
docker-compose ps
# 查看日志
docker-compose logs -f
# 停止所有容器
docker-compose down
# 停止并删除数据
docker-compose down -v
```
#### 5. 验证服务
```bash
# 检查 PostgreSQL
docker exec -it acr-postgres psql -U dev_user -d ai_clinical_research -c "\dt"
# 检查 Redis
docker exec -it acr-redis redis-cli ping
# 应返回: PONG
# 检查 Dify
curl http://localhost:5001/health
# 或在浏览器访问 http://localhost:3000
```
---
### 方案B本地安装方式
**适用于:** 不想用Docker或机器配置较低
#### 1. 安装 PostgreSQL
**Windows**
```bash
# 下载安装包
# https://www.postgresql.org/download/windows/
# 安装后创建数据库
psql -U postgres
CREATE DATABASE ai_clinical_research;
CREATE USER dev_user WITH PASSWORD 'dev_password';
GRANT ALL PRIVILEGES ON DATABASE ai_clinical_research TO dev_user;
```
**macOS**
```bash
brew install postgresql@15
brew services start postgresql@15
# 创建数据库
createdb ai_clinical_research
```
#### 2. 安装 Redis
**Windows**
```bash
# 使用 MemuraiRedis for Windows
# https://www.memurai.com/get-memurai
# 或使用 WSL2 + Docker
wsl --install
# 然后在 WSL2 中运行 Docker
```
**macOS**
```bash
brew install redis
brew services start redis
```
#### 3. 安装 Node.js
```bash
# Windows 和 macOS
# 下载 LTS 版本
# https://nodejs.org/
# 验证安装
node --version # v18.x 或更高
npm --version
```
#### 4. 安装 Dify本地方式
```bash
# 克隆 Dify
git clone https://github.com/langgenius/dify.git
cd dify/api
# 安装 Python 依赖
pip install -r requirements.txt
# 配置环境变量
cp .env.example .env
# 编辑 .env填入数据库连接信息
# 运行数据库迁移
flask db upgrade
# 启动 API
flask run --host=0.0.0.0 --port=5001
```
---
## 🔧 开发工具推荐
### 必需工具
1. **代码编辑器**
- VS Code推荐
- WebStorm
- CursorAI辅助编程
2. **API测试工具**
- Postman推荐
- Insomnia
- VS Code REST Client 插件
3. **数据库管理工具**
- DBeaver推荐免费
- TablePlus
- pgAdmin
4. **Git客户端**
- Git命令行
- GitHub Desktop
- SourceTree
### 推荐插件VS Code
```json
{
"recommendations": [
"dbaeumer.vscode-eslint", // ESLint
"esbenp.prettier-vscode", // 代码格式化
"prisma.prisma", // Prisma ORM
"ms-azuretools.vscode-docker", // Docker
"humao.rest-client", // REST API 测试
"bradlc.vscode-tailwindcss", // TailwindCSS
"dsznajder.es7-react-js-snippets" // React 代码片段
]
}
```
---
## 📝 本地开发配置文件
### 后端环境变量(.env
```bash
# backend/.env
# 数据库
DATABASE_URL="postgresql://dev_user:dev_password@localhost:5432/ai_clinical_research"
# Redis
REDIS_URL="redis://localhost:6379"
# JWT
JWT_SECRET="your-jwt-secret-change-this-in-production"
JWT_EXPIRES_IN="7d"
# LLM API Keys本地开发可先不填等需要测试时再填
DEEPSEEK_API_KEY=""
DASHSCOPE_API_KEY=""
GEMINI_API_KEY=""
# Dify
DIFY_API_URL="http://localhost:5001"
DIFY_API_KEY="" # 启动Dify后在管理界面获取
# 对象存储(本地开发可先不配置)
OSS_ACCESS_KEY_ID=""
OSS_ACCESS_KEY_SECRET=""
OSS_BUCKET=""
OSS_REGION=""
# 应用配置
NODE_ENV="development"
PORT=3001
```
### 前端环境变量(.env.local
```bash
# frontend/.env.local
# API 地址
VITE_API_URL="http://localhost:3001"
# 是否启用调试模式
VITE_DEBUG=true
```
---
## 🚀 快速启动脚本
### 一键启动适用于方案ADocker
创建 `start-dev.sh`macOS/Linux`start-dev.bat`Windows
**start-dev.sh:**
```bash
#!/bin/bash
echo "🚀 启动开发环境..."
# 启动 Docker 服务
echo "📦 启动 Docker 容器..."
docker-compose up -d
# 等待服务就绪
echo "⏳ 等待服务启动..."
sleep 10
# 启动后端
echo "🔧 启动后端服务..."
cd backend
npm run dev &
BACKEND_PID=$!
# 启动前端
echo "🎨 启动前端服务..."
cd ../frontend
npm run dev &
FRONTEND_PID=$!
echo "✅ 开发环境启动完成!"
echo ""
echo "📝 访问地址:"
echo " 前端: http://localhost:5173"
echo " 后端: http://localhost:3001"
echo " Dify: http://localhost:3000"
echo ""
echo "按 Ctrl+C 停止所有服务"
# 等待用户中断
wait $BACKEND_PID $FRONTEND_PID
```
**start-dev.bat:**
```batch
@echo off
echo 🚀 启动开发环境...
echo 📦 启动 Docker 容器...
docker-compose up -d
echo ⏳ 等待服务启动...
timeout /t 10
echo 🔧 启动后端服务...
start cmd /k "cd backend && npm run dev"
echo 🎨 启动前端服务...
start cmd /k "cd frontend && npm run dev"
echo ✅ 开发环境启动完成!
echo.
echo 📝 访问地址:
echo 前端: http://localhost:5173
echo 后端: http://localhost:3001
echo Dify: http://localhost:3000
echo.
pause
```
---
## 💰 成本对比
### 本地开发(推荐用于开发阶段)
| 项目 | 成本 |
|------|------|
| 硬件 | ¥0使用现有电脑 |
| 软件 | ¥0全部开源免费 |
| LLM API | ¥10-50少量测试 |
| **总计** | **¥10-50/2.5个月** |
### 云服务器(开发环境)
| 项目 | 成本 |
|------|------|
| 服务器2核4G | ¥60/月 × 2.5 = ¥150 |
| 数据库(小规格) | ¥50/月 × 2.5 = ¥125 |
| 带宽 | ¥30/月 × 2.5 = ¥75 |
| LLM API | ¥50 |
| **总计** | **¥400/2.5个月** |
**节省约¥350-390开发阶段**
---
## ⚠️ 本地开发注意事项
### 1. 资源限制
**Docker Desktop 默认限制:**
- CPU: 2核心
- 内存: 2GB
**建议调整:**
```
设置 → Resources → Advanced
- CPUs: 4如果机器允许
- Memory: 8GB推荐
- Swap: 2GB
```
### 2. 端口占用
**常用端口:**
- 3000: Dify Web界面
- 3001: 后端API
- 5001: Dify API
- 5173: 前端开发服务器
- 5432: PostgreSQL
- 6379: Redis
**检查端口占用:**
```bash
# Windows
netstat -ano | findstr :3000
# macOS/Linux
lsof -i :3000
```
### 3. 数据备份
**定期备份数据库:**
```bash
# 备份
docker exec acr-postgres pg_dump -U dev_user ai_clinical_research > backup.sql
# 恢复
docker exec -i acr-postgres psql -U dev_user ai_clinical_research < backup.sql
```
### 4. API Key 管理
**开发阶段策略:**
- 使用个人API Key不要提交到Git
- 设置低配额(避免误操作)
- 使用便宜的模型测试DeepSeek-V3
---
## 🎯 什么时候需要购买云服务器?
### 场景1需要团队协作
**时机:** 当第2名开发者加入时
**原因:**
- 共享开发环境
- 统一数据库
- 方便联调
**推荐:** 购买小型云服务器2核4G¥60/月)
### 场景2需要外部测试
**时机:** MVP完成需要给用户试用
**原因:**
- 外网访问
- 稳定性测试
- 收集反馈
**推荐:** 购买小型云服务器
### 场景3准备正式上线
**时机:** 功能稳定,准备对外服务
**原因:**
- 生产级稳定性
- 性能优化
- 数据安全
**推荐:** 购买生产级服务器4核8G¥250/月)
---
## 📋 分阶段采购清单
### 第0-8周本地开发当前阶段
**需要购买:**
- [ ] ❌ 不需要任何云服务!
**需要准备:**
- [ ] ✅ 本地安装 Docker Desktop
- [ ] ✅ 申请 DeepSeek API Key免费额度足够测试
- [ ] ✅ 申请 Qwen API Key可选
**费用:** ¥0-10
---
### 第9-10周内测准备如需要
**需要购买:**
- [ ] 🟡 轻量应用服务器2核4G¥60/月
- [ ] 🟡 或使用阿里云/腾讯云免费试用(新用户)
**用途:**
- 小范围内测
- 团队联调
**费用:** ¥0-120
---
### 第11周+:正式上线
**需要购买:**
- [ ] 🔴 云服务器4核8G¥250/月
- [ ] 🔴 对象存储 OSS ¥50/月
- [ ] 🔴 CDN加速 ¥50/月
- [ ] 🔴 域名 ¥50/年
- [ ] 🔴 SSL证书可用免费的Let's Encrypt
**费用:** ¥350/月起
---
## ✅ 推荐方案
### 第1-2个月现在
**✅ 本地开发,不购买云服务器**
**理由:**
1. 节省成本¥0 vs ¥400
2. 调试方便(响应快)
3. 灵活性高(随时修改)
4. 功能还在开发中,不需要云环境
**需要做的:**
1. 安装 Docker Desktop
2. 按照本文档配置本地环境
3. 申请 DeepSeek API Key少量测试用
### 第2.5个月:
**🟡 考虑购买小型云服务器(如需内测)**
### 第3个月+
**🔴 购买生产级服务器(正式上线)**
---
## 🎉 总结
**回答您的问题:不需要现在购买云服务器!**
**建议:**
1.**0-2个月** 本地开发Docker Desktop
2. 🟡 **2-2.5个月:** 内测环境(小型云服务器,可选)
3. 🔴 **3个月+** 生产环境(正式服务器)
**现在就可以开始:**
```bash
# 1. 安装 Docker Desktop
# 2. 创建项目目录
# 3. 复制上面的 docker-compose.yml
# 4. 启动开发环境
docker-compose up -d
```
**节省成本约¥350-400开发阶段**
---
**文档版本v1.0**
**更新时间2025-10-10**