Skip to Content

Odoo 19: KI-oversettelse med motkontroll – modulen ai_translation_consensus, der flere KI-er kontrollerer hverandre

3. november 2026 | Odoo 19 Community | Egenutvikling
3. november 2026 etter
Odoo 19: KI-oversettelse med motkontroll – modulen ai_translation_consensus, der flere KI-er kontrollerer hverandre

Odoo 19-modulen ai_translation_consensus: flere KI-er oversetter, vurderer hverandre anonymt, og et menneske godkjenner

Å oversette et nettsted til ti, tjue eller førti språk er raskt gjort med én enkelt KI. Vanskeligere er spørsmålet om man kan stole på resultatet. En enkelt språkmodell finner av og til opp ord, oversetter produktnavn med eller endrer et tall, og merker det ikke selv. Derfor har vi skrevet en modul for Odoo 19 der flere KI-er og oversettelsestjenester arbeider med samme tekst, vurderer hverandres resultater anonymt og blir enige om formuleringen som samtidig høres nøyaktig og naturlig ut. Det som ikke er entydig, får et menneske til å avgjøre.

Modulen heter ai_translation_consensus og ligger som fri programvare under AGPL-3-lisensen på GitHub:

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

Ideen: motkontroll i stedet for tillit

Modulen kan to ting:

  • Oversette: fylle ut manglende (eller utdaterte) oversettelser av hvert oversettbare felt i Odoo, altså blogginnlegg, nettsider, menyer, produkter og alt annet Odoo lagrer flerspråklig. KI-ene ser da ikke bare den enkelte setningen, men nabo-blokkene og et utsnitt av hele siden. Slik forstås enkeltord i riktig sammenheng.
  • Korrekturlese: kontrollere teksten på sitt eget språk og foreslå bedre formuleringer eller rettelser. Originalen er da alltid en av kandidatene. Vinner originalen, endres ingenting.

Kjernen er den gjensidige kontrollen. Hver KI er flink til å vurdere andres tekster, selv om den selv av og til bommer. Det utnytter modulen: Flere leverandører skriver hver sin versjon, og de samme leverandørene vurderer deretter alle versjonene uten å vite hvem de stammer fra. Sin egen versjon vurderer en leverandør ikke.

Slik oppstår et forslag

Forløp: oversette, kontrollere, vurdere, bli enige, godkjenning av mennesker

  1. Oversette. Hver oversetter skriver parallelt en versjon.
  2. Faste kontroller. Uten KI kontrolleres det om HTML-tagger, entiteter, plassholdere som %s eller {}, tall og lenker er forblitt uendret. En versjon som bryter dette, kan aldri vinne, uansett hvor flytende den høres ut.
  3. Vurdere. De øvrige versjonene blandes og anonymiseres. Hver kontrollør gir for hver av dem en karakter for nøyaktighet og for naturlighet (1 til 10), nevner en favoritt og kan foreslå en forbedring.
  4. Bli enige. Rangeringen til en versjon er 0,5 × gjennomsnittskarakter + 5 × andel favorittstemmer. Som enighet regnes det når den beste versjonen har minst 60 % av favorittstemmene og en gjennomsnittskarakter på minst 7,0.
  5. Andre runde. Uten enighet går de beste versjonene sammen med kontrollørenes forbedringsforslag en gang til inn i vurderingen.
  6. Menneske. Blir det heller ikke da entydig, venter forslaget på en avgjørelse.

Finnes det bare rene oversettelsestjenester uten kontrollfunksjon (for eksempel DeepL), regnes et resultat bare som avtalt hvis minst to tjenester har levert nøyaktig samme tekst. Ved korrekturlesing må resultatene forbli gjenkjennelig like originalen (likhet minst 0,6, samme tall). Små gratis modeller besvarer av og til en bunke med forskjøvne eller fremmede tekster. Slike svar forkastes i stedet for å bli stemt over. En ordliste fastholder varemerkenavn og faste begreper.

Leverandører: med og uten nøkkel

Gratis og betalte tjenester kan sitte i samme avstemning. Modulen leveres med forhåndsinnstillinger for mange leverandører; alle er slått av etter installasjonen.

TypeOversetterKontrollerer / korrigererEksempler
OpenAI-kompatibelt grensesnittjajaOpenAI, Mistral, DeepSeek, xAI, Groq, Together, OpenRouter, Cerebras, Qwen, Moonshot, GitHub Models, Hugging Face, Ollama, LM Studio, vLLM, llama.cpp
OpenAI-kompatibelt uten nøkkeljajaOllama på egen server, Pollinations
AnthropicjajaClaude
Google Gemini, Coherejaja
Lokal kommandojajaclaude -p eller hvilket som helst program som leser fra stdin og skriver ut svaret
OversettelsestjenesterjaneiDeepL, Google Translate, Azure Translator, LibreTranslate, MyMemory, Lingva

