AI 번역이 포르투갈어(pt) 로케일 건너뛰기 - 포르투갈어를 제외한 모든 언어로 번역됨

14개 언어(포르투갈어(pt) 포함)로 AI 번역이 활성화되어 있습니다. 새 게시글이 생성되면 포르투갈어를 제외한 모든 언어가 자동으로 번역됩니다 — 번역 목록에서 포르투갈어가 단순히 누락되어 있습니다. 다른 로케일(ru, de, fr, es, it, nl, pl, uk, fi, sv, da, nb_NO)은 올바르게 생성됩니다.

Discourse 버전: 2026.1.3 AI 플러그인: 최신 버전 번역 모델: Mistral Large/Small

재현 방법:

  1. 로케일 목록에 포르투갈어(pt)를 포함하여 AI 번역을 활성화합니다.

  2. 영어로 새 게시글을 생성합니다.

  3. 번역을 확인합니다 — PT(포르투갈어)가 없습니다.

기대 결과: PT 번역이 자동으로 생성됩니다 실제 결과: PT가 생성되지 않아 수동으로 추가해야 합니다

1개의 좋아요

이 문제를 확인해 주시겠습니까? 포르투갈어(pt) 로케일이 자동 AI 번역 시 일관되게 건너뛰어집니다. 나머지 13개 언어는 모두 올바르게 번역됩니다. 마데이라, 포르투갈에서 포르투갈어 사용자를 서비스하고 있는 우리에게 이는 매우 심각한 문제입니다.

이 스크린샷에 표시된 설정은 Content localization supported locales인가요?

그리고 두 번째 스크린샷에서 게시글의 언어는 무엇인가요? 그리고 관련해서, 사이트의 기본 언어, 즉 default locale 사이트 설정은 무엇인가요?

1개의 좋아요

네, 첫 번째 스크린샷에는 PT를 포함한 14개 언어가 설정된 Content localization supported locales 설정이 표시되어 있습니다.

두 번째 스크린샷의 게시물은 영어로 작성되었습니다. 사이트 기본 로케일도 영어(en)입니다. PT를 포함한 14개 언어가 모두 활성화되어 있지만, PT 번역만 일관되게 건너뛰어지며 나머지 13개 언어는 모두 올바르게 생성됩니다.

1개의 좋아요

음, 흥미롭군. 우리가 호스팅하는 사이트인가? 그렇다면 설정을 확인해서 무슨 일이 일어나고 있는지 살펴보고 싶다. 사이트 URL을 포함한 개인 메시지를 보내줄 수 있겠나?

여기 메타에서는 포르투갈어가 활성화되어 있고, 문제없이 잘 작동하고 있어.

1개의 좋아요

개인 메시지에서 빠르게 나눈 대화를 공개 주제로 다시 가져와 봅니다:

흥미로운 결과네요.

AI > 번역 > 번역 설정에 이와 관련된 설정이 몇 가지 있지만, 정확히 필요한 것은 아닙니다. 예약된 작업이 14개의 동시 번역 요청을 보내지는 않을 것이라고 생각합니다.

@nat 님이 이 기능을 개발하고 테스트하는 과정에서 이 문제를 경험해 보신 적이 있는지 궁금합니다.

1개의 좋아요

음, 제가 아는 한 그런 경우는 없어요. 10개 이상의 언어를 지원하는 사이트를 본 적은 있지만, 이 문제는 처음입니다.

/logs에 뭔가 표시되나요? ai_translation_verbose_logs를 일정 기간 동안 켤 수 있는 숨겨진 상세 로그 설정이 있습니다.

2개의 좋아요

업데이트: 이 문제는 포르투갈어에 국한된 것이 아닙니다. 3개 언어(EN, RU, PT) 중 어떤 언어든 무작위로 건너뛰어지며, 때로는 RU, 때로는 PT가 생략됩니다. 또한 제목과 본문은 독립적이고 일관성 없이 번역됩니다. 제목은 번역되지만 본문은 생략되거나, 그 반대인 경우도 있습니다. Mistral Small, Mistral Large, GPT gpt mini로 테스트해 보았으나 모든 모델에서 문제가 지속됩니다.
모든 게시물은 영어로 게시됩니다(사이트 기본 언어는 영어). 게시물의 내용이나 길이에 관계없이 다른 언어로의 번역은 일관성 없고 무작위적입니다.​​​​​​​​​​​​​​​​이것이 왜 발생하는지, 원인이 무엇인지 파악할 수 없습니다.

