Files
aiagent/docs/另一台电脑部署文档.md
2026-06-28 15:52:06 +08:00

228 lines
5.2 KiB
Markdown
Raw Permalink 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.
# 天工智能体平台 — 另一台电脑部署文档
> 完整步骤,从零开始部署到一台新的 Windows 电脑。
---
## 一、前提条件
| 组件 | 版本要求 | 下载地址 |
|------|------|------|
| Python | 3.11+ | https://www.python.org/downloads/ |
| Node.js | 18+ | https://nodejs.org/ |
| MySQL | 5.7+ | https://dev.mysql.com/downloads/ |
| Redis | 7+ | https://github.com/microsoftarchive/redis/releases 或 Docker |
| pnpm | 8+ | `npm install -g pnpm` |
| Git | 任意 | https://git-scm.com/ (可选) |
> 安装 Python / Node.js 时确保勾选 "Add to PATH"。
---
## 二、获取项目文件
### 方式 A:直接拷贝(推荐,已包含数据库备份)
将本机 `D:\aaa\aiagent` 整个目录拷贝到目标机 `D:\aaa\aiagent`。
需要拷贝的目录结构:
```
D:\aaa\aiagent\
├── agent_db_backup.sql # 数据库备份文件(79MB)
├── backend/ # 后端源码
├── frontend/ # 前端源码
├── scripts/ # 启动脚本
├── docs/ # 文档(含本文档)
└── docker-compose.dev.yml # Docker 开发环境
```
> 不需要拷贝 `backend\venv`、`frontend\node_modules`、`__pycache__` 等(减少拷贝量)。
### 方式 B:Git 克隆
```powershell
git clone http://101.43.95.130:3001/admin/aiagent.git D:\aaa\aiagent
cd D:\aaa\aiagent
git checkout rjb_win_dev
```
> 注意:Git 克隆不包含数据库备份文件,需单独传入 `agent_db_backup.sql`。
---
## 三、导入数据库
### 1. 创建数据库
```powershell
mysql -uroot -p123456 -e "CREATE DATABASE IF NOT EXISTS agent_db DEFAULT CHARSET utf8mb4 COLLATE utf8mb4_unicode_ci;"
```
> 如果目标机 MySQL root 密码不同,替换 `123456` 为实际密码。
### 2. 导入备份
```powershell
cd D:\aaa\aiagent
mysql -uroot -p123456 agent_db < agent_db_backup.sql
```
等待约 1-2 分钟完成导入。导入后验证:
```powershell
mysql -uroot -p123456 -e "USE agent_db; SHOW TABLES;"
```
应看到 50+ 张表。
---
## 四、安装后端
```powershell
cd D:\aaa\aiagent\backend
# 创建虚拟环境
python -m venv venv
# 激活虚拟环境
venv\Scripts\Activate.ps1
# 安装 Python 依赖
pip install -r requirements.txt
# 数据库迁移(确保与模型同步)
alembic upgrade head
```
### 检查 .env 配置
确认 `backend\.env` 中的数据库连接正确:
```
DATABASE_URL=mysql+pymysql://root:123456@127.0.0.1:3306/agent_db?charset=utf8mb4
```
> 如果目标机 MySQL root 密码不是 `123456`,修改此行。
---
## 五、安装前端
```powershell
cd D:\aaa\aiagent\frontend
# 安装依赖
pnpm install
```
---
## 六、启动服务
### 一键启动(推荐)
```powershell
cd D:\aaa\aiagent
powershell -ExecutionPolicy Bypass -File .\scripts\startup\start_aiagent.ps1
```
脚本会自动启动:Redis → 后端API (8037) → Celery Worker → Celery Beat → 前端 (3001)
### 或手动逐个启动(排查问题时使用)
分别在 5 个 PowerShell 终端中执行:
**终端 1 — Redis**
```powershell
# 如果已有 Redis 服务则跳过
cd D:\aaa\aiagent\backend\redis
.\redis-server.exe --port 6379
```
**终端 2 — 后端 API**
```powershell
cd D:\aaa\aiagent\backend
venv\Scripts\Activate.ps1
uvicorn app.main:app --host 0.0.0.0 --port 8037
```
**终端 3 — Celery Worker**
```powershell
cd D:\aaa\aiagent\backend
venv\Scripts\Activate.ps1
celery -A app.core.celery_app worker --loglevel=info --pool=threads --concurrency=8
```
**终端 4 — Celery Beat**
```powershell
cd D:\aaa\aiagent\backend
venv\Scripts\Activate.ps1
celery -A app.core.celery_app beat --loglevel=info
```
**终端 5 — 前端**
```powershell
cd D:\aaa\aiagent\frontend
$env:AIAGENT_API_PROXY='http://127.0.0.1:8037'
pnpm dev --port 3001
```
---
## 七、验证
| 服务 | 地址 |
|------|------|
| 前端界面 | http://localhost:3001 |
| API 文档 | http://localhost:8037/docs |
| 登录账号 | admin / 123456 |
---
## 八、停止服务
```powershell
# 一键停止
powershell -ExecutionPolicy Bypass -File .\scripts\startup\stop_aiagent.ps1
# 或直接关闭各个 PowerShell 窗口
```
---
## 九、常见问题
| 问题 | 原因 | 解决 |
|------|------|------|
| 数据库连接失败 | `.env` 中密码不对 | 修改 `DATABASE_URL` 中的密码 |
| 端口 8037 被占用 | 已有程序使用 | 脚本自动切换到 8041,或手动指定 |
| Redis 启动失败 | Redis 未安装 | 安装 Redis Windows 版或用 Docker 跑 |
| celery Worker 卡住 | Windows fork 问题 | 使用 `--pool=threads`(脚本已默认) |
| 前端请求 500 | API 代理端口不一致 | 检查 `AIAGENT_API_PROXY` 指向正确端口 |
| Tesseract 不可用 | 目标机未装 OCR | 可忽略,仅影响图片 OCR 功能 |
---
## 十、使用 Docker 替代本地服务(可选)
如果不想在目标机安装 MySQL 和 Redis,可以用 Docker 运行:
```powershell
# 启动 MySQL + Redis 容器
docker-compose -f docker-compose.dev.yml up -d
# 修改 .env 中的 DATABASE_URL
# DATABASE_URL=mysql+pymysql://root:dev123@127.0.0.1:3306/agent_db_dev?charset=utf8mb4
```
然后导入备份到 Docker MySQL:
```powershell
docker exec -i aiagent-dev-mysql mysql -uroot -pdev123 agent_db_dev < agent_db_backup.sql
```
---
> 最后更新:2026-06-28