4.0 KiB
4.0 KiB
id, title, phase, deps, status, created
| id | title | phase | deps | status | created | |
|---|---|---|---|---|---|---|
| T-598 | AI工场托管模型档位展示、默认别名与日志口径收口 | 8 |
|
DONE | 2026-07-11 |
问题 / 背景
T-597 选出 GPT / OpenAI 托管模型档位后,用户仍不应该看到一堆难理解的 Provider、模型 slug 或接口路径。cmshopee 的产品口径应保持“cmhub 托管模型 + 用途档位 + 点数成本”,执行层仍只保存 cmhub 能力别名。
如果直接把 gpt-5.6-sol、gpt-image-2 等模型名暴露到普通用户界面,会把服务端可调整的模型实现细节固化到客户端,也容易让用户误以为可以本地直连或自填 OpenAI Key。
方案
- 基于 T-597 的推荐结果,为 AI工场定义托管档位文案:默认/高质量/省点,文案说明只讲用途、质量和成本倾向,不展示 API Key 或内部接口。
- ⑤设置与 AI工场生成区继续从 cmhub
/api/v1/models读取别名、价格和能力;如 cmhub 返回display_name/tags/recommended_for等字段则优先展示,否则用本地文档定义的中文用途说明补充。 - 持久化仍只保存
ai.cmhub.title_alias/ai.cmhub.image_alias或 AI工场项目级别选择的 cmhub 别名;不新增 OpenAI 直连配置。 - 运行日志、状态栏、弹窗统一用用户可读中文:例如“使用 cmhub 托管高质量档,预计扣点 X”,避免暴露完整接口路径、Provider 请求体、上游错误堆栈。
- 文档同步
docs/04-architecture.md、docs/routes.md、docs/api.md中 AI工场模型展示与日志口径。
验收要点
- AI工场和⑤设置页没有 OpenAI Key、Provider URL、direct backend 或“自定义模型”入口;这些仍由 T-596 之后单独实现。
- 别名下拉或档位提示能让运营理解默认/高质量/省点的差异,并能看到点数或价格提示。
- DB/config 保存的是 cmhub alias 和必要的档位标识,不保存 OpenAI 原始密钥或直连 URL。
- 运行日志不出现 cmhub 内部接口路径、OpenAI API 路径、Authorization、Key、完整请求体或超长 prompt。
- GUI/offscreen 测试覆盖档位文案、别名持久化、日志脱敏;运行 ruff、compileall、unittest、
git diff --check。
边界(不改什么)
- 不接入 BYOK,不新增自定义 Provider,不恢复 direct 普通入口。
- 不改 cmhub 计费契约,不在客户端写死价格。
- 不影响② AI生成现有 cmhub 别名配置;AI工场如需项目级别选择,必须与现有配置兼容。
执行记录
2026-07-11 完成:
- 新增
app/cmhub_models.py,统一 cmhub 托管模型 alias 的中文档位识别与展示文案:默认档 / 高质量档 / 省点档,优先使用/models返回的display_name/tags/recommended_for/tier/prices,缺失时保守兜底。 - ⑤设置页 cmhub 生文/生图别名下拉改为展示“档位 + 展示名/别名 + 扣点 + 需参考图”,仍只把 alias 写入
ai.cmhub.title_alias/image_alias。 - ⑥AI工场生成区显示当前使用的 cmhub 托管档位和生图别名;开始生成日志、余额/扣点提示同步使用中文档位口径。
- AI工场 worker 日志 detail 进一步隐藏 URL 和
/api、/generated/images等接口/静态路径,避免把上游路径暴露给用户。 - 同步
docs/04-architecture.md、docs/routes.md、docs/api.md的模型展示与日志口径。 - 验证:主工作树
python -m ruff check app tests main.py通过;py -3.10 -m compileall app main.py通过;py -3.10 -m unittest discover -s tests -p "test_cmhub_models.py"通过;py -3.10指定新增/修改的 3 个 GUI 测试通过;git diff --check通过。主工作树全量py -3.10 -m unittest discover -s tests失败 3 项,均由本任务外的默认封面提示词脏改动导致(期望papa1,实际未跟踪/删除文件让默认模板显示为默认的 mojibake)。已另建干净 worktree 只应用 T-598 diff,python -m ruff check app tests main.py、py -3.10 -m compileall app main.py、py -3.10 -m unittest discover -s tests(375 个测试)、git diff --check全部通过。