저희 설치 환경에서 ai_translation_verbose_logs 설정을 찾을 수 없습니다. 관리자 설정 검색 결과에도 표시되지 않아요.

예상되는 동작입니다.

2개의 좋아요

@Denis_Kovalenko 지금 ai_translation_verbose_logs를 활성화했습니다

2개의 좋아요

이 경우 Moin이 최근 메타에서 제목은 번역되었지만 본문이 너무 커서 건너뛴 문제가 있다는 것을 나에게 알려주었습니다.

사이트 설정에 게시글 제한이 있어야 하지만, 이 문제가 그 때문이라고는 생각하지 않습니다. 그렇다면 하나나 두 개 언어가 아니라 모든 언어로 번역에 실패했을 테니까요.

확인해 볼 수 있는 또 다른 사항은 LLM 설정의 LLM 컨텍스트 윈도우입니다.

참고로, 저는 번역에 GPT mini를 전혀 권장하지 않습니다. 많은 고객들이 번역 품질이 매우 나쁘다는 피드백을 주었고, 우리의 초기 테스트에서도 그렇게 입증되었습니다.

3개의 좋아요

다음과 같은 문제를 확인하고 있습니다.

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” 메시지도 나타납니다.

코드를 깊이 있게 살펴보지는 않았지만, DetectTranslatePostDetectTranslateTopic 작업에 sidekiq_options retry: false가 설정된 이유가 궁금합니다.

1개의 좋아요

컨텍스트 윈도우 128,000

내 문제는 여전히 해결되지 않았습니다.
이 문제는 나와 내 포럼에 매우 중요합니다.
다국어 기능은 완벽하게 작동해야 합니다.
로컬 모델과 무관하게 언어가 여전히 무작위로 건너뛰어집니다.

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 문제를 수정한 후에는 수동으로 특정 주제를 번역 대상으로 예약하여 문제가 해결되는지 확인할 수 있습니다.

기대를 조정해 주시기 바랍니다. 여러분은 무료 소프트웨어를 사용 중이며, 우리는 가능한 한 최선을 다해 도움을 드리고 있습니다.

3개의 좋아요

pmusaraj님,
답변 주셔서 감사합니다. 명확히 하고자 하는 점은, 비용을 아끼려고 가장 저렴한 LLM 모델을 사용하려는 것이 아닙니다. 번역 기능이 실제로 어떻게 작동하는지 테스트하기 위해 사용하고 있습니다. 모델 선택은 핵심이 아닙니다.
핵심은 Mistral이 503 오류를 반환할 때, Discourse AI가 관리자에게 어떠한 알림도 주지 않고, 재시도 큐도 없이, 어떤 토픽이 놓졌는지 알 수 있는 방법도 없이 번역을 조용히 삭제한다는 점입니다. 제가 제기하는 UX 문제는 바로 이것이며, 토큰 비용이 아닙니다.
이것이 오픈소스 프로젝트이며, 님이 가능한 한 많이 도움을 주고 있다는 점은 잘 알고 있습니다. 감사드립니다. 하지만 "기대를 조정하세요"라는 말은 제품을 적극적으로 테스트하고, 버그를 보고하며, 개선에 도움을 주려는 사람에게 다소 실망스럽게 들립니다.
이 스레드를 계속 주시하며, 수정을 기대하겠습니다.
감사합니다,
Denis

1개의 좋아요

ESR 버전을 사용하고 있으므로, 주말이 끝나고 사람들이 출근하는 것을 기다리는 것보다 훨씬 더 많은 인내가 필요합니다. ESR 릴리스는 1년에 두 번만 이루어집니다.

1개의 좋아요

참고로, 현재는 그렇지 않습니다. 이전에 ESR을 사용했었지만, 지난주에 다른 버그 수정을 위해 4.0-latest로 전환했습니다.
(ESR에도 일부 버그 수정에 대한 백포팅이 적용됩니다).

4개의 좋아요