Passa al contenuto

Odoo 19: traduzione con IA e controllo incrociato – modulo ai_translation_consensus, in cui più IA si controllano a vicenda

3 novembre 2026 | Odoo 19 Community | Sviluppo interno
3 novembre 2026 di
Odoo 19: traduzione con IA e controllo incrociato – modulo ai_translation_consensus, in cui più IA si controllano a vicenda

Modulo Odoo 19 ai_translation_consensus: più IA traducono, si valutano in modo anonimo e una persona approva

Tradurre un sito web in dieci, venti o quaranta lingue è rapido con una singola IA. Più difficile è la domanda se ci si possa fidare del risultato. Un singolo modello linguistico ogni tanto inventa parole, traduce i nomi dei prodotti o altera un numero, e non se ne accorge da sé. Per questo abbiamo scritto per Odoo 19 un modulo in cui più IA e servizi di traduzione lavorano sullo stesso testo, si valutano a vicenda i risultati in modo anonimo e si accordano sulla formulazione che suona al tempo stesso accurata e naturale. Ciò che non è univoco viene sottoposto alla decisione di una persona.

Il modulo si chiama ai_translation_consensus ed è disponibile su GitHub come software libero con licenza AGPL-3:

github.com/Alex0176/odoo-ai-translation-consensus

L’idea: controllo incrociato invece di fiducia

Il modulo sa fare due cose:

  • Tradurre: completare le traduzioni mancanti (o obsolete) di ogni campo traducibile in Odoo, cioè articoli del blog, pagine web, menu, prodotti e tutto il resto che Odoo memorizza in più lingue. Le IA non vedono solo la singola frase, ma i blocchi vicini e un estratto dell’intera pagina. In questo modo le singole parole vengono comprese nel contesto giusto.
  • Correggere le bozze: controllare il testo nella sua lingua e proporre formulazioni migliori o correzioni. L’originale è sempre uno dei candidati. Se vince l’originale, non viene modificato nulla.

Il cuore è la verifica reciproca. Ogni IA è brava a giudicare testi altrui, anche se a volte sbaglia essa stessa. Il modulo sfrutta questo aspetto: più fornitori scrivono una versione ciascuno e poi gli stessi fornitori valutano tutte le versioni senza sapere da chi provengano. Un fornitore non valuta la propria versione.

Come nasce una proposta

Flusso: tradurre, verificare, valutare, accordarsi, approvazione da parte di persone

  1. Tradurre. Ogni traduttore scrive in parallelo una versione.
  2. Controlli fissi. Senza IA si verifica se tag HTML, entità, segnaposto come %s o {}, numeri e link sono rimasti invariati. Una versione che viola queste regole non può mai vincere, per quanto suoni fluida.
  3. Valutare. Le restanti versioni vengono mescolate e rese anonime. Ogni revisore assegna a ciascuna un voto per accuratezza e uno per naturalezza (da 1 a 10), indica un favorito e può proporre un miglioramento.
  4. Accordarsi. Il punteggio di una versione è 0,5 × voto medio + 5 × quota dei voti favoriti. Si considera raggiunto l’accordo se la versione migliore ha almeno il 60 % dei voti favoriti e un voto medio di almeno 7,0.
  5. Secondo turno. Senza accordo, le versioni migliori, insieme alle proposte di miglioramento dei revisori, vengono sottoposte ancora una volta a valutazione.
  6. Persona. Se anche allora non è univoco, la proposta attende una decisione.

Se ci sono solo servizi di traduzione puri senza funzione di verifica (ad esempio DeepL), un risultato vale come concordato solo se almeno due servizi hanno fornito esattamente lo stesso testo. Nella correzione di bozze i risultati devono restare riconoscibilmente simili all’originale (somiglianza almeno 0,6, stessi numeri). I piccoli modelli gratuiti rispondono a volte a un lotto con testi spostati o estranei. Tali risposte vengono scartate invece di essere votate. Un glossario fissa nomi di marchi e termini stabili.

Fornitori: con e senza chiave

Servizi gratuiti e a pagamento possono partecipare alla stessa votazione. Il modulo include impostazioni predefinite per molti fornitori; dopo l’installazione sono tutti disattivati.

TipoTraduceVerifica / correggeEsempi
Interfaccia compatibile con OpenAIsìsìOpenAI, Mistral, DeepSeek, xAI, Groq, Together, OpenRouter, Cerebras, Qwen, Moonshot, GitHub Models, Hugging Face, Ollama, LM Studio, vLLM, llama.cpp
Compatibile con OpenAI senza chiavesìsìOllama sul proprio server, Pollinations
AnthropicsìsìClaude
Google Gemini, Coheresìsì
Comando localesìsìclaude -p o qualsiasi programma che legga da stdin e restituisca la risposta
Servizi di traduzionesìnoDeepL, Google Translate, Azure Translator, LibreTranslate, MyMemory, Lingva

