目录

面向多源异构国产算力的开源 AI 开发运维一体化平台

作者:冀荣丽、李锦冬、刘子康、单逸飞、周伟、李爽、周锐、周洋


一、技术栈

层 技术 版本
后端 Python + FastAPI + Uvicorn Python 3.12+ / FastAPI 0.141
前端 React + TypeScript + Vite React 18 / Vite 6 / TS 5.6
UI 库 Ant Design 5 + Monaco Editor + Recharts —
数据库 SQLite(aiosqlite 异步) —
认证 JWT(PyJWT + bcrypt) —
NPU 昇腾 910B4 / CANN 8.5.2 / torch-npu npu-smi 25.5+
检测 Ultralytics YOLO(含 OBB 旋转框) 8.4.123
通信 REST API + WebSocket(/ws) JSON

二、目录结构

ascend-ops-mcp/
├── backend/                      # 后端(FastAPI,端口 8001)
│   ├── api.py                    # API 主文件(150KB,路由总入口)
│   ├── auth.py                   # 认证与用户分级(L1/L2/L3)
│   ├── data_annotate.py          # 数据标注(含 AI 自动标注)
│   ├── data_annotate_vla.py      # VLA 数据标注
│   ├── vla_data_parser.py        # VLA 数据解析
│   ├── vla_data_splitter.py      # VLA 数据划分
│   ├── data_convert.py           # 数据格式转换
│   ├── data_market.py            # 数据集广场
│   ├── cann_dev.py               # CANN 设备管理
│   ├── model_compress.py         # 模型剪枝量化
│   ├── model_deploy.py           # 模型转换部署
│   ├── task_hall.py              # 任务大厅
│   ├── task_monitor.py           # 任务监控
│   ├── server_manager.py         # 服务器 SSH 管理
│   ├── compute_agent.py          # 算力代理
│   ├── compute_manage.py         # 算力管理
│   ├── resources_api.py          # 资源 API
│   ├── obs_storage.py            # OBS 对象存储
│   ├── mcp_server.py / mcp_gateway.py  # MCP 服务
│   ├── jobs.py / run_train.py    # 训练作业
│   ├── annotate_pk.py            # 标注脚本
│   ├── config/                   # 路径配置
│   ├── db/                       # 数据库模块(metrics_db)
│   ├── npu/                      # NPU 解析器
│   ├── tools/                    # 工具(yolo_runner / op_runner / 剪枝)
│   ├── embodied_convert/         # 具身数据转换
│   ├── requirements.txt          # 昇腾环境完整依赖
│   └── requirements-windows.txt  # 通用环境精简依赖
├── frontend/                     # 前端(React + Vite)
│   ├── src/
│   │   ├── App.tsx               # 主应用(路由)
│   │   ├── pages/                # 页面组件(30+)
│   │   ├── api/                  # API 客户端(client/auth/vla/embodied/types)
│   │   ├── components/           # 公共组件
│   │   └── assets/               # 静态资源
│   ├── package.json
│   └── vite.config.ts            # Vite 配置(代理 /api → 8001)
├── data/                         # 运行时数据
├── datasets/                     # 数据集索引
├── workspace/                    # 工作空间(运行时生成)
│   ├── datasets/<id>/            # 数据集(images/train, images/val, data.yaml)
│   ├── *.pt                      # 模型权重(含 obb 标记旋转框)
│   ├── *.db                      # SQLite 数据库
│   └── images/                   # 上传图片
└── README.md

三、环境要求

组件 版本 说明
Python 3.12+ 后端运行时
Node.js 20+ 前端构建
npm 10+ 前端包管理
NPU 驱动 CANN 8.5+ 昇腾 NPU 驱动(无 NPU 也可 CPU 运行)
torch-npu 2.7+ PyTorch NPU 适配(无 NPU 时用普通 torch)
ultralytics 8.4+ YOLO 模型库

无昇腾环境也能部署:用 requirements-windows.txt 安装精简依赖,平台自动降级为 CPU 推理 / 模拟检测。


四、快速部署

1. 解压代码

tar xzf ascend-ops-mcp-code.tar.gz
cd ascend-ops-mcp

2. 安装后端依赖

昇腾环境(有 NPU):

cd backend
pip install -r requirements.txt
# 注意:requirements.txt 含大量 CANN 本地 wheel(file:///root/selfgz...),
# 仅在 ModelArts 昇腾镜像内可用。若 pip 报错找不到 whl,改用下方精简依赖。

通用环境(无 NPU / Windows / 普通 Linux):

cd backend
pip install -r requirements-windows.txt

3. 安装前端依赖并构建

cd ../frontend
npm install
npm run build

构建产物在 frontend/dist/,后端会自动 serve 该目录(SPA)。

4. 启动后端

cd ../backend
# 前台
python3 -m uvicorn api:app --host 0.0.0.0 --port 8001
# 后台
nohup python3 -m uvicorn api:app --host 0.0.0.0 --port 8001 > ../api.log 2>&1 &

5. 访问平台

浏览器打开 http://<服务器IP>:8001,使用默认账号登录。


