Files
xc-tianga100-advisor-agent/README.md

79 lines
3.2 KiB
Markdown
Raw Normal View History

2026-08-25 22:48:29 +08:00
# xc-tianga100-advisor-agent
信创模盒的 **天数智芯天垓100** 专属部署前预检智能体。
## 能做什么
- 后台定时读取信创模盒公开热门模型,自动发现文本生成候选模型。
- 选择较小且与官方 EngineX 支持家族相符的候选,按模型与卡型查询历史任务去重。
- 当运行环境同时提供私密令牌、策略 ID、合法卡型枚举与验证配置时自动提交一条验证任务。
- 校验用户指定的目标卡是否与本智能体的官方卡型一致。
- 收集模型、框架、后端、驱动和 SDK 版本,明确缺失信息。
- 根据多卡、量化、长上下文、自定义算子和动态形状提示验证风险。
- 给出从设备可见性到模型最小输入的验证顺序。
## 事实边界
- 卡型名称来自信创模盒“模型 X 算力”页面。
- 不声明页面未提供的显存、算力、SDK 版本或算子支持结论。
- 只访问信创模盒公开候选接口和官方任务接口;不执行系统命令。
- 无私密 `MODELHUB_XC_TOKEN` 时只扫描、记录候选,不创建任务。
- 令牌只从运行环境读取不写入仓库、HTTP 响应或 stdout。
- 最终兼容性必须以目标设备上的真实日志和测试结果为准。
## 自动工作模式
- `AUTO_SCAN_ENABLED`:默认 `true`,启动后立即扫描,之后每小时扫描一次。
- `SCAN_INTERVAL_SECONDS`:扫描间隔,最小 60 秒,默认 3600 秒。
- `AUTO_SUBMIT_ENABLED`:默认 `true`;缺少任一必要配置时自动降级为只读扫描。
- `MODELHUB_XC_TOKEN`:调用任务查询/创建接口的私密 `Xc-Token`,不得写进公开代码。
- `MODELHUB_TARGET_GPU`:平台内部卡型枚举。只有已由官方任务记录核验的枚举才可配置。
- `MODELHUB_CONFIG_PARAMS`:验证任务 YAML未内置官方配置的卡型必须通过私密部署配置提供。
- 每次扫描最多提交一个候选;提交前用 `modelId + gpuType` 精确查询历史,已有任务则跳过。
## 日志
- stdout 使用单行 JSON记录服务启动、扫描、候选、去重、提交结果、健康检查、分析结论和优雅停机。
- 仅记录经过清洗的模型标识、结论和必要状态不输出整个请求体、凭据、URL 查询参数或环境变量值。
## 平台约束
- 仓库根目录包含 `Dockerfile`,容器开放 `8080`
- `GET /health` 返回 HTTP 200。
- 读取 `STRATEGY_ID`,仅报告是否存在,不输出其值。
- 处理 `SIGTERM`,在平台 30 秒窗口内退出。
- 仅使用 Python 标准库。
## 接口
- `GET /health`:存活检查。
- `GET /`:卡型和智能体元信息。
- `GET /scanner`:后台扫描器最近状态,不包含令牌或策略 ID。
- `POST /analyze`:部署前预检。
- `POST /task`:与 `/analyze` 相同的兼容入口。
示例:
```bash
curl -X POST http://localhost:8080/analyze \
-H 'Content-Type: application/json' \
-d '{
"model_name": "example/model",
"hardware": "天数智芯 天垓100",
"framework": "PyTorch",
"backend": "目标后端",
"sdk_version": "实际版本",
"driver_version": "实际版本",
"precision": "bf16",
"cards": 1
}'
```
## 本地验证
```bash
python3 -m unittest -v
python3 main.py
curl http://localhost:8080/health
```