Man legger inn nøkkelen (eller navnet på en miljøvariabel som inneholder den), trykker på Test tilkobling og slår på leverandøren. Modellnavnene i forhåndsinnstillingene er utgangspunkter; den som bruker dem, bør sammenligne dem med leverandørens gjeldende liste. Med to eller flere leverandører får man en ekte motkontroll, med bare én kontrollerer ingen arbeidet til denne. Veiviseren peker på dette.

Et helt nettsted på én gang

En startveiviser (meny KI-oversettelse → Start her) forklarer trinnene og oppretter den første regelen. Er modulen website installert, følger brumodulen ai_translation_consensus_website automatisk med. Den legger til omfanget «Et helt nettsted med alt som er på det»: Man velger nettstedet og lar innholdet foreslås. Modulen ser på alle modeller med oversettbare felter som hører til nettstedet (sider, menyer, blogger, produkter, arrangementer, fora, kurs og mer), og foreslår én regel per innholdstype, med nettstedets språk som mål.

Startveiviser med omfanget helt nettsted og de foreslåtte innholdstypene

  • Det som ikke er installert (fora, kurs, gallerier), vises ikke og tas med senere så snart det er installert.
  • Butikkmodeller foreslås bare hvis nettstedet har en butikk. Det registreres bare publiserte poster.
  • Kontakter, firmaer, betalingsleverandører, prislister, leveringsmåter, lojalitetsprogrammer og snippet-filtre tilbyr modulen bevisst ikke.
  • Adressenavnene til sidene (seo_name) oversettes ikke.
  • Uønskede typer kan fjernes før opprettelsen.

Opprettelsen og søkingen koster ingenting: Regelen lister bare opp hvilke tekster som trenger arbeid. Først ved behandlingen kalles leverandørene, og det oppstår kostnader.

Dashbord, kostnader og automatisk start

Dashbordet viser per regel hvor mange tekster som er ferdige, venter på en bekreftelse eller et menneske, er satt i kø eller har mislyktes. I tillegg kommer fordelingen etter språk og leverandør, de hittil påløpte og de ennå forventede kostnadene, den anslåtte gjenstående tiden og bryteren for den planlagte behandlingen.

Dashbord med fremdrift, kostnader, tokens og språk. Eksempeldata.

Tallene i denne illustrasjonen er eksempeldata og sier ingenting om reelle kostnader.

  • Kostnader beregnes ut fra det leverandørene faktisk melder: tokens (OpenAI, Anthropic, Gemini, Cohere) eller tegn (DeepL, Google, Azure). Tokens vises alltid, penger bare hvis du har lagt inn prisen per million tokens (eller tegn) hos leverandøren. Forhåndsinnstillingene inneholder ingen priser, fordi disse endrer seg. Tjenester som ikke melder tokens, anslås ut fra tekstlengden og merkes som estimat.
  • Prognose: gjennomsnittlige kostnader og arbeidstid per tekst ganger antall tekster i køen. Det er et estimat som blir bedre med de første bunkene.
  • Automatisk start: Regler med alternativet Start av seg selv når en post endres søker ved hver kjøring av den planlagte handlingen bare etter poster som er endret siden forrige søk. Med planlagt handling slått på oversettes et redigert nettsted altså på nytt uten et håndgrep.
  • Fullføringsmelding: Når den siste åpne teksten i en regel er ferdig behandlet, vises meldingen «Alle språk oversatt» (ved korrekturlesing «Alle tekster kontrollert») én gang i kanalen AI Translation.

Godkjenning av mennesker

Som standard skriver modulen ingenting til postene dine uten samtykke. Hvert forslag viser variantene, hvem som har skrevet dem, karakterene og merknadene fra kontrollørene. Du kan godta forslaget, velge en annen variant, skrive inn din egen formulering eller avvise det.

Forslag med tre kandidater, karakterer, favorittstemmer og avgjørelse fra et menneske. Eksempeltekst helt fiktiv.

Teksten og leverandørnavnene i dette bildet er fiktive og er laget for å vise visningen.

Den som stoler på en regel, kan slå på Godta enighet automatisk. Forslag uten enighet venter likevel på et menneske. Ved godkjenning kontrollerer modulen en gang til om kildeteksten har endret seg i mellomtiden, kjører markup-kontrollene på nytt og skriver uten sporing og uten varsling av følgere.

