La traducción de IA omite la localización portuguesa (pt): el artículo se tradujo a todos los idiomas excepto el portugués

Tengo activada la traducción por IA con 14 idiomas, incluido el portugués (pt). Cuando se crea una nueva publicación, todos los idiomas se traducen automáticamente, excepto el portugués, que simplemente no aparece en la lista de traducciones. Otros idiomas (ru, de, fr, es, it, nl, pl, uk, fi, sv, da, nb_NO) se generan correctamente.

Versión de Discourse: 2026.1.3
Plugin de IA: última versión
Modelo de traducción: Mistral Large/Small

Pasos para reproducir:

  1. Activar la traducción por IA con el portugués (pt) en la lista de idiomas.

  2. Crear una nueva publicación en inglés.

  3. Verificar las traducciones: PT no aparece.

Esperado: Se genera automáticamente la traducción al PT.
Realidad: No se genera PT; debe agregarse manualmente.

1 me gusta

¿Podrías echar un vistazo a esto? La localización en portugués (pt) se omite sistemáticamente durante la traducción automática con IA. Las otras 13 lenguas se traducen correctamente. Esto es un problema crítico para nuestra comunidad, ya que atendemos a usuarios de habla portuguesa en Madeira, Portugal.

¿Qué configuración aparece en esta captura de pantalla? ¿Content localization supported locales?

Y en la segunda captura de pantalla, ¿cuál es el idioma del mensaje? Y relacionado con esto, ¿cuál es el idioma predeterminado de tu sitio, es decir, la configuración del sitio default locale?

1 me gusta

Sí, la primera captura de pantalla muestra la configuración Content localization supported locales con 14 idiomas, incluido PT.

La publicación en la segunda captura de pantalla fue escrita en inglés. El idioma predeterminado del sitio también es inglés (en). Los 14 idiomas están habilitados, incluido PT, pero la traducción al PT se omite constantemente, mientras que las otras 13 lenguas se generan correctamente.

1 me gusta

Hmm, interesante. ¿Es un sitio que alojamos? De ser así, me gustaría revisar la configuración para ver qué está ocurriendo. ¿Podrías enviarme un mensaje privado con la URL del sitio?

Aquí en Meta tenemos el portugués habilitado y funciona perfectamente.

1 me gusta

Traigo esto de nuevo al tema público desde una conversación rápida en un mensaje privado:

Ese es un resultado interesante.

Existen algunas configuraciones relevantes para esto en IA > Traducciones > Configuración de traducción, pero no exactamente lo que necesitas. No creo que el trabajo programado envíe 14 solicitudes de traducción simultáneas.

Me pregunto si @nat se encontró con esto en algún momento mientras desarrollaba y probaba la función.

1 me gusta

Hmm, no que yo sepa. Recuerdo que algunos sitios superaban las 10 idiomas, pero no he visto este problema antes.

¿Los /logs indican algo? Tenemos una configuración oculta de registros detallados que puedes activar: ai_translation_verbose_logs por un período de tiempo.

2 Me gusta

Actualización: el problema no es específico del portugués. Con 3 idiomas (EN, RU, PT), cualquier idioma puede omitirse aleatoriamente: a veces el ruso, a veces el portugués. Además, el título y el cuerpo se traducen de forma independiente e inconsistente: el título puede estar traducido pero el cuerpo omitido, o viceversa. Se probó con Mistral Small, Mistral Large y GPT gpt mini. El problema persiste en todos los modelos.

Todos los mensajes se publican en inglés (el idioma predeterminado del sitio es el inglés). La traducción a otros idiomas es inconsistente y aleatoria, independientemente del contenido o la longitud del mensaje. No puedo determinar qué está causando esto ni por qué ocurre.

No puedo encontrar la configuración ai_translation_verbose_logs en nuestra instalación. No aparece en la búsqueda de la configuración de administración.

Eso es esperado.

2 Me gusta

@Denis_Kovalenko Ahora he habilitado ai_translation_verbose_logs

2 Me gusta

Para este caso, Moin me señaló recientemente un problema en meta donde el título se tradujo, pero el cuerpo se omitió porque era demasiado grande.