Si inserisce la chiave (o il nome di una variabile d’ambiente che la contiene), si preme Verifica connessione e si attiva il fornitore. I nomi dei modelli nelle impostazioni predefinite sono punti di partenza; chi li utilizza dovrebbe confrontarli con l’elenco aggiornato del fornitore. Con due o più fornitori c’è un vero controllo incrociato, con uno solo nessuno controlla il suo lavoro. La procedura guidata lo segnala.

Un intero sito web in una volta

Una procedura guidata iniziale (menu Traduzione IA → Inizia qui) spiega i passaggi e crea la prima regola. Se il modulo website è installato, arriva automaticamente anche il modulo ponte ai_translation_consensus_website. Aggiunge l’ambito “Un intero sito web con tutto ciò che contiene”: si sceglie il sito web e ci si fa proporre i contenuti. Il modulo esamina tutti i modelli con campi traducibili che appartengono al sito web (pagine, menu, blog, prodotti, eventi, forum, corsi e altro) e propone una regola per tipo di contenuto, con le lingue del sito web come destinazione.

Procedura guidata iniziale con l’ambito intero sito web e i tipi di contenuto proposti

  • Ciò che non è installato (forum, corsi, gallerie) non compare e verrà incluso in seguito, non appena installato.
  • I modelli dello shop vengono proposti solo se il sito web ha uno shop. Vengono rilevati solo i record pubblicati.
  • Contatti, aziende, fornitori di pagamento, listini, modalità di consegna, programmi fedeltà e filtri snippet non vengono volutamente offerti dal modulo.
  • I nomi di indirizzo delle pagine (seo_name) non vengono tradotti.
  • I tipi non desiderati possono essere rimossi prima della creazione.

La creazione e la ricerca non costano nulla: la regola elenca soltanto quali testi richiedono lavoro. Solo durante l’elaborazione vengono richiamati i fornitori e sorgono costi.

Dashboard, costi e avvio automatico

La dashboard mostra per ogni regola quanti testi sono pronti, in attesa di una conferma o di una persona, in coda o falliti. A ciò si aggiungono la suddivisione per lingua e fornitore, i costi finora sostenuti e quelli ancora previsti, il tempo residuo stimato e l’interruttore per l’elaborazione pianificata.

Dashboard con avanzamento, costi, token e lingue. Dati di esempio.

I numeri in questa figura sono dati di esempio e non dicono nulla sui costi reali.

  • I costi vengono calcolati in base a ciò che i fornitori comunicano effettivamente: token (OpenAI, Anthropic, Gemini, Cohere) o caratteri (DeepL, Google, Azure). I token vengono sempre mostrati, il denaro solo se Lei ha inserito il prezzo per milione di token (o di caratteri) presso il fornitore. Le impostazioni predefinite non contengono prezzi, perché questi cambiano. I servizi che non comunicano i token vengono stimati in base alla lunghezza del testo e contrassegnati come stima.
  • Previsione: costi medi e tempo di lavoro per testo moltiplicati per il numero di testi in coda. È una stima che migliora con i primi lotti.
  • Avvio automatico: le regole con l’opzione Avvia automaticamente quando un record cambia cercano a ogni esecuzione dell’azione pianificata solo i record modificati dall’ultima ricerca. Con l’azione pianificata attivata, un sito web modificato viene quindi tradotto di nuovo senza alcun intervento.
  • Notifica di completamento: quando l'ultimo testo aperto di una regola è stato elaborato, nel canale AI Translation compare una sola volta il messaggio «Tutte le lingue tradotte» (nella revisione: «Tutti i testi verificati»).

Approvazione da parte di persone

Per impostazione predefinita il modulo non scrive nulla nei vostri record senza il vostro consenso. Ogni proposta mostra le versioni, chi le ha scritte, i voti e le osservazioni dei revisori. Potete accettare la proposta, scegliere un'altra versione, digitare una formulazione propria oppure rifiutarla.

Proposta con tre candidati, voti, voti per il favorito e la decisione di una persona. Testo di esempio interamente inventato.

Il testo e i nomi dei fornitori in questa immagine sono interamente inventati, solo per mostrare la schermata.

Chi si fida di una regola può attivare Accetta automaticamente in caso di accordo. Le proposte senza accordo restano comunque in attesa di una persona. Al momento dell'accettazione il modulo verifica ancora una volta se nel frattempo il testo di origine è cambiato, ripete i controlli del markup e scrive senza tracciamento e senza notificare i follower.

Sicurezza e protezione dei dati

  • Dopo l'installazione tutto è disattivato. I fornitori e l'azione pianificata sono disattivati. Senza un vostro intervento non viene inviato nulla.
  • I testi lasciano il vostro server non appena è coinvolto un servizio in hosting. Una regola può essere contrassegnata come Riservata; in tal caso il testo viene visto solo dai fornitori indicati come in esecuzione su un'infrastruttura propria.
  • Le chiavi si trovano in un campo visibile solo agli amministratori oppure in una variabile d'ambiente a cui rimanda soltanto il nome. Nei messaggi di errore vengono mascherate e vengono inviate negli header. Eccezione: la chiave facoltativa di MyMemory può essere trasmessa lì solo come parametro di query.
  • Comando locale esegue un programma ed è perciò bloccato finché il parametro di sistema ai_translation_consensus.allow_command non viene impostato su True. Il comando viene richiamato senza shell e viene eseguito in una directory temporanea vuota.
  • Prompt injection: le richieste contrassegnano il testo come dati. Le istruzioni contenute nel testo tradotto non vengono eseguite e un risultato che viola tag o segnaposto viene scartato.
  • I servizi gratuiti hanno dei limiti. Pollinations consente in forma anonima una risposta ogni 45 secondi. L'opzione del fornitore min_interval rispetta l'intervallo e le risposte «Riprovare più tardi» vengono tenute in considerazione.