Sikkerhet og personvern

  • Alt er av etter installasjonen. Leverandører og planlagt handling er deaktivert. Uten at du gjør noe, sendes ingenting.
  • Tekster forlater serveren din så snart en eksternt driftet tjeneste er involvert. En regel kan merkes som Fortrolig; da ser bare leverandører som er merket som kjørende på egen infrastruktur, teksten.
  • Nøkler ligger i et felt som bare administratorer ser, eller i en miljøvariabel der bare navnet er oppgitt. I feilmeldinger maskeres de, og de sendes i headere. Unntak: Den valgfrie nøkkelen til MyMemory kan der bare overføres som spørringsparameter.
  • Lokal kommando kjører et program og er derfor sperret til systemparameteren ai_translation_consensus.allow_command settes til True. Kommandoen kalles uten shell og kjører i en tom midlertidig mappe.
  • Prompt-injeksjon: Oppdragene merker teksten som data. Instruksjoner i den oversatte teksten følges ikke, og et resultat som bryter tagger eller plassholdere, forkastes.
  • Gratis tjenester har begrensninger. Pollinations tillater anonymt ett svar per 45 sekunder. Leverandøralternativet min_interval holder avstanden, og svar av typen «Prøv igjen senere» respekteres.

Installasjon

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

Det kreves Odoo 19 og Python-pakken requests. En tysk oversettelse følger med. Brumodulen ai_translation_consensus_website installeres automatisk med når website er til stede. Etter installasjonen må Odoo-tjenesten startes på nytt, fordi modulen inneholder Python-kode. Den som driver et produksjonssystem, installerer modulen først på en kopi av databasen.

De første trinnene: Åpne menyen KI-oversettelse → Leverandører, test tjenestene og slå dem på, gå så til Start her og opprett den første regelen. Med Søk etter tekster genereres forslagene, med Behandle en batch kalles leverandørene. Begynn med en liten regel, for eksempel ett enkelt blogginnlegg og to språk, og se på resultat og kostnader før du setter en hel nettside i kø.

begrensninger

  • Kvaliteten avhenger av modellene du slår på. Motkontrollen reduserer feil fra enkeltmodeller, men gir ingen garanti. For juridisk kritiske eller sikkerhetskritiske tekster erstatter ikke modulen en morsmålsbruker.
  • Kostnadene vokser raskt. Én tekst koster ett kall per oversetter, ett kontrollkall per kontrollør og, ved delt avstemning, en andre runde. Sidekontekst øker inndataene i hvert kall. En regel med 45 målspråk multipliserer antall tekster. Begrens kjøringene med Poster per søk, Nye forslag per søk og Forslag per cron-kjøring, og ta med rimelige eller lokale modeller som kontrollører.
  • Bare felt med translate=True. Formatert tekst behandles blokk for blokk (Odoos term-mekanisme).
  • Priser og modellnavn endrer seg. Standardverdiene er ingen vedlikeholdt prisliste.
  • Bygget for Odoo 19.0 Community. Andre versjoner støttes ikke.

Ofte stilte spørsmål

Blir noe oversatt eller overskrevet uten mitt samtykke?

Nei, så lenge du ikke slår på Godta enighet automatisk. Selv da skrives bare forslag med enighet. Leverandørene og den planlagte handlingen er av etter installasjonen.

Trenger jeg nøkler til betalte leverandører?

Bare for de leverandørene som krever det. Med Pollinations, MyMemory eller en lokalt drevet modell (for eksempel Ollama) går det uten. Gratis tjenester er ofte begrenset og trege, og for en hel nettside egner de seg som regel bare som supplement.

Hva koster en oversettelse?

Det avhenger av leverandør, modell, tekstlengde og antall språk, derfor oppgir ikke modulen faste tall. Dashbordet viser forbruk og kostnader så snart du har lagt inn prisene, og anslår restkostnadene for tekstene som står i kø.

Kan jeg holde tekster fortrolige?

Ja, med regelalternativet Fortrolig. Da arbeider bare leverandører som er merket som kjørende på din egen infrastruktur, for eksempel en lokal Ollama.

Erstatter dette Odoos egen oversettelse?

Nei. Modulen bruker Odoos flerspråklighet og skriver til de samme oversettelsene som du ellers vedlikeholder for hånd.

Under hvilken lisens står den?

Under AGPL-3. Feil og forbedringer er velkomne som issue i GitHub-repositoriet .

Støtte fra Biricon IT Services

Vi betjener Odoo-installasjoner for små og mellomstore bedrifter: fra innføring via tilpasninger og migreringer til løpende drift. Hvis du driver Odoo-nettsiden din flerspråklig, vil sikre oversettelser med KI eller ønsker å få en modul trygt inn i produksjonsinstansen, hjelper vi gjerne. Flere egenutviklinger: Arkivere firma inkludert portalbrukere, Dokumentnumre av prefiks, år og teller og Foretaksregister og adressekontroll for østerrikske kunder.

Ta kontakt nå

Per: 3. november 2026. Modulversjon 19.0.1.0.0. Bildene viser fiktive eksempeldata.