Debería haber una configuración del sitio para el límite de publicaciones, pero dudo que esa sea la razón de este problema; de lo contrario, habría fallado al traducir a todos los idiomas, no solo a uno o dos de forma esporádica.

Otra cosa que puedes verificar es la ventana de contexto de tu LLM en la configuración de tu LLM.

Por cierto, no recomiendo en absoluto GPT mini para traducciones. Muchos clientes han dado su opinión de que hace un trabajo muy deficiente, y en nuestras pruebas iniciales también demostró ser así.

3 Me gusta

Estamos viendo esto

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!'

También «failed to translate topic» y «failed to translate post» con los mismos errores del backend.

No he profundizado en el código, pero me pregunto por qué los trabajos DetectTranslatePost y DetectTranslateTopic tienen sidekiq_options retry: false.

1 me gusta

Ventana de contexto de 128000

Mi problema sigue sin resolverse.
Esto es crítico para mí y para mi foro.
El multilingüismo debería funcionar sin fallos.
Los idiomas siguen siendo omitidos al azar, independientemente del modelo local.

La traducción por IA falla en silencio ante errores 503 del LLM: sin lógica de reintento

Error: Cuando cualquier proveedor de LLM (Mistral, OpenAI) devuelve un 503, DiscourseAi::Translation omite silenciosamente la traducción sin reintentar.

Ejemplo de registro:

DiscourseAi::Completions::Endpoints::Mistral: estado: 503
{“type”:“unreachable_backend”,“code”:“1100”}
DiscourseAi::Translation: No se pudo traducir el tema X al ru

Causa raíz: DiscourseAi::Completions::Endpoints carece de lógica de reintento para errores transitorios del servidor. Esto no es específico de un proveedor; se observó el mismo comportamiento anteriormente con OpenAI.

Comportamiento esperado: Reintentar con retroceso exponencial ante respuestas 503/504 antes de marcar la traducción como fallida.

Solución propuesta: Agregar lógica de reintento en DiscourseAi::Completions::Endpoints para todos los proveedores de manera uniforme.

Esto afecta a cualquier instancia de Discourse que utilice traducción por IA con múltiples idiomas.

Necesitas solucionar el problema subyacente, es decir, que el backend devuelva un 503. Puede parecer fácil que Discourse reintente la misma traducción una y otra vez, pero debes tener en cuenta que cada solicitud a un LLM conlleva un costo de tokens, y debemos ser conservadores de nuestro lado para no agotar esos tokens. Una vez que hayas solucionado el problema del LLM, puedes programar manualmente un tema para traducción y verificar si se resuelve.

Por favor, ajusta tus expectativas. Estás utilizando software gratuito y te estamos ayudando tanto como podemos.

3 Me gusta

Hola pmusaraj,

Gracias por la respuesta. Solo para aclarar: no estoy utilizando el modelo de LLM más económico para ahorrar dinero. Lo estoy usando para probar cómo funciona la función de traducción en la práctica. La elección del modelo no es el punto.

El punto es que cuando Mistral devuelve un error 503, Discourse AI omite silenciosamente la traducción sin dar ninguna indicación al administrador, sin una cola de reintentos y sin ninguna forma de saber qué temas se pasaron por alto. Ese es el problema de experiencia de usuario que estoy planteando, no el costo de los tokens.

Entiendo que esto es de código abierto y que estás ayudando en la medida de lo posible. Lo aprecio. Pero decir “ajusta tus expectativas” es un poco desalentador para alguien que está probando activamente, reportando errores y tratando de ayudar a mejorar el producto.

Seguiré siguiendo este hilo y espero una solución.

Gracias,
Denis

1 me gusta

Dado que estás utilizando la versión ESR, necesitarás mucha más paciencia que esperar a que la gente vuelva al trabajo después de su fin de semana. Las versiones ESR solo se lanzan dos veces al año.

1 me gusta

Solo por si acaso, ya no lo son. Lo fueron, pero se mudaron a 4.0-latest la semana pasada para obtener otras correcciones de errores.
(Y ESR sí recibe puertos traseros para algunas correcciones de errores).

4 Me gusta