# 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 ```