Prevesti spletno mesto v deset, dvajset ali štirideset jezikov je z eno samo umetno inteligenco hitro narejeno. Težje je vprašanje, ali lahko rezultatu zaupamo. Posamezen jezikovni model občasno izmisli besede, prevede imena izdelkov ali spremeni številko, in tega sam ne opazi. Zato smo za Odoo 19 napisali modul, pri katerem več umetnih inteligenc in prevajalskih storitev dela na istem besedilu, se anonimno medsebojno ocenjuje in se dogovori za formulacijo, ki hkrati zveni natančno in naravno. Kar ni enoznačno, dobi človek v odločitev.
Modul se imenuje ai_translation_consensus in je na voljo kot prosta programska oprema pod licenco AGPL-3 na GitHubu:
github.com/Alex0176/odoo-ai-translation-consensus
Vsebina tega prispevka
- Zamisel: navzkrižno preverjanje namesto zaupanja
- Tako nastane predlog
- Ponudniki: s ključem in brez
- Celotno spletno mesto naenkrat
- Nadzorna plošča, stroški in samodejni zagon
- Potrditev s strani ljudi
- Varnost in varstvo podatkov
- Namestitev
- omejitvah
- Pogosta vprašanja
- Podpora podjetja Biricon IT Services
Zamisel: navzkrižno preverjanje namesto zaupanja
Modul zmore dvoje:
- Prevajanje: dopolniti manjkajoče (ali zastarele) prevode vsakega prevedljivega polja v Odoo, torej prispevke na blogu, spletne strani, menije, izdelke in vse drugo, kar Odoo shranjuje večjezično. Umetne inteligence pri tem ne vidijo samo posameznega stavka, temveč sosednje bloke in izsek cele strani. Tako se posamezne besede razumejo v pravem kontekstu.
- Lektoriranje: preveriti besedilo v njegovem lastnem jeziku in predlagati boljše formulacije ali popravke. Izvirnik je pri tem vedno eden od kandidatov. Če zmaga izvirnik, se nič ne spremeni.
Jedro je medsebojno preverjanje. Vsaka umetna inteligenca je dobra pri presojanju tujih besedil, tudi če se sama občasno zmoti. To modul izkorišča: več ponudnikov napiše vsak svojo različico, ti isti ponudniki pa nato ocenijo vse različice, ne da bi vedeli, od koga izvirajo. Svoje različice ponudnik ne ocenjuje.
Tako nastane predlog
- Prevajanje. Vsak prevajalec vzporedno napiše svojo različico.
- Fiksna preverjanja. Brez umetne inteligence se preveri, ali so oznake HTML, entitete, označbe mesta, kot sta
%sali{}, številke in povezave ostale nespremenjene. Različica, ki to krši, ne more nikoli zmagati, ne glede na to, kako tekoče zveni. - Ocenjevanje. Preostale različice se premešajo in anonimizirajo. Vsak preverjevalec za vsako da oceno za natančnost in za naravnost (1 do 10), navede favorita in lahko predlaga izboljšavo.
- Dogovor. Rang različice je 0,5 × povprečna ocena + 5 × delež glasov za favorita. Kot dogovor šteje, če ima najboljša različica vsaj 60 % glasov za favorita in povprečno oceno vsaj 7,0.
- Drugi krog. Brez dogovora gredo najboljše različice skupaj s predlogi izboljšav preverjevalcev še enkrat v ocenjevanje.
- Človek. Če tudi potem ni enoznačno, predlog čaka na odločitev.
Če so na voljo samo čiste prevajalske storitve brez funkcije preverjanja (na primer DeepL), rezultat velja za dogovorjenega samo, če sta vsaj dve storitvi dostavili popolnoma isto besedilo. Pri lektoriranju morajo rezultati ostati prepoznavno podobni izvirniku (podobnost vsaj 0,6, enake številke). Majhni brezplačni modeli včasih odgovorijo na sveženj s premaknjenimi ali tujimi besedili. Takšni odgovori se zavržejo, namesto da bi se glasovalo o njih. Glosar hrani imena blagovnih znamk in stalne pojme.
Ponudniki: s ključem in brez
Brezplačne in plačljive storitve so lahko v istem glasovanju. Modul prinaša prednastavitve za mnoge ponudnike; vse so po namestitvi izklopljene.
| Vrsta | Prevaja | Preverja / popravlja | Primeri |
|---|---|---|---|
| Vmesnik, združljiv z OpenAI | da | da | OpenAI, Mistral, DeepSeek, xAI, Groq, Together, OpenRouter, Cerebras, Qwen, Moonshot, GitHub Models, Hugging Face, Ollama, LM Studio, vLLM, llama.cpp |
| Združljivo z OpenAI brez ključa | da | da | Ollama na lastnem strežniku, Pollinations |
| Anthropic | da | da | Claude |
| Google Gemini, Cohere | da | da | |
| Lokalni ukaz | da | da | claude -p ali kateri koli program, ki bere iz stdin in izpiše odgovor |
| Prevajalske storitve | da | ne | DeepL, Google Translate, Azure Translator, LibreTranslate, MyMemory, Lingva |
Vnese se ključ (ali ime spremenljivke okolja, ki ga vsebuje), pritisne Preizkusi povezavo in vklopi ponudnika. Imena modelov v prednastavitvah so izhodišča; kdor jih uporablja, naj jih uskladi z aktualnim seznamom ponudnika. Z dvema ali več ponudniki obstaja pravo navzkrižno preverjanje, z enim samim nihče ne preverja njegovega dela. Pomočnik na to opozori.
Celotno spletno mesto naenkrat
Zagonski pomočnik (meni Prevajanje z umetno inteligenco → Začnite tukaj) razloži korake in ustvari prvo pravilo. Če je nameščen modul website, samodejno pride z njim še mostni modul ai_translation_consensus_website. Dopolni obseg „Celotno spletno mesto z vsem, kar je na njem“: izberete spletno mesto in pustite predlagati vsebine. Modul pogleda vse modele s prevedljivimi polji, ki pripadajo spletnemu mestu (strani, meniji, blogi, izdelki, dogodki, forumi, tečaji in več), in predlaga eno pravilo za vrsto vsebine, z jeziki spletnega mesta kot ciljem.
- Kar ni nameščeno (forumi, tečaji, galerije), se ne prikaže in se doda pozneje, ko je nameščeno.
- Modeli trgovine se predlagajo samo, če ima spletno mesto trgovino. Zajamejo se samo objavljeni zapisi.
- Kontaktov, podjetij, ponudnikov plačil, cenikov, načinov dostave, programov zvestobe in filtrov odrezkov modul namenoma ne ponuja.
- Naslovna imena strani (
seo_name) se ne prevajajo. - Neželene vrste lahko pred ustvarjanjem odstranite.
Ustvarjanje in iskanje ne stane nič: pravilo samo našteje, katera besedila potrebujejo delo. Šele pri obdelavi se kličejo ponudniki in nastanejo stroški.
Nadzorna plošča, stroški in samodejni zagon
Nadzorna plošča za vsako pravilo kaže, koliko besedil je končanih, čaka na potrditev ali človeka, je v čakalni vrsti ali ni uspelo. Poleg tega so razčlenitev po jeziku in ponudniku, dosedanji in še pričakovani stroški, ocenjeni preostali čas in stikalo za načrtovano obdelavo.
Številke na tej sliki so vzorčni podatki in ne povedo nič o resničnih stroških.
- Stroški se izračunajo iz tega, kar ponudniki dejansko sporočijo: žetoni (OpenAI, Anthropic, Gemini, Cohere) ali znaki (DeepL, Google, Azure). Žetoni se vedno prikažejo, denar samo, če ste pri ponudniku vnesli ceno na milijon žetonov (ali znakov). Prednastavitve ne vsebujejo cen, ker se te spreminjajo. Storitve, ki ne sporočajo žetonov, se ocenijo iz dolžine besedila in označijo kot ocena.
- Napoved: povprečni stroški in delovni čas na besedilo krat število besedil v čakalni vrsti. To je ocena, ki se z prvimi svežnji izboljšuje.
- Samodejni zagon: pravila z možnostjo Samodejno začni, ko se zapis spremeni pri vsakem zagonu načrtovanega dejanja iščejo samo zapise, ki so bili spremenjeni od zadnjega iskanja. Ko je načrtovano dejanje vklopljeno, se urejena spletna stran torej brez posega znova prevede.
- Sporočilo o zaključku: Ko je zadnje odprto besedilo pravila obdelano, se v kanalu AI Translation enkrat prikaže sporočilo „Vsi jeziki prevedeni“ (pri lekturi „Vsa besedila preverjena“).
Potrditev s strani ljudi
Modul privzeto ničesar ne zapiše v vaše zapise brez vaše odobritve. Vsak predlog prikazuje različice, njihove avtorje, ocene in pripombe pregledovalcev. Predlog lahko sprejmete, izberete drugo različico, vtipkate lastno formulacijo ali ga zavrnete.
Besedilo in imena ponudnikov na tej sliki so povsem izmišljeni, da prikažejo pogled.
Kdor zaupa pravilu, lahko vklopi Samodejno prevzemi soglasje. Predlogi brez soglasja tudi takrat počakajo na človeka. Pri prevzemu modul še enkrat preveri, ali se je izvorno besedilo medtem spremenilo, ponovno izvede preverjanja označb in zapiše brez sledenja ter brez obveščanja sledilcev.
Varnost in varstvo podatkov
- Po namestitvi je vse izklopljeno. Ponudniki in načrtovano dejanje so onemogočeni. Brez vašega posredovanja se ne pošlje nič.
- Besedila zapustijo vaš strežnik, takoj ko je vključena gostovana storitev. Pravilo lahko označite kot Zaupno; tedaj besedilo vidijo le ponudniki, ki so označeni kot delujoči na lastni infrastrukturi.
- Ključi so shranjeni v polju, ki ga vidijo samo skrbniki, ali v spremenljivki okolja, na katero kaže le ime. V sporočilih o napakah so zakriti in se ne pošiljajo v glavah. Izjema: neobvezni ključ storitve MyMemory se tam lahko posreduje le kot parameter poizvedbe.
- Lokalni ukaz zažene program in je zato blokiran, dokler sistemskega parametra
ai_translation_consensus.allow_commandne nastavite naTrue. Ukaz se kliče brez lupine in teče v praznem začasnem imeniku. - Vbrizgavanje ukazov (prompt injection): Naloge besedilo označijo kot podatke. Navodila v prevajanem besedilu se ne upoštevajo, rezultat, ki krši oznake ali označbe mest, pa se zavrže.
- Brezplačne storitve imajo omejitve. Pollinations anonimno dovoljuje en odgovor na 45 sekund. Možnost ponudnika
min_intervalupošteva ta razmik, odgovori „Poskusite znova pozneje“ pa se upoštevajo.
Namestitev
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
Potrebna sta Odoo 19 in Python paket requests. Priložen je nemški prevod. Povezovalni modul ai_translation_consensus_website se samodejno namesti skupaj z njim, če je prisoten website. Po namestitvi je treba storitev Odoo znova zagnati, ker modul vsebuje kodo Python. Kdor upravlja produkcijski sistem, naj modul najprej namesti na kopijo podatkovne baze.
Prvi koraki: odprite meni KI-prevajanje → Ponudniki, preizkusite in vklopite storitve, nato Začni tukaj in ustvarite prvo pravilo. Z Poišči besedila se ustvarijo predlogi, z Obdelaj paket se pokličejo ponudniki. Začnite z majhnim pravilom, na primer z enim samim blogovskim prispevkom in dvema jezikoma, ter si oglejte rezultat in stroške, preden v čakalno vrsto uvrstite celotno spletno stran.
omejitvah
- Kakovost je odvisna od modelov, ki jih vklopite. Navzkrižno preverjanje zmanjša napake posameznih modelov, vendar ne daje jamstva. Pri pravno ali varnostno kritičnih besedilih modul ne nadomesti maternega govorca.
- Stroški hitro rastejo. Besedilo povzroči en klic na prevajalca, en klic za preverjanje na pregledovalca in pri deljenem glasovanju še drugi krog. Kontekst strani poveča vhod vsakega klica. Pravilo s 45 ciljnimi jeziki večkratno poveča število besedil. Omejite zagone z Zapisi na iskanje, Novi predlogi na iskanje in Predlogi na zagon cron ter kot pregledovalce dodajte cenovno ugodne ali lokalne modele.
- Samo polja s
translate=True. Oblikovano besedilo se obdeluje po blokih (Odoojev mehanizem terminov). - Cene in imena modelov se spreminjajo. Privzete vrednosti niso vzdrževan cenik.
- Izdelano za Odoo 19.0 Community. Druge različice niso podprte.
Pogosta vprašanja
Ali se kaj prevede ali prepiše brez moje odobritve?
Ne, dokler ne vklopite Samodejno prevzemi soglasje. Tudi takrat se zapišejo samo predlogi s soglasjem. Ponudniki in načrtovano dejanje so po namestitvi izklopljeni.
Ali potrebujem ključe za plačljive ponudnike?
Samo za ponudnike, ki jih zahtevajo. S storitvami Pollinations, MyMemory ali lokalno upravljanim modelom (na primer Ollama) gre tudi brez njih. Brezplačne storitve so pogosto omejene in počasne, za celotno spletno stran pa so običajno primerne le kot dopolnilo.
Koliko stane prevod?
To je odvisno od ponudnika, modela, dolžine besedila in števila jezikov, zato modul ne določa fiksnih številk. Nadzorna plošča prikazuje porabo in stroške, ko vnesete cene, ter oceni preostale stroške besedil v čakalni vrsti.
Ali lahko besedila ohranim zaupna?
Da, z možnostjo pravila Zaupno. Tedaj delujejo samo ponudniki, ki so označeni kot delujoči na vaši lastni infrastrukturi, na primer lokalni Ollama.
Ali to nadomesti Odoojev lastni prevod?
Ne. Modul uporablja večjezičnost sistema Odoo in zapisuje v iste prevode, ki jih sicer vzdržujete ročno.
Pod katero licenco je?
Pod AGPL-3. Napake in izboljšave so dobrodošle kot issue v repozitoriju GitHub .
Podpora podjetja Biricon IT Services
Skrbimo za namestitve Odoo za mala in srednja podjetja: od uvedbe prek prilagoditev in migracij do tekočega obratovanja. Če svojo spletno stran Odoo upravljate večjezično, prevode zavarujete s KI ali želite modul varno prenesti v svojo produkcijsko instanco, vam radi pomagamo. Druge lastne razvoje: Arhiviranje podjetja skupaj s portalskimi uporabniki, Številke dokumentov iz predpone, leta in števca in Firmenbuch in preverjanje naslovov za avstrijske stranke.
Stanje: 3. november 2026. Različica modula 19.0.1.0.0. Slike prikazujejo izmišljene vzorčne podatke.