cat-shark
5c12bbcb74
fix: 翻译批内行数错位(内容-时间错位)+ system_prompt 元组 bug
根因(真实任务 run_51242078d76e):
1. LLM 按 CHUNK_SIZE=20 分批翻译时,对语义碎片句(如单独的助词/名词/
语气词)偶发多拆/少拆一行,translate_lines 无条件 extend 导致:
- 多行 -> 后续所有字幕文本整体错位,时间戳从原文复制、文本却错贴时间;
- 少行 -> invoke 末尾补空导致该条内容缺失。
程序按时戳看不出问题,实际"内容对错时间"(如第756条"好像喜欢害羞
的样子"错贴 3805s,实为"恥ずかしいのが好きみたいなので"的译文)。
2. system_prompt 圆括号内出现 f-string 赋值导致隐式字符串拼接失效,
整体变成 tuple,json 序列化后 content 是数组 -> LLM API 400。
修复:
- 提示词强化:逐行独立翻译 + 碎片句按语境独立成行 + 禁止合并/拆分;
- _repair_batch:多行末尾合并到前一行、少行重试该批(最多3次)仍不足
补空串占位(宁缺勿错位),保证译文与原文逐条时间对齐;
- system_prompt 显式 + 拼接为单个字符串。
测试(先红后绿):
- test_translate_lines_aligns_extra_line:多行合并对齐
- test_translate_lines_aligns_missing_line:少行重试补齐
- test_translate_lines_pads_after_retries_exhausted:重试耗尽补空
- test_pipeline_zh_cn_timetext_alignment:真实 LLM 完整 1440 行逐条对齐
pyproject.toml: 注册 integration marker
2026-09-05 19:36:47 +08:00
..
2026-09-03 08:22:42 +08:00
2026-09-05 19:36:23 +08:00
2026-08-19 01:27:41 +08:00
2026-08-16 23:58:25 +08:00
2026-08-23 16:25:17 +08:00
2026-09-03 08:22:42 +08:00
2026-08-16 23:58:25 +08:00
2026-08-23 16:25:09 +08:00
2026-08-16 23:58:25 +08:00
2026-09-05 19:36:23 +08:00
2026-09-05 19:36:23 +08:00
2026-08-17 23:20:11 +08:00
2026-08-16 23:58:25 +08:00
2026-08-16 23:58:25 +08:00
2026-08-16 23:58:25 +08:00
2026-08-23 16:25:13 +08:00
2026-08-23 16:25:09 +08:00
2026-08-16 23:58:25 +08:00
2026-08-23 16:25:15 +08:00
2026-08-23 16:25:18 +08:00
2026-08-16 23:58:25 +08:00
2026-08-19 01:27:41 +08:00
2026-08-16 23:58:25 +08:00
2026-08-19 01:27:41 +08:00
2026-09-05 19:36:47 +08:00
2026-08-16 23:58:25 +08:00
2026-08-16 23:58:25 +08:00