--- id: T-596 title: AI工场自定义模型(BYOK)授权代理与异步生图接入 phase: 8 deps: [T-595] status: TODO created: 2026-07-11 --- ## 问题 / 背景 自定义模型是 AI工场 cmhub 托管链路完成后的后续增强,不属于 T-586~T-595 的当前交付范围。只有这些任务全部完成并验收后才能启动本任务,不能让 BYOK 契约反向阻塞 cmhub 托管模式发布。 后续实现时,自定义 Key 仍必须经过软件套餐/设备授权和 cmhub 异步任务代理,不能恢复客户端 direct 直连或同步长等待。 当前启动前提:先完成 T-595;同时 cmhub 需完成《卡密设备绑定与套餐授权方案》V1.5 所定义的 device credential、BYOK Provider 白名单、加密 task secret、零点数使用记录和 submit/poll 契约。任一条件未满足时,本任务转为 `BLOCKED`,不编码、不猜字段。 ## 解除阻塞条件 - T-586~T-595 已全部完成,cmhub 托管链路已独立发布和验收。 - cmhub 提供版本化 API 文档、错误码、至少一个受支持 Provider、测试凭证和 mock/测试环境。 - 明确 BYOK title/image 请求、task secret 生命周期、终态清理、幂等键和计费字段。 - 服务端确认 Key 不进入 request_payload、CallRecord、队列日志、遥测或异常监控。 ## 方案 - ⑤/AI工场增加显式“cmhub托管/自定义模型”来源;不自动切换。 - 自定义 Key 本地使用 Windows DPAPI 保存,UI 仅掩码、替换、清除;不回显明文。 - 所有请求带 device credential/product,服务端先校验套餐和设备;BYOK `points_cost=0`,显示“费用由模型服务商收取”。 - 生图仍 submit→poll→下载,job task_id 持久化续查;不走同步长等待。 - 正式发行版禁用普通用户通过 config 开启 direct 后端。 ## 验收要点 - 无有效套餐/设备时 BYOK submit 被服务端拒绝;普通 API Key/direct 配置不能绕过。 - Key 不出现在 DB 普通字段、任务快照、日志、命令行、错误或导出;DPAPI 文件复制到另一用户/设备不可直接解密。 - 托管失败不静默用 BYOK,BYOK 失败不扣 cmhub 点数。 - 自定义生图可重启续查、下载失败不重 submit;Provider/域名/参数严格白名单。 - 全部测试使用占位 Key,不提交真实密钥。 ## 边界(不改什么) - 启动前提或接口契约未满足时不实现临时兼容接口。 - 不允许任意上游 URL,不做客户端直连,不同步长等待。 - 不改 cmhub 托管预扣/退点账本。 ## 执行记录 TODO:后置到 T-595 完成后;领取时再核验 cmhub V1.5 授权与 BYOK 异步契约,未满足则标记 BLOCKED。