AI 翻译在 LLM 503 错误时静默失败——无重试机制
缺陷:当任何 LLM 提供商(Mistral、OpenAI)返回 503 错误时,DiscourseAi::Translation 会静默跳过翻译,且不进行重试。
日志示例:
DiscourseAi::Completions::Endpoints::Mistral: status: 503
{“type”:“unreachable_backend”,“code”:“1100”}
DiscourseAi::Translation: 翻译主题 X 到俄语失败
根本原因:DiscourseAi::Completions::Endpoints 针对临时服务器错误没有任何重试逻辑。这并非特定于某家提供商——此前在 OpenAI 上也观察到相同行为。
预期行为:在将翻译标记为失败之前,针对 503/504 响应使用指数退避机制进行重试。
建议修复方案:在 DiscourseAi::Completions::Endpoints 中为所有提供商统一添加重试逻辑。
此问题会影响所有使用多语言 AI 翻译的 Discourse 实例。