14개 언어(포르투갈어(pt) 포함)로 AI 번역이 활성화되어 있습니다. 새 게시글이 생성되면 포르투갈어를 제외한 모든 언어가 자동으로 번역됩니다 — 번역 목록에서 포르투갈어가 단순히 누락되어 있습니다. 다른 로케일(ru, de, fr, es, it, nl, pl, uk, fi, sv, da, nb_NO)은 올바르게 생성됩니다.
Discourse 버전: 2026.1.3 AI 플러그인: 최신 버전 번역 모델: Mistral Large/Small
재현 방법:
로케일 목록에 포르투갈어(pt)를 포함하여 AI 번역을 활성화합니다.
영어로 새 게시글을 생성합니다.
번역을 확인합니다 — PT(포르투갈어)가 없습니다.
기대 결과: PT 번역이 자동으로 생성됩니다 실제 결과: PT가 생성되지 않아 수동으로 추가해야 합니다
업데이트: 이 문제는 포르투갈어에 국한된 것이 아닙니다. 3개 언어(EN, RU, PT) 중 어떤 언어든 무작위로 건너뛰어지며, 때로는 RU, 때로는 PT가 생략됩니다. 또한 제목과 본문은 독립적이고 일관성 없이 번역됩니다. 제목은 번역되지만 본문은 생략되거나, 그 반대인 경우도 있습니다. Mistral Small, Mistral Large, GPT gpt mini로 테스트해 보았으나 모든 모델에서 문제가 지속됩니다.
모든 게시물은 영어로 게시됩니다(사이트 기본 언어는 영어). 게시물의 내용이나 길이에 관계없이 다른 언어로의 번역은 일관성 없고 무작위적입니다.이것이 왜 발생하는지, 원인이 무엇인지 파악할 수 없습니다.
Failed to translate tag 31 to pt: {"object":"error","message":"Internal server error","type":"unreachable_backend","param":null,"code":"1100","raw_status_code":503}
/var/www/discourse/plugins/discourse-ai/lib/completions/endpoints/base.rb:206:in 'block (2 levels) in DiscourseAi::Completions::Endpoints::Base#perform_completion!'
또한 동일한 백엔드 오류와 함께 “failed to translate topic” 및 “failed to translate post” 메시지도 나타납니다.
코드를 깊이 있게 살펴보지는 않았지만, DetectTranslatePost와 DetectTranslateTopic 작업에 sidekiq_options retry: false가 설정된 이유가 궁금합니다.
AI 번역이 LLM 503 오류 시 조용히 실패함 — 재시도 로직 없음
버그: LLM 제공업체(Mistral, OpenAI)가 503을 반환하면, DiscourseAi::Translation은 재시도 없이 번역을 조용히 건너뜁니다.
로그 예시:
DiscourseAi::Completions::Endpoints::Mistral: status: 503
{“type”:“unreachable_backend”,“code”:“1100”}
DiscourseAi::Translation: Failed to translate topic X to ru
근본 원인: DiscourseAi::Completions::Endpoints에는 일시적인 서버 오류에 대한 재시도 로직이 없습니다. 이는 특정 제공업체에 국한된 문제가 아니며, 이전에도 OpenAI에서 동일한 동작이 관찰되었습니다.
기대되는 동작: 번역을 실패로 표시하기 전에 503/504 응답에 대해 지수 백오프(exponential backoff) 방식으로 재시도해야 합니다.
제안된 수정: 모든 제공업체에 대해 일관되게 DiscourseAi::Completions::Endpoints에 재시도 로직을 추가합니다.
이는 여러 언어를 사용하는 AI 번역을 사용하는 모든 Discourse 인스턴스에 영향을 미칩니다.
503을 반환하는 백엔드 문제를 근본적으로 수정해야 합니다. Discourse가 동일한 번역을 반복적으로 재시도하도록 하는 것은 쉬워 보이지만, LLM에 대한 각 요청에는 토큰 비용이 발생한다는 점을 염두에 두어야 합니다. 우리는 이러한 토큰을 낭비하지 않도록 신중하게 접근해야 합니다. LLM 문제를 수정한 후에는 수동으로 특정 주제를 번역 대상으로 예약하여 문제가 해결되는지 확인할 수 있습니다.
기대를 조정해 주시기 바랍니다. 여러분은 무료 소프트웨어를 사용 중이며, 우리는 가능한 한 최선을 다해 도움을 드리고 있습니다.
pmusaraj님,
답변 주셔서 감사합니다. 명확히 하고자 하는 점은, 비용을 아끼려고 가장 저렴한 LLM 모델을 사용하려는 것이 아닙니다. 번역 기능이 실제로 어떻게 작동하는지 테스트하기 위해 사용하고 있습니다. 모델 선택은 핵심이 아닙니다.
핵심은 Mistral이 503 오류를 반환할 때, Discourse AI가 관리자에게 어떠한 알림도 주지 않고, 재시도 큐도 없이, 어떤 토픽이 놓졌는지 알 수 있는 방법도 없이 번역을 조용히 삭제한다는 점입니다. 제가 제기하는 UX 문제는 바로 이것이며, 토큰 비용이 아닙니다.
이것이 오픈소스 프로젝트이며, 님이 가능한 한 많이 도움을 주고 있다는 점은 잘 알고 있습니다. 감사드립니다. 하지만 "기대를 조정하세요"라는 말은 제품을 적극적으로 테스트하고, 버그를 보고하며, 개선에 도움을 주려는 사람에게 다소 실망스럽게 들립니다.
이 스레드를 계속 주시하며, 수정을 기대하겠습니다.
감사합니다,
Denis