Files
aihot/README_STARTUP.md
2026-05-27 17:14:08 +08:00

320 lines
5.2 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.
# 🚀 启动指南
## 快速开始
### 方式一:本地开发 (推荐)
**前置条件:**
- Python 3.9+
- Node.js 18+
- PostgreSQL 14+ (需要单独启动)
**Windows PowerShell:**
```powershell
.\start.ps1
```
**Windows CMD:**
```cmd
start.bat
```
**Mac/Linux:**
```bash
chmod +x start.sh
./start.sh
```
然后选择选项 `1` 进行本地开发。
**访问地址:**
- 前端: http://localhost:5173
- 后端: http://localhost:8000
- API文档: http://localhost:8000/docs
---
### 方式二Docker Compose (完全隔离)
**前置条件:**
- Docker Desktop (包含 Docker Compose)
**启动:**
```powershell
.\start-docker.ps1
```
或直接使用 docker-compose:
```bash
docker-compose up --build
```
**访问地址:**
- 前端: http://localhost:3000
- 后端: http://localhost:8000
- API文档: http://localhost:8000/docs
- 数据库: localhost:5432 (用户: pharma / 密码: pharma123)
---
## 详细说明
### 方式一:本地开发
#### Windows
1. **启动脚本:**
- PowerShell: `.\start.ps1`
- CMD: `start.bat`
2. **脚本会自动:**
- 检查 Python 和 Node.js
- 创建虚拟环境 (如需要)
- 安装依赖包
- 在新窗口启动后端和前端
3. **手动启动(可选):**
**后端:**
```powershell
cd backend
python -m venv venv
.\venv\Scripts\Activate.ps1
pip install -r requirements.txt
uvicorn app.main:app --host 0.0.0.0 --port 8000 --reload
```
**前端(新终端):**
```powershell
cd frontend
npm install
npm run dev
```
4. **PostgreSQL 配置:**
- 确保 PostgreSQL 已启动
- 默认连接: `postgresql://pharma:pharma123@localhost/pharma_news`
- 如需修改,编辑 `.env` 文件
#### Mac/Linux
```bash
# 给脚本执行权限
chmod +x start.sh
# 运行脚本
./start.sh
```
---
### 方式二Docker Compose
#### 基本命令
```bash
# 启动所有服务(首次需要构建)
docker-compose up
# 重新构建并启动
docker-compose up --build
# 在后台运行
docker-compose up -d
# 查看日志
docker-compose logs -f
# 查看特定服务日志
docker-compose logs -f backend
docker-compose logs -f frontend
# 停止服务
docker-compose down
# 完全清理(包括数据)
docker-compose down -v
```
#### 常见问题
**问:如何修改端口?**
编辑 `docker-compose.yml`:
```yaml
ports:
- "8080:8000" # 后端: 外部:内部
- "3001:80" # 前端: 外部:内部
```
**问:如何在容器内执行命令?**
```bash
# 后端
docker-compose exec backend python -m alembic upgrade head
# 前端
docker-compose exec frontend npm run build
```
**问:如何清理 Docker 数据?**
```bash
# 停止并删除所有容器和卷
docker-compose down -v
# 重新启动会创建新的数据库
docker-compose up --build
```
---
## 环境变量配置
### 后端 (.env)
```env
# PostgreSQL
DATABASE_URL=postgresql://pharma:pharma123@localhost:5432/pharma_news
# LLM 服务
LLM_API_KEY=your_api_key
LLM_MODEL=gpt-4
# 其他配置
LOG_LEVEL=INFO
```
### 前端 (.env.local)
```env
VITE_API_BASE_URL=http://localhost:8000/api
```
---
## 故障排除
### 后端无法启动
```bash
# 1. 检查端口是否被占用
netstat -ano | findstr :8000 # Windows
lsof -i :8000 # Mac/Linux
# 2. 检查 Python 和依赖
python --version
pip list | grep fastapi
# 3. 检查数据库连接
# 确保 PostgreSQL 已启动,用户名和密码正确
```
### 前端无法启动
```bash
# 1. 清理依赖
rm -rf node_modules package-lock.json
npm install
# 2. 检查 Node 版本
node --version
npm --version
# 3. 清理 Vite 缓存
rm -rf dist .vite
```
### Docker 容器无法启动
```bash
# 查看详细错误日志
docker-compose logs
# 重建镜像
docker-compose build --no-cache
# 清理所有容器和镜像
docker system prune -a
```
---
## 开发建议
### 热重载
- **后端**: Uvicorn 自动热重载 (修改文件后自动重启)
- **前端**: Vite 自动热重载 (修改代码后自动更新浏览器)
### 调试
**后端:**
```python
# 在代码中添加断点
import pdb; pdb.set_trace()
# 或使用 IDE 的调试功能
```
**前端:**
- 使用浏览器 DevTools (F12)
- VS Code Debugger (需要配置 launch.json)
### 性能监测
```bash
# 后端性能
docker-compose stats backend
# 前端性能
npm run build # 检查构建体积
```
---
## 生产部署
### 使用 Docker
```bash
# 构建生产镜像
docker-compose -f docker-compose.yml -f docker-compose.prod.yml build
# 启动生产环境
docker-compose -f docker-compose.yml -f docker-compose.prod.yml up -d
```
### 本地生产预览
```bash
# 后端
uvicorn app.main:app --host 0.0.0.0 --port 8000
# 前端
npm run build
npm run preview
```
---
## 脚本文件说明
| 文件 | 说明 | 环境 |
|------|------|------|
| `start.ps1` | 本地开发启动脚本 | Windows PowerShell |
| `start.bat` | 本地开发启动脚本 | Windows CMD |
| `start.sh` | 本地开发启动脚本 | Mac/Linux |
| `start-docker.ps1` | Docker Compose 启动脚本 | Windows PowerShell |
---
## 更多帮助
- FastAPI 文档: https://fastapi.tiangolo.com/
- Vue.js 文档: https://vuejs.org/
- Vite 文档: https://vitejs.dev/
- PostgreSQL 文档: https://www.postgresql.org/docs/
- Docker 文档: https://docs.docker.com/