Installazione

git clone https://github.com/Alex0176/odoo-ai-translation-consensus.git
ln -s /pfad/odoo-ai-translation-consensus/ai_translation_consensus /pfad/addons/
ln -s /pfad/odoo-ai-translation-consensus/ai_translation_consensus_website /pfad/addons/
odoo-bin -c odoo.conf -d <datenbank> -i ai_translation_consensus --stop-after-init

Sono necessari Odoo 19 e il pacchetto Python requests. È inclusa una traduzione tedesca. Il modulo ponte ai_translation_consensus_website viene installato automaticamente se è presente website. Dopo l'installazione il servizio Odoo deve essere riavviato, perché il modulo contiene codice Python. Chi gestisce un sistema di produzione installa il modulo prima su una copia del database.

I primi passi: aprire il menu Traduzione IA → Fornitori, testare e attivare i servizi, poi Inizia qui e creare la prima regola. Con Cerca testi vengono generate le proposte, con Elabora un lotto vengono richiamati i fornitori. Iniziate con una regola piccola, ad esempio un singolo articolo del blog e due lingue, e controllate risultato e costi prima di mettere in coda un intero sito web.

limiti

  • La qualità dipende dai modelli che attivate. La verifica incrociata riduce gli errori dei singoli modelli, ma non offre alcuna garanzia. Per i testi rilevanti dal punto di vista legale o della sicurezza il modulo non sostituisce un madrelingua.
  • I costi crescono rapidamente. Un testo costa una chiamata per traduttore, una chiamata di verifica per revisore e, in caso di voto diviso, un secondo turno. Il contesto della pagina aumenta l'input di ogni chiamata. Una regola con 45 lingue di destinazione moltiplica il numero dei testi. Limitate le esecuzioni con Record per ricerca, Nuove proposte per ricerca e Proposte per esecuzione cron e aggiungete come revisori modelli economici o locali.
  • Solo campi con translate=True. Il testo formattato viene elaborato per blocco (il meccanismo dei term di Odoo).
  • Prezzi e nomi dei modelli cambiano. Le impostazioni predefinite non sono un listino aggiornato.
  • Sviluppato per Odoo 19.0 Community. Le altre versioni non sono supportate.

Domande frequenti

Viene tradotto o sovrascritto qualcosa senza il mio consenso?

No, finché non attivate Accetta automaticamente in caso di accordo. Anche in tal caso vengono scritte solo le proposte con accordo. I fornitori e l'azione pianificata dopo l'installazione sono disattivati.

Ho bisogno di chiavi per i fornitori a pagamento?

Solo per i fornitori che ne richiedono una. Con Pollinations, MyMemory o un modello eseguito in locale (ad esempio Ollama) se ne può fare a meno. I servizi gratuiti sono spesso limitati e lenti; per un intero sito web sono per lo più adatti solo come integrazione.

Quanto costa una traduzione?

Dipende dal fornitore, dal modello, dalla lunghezza del testo e dal numero di lingue; per questo il modulo non indica cifre fisse. La dashboard mostra consumo e costi non appena avete inserito i prezzi e stima i costi residui dei testi in coda.

Posso mantenere riservati i testi?

Sì, con l'opzione di regola Riservata. In tal caso lavorano solo i fornitori contrassegnati come in esecuzione sulla vostra infrastruttura, ad esempio un Ollama locale.

Sostituisce la traduzione nativa di Odoo?

No. Il modulo utilizza il multilinguismo di Odoo e scrive nelle stesse traduzioni che altrimenti gestite a mano.

Con quale licenza è distribuito?

Con la AGPL-3. Errori e miglioramenti sono benvenuti come issue nel repository GitHub .

Supporto da parte di Biricon IT Services

Seguiamo installazioni Odoo per piccole e medie imprese: dall'introduzione alle personalizzazioni e alle migrazioni, fino alla gestione corrente. Se gestite il vostro sito web Odoo in più lingue, volete mettere in sicurezza le traduzioni con l'IA o portare un modulo in modo sicuro nella vostra istanza di produzione, saremo lieti di aiutarvi. Altri sviluppi propri: Archiviare un'azienda insieme agli utenti del portale, Numeri di documento da prefisso, anno e contatore e Firmenbuch e verifica degli indirizzi per clienti austriaci.

Ci contatti ora

Aggiornamento: 3 novembre 2026. Versione del modulo 19.0.1.0.0. Le immagini mostrano dati di esempio inventati.