先说结论
翻译质量与可用性要分开保证:质量靠双引擎切换,可用性靠排队重试。
为什么不直连第三方翻译 API
三个原因:
- 密钥安全:CMS 部署在客户机器上,密钥等于公开
- 成本控制:按量计费需要统一账户与额度管理
- 协议差异:不同引擎的字段、限流、错误码都不同
所以 CMS 只负责"排队与回写",翻译由独立的服务中心完成,中间用 HTTP + 凭证通信。
双引擎
| 引擎 | 适用 | 特点 |
|---|---|---|
| 机器翻译 | 大批量、常规内容 | 快、便宜、术语一致性一般 |
| 大模型 | 营销文案、长文 | 语气自然、成本高、可能改写过度 |
后台可一键切换,业务端无感知。切换只影响新任务,已完成的不重译。
失败回退链
大模型 → 失败 → 机器翻译 → 失败 → 排队重试(指数退避)→ 人工队列
关键是任何一步失败都不能丢任务。做法是任务表持久化,worker 挂了重启后继续。
服务中心离线怎么办
- CMS 侧任务状态保持 pending,不报错给运营
- 服务中心恢复后自动补拉
- 后台显示"服务中心不可达"但不阻塞内容发布
这条设计救过很多次:客户的服务器在内网,外网偶尔断,内容照常发。
成本观察
- 机器翻译:按字符计费,适合全量铺开
- 大模型:按 token 计费,只用在 P0 页面
- 简→繁:走本地词库,成本为零
成本对比:机器翻译约 0.03–0.08 元/千字符;大模型按 token 计费,折算成中文大约是机翻的 3–5 倍。所以策略是:全量走机翻,只有首页、关于页和 Top 5 产品用大模型。