Grafico dei progressi della traduzione AI

Ieri ho attivato le traduzioni AI sul mio server Discourse self-hosted. Tutto sta andando bene… più o meno.

Il grafico del progresso delle traduzioni non si aggiorna o i dati sono inaccurati. Ecco quello che vedo:

Questo indicherebbe che sono al 99% per tutti i messaggi dal 23 febbraio 2026.

Non è accurato. Ho circa 3.000 messaggi per questo periodo. In base ai log di traduzione, attualmente sta lavorando sui messaggi di circa 6 giorni fa.

Quindi, qualcuno sa:

  • Qual è la frequenza di aggiornamento di questo grafico?
  • La query di Data Explorer per i messaggi in attesa di traduzione?
  • La query di Data Explorer per i messaggi tradotti?
  • La query di Data Explorer per i messaggi che hanno tentato la traduzione ma sono falliti a causa di un errore o di un motivo specifico?

Grazie in anticipo.

Abbiamo dovuto memorizzare nella cache questa pagina perché andava in timeout sui siti di grandi dimensioni.

La traduzione prevede essenzialmente due passaggi:

  1. Rilevare la lingua originale del post
  2. Tradurre in tutte le altre lingue

All’inizio, il tuo sito sarà principalmente bloccato nel passaggio 1, che inizialmente mostravamo in questa pagina di avanzamento della traduzione, ma che abbiamo poi rimosso perché i feedback indicavano che era «troppo informativa».

Detto questo, questo è un buon feedback. La cache della pagina di avanzamento e la mancanza di informazioni sul rilevamento della lingua stanno rendendo l’esperienza qui terribile all’inizio del processo.

Ultima cosa: abbiamo impostato il tasso di recupero dei dati passati molto conservativamente; potresti volerlo aumentare in base al tuo budget.

Ti suggerirei di valutare un approccio più semplice per la generazione dei report.

In base alla mia comprensione, il processo di traduzione avviene in due fasi:

  1. Tradurre i dati degli argomenti (topic) idonei.
  2. Tradurre i dati dei post idonei.

Da un punto di vista amministrativo e di reporting, sono meno interessato a ciò che è attualmente in corso di elaborazione e più interessato ai progressi complessivi rispetto al carico di lavoro idoneo. Preferirei vedere report basati sulle regole di idoneità alla traduzione configurate.

Ad esempio:

Stato

Le impostazioni di backfill sono configurate per tradurre tutto il contenuto creato dopo il 23 febbraio 2026.

Area Totale Idoneo Tradotto Completato
Argomenti 25.000 540 450 83%
Post 400.000 3.700 800 22%

Traduzioni fallite

ID Post Motivo
34543 Caratteri non validi alla riga xxxx

Il grafico attuale sembra mostrare l’attività operativa, che è certamente utile. Tuttavia, ciò che voglio davvero capire è quanto del lavoro idoneo è stato completato.

Personalmente, non sono molto interessato alle percentuali di completamento per lingua. Un argomento o un post è tradotto o non lo è. La domanda chiave per me è quanto del backlog configurato è stato elaborato con successo.

Questo approccio sembra anche più amichevole verso il database, poiché si concentra sui conteggi aggregati piuttosto che sul monitoraggio dei progressi per ogni combinazione di lingue.

Se il reporting specifico per lingua è ancora utile, forse potrebbe essere reso disponibile tramite un filtro. Un amministratore potrebbe selezionare una lingua e visualizzare la stessa tabella di progresso solo per quella lingua.

Solo alcuni pensieri.

p.s.

Qual è l’attuale durata della cache?

Ho lavorato sul SQL dell’esploratore dati per creare il report elencato sopra. Non sono un esperto di SQL, ma queste query funzionano. Le query seguenti forniranno questo livello di informazioni.

Report sullo stato di traduzione

Area Eleggibili Tradotti Da tradurre
Argomenti 540 450 90
Post 3.700 800 2900

Argomenti:

-- Impostazioni:
-- Aggiorna le tue impostazioni di traduzione SQL
-- Giorni da recuperare - Interval 'xxx'
-- Categoria da ignorare - Category_id NOT IN ()
-- Tipo di argomento - Regular o private_message
--
-- Stato di traduzione:
--  Argomenti totali da tradurre: commenta entrambe le clausole 'and topics.locale'
--  Argomenti non tradotti: decommenta solo - topics.locale is null
--  Argomenti tradotti: decommenta solo - topics.local = 'en'

SELECT count(distinct topics.id)
     FROM topics
     JOIN posts  ON topics.id  = posts.topic_id
    WHERE posts.created_at >= NOW() - INTERVAL '100 days' 
     AND  posts.user_id > 0
     AND  topics.category_id NOT IN (22,3)
     AND  topics.archetype = 'regular'
--   AND  topics.locale = 'en'
--   AND  topics.locale is null

Post:

-- Impostazioni:
-- Aggiorna le tue impostazioni di traduzione SQL
-- Giorni da recuperare - Interval 'xxx'
-- Categoria da ignorare - Category_id NOT IN ()
-- Tipo di argomento - Regular o private_message
--
-- Stato di traduzione:
--  Post totali da tradurre: commenta entrambe le clausole 'and posts.locale'
--  Post non tradotti: decommenta solo - posts.locale is null
--  Post tradotti: decommenta solo - posts.locale = 'en'

SELECT count(*)
     FROM posts
     JOIN topics  ON topics.id  = posts.topic_id
    WHERE posts.created_at >= NOW() - INTERVAL '100 days' 
     AND  posts.user_id > 0
     AND  topics.category_id NOT IN (22,3)
     AND  topics.archetype = 'regular'
--     AND  posts.locale = 'en'
--     AND  posts.locale is null

Grazie mille per il feedback @LotusJeff

Sto prendendo nota di alcuni dei tuoi punti e farò presto delle migliorie™ (probabilmente a luglio).

Per quanto riguarda le query DE, ti risponderò domani con una versione più precisa.