admin
|
0230d4774f
|
fix: filter title model from outfit picker
|
2026-06-24 08:58:40 +08:00 |
|
 adminandClaude Opus 4.8
|
be1eb9ee36
|
style(ai-outfit): 明细表再缩「衣服图/结果·原因」、标题更宽 (§19.26)
承接 §19.25:_configure_detail_table_columns 把「衣服图」(col3) 初值
150→90、「结果/原因」(col5) 220→130(仍 Interactive 可手拖);「标题」
Stretch 自动吸收省下的宽度变更宽,短固定列(行/货号/状态)不变。
测试:列宽用例补断言 columnWidth(3)<=90、columnWidth(5)<=130。
全套 py37 通过(test_config_service 的 packaging 模板失败属并行 §19.13,无关)。
离屏冒烟:衣服图=90 / 结果·原因=130(Interactive)、标题 Stretch。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-23 17:09:42 +08:00 |
|
admin
|
04bc587538
|
fix: adjust outfit detail table widths
|
2026-06-23 16:58:16 +08:00 |
|
 adminandClaude Opus 4.8
|
52bc6c0c50
|
feat(ai-outfit): 标题模型命中图片模型时开跑前拦截 (§19.21)
补齐缺口③:title_model 名字命中了、但那条是纯图片接口
(api_type=images/images_edits,如误指 GPT Image 2)时,过去会开跑后
逐行失败;现在 _find_title_model 在 api_config_errors 后用 detect_api_type
判类型,命中图片接口即返回错误「『{名字}』是图片模型({api_type}),不能
生成文字标题,请改选 chat/gemini 文本模型」→ _resolve_title_model_config
弹窗 + _start_title 中止,体验对齐①没配模型/②名字找不到。
边界:api_type=chat 但实际返图的模型(如 Nano Banana)类型上判不出,仍
运行时由「未找到文字标题」逐行暴露,固有限制。
测试:_find_title_model 命中 images_edits / URL 自动判图片 两例报错;
既有命中(chat)/缺失用例保持绿。离屏冒烟:title_model 指向图片模型 →
点「生成标题」前即弹窗中止、线程不启动。全套 py37 通过
(test_config_service 的 ai_models.json 顺序失败属并行 §19.13,与本改动无关)。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-23 14:59:04 +08:00 |
|
 adminandClaude Opus 4.8
|
81351c77b5
|
feat(ai-outfit): 话术按钮行微调 + 保留插入标题 + 最终提示词预览改弹窗 (§19.20)
话术组小改版(保留 {title} 占位符、不自动前置):
- 「保存话术」→「保存」,从编辑框下方上移到模板按钮行「重命名」之后
(行变 新建/另存为/重命名/保存/删除)
- 保留「插入标题」按钮 + {title} 占位符(用户自定标题位置,不与旧话术重复)
- 最终提示词预览改按需弹窗:编辑框下方「预览最终提示词」按钮 → 非模态
_OutfitPreviewDialog,含数据行下拉(read_all_rows,状态无关)+ 只读替换后
提示词(含 §7.1 输出要求);话术/分辨率/数据行变化时实时刷新
- 左栏空间理由:标题生成组 + 话术组并存,常驻预览会逼出滚动;弹窗零常驻高度
render_prompt 与 DEFAULT_OUTFIT_PROMPT 不改(纯面板改动)。
测试:面板断言按钮行含「保存」、保留「插入标题」+「预览最终提示词」、
预览弹窗按选中行替换 {title} 并附输出要求。全套 py37 通过
(test_config_service 的 ai_models.json 顺序失败属并行 §19.13,与本改动无关)。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-23 14:30:57 +08:00 |
|
 adminandClaude Opus 4.8
|
c47e9dee95
|
refactor(ai-outfit): 标题模型改为「配置定名」、去掉下拉 (§19.19)
标题模型是「配一次就固定」的,不像分辨率/话术需每次选;左栏 ~360px 已叠两个
提示词组,去掉下拉更干净,还消掉「误选图片模型」的坑。模型名放 app_config.title_model
(默认 GPT-5.5 文本),运行时按名字查 ai_models.json —— 换模型只改配置不改代码(docs/11 §17.3/§17.6)。
- ai_outfit_panel.py:_build_title_group 去掉标题模型下拉;apply_config 改记 title_model
名字、_emit_config 不再写(UI 不覆盖);_selected_title_model_config → 纯函数
_find_title_model(按 name 查 + 校验,返回 (config, error))+ UI 包装
_resolve_title_model_config;找不到/未配置/图片接口时明确报错
- config_service:DEFAULT_CONFIG.title_model 默认改为 "GPT-5.5 文本"
- docs/ai_models.sample.json:补一条 name=「GPT-5.5 文本」的 chat 文本模型样板(占位 key)
- 测试:面板断言无标题模型下拉;_find_title_model 命中/缺失/无模型三例;全套 py37 通过
- 冒烟:seeded ai_models.json + apply_config → title_model 名字解析到 gpt-5.5(chat),缺失→报错
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-23 11:45:36 +08:00 |
|
 adminandClaude Opus 4.8
|
2fa488bd21
|
feat(ai-outfit): 左栏新增「标题生成」(看图→提示词→AI 文字标题→写回A列) (§19.18)
AI 穿搭页左栏新增独立的「生成标题」流程:用户写标题提示词,AI 看该行
衣服图(目录行取首图)生成电商标题,逐行立即写回 Excel A 列并刷新明细表;
完成后重载 Excel,紧接「开始生成」跑图即用新标题。移除原「最终生成要求预览」
腾出版面(docs/11 §17)。
- ai_text_service.py:AiTextClient 复用图像服务 HTTP 管道做文本输出;
chat/gemini 带图视觉,images/images_edits 明确报错;extract_text 取首条标题
- ai_title.py + TitleResult:单行编排,never raises
- excel_service.write_title_result:只写 A 列、不动 D/E/F
- config_service:title_model 默认 + load/save_title_prompt + 默认标题话术
- 面板:标题生成组(提示词+标题模型下拉+保存+生成标题)置于话术组上方;
_TitleWorker 顺序逐行+立即回填+刷新;与「开始生成」互斥;删预览相关组件
- 测试:文本解析/payload、generate_title(单文件/目录首图/失败)、
write_title_result、面板标题组存在且无预览;全套 py37 通过
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-23 11:04:38 +08:00 |
|
admin
|
e83dd07dc0
|
feat: use image concurrency for outfit directories
|
2026-06-22 18:10:54 +08:00 |
|
admin
|
5b5ee119ad
|
feat: add outfit output directory
|
2026-06-22 17:49:59 +08:00 |
|