refactor(ai-outfit): 标题生成改为「一次请求·纯提示词·多条按序填」 (§19.22)

把标题生成从「逐行看图、各生成1条、每行一次请求」改为一次请求、纯提示词
(不传图)、生成多条、按序回填(数量由用户写进提示词,docs/11 §17.1/§17.7)。

- ai_text_service:新增 extract_titles_from_response(多行→多条、逐行去
  序号/引号、丢空)+ AiTextClient.generate_texts(一次POST返回多条,与
  generate_text 共用 _post);generate_text/extract_text 改为取首条
- ai_title:generate_titles(一次请求、image_path=None 纯文本);移除
  generate_title/_reference_image/render_title_prompt(不再逐行看图/替换占位符)
- config_service:DEFAULT_TITLE_PROMPT 改批量风格(生成多条、每行一条)
- 面板 _TitleWorker:一次 generate_titles → 按序 write_title_result 回填;
  N>行数多的丢+日志、N<行数后面行留空+日志;请求异常→日志+成功0;去掉行间节流
- _start_title 不再传 request_interval

测试:extract_titles 多行→多条/去序号引号、generate_texts 多条且无图、
generate_titles 一次请求/异常。全套 py37 通过(test_config_service 的
packaging 模板失败属并行 §19.13,与本改动无关)。离屏冒烟:3/3 精确、
5/3 丢弃、2/3 留空 三种分发均按序回填 Excel A + 日志正确。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-06-23 15:59:37 +08:00
co-authored by Claude Opus 4.8
parent 52bc6c0c50
commit e7fab724fc
8 changed files with 216 additions and 194 deletions
+5 -3
View File
@@ -44,10 +44,12 @@ DEFAULT_OUTFIT_PROMPT = (
"电商主图风格,不加文字与促销标签。"
)
# Default title prompt (docs/11 §17.3). Used by 标题生成 when title_prompt.txt absent.
# Default title prompt (docs/11 §17.3, batch style). Used when title_prompt.txt absent.
# 数量由用户改写(如「生成 10 条」);一次请求返回多条、按序回填各行 A(§17.1)。
DEFAULT_TITLE_PROMPT = (
"请根据这件女装的款式、版型、颜色与印花特点,生成一条适合台湾蝦皮电商的中文商品标题:"
"突出卖点与适穿场景,控制在 30 字以内。只输出标题本身一行,不要序号、引号、表情或促销词。"
"请生成 10 条适合台湾蝦皮电商的中文女装商品标题,每行一条,"
"突出卖点与适穿场景,每条控制在 30 字以内。"
"只输出标题本身、每行一条,不要序号、引号、表情或促销词。"
)