- dropdown sits left of the renamed 任务状态 label in all three tabs - option wording aligned with platform text: 审核中 not 未审核, 未知 not 其他 - clarify the status filter scopes collection candidates in ① (the existing model.tasks mechanism), default 全部 so first-round collection of unknown-status imports still works - reinforce composite defaults 可生成/可更新 include unknown so legacy batches are not blocked Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
62 lines
3.0 KiB
Markdown
62 lines
3.0 KiB
Markdown
---
|
||
id: T-662c
|
||
title: AI生成异常商品默认排除与强制生成确认
|
||
status: TODO
|
||
phase: 7
|
||
deps: [T-662a]
|
||
created: 2026-07-18
|
||
---
|
||
|
||
# T-662c AI生成异常商品默认排除与强制生成确认
|
||
|
||
## 问题 / 背景
|
||
|
||
未上架、审核中商品默认继续进入②会消耗 cmhub 点数。②当前点击「开始生成」会直接创建 `GenerateWorker`,没有通用生成确认框,因此不能把不存在的确认流程写成现状。
|
||
|
||
## 方案
|
||
|
||
- 现有「状态」标签改为「任务状态」,新增独立「商品状态」下拉,**放在「任务状态」label 左边**(需求定稿位置):
|
||
- `可生成(默认)`:`normal/unknown`;
|
||
- `全部`;
|
||
- `正常/未上架/审核中/未知`。
|
||
- 选项术语与平台原文对齐:「审核中」不用「未审核」、「未知」不用「其他」;默认档为复合的「可生成」而非单选「正常」,否则升级后历史批次(全为未知)会被整批拦住。
|
||
- 保留商品状态筛选前的基础范围快照,用于摘要计算,避免异常记录从模型隐藏后无法统计。
|
||
- 默认模式不把 `unlisted/reviewing` 传给 `GenerateWorker`,不创建 AI 请求、不消耗点数、不改 stage/status/Excel;摘要、状态栏和本轮日志说明排除数量及示例商品ID。
|
||
- `unknown` 默认可生成,避免历史数据和临时检测失败被整批拦住。
|
||
- 用户切换「全部」「未上架」或「审核中」后,如果本轮确实包含异常商品,弹一次中文高风险确认,列出数量、状态、示例商品ID和可能产生点数;默认取消。确认后才允许异常商品进入 worker。
|
||
- 正常任务不新增通用确认弹窗,保持现有一键开始流程。
|
||
- UI 可见筛选范围与最终 worker 列表必须分别记录;确认期间数据变化则取消旧计划并要求重新开始。
|
||
|
||
## 验收标准
|
||
|
||
- [ ] 默认可生成模式排除未上架/审核中,正常和未知仍可生成。
|
||
- [ ] 默认排除记录不产生 worker 任务、cmhub 请求、点数或 DB 状态变化。
|
||
- [ ] 摘要与日志即使在异常记录被隐藏时仍能显示排除数量。
|
||
- [ ] 显式显示异常状态后,只有确认才可强制生成;取消不执行。
|
||
- [ ] 正常批次不增加额外弹窗;停止、进度、重试与现有增量生成不回归。
|
||
- [ ] 商品状态筛选与批次、店铺、商品ID、任务状态叠加正确。
|
||
|
||
## 测试与文档
|
||
|
||
- 纯逻辑 helper 覆盖默认排除、未知放行和显式包含。
|
||
- `tests/test_gui.py` 覆盖隐藏统计、强制确认、取消、worker 列表、点数不消耗边界和运行态。
|
||
- 更新 `docs/routes.md`、`docs/04-architecture.md` 和 `docs/api.md`。
|
||
|
||
## 验证
|
||
|
||
```bash
|
||
py -3.10 -m unittest tests.test_ai tests.test_gui
|
||
py -3.10 -m unittest discover -s tests
|
||
py -3.10 -m ruff check app tests main.py
|
||
py -3.10 -m compileall app main.py
|
||
git diff --check
|
||
```
|
||
|
||
## 非目标
|
||
|
||
- 不修改 AI 接口、价格目录、并发、重试或普通任务的启动交互。
|
||
|
||
## 执行记录
|
||
|
||
- 待实现。
|