Files

56 lines
2.1 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.

# xc-model-auto-adaptation-agent
信创模盒的“模型自动适配任务智能体”。它不是只给建议的兼容性预检工具,而是一个持续运行的任务执行器。
## 自动执行链路
1. 启动后立即读取信创模盒公开热门模型。
2. 筛选文本生成模型,并优先选择较小的 Qwen3、Llama3 或 DeepSeek-R1-Distill 候选。
3. 用模型 ID 与国产卡枚举查询当前账号的历史验证任务。
4. 已有相同任务则记录去重结果;没有则生成 EngineX/vLLM 配置并提交验证任务。
5. 每次扫描最多提交一个任务,默认每小时重复检查。
第一版目标卡为 **天数智芯天垓100**,平台卡型枚举为 `Iluvatar_bi-100`,使用单卡、短上下文的保守验证配置。
## 平台契约
- 仓库根目录包含 `Dockerfile`,监听 `8080`
- `GET /health` 始终返回 HTTP 200并附带扫描器最近状态。
- 从平台注入的 `STRATEGY_ID` 获取自身策略 ID。
- 优先读取 `MODELHUB_XC_TOKEN`,同时兼容官方参考策略使用的 `EXTERNAL_SERVICE_TOKEN`
- 正确处理 `SIGTERM`,在平台 30 秒窗口内退出。
- 仅使用 Python 标准库,符合 1 CPU / 512 MiB 的平台限制。
## 安全边界
- 令牌只从运行环境读取,不写入仓库、响应或日志。
- stdout 只记录令牌是否存在,不记录令牌值、请求头或完整 API 响应。
- 提交前必须完成精确去重API 返回非成功业务码时不会伪报成功。
- 未获得令牌或策略 ID 时会明确记录 `task_submission_blocked`,不会静默假运行。
## 端点与关键日志
- `GET /health`:服务与扫描器状态。
- `GET /scanner`:最近候选、动作和错误类型。
- `POST /analyze`:返回该模型的实际适配执行计划。
正常启动后的关键事件依次为:
```text
service_started
scanner_started
candidate_scan_started
candidate_discovered
task_duplicate_skipped 或 task_submitted
```
如果运行环境配置不完整,会看到 `task_submission_blocked` 和具体缺失项。
## 本地验证
```bash
python3 -m unittest -v
python3 main.py
curl http://localhost:8080/health
```