book-short-long-skills
0) 目标与产物
目标:把英文 EPUB 稳定翻成中文,并同时保留两种可听风格。
precise:含义保真优先,口语化但不加戏lite:更短句、更网文化、适合有声书听感
最终产物(示例):
out_precise_full/hardthing.zh.cleaned.v3.epubout_lite_full/hardthing.zh.cleaned.v3.epubfinal_versions/下 8 个可选版本(raw/conservative/medium/aggressive)
1) 目录与关键脚本
工作目录:
cd /Users/torusmini/Downloads/book—trans
关键脚本:
run.sh:全量翻译主入口(支持缓存+断点续跑+自动重启)run_kimi_en2zh.sh:底层调用 Kimi(OpenAI-compatible) 的包装run_chuangye_gangster.sh:风格化冒烟/全量入口run_chuangye_dual_full.sh:并行双版本(precise/lite)export_final_versions.sh:将 raw 产物导出为多档后处理版本
2) 先冒烟,再全量
先做小样本(验证风格与稳定性):
cd /Users/torusmini/Downloads/book—trans
OPENAI_API_KEY="你的 key" \
INPUT_EPUB="/Users/torusmini/Downloads/chuangye/The Hard Thing About Hard Things (Ben Horowitz) (z-library.sk, 1lib.sk, z-lib.sk).epub" \
OUT_ROOT="/Users/torusmini/Downloads/chuangye/out" \
bash run_chuangye_gangster.sh smoke
通过后再跑全量。
3) 双版本并行全量
cd /Users/torusmini/Downloads/book—trans
OPENAI_API_KEY="你的 key" \
INPUT_EPUB="/Users/torusmini/Downloads/chuangye/The Hard Thing About Hard Things (Ben Horowitz) (z-library.sk, 1lib.sk, z-lib.sk).epub" \
bash run_chuangye_dual_full.sh
说明:
- A 路是
precise_oral(prompts/stage2_refine.precise_oral.system.txt) - B 路是
lite_adaptive(prompts/stage2_refine.lite_drama.system.txt)
4) 稳定性参数(实战有效)
常用抗抖参数(按需覆盖):
export FORCE_NO_PROXY=1
export REQUEST_TIMEOUT=90
export HARD_REQUEST_TIMEOUT=120
export MAX_TRANSLATION_ATTEMPTS=12
export CHUNK_BODY_MAX_CHARS=1200
export MAX_TOKENS_PER_CHUNK=1200
export SOFT_LIMIT_RATIO=0.5
export SLEEP_BETWEEN_REQUESTS_S=0.2
经验:
- 无代理时易出现
RemoteDisconnected/timeout/400 - 网络不稳时,减小 chunk 比单纯加超时更有效
- 大书必须依赖
cache + resume,不要每次从头
5) 进度与健康检查
看翻译进度(已完成多少 html/xhtml):
python3 - <<'PY'
from pathlib import Path
p=Path('/Users/torusmini/Downloads/chuangye/out_precise_full/hardthing.zh.epub.resume.txt')
print(len({x.strip() for x in p.read_text(encoding='utf-8',errors='ignore').splitlines() if x.strip()}))
PY
看实时日志:
tail -f /Users/torusmini/Downloads/chuangye/out_precise_full/logs/hardthing.translate.log
6) 卡死恢复策略(重点)
典型现象:长期卡在某个 split_xxx chunk y/n,CPU 近 0,日志不再前进。
处理顺序:
- 先重启单任务,保留
resume/cache - 仍卡死就进一步缩小 chunk 参数(
CHUNK_BODY_MAX_CHARS) - 只在尾页版权段卡死时,可复用另一版本已完成 cache 文件补齐,再触发全缓存重组出包
原则:
- 不删 cache,不删 resume
- 不并发起多个相同输出任务(会互相覆盖/争用)
7) 风格调参原则
precise:禁止改事实、禁止加戏、可以口语化但要克制lite:允许压缩篇幅,但要“主题不断、逻辑不断、事实不变”- 对敏感/风控段:优先保证可交付(可回退原英文而不阻塞全书)
8) 最终多版本导出
cd /Users/torusmini/Downloads/book—trans
bash export_final_versions.sh
输出目录:
/Users/torusmini/Downloads/chuangye/final_versions
推荐优先:
hardthing.zh.precise.aggressive.epubhardthing.zh.lite.aggressive.epub
并附:
README.final_versions.mdSHA256SUMS.txt
9) 本次实战结论(可泛化)
- “先冒烟再全量”比盲跑省大量时间
- 真正决定成功率的是:网络稳定 + chunk 粒度 + 单实例续跑
- 对长书,最稳方案是:双版本并行 + 断点缓存 + 最后统一后处理导出