Files
cmshoppe/docs/tasks/T-596.md
T

50 lines
2.7 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.
---
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。