Guanghu Domestic Migration a27e87cb99 chore: import sanitized domestic snapshot for REPO-007
Source snapshot: 97d7f0fae96dc04b7ddad56fc1db6a108ed662cc

[SEC-CLEAN] · pre-push-clean v1.0 · 109处敏感信息已自动转乱码
2026-07-17 15:59:55 +08:00

152 lines
4.6 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.

# GPU-SCOUT-001 · GPU自动发现+一键部署模块 · 铸渊开发任务单
```jsx
HLDP://shuangyan/module/GPU-SCOUT-001 · 2026-05-12
├── 提出人: 之之·DEV-004
├── 记录人: 霜砚·ICE-SY-01
├── 开发人: 铸渊·ICE-ZY-01
└── 状态: 待铸渊接单
```
## 一、为什么要做这个模块
> 之之原话2026-05-12
>
> 「要跑通deploy需要GPU开机。但我们是共享GPU关机后就被别人占。没有稳定GPU就无法测试部署流程。与其被动等GPU不如先造工具——自动发现可用GPU随时主动抢占。」
>
**根本矛盾:** 部署流程依赖稳定GPU但共享GPU随时消失
**解法:** GPU自动发现模块 → 被动变主动 → 随时知道哪台GPU可用 → 立即部署
---
## 二、模块功能定义
### 核心能力MVP
- [ ] **平台扫描**:查询 AutoDL + compshare 账号下所有 GPU 实例状态
- [ ] **健康检测**SSH 连通性 + GPU 可用性验证
- [ ] **信息输出**:返回可用实例的 Host / Port / User / 显存 / 平台
- [ ] **一键部署**:选定实例后,自动更新 GitHub Secrets → 触发 `guanghulab-core` deploy 工作流
### 后续扩展非MVP
- 多平台自动比价AutoDL / compshare / 恒源云 / 智星云)
- 自动抢占:发现有货立即开机并部署
- 状态写回 Notion
- 定时轮询 + 通知
---
## 三、技术方案
### 3.1 API 文档
| 平台 | API 文档 | SDK |
| --- | --- | --- |
| AutoDL | `https://api.autodl.com` · 容器实例Pro API | 无官方SDK · 直接HTTP |
| compshare | `https://www.compshare.cn/docs/gpus/operationexample` | Python / Go / Java SDK |
**AutoDL 关键接口:**
- 获取实例列表:`GET /api/v1/dev/instance/list`(需 Authorization token
- 查询GPU库存`POST /api/v1/dev/machine/region/gpu_stock`
**compshare 关键接口:**
- 参考 GitHub 示例:`github.com/ucloud/compshare-developer-examples`
- 需要 compshare API Key
### 3.2 仓库规划
- **仓库位置**Gitea[guanghulab.com](http://guanghulab.com) · Forgejo新建独立仓库
- **建议仓库名**`gpu-scout`
- **理由**:模块独立、可大可小、后续可对接多平台
### 3.3 部署触发逻辑
```jsx
gpu-scout 运行流程
AutoDL API 获取在线实例列表
没有在线实例
compshare API 获取在线实例列表
找到可用实例
SSH 健康检测连通 + python3 + GPU显存
通过
更新 guanghulab-core GitHub Secrets
ZY_DEPLOY_SSH_SG_GPU_001_HOST
ZY_DEPLOY_SSH_SG_GPU_001_PORT
ZY_DEPLOY_SSH_SG_GPU_001_USER
ZY_DEPLOY_SSH_SG_GPU_001_PRIVATE_KEY
触发 guanghulab-core deploy 工作流
返回结果成功 / 失败 + 原因
```
---
## 四、铸渊开发说明
### 4.1 前置条件(之之需要提供)
| 所需信息 | 来源 | 状态 |
| --- | --- | --- |
| AutoDL API Token | AutoDL控制台 → 账号设置 → API Token | ⏳ 之之获取中 |
| compshare API Key | compshare控制台 → API管理 | ⏳ 之之获取中(冰朔昨天注册了账号) |
| GitHub PAT有repo权限 | 用于更新Secrets + 触发工作流 | ✅ 已有ZY_GITHUB_PAT |
| Gitea 新仓库 URL | [guanghulab.com](http://guanghulab.com) 上新建 `gpu-scout` | ⏳ 待建 |
### 4.2 MVP 交付物
```jsx
gpu-scout/
├── src/
├── autodl.js AutoDL API 查询封装
├── compshare.js compshare API 查询封装
├── health.js SSH 健康检测
├── deploy.js 更新Secrets + 触发工作流
└── index.js 主入口CLI
├── config/
└── platforms.json 平台配置API端点 + 认证方式
├── .env.example
├── package.json
└── README.md
```
### 4.3 调用方式(目标)
```bash
# 扫描可用GPU
node index.js scan
# 扫描 + 自动部署
node index.js deploy --target autodl
# 只更新Secrets不触发部署
node index.js update-secrets --host xxx --port xxx
```
---
## 五、当前阻塞项
1.**AutoDL API Token** — 之之去控制台获取
2.**compshare API Key** — 冰朔账号下获取
3.**Gitea 新建 `gpu-scout` 仓库** — 之之在 [guanghulab.com](http://guanghulab.com) 建
4.**铸渊接单** — 以上三项就绪后唤醒铸渊
---
## 六、关联页面
- 主控台ZZ-DEPLOY-001
- 栖渊工作流仓库:`qinfendebingshuo/guanghulab-core`
- GPU信息记录个人线系统恢复锚点AutoDL SSH信息
---
*建档人霜砚·ICE-SY-01 · 2026-05-12 · 之之提出 · 铸渊待接单*