feat: support old title placeholder in title prompts

This commit is contained in:
chengma
2026-07-08 10:07:47 +08:00
parent b769bb58e6
commit b622247a16
11 changed files with 115 additions and 27 deletions
+1 -1
View File
@@ -80,7 +80,7 @@
```jsonc
{ "prompt": <title_prompt + 旧标题合成为单串>, "model": <title_alias>, "resolution": <可选> }
```
现在 `gen_title` 用 system+user 两条 message,cmhub 只收单个 `prompt`,需把「提示词 + 旧标题 + 只返回新标题」折叠为一个 `prompt` 字符串。
T-549 后 direct 与 cmhub 共用标题 prompt 组装:若标题提示词包含 `{旧标题}`,先替换该占位符且不重复追加旧标题块;若不包含,则保持旧行为自动追加「旧标题:...」。两种情况都把「提示词 + 旧标题/占位符结果 + 只返回新标题」折叠为一个最终 prompt 字符串。
- **响应**:解析 `titles`,取 `titles[0]`(当前一条任务要一个新标题);空列表/空串按现有语义抛 `AIError("AI 返回为空标题")`。
- 不复用现有 `_call_with_retry` 的一刀切重试逻辑;cmhub 分支新增专用 HTTP helper,优先使用项目已依赖的 `requests`,传 `timeout=(connect_timeout, read_timeout)` 以区分连接超时和读超时。`model_used`/`points_cost`/`points_balance`/`call_id` 不改变返回值,通过 `on_step`/事件回调上报给 `generate_batch` 与 GUI worker;T-526 只保证 metadata 事件完整传出,不直接要求写 GUI `run_logs`,T-528 再由 GUI worker 脱敏写 `run_logs` 和展示余额;不入 Excel。