Ho attivato la traduzione AI con 14 lingue, incluso il portoghese (pt). Quando viene creato un nuovo post, tutte le lingue vengono tradotte automaticamente tranne il portoghese: semplicemente manca dall’elenco delle traduzioni. Le altre località (ru, de, fr, es, it, nl, pl, uk, fi, sv, da, nb_NO) vengono generate correttamente.
Versione di Discourse: 2026.1.3
Plugin AI: più recente
Modello di traduzione: Mistral Large/Small
Passaggi per riprodurre il problema:
Attiva la traduzione AI includendo il portoghese (pt) nell’elenco delle località
Crea un nuovo post in inglese
Controlla le traduzioni: PT manca
Risultato atteso: la traduzione PT viene generata automaticamente
Risultato effettivo: PT non viene generata, deve essere aggiunta manualmente
Potresti per favore dare un’occhiata a questo? La locale portoghese (pt) viene sistematicamente ignorata durante la traduzione automatica AI. Tutte le altre 13 lingue vengono tradotte correttamente. Questo è un problema critico per la nostra comunità, poiché serviamo gli utenti di lingua portoghese a Madeira, in Portogallo.
Quale impostazione è mostrata in questo screenshot? Content localization supported locales?
E nel secondo screenshot, qual è la lingua del post? Inoltre, qual è la lingua predefinita del tuo sito, ovvero l’impostazione del sito default locale?
Sì, la prima schermata mostra l’impostazione Content localization supported locales con 14 lingue, inclusa la PT.
Il post nella seconda schermata è stato scritto in inglese. La lingua predefinita del sito è anch’essa inglese (en). Tutte le 14 lingue sono abilitate, inclusa la PT, ma la traduzione in PT viene sistematicamente saltata, mentre tutte le altre 13 lingue vengono generate correttamente.
Hmm, interessante. È un sito che ospitiamo? In tal caso, vorrei dare un’occhiata alla configurazione per capire cosa sta succedendo. Puoi inviarmi un messaggio privato con l’URL del sito?
Qui su meta il portoghese è abilitato e funziona perfettamente.
Riporto qui l’argomento pubblico discusso rapidamente in un messaggio privato:
È un risultato interessante.
Esistono alcune impostazioni pertinenti in AI > Traduzioni > Impostazioni di traduzione, ma non esattamente quelle di cui hai bisogno. Non credo che il lavoro pianificato invii 14 richieste di traduzione simultanee.
Sono curioso di sapere se @nat abbia mai riscontrato questo problema durante lo sviluppo e i test della funzionalità.
Aggiornamento: il problema non è specifico del portoghese. Con 3 localizzazioni (EN, RU, PT), qualsiasi localizzazione può essere saltata casualmente — a volte RU, a volte PT. Inoltre, titolo e corpo vengono tradotti in modo indipendente e incoerente: il titolo può essere tradotto ma il corpo saltato, o viceversa. Testato con Mistral Small, Mistral Large e GPT gpt mini. Il problema persiste su tutti i modelli.
Tutti i post vengono pubblicati in inglese (la localizzazione predefinita del sito è l’inglese). La traduzione in altre localizzazioni è incoerente e casuale, indipendentemente dal contenuto o dalla lunghezza del post.
Non riesco a capire cosa stia causando questo problema o perché si verifichi.
Non riesco a trovare l’impostazione ai_translation_verbose_logs nella nostra installazione. Non appare nella ricerca delle impostazioni di amministrazione.
Per questo caso, Moin ha segnalato recentemente un problema su meta, dove il titolo è stato tradotto ma il corpo è stato saltato perché troppo grande.
Dovrebbe esserci un’impostazione del sito per il limite dei post, ma dubito che sia la causa di questo problema: avrebbe fallito la traduzione in tutte le lingue, non solo in una o due in modo sporadico.
Un’altra cosa da controllare è la finestra del contesto del tuo LLM nelle impostazioni del LLM.
A proposito, non consiglio affatto GPT mini per le traduzioni. Molti clienti hanno dato feedback che svolge un lavoro molto scarso, e nei nostri test iniziali si è dimostrato tale.
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!'
Anche “failed to translate topic” e “failed to translate post” con gli stessi errori di backend.
Non ho analizzato approfonditamente il codice, ma mi chiedo perché i job DetectTranslatePost e DetectTranslateTopic abbiano sidekiq_options retry: false?
Il mio problema è ancora irrisolto.
È critico per me e per il mio forum.
Il multilinguismo dovrebbe funzionare senza intoppi.
Le lingue continuano a essere saltate casualmente, indipendentemente dal modello locale.
Il fallimento della traduzione AI su errori 503 LLM avviene senza segnalazione: nessuna logica di riprova
Bug: Quando qualsiasi provider LLM (Mistral, OpenAI) restituisce un errore 503, DiscourseAi::Translation salta silenziosamente la traduzione senza tentare di riprovare.
Esempio di log:
DiscourseAi::Completions::Endpoints::Mistral: status: 503
{“type”:“unreachable_backend”,“code”:“1100”}
DiscourseAi::Translation: Impossibile tradurre l’argomento X in russo
Causa radice: DiscourseAi::Completions::Endpoints non prevede alcuna logica di riprova per errori temporanei del server. Questo non è specifico di un singolo provider: lo stesso comportamento è stato osservato in precedenza con OpenAI.
Comportamento atteso: Riprovare con backoff esponenziale in caso di risposte 503/504 prima di segnare la traduzione come fallita.
Soluzione proposta: Aggiungere una logica di riprova in DiscourseAi::Completions::Endpoints per tutti i provider in modo uniforme.
Ciò interessa qualsiasi istanza di Discourse che utilizza la traduzione AI con più lingue.
Devi risolvere il problema sottostante, ovvero il backend che restituisce 503. Sembra semplice far sì che Discourse riprovi la stessa traduzione all’infinito, ma devi tenere presente che ogni richiesta a un LLM comporta un costo in token e dobbiamo essere conservativi dal nostro lato per non esaurire tali token. Una volta risolto il problema relativo all’LLM, puoi pianificare manualmente la traduzione di un argomento e verificare se viene risolta.
Ti preghiamo di adeguare le tue aspettative. Stai utilizzando software gratuito e ti stiamo aiutando quanto più possibile.
Ciao pmusaraj,
Grazie per la risposta. Solo per chiarire: non sto utilizzando il modello LLM più economico per risparmiare denaro, ma per testare come funziona in pratica la funzione di traduzione. La scelta del modello non è il punto centrale.
Il punto è che quando Mistral restituisce un errore 503, Discourse AI interrompe silenziosamente la traduzione senza dare alcuna indicazione all’amministratore, senza una coda di nuovi tentativi e senza alcun modo di sapere quali argomenti sono stati saltati. Questo è il problema di UX che sto sollevando, non il costo dei token.
Capisco che si tratti di un progetto open source e che tu stia facendo del tuo meglio per aiutare. Lo apprezzo. Tuttavia, dire “adatta le tue aspettative” è un po’ scoraggiante per qualcuno che sta attivamente testando, segnalando bug e cercando di contribuire al miglioramento del prodotto.
Continuerò a seguire questa discussione e spero in una soluzione.
Grazie,
Denis
Dato che stai utilizzando la versione ESR, avrai bisogno di molta più pazienza rispetto all’attesa del rientro delle persone dal weekend. Le versioni ESR vengono rilasciate solo due volte l’anno.
Per completezza d’informazione, non lo sono più. Lo erano, ma la settimana scorsa sono passati alla versione 4.0-latest per ricevere altre correzioni di bug.
(E la versione ESR riceve comunque i backport per alcune correzioni di bug).