五、账号与用户分级

账号 角色 等级 密码
admin 管理员 L1 已通过 AUTH_ADMIN_PASSWORD 环境变量配置
admin_l2 管理员 L2 admin_l2
admin_l3 管理员 L3 admin_l3
u_l1 普通用户 L1 u_l1
u_l2 普通用户 L2 u_l2
u_l3 普通用户 L3 u_l3

全新部署(不打包数据库)会自动初始化,仅生成默认 admin 账号(admin/(已通过 AUTH_ADMIN_PASSWORD 环境变量配置)),其余账号首次启动后由管理员在「用户管理」页面创建。功能/权限/使用配额按用户等级区分。


六、功能模块

模型

  • 训练管理:提交 YOLO 训练作业,支持 NPU 训练(AMP 已关闭避免梯度溢出)
  • 作业列表:查看训练状态、日志、指标
  • 视觉推理:YOLO 推理验证,支持图片上传与示例图片
  • 模型库:公开/私有模型管理,workspace/*.pt 自动识别(文件名含 obb 标记旋转框)
  • 模型压缩:剪枝量化(torch-pruning)
  • 模型部署:模型转换与部署

数据

  • 数据集广场:开源数据集浏览,扫描 workspace/datasets/<id>/
  • 数据标注:协作标注、AI 自动标注、批量标注、质量审核
  • VLA 数据标注:Vision-Language-Action 标注模块(已融合)
  • 具身数据转换:embodied_convert
  • 数据转换:格式转换、数据集划分

功能

  • NPU 监控:实时监控 NPU 状态、任务监控、历史曲线
  • 服务器管理:多服务器 SSH 连接管理
  • 算力管理:算力资源管理
  • 用户管理:用户账号、角色、权限管理
  • 审批中心 / 审计日志:操作审批与日志

七、数据集与模型放置约定

平台通过目录扫描发现资源,放置位置错误会导致前端列表为空。

数据集

workspace/datasets/<数据集id>/
├── data.yaml          # 类别定义
├── images/train/      # 训练图片
├── images/val/        # 验证图片
└── labels/train/      # 标签(YOLO 格式)
  • 目录名必须与数据集广场元数据 id 一致
  • data.yaml 中 train/val 路径用 images/train(不要用 ../images/train)
  • COCO 官方包的 images/train2017 需重命名为 images/train

模型权重

  • 放到 workspace/ 下,以 .pt 结尾
  • 文件名含 obb 自动标记为旋转框任务

八、开发模式

前端热更新

cd frontend
npm run dev   # 运行在 5173,自动代理 /api → localhost:8001

后端热更新

cd backend
python3 -m uvicorn api:app --host 0.0.0.0 --port 8001 --reload

九、常见问题

Q: 训练提交后页面显示 “timed out”? A: 已修复,训练异步提交立即返回 job_id。

Q: NPU 监控历史任务资源数据全为 0? A: 已修复,get_recent_tasks 正确返回 latest_snapshot。

Q: 如何添加新 YOLO 模型? A: 将 .pt 文件放入 workspace/,平台自动识别。

Q: 如何上传数据集? A: 训练页面点击”上传”,支持 .zip/.tar.gz,自动解压并生成 data.yaml。

Q: AI 自动标注如何使用? A: 标注页面选择项目 → “辅助工具” → 选模型和置信度 → “开始 AI 自动标注”。OBB 模型建议阈值设为 0.01(DOTA 预训练权重在 drone-obb 上置信度较低)。

Q: requirements.txt 安装报错找不到 whl? A: 该文件含昇腾镜像内的本地 wheel 路径,非昇腾环境请用 requirements-windows.txt。

Q: 数据集广场/模型库列表为空? A: 检查数据集是否放在 workspace/datasets/<id>/ 且含 images/train、data.yaml;模型是否在 workspace/*.pt。


十、关键配置

  • AMP:已关闭(避免 NPU 梯度溢出)
  • 训练后端:torch_npu(无 NPU 时降级 CPU)
  • 推理:通过 tools/yolo_runner.py 调用 NPU
  • 前端构建:Vite + React + TS,构建后由 FastAPI 静态服务
  • nginx(可选):代理时配置 client_max_body_size 512M 支持大文件上传
  • WebSocket:/ws 路径用于实时推送(训练日志、监控)

十一、版本信息

  • 平台版本:v2.0.0
  • 备份时间:2026-09-08
  • NPU 型号:昇腾 910B4
  • CANN 版本:8.5.2
  • 备份内容:仅代码(排除 node_modules / .git / 模型权重 / 数据集 / 日志)
  • 部署原始包:ascend-ops-mcp-code.tar.gz(约 910KB)
关于

jrl-platform 平台部署迁移更新后第一版本

4.4 MB
邀请码
    Gitlink(确实开源)
  • 加入我们
  • 官网邮箱:gitlink@ccf.org.cn
  • QQ群
  • QQ群
  • 公众号
  • 公众号

版权所有:中国计算机学会技术支持:开源发展技术委员会
京ICP备13000930号-9 京公网安备 11010802047560号