Preložiť webovú stránku do desiatich, dvadsiatich alebo štyridsiatich jazykov je s jednou AI rýchla záležitosť. Ťažšia je otázka, či sa dá výsledku dôverovať. Jediný jazykový model občas vymýšľa slová, prekladá aj názvy produktov alebo zmení číslo a sám si to nevšimne. Preto sme pre Odoo 19 napísali modul, v ktorom viaceré AI a prekladateľské služby pracujú na tom istom texte, navzájom a anonymne hodnotia svoje výsledky a dohodnú sa na formulácii, ktorá znie zároveň presne a prirodzene. O tom, čo nie je jednoznačné, rozhodne človek.
Modul sa volá ai_translation_consensus a je dostupný ako slobodný softvér pod licenciou AGPL-3 na GitHube:
github.com/Alex0176/odoo-ai-translation-consensus
Obsah tohto príspevku
Myšlienka: krížová kontrola namiesto dôvery
Modul vie dve veci:
- Prekladať: doplniť chýbajúce (alebo zastarané) preklady každého prekladateľného poľa v Odoo, teda blogové príspevky, webové stránky, menu, produkty a všetko ostatné, čo Odoo ukladá viacjazyčne. AI pritom vidia nielen jednotlivú vetu, ale aj susedné bloky a výrez celej stránky. Jednotlivé slová sa tak chápu v správnom kontexte.
- Korektúra: skontrolovať text v jeho vlastnom jazyku a navrhnúť lepšie formulácie alebo opravy. Originál je pritom vždy jedným z kandidátov. Ak vyhrá originál, nič sa nezmení.
Jadrom je vzájomná kontrola. Každá AI je dobrá v posudzovaní cudzích textov, aj keď sa sama občas pomýli. To modul využíva: viacerí poskytovatelia napíšu po jednej verzii a tí istí poskytovatelia potom hodnotia všetky verzie bez toho, aby vedeli, od koho pochádzajú. Vlastnú verziu poskytovateľ nehodnotí.
Ako vzniká návrh
- Preklad. Každý prekladateľ paralelne napíše jednu verziu.
- Pevné kontroly. Bez AI sa kontroluje, či značky HTML, entity, zástupné znaky ako
%salebo{}, čísla a odkazy zostali nezmenené. Verzia, ktorá to porušuje, nikdy nemôže vyhrať, aj keď znie akokoľvek plynulo. - Hodnotenie. Ostatné verzie sa zamiešajú a anonymizujú. Každý posudzovateľ dá každej známku za presnosť a za prirodzenosť (1 až 10), uvedie favorita a môže navrhnúť zlepšenie.
- Dohoda. Poradie verzie je 0,5 × priemerná známka + 5 × podiel hlasov za favorita. Za dohodu sa považuje, ak najlepšia verzia dosiahne aspoň 60 % hlasov za favorita a priemernú známku aspoň 7,0.
- Druhé kolo. Bez dohody idú najlepšie verzie spolu s návrhmi na zlepšenie od posudzovateľov ešte raz do hodnotenia.
- Človek. Ak to nie je jednoznačné ani potom, návrh čaká na rozhodnutie.
Ak existujú iba čisté prekladateľské služby bez funkcie kontroly (napríklad DeepL), výsledok sa považuje za dohodnutý, len ak aspoň dve služby dodali presne rovnaký text. Pri korektúre musia výsledky zostať originálu rozpoznateľne podobné (podobnosť aspoň 0,6, rovnaké čísla). Malé bezplatné modely občas odpovedia na dávku posunutými alebo cudzími textami. Takéto odpovede sa zahodia namiesto toho, aby sa o nich hlasovalo. Slovník uchováva názvy značiek a pevné pojmy.
Poskytovatelia: s kľúčom a bez kľúča
Bezplatné a platené služby môžu byť v tom istom hlasovaní. Modul prináša predvolené nastavenia pre mnohých poskytovateľov; všetky sú po inštalácii vypnuté.
| Druh | Prekladá | Kontroluje / opravuje | Príklady |
|---|---|---|---|
| Rozhranie kompatibilné s OpenAI | áno | áno | OpenAI, Mistral, DeepSeek, xAI, Groq, Together, OpenRouter, Cerebras, Qwen, Moonshot, GitHub Models, Hugging Face, Ollama, LM Studio, vLLM, llama.cpp |
| Kompatibilné s OpenAI bez kľúča | áno | áno | Ollama na vlastnom serveri, Pollinations |
| Anthropic | áno | áno | Claude |
| Google Gemini, Cohere | áno | áno | |
| Lokálny príkaz | áno | áno | claude -p alebo akýkoľvek program, ktorý číta zo stdin a vypisuje odpoveď |
| Prekladateľské služby | áno | nie | DeepL, Google Translate, Azure Translator, LibreTranslate, MyMemory, Lingva |
Zadá sa kľúč (alebo názov premennej prostredia, ktorá ho obsahuje), stlačí sa Otestovať pripojenie a poskytovateľ sa zapne. Názvy modelov v predvolených nastaveniach sú východiskové body; kto ich používa, mal by ich porovnať s aktuálnym zoznamom poskytovateľa. Pri dvoch alebo viacerých poskytovateľoch existuje skutočná krížová kontrola, pri jedinom nikto jeho prácu nekontroluje. Asistent na to upozorní.
Celá webová stránka naraz
Úvodný asistent (menu Preklad AI → Začať tu) vysvetľuje kroky a vytvorí prvé pravidlo. Ak je nainštalovaný modul website, automaticky pribudne prepájací modul ai_translation_consensus_website. Dopĺňa rozsah „Celá webová stránka so všetkým, čo je na nej“: zvolí sa webová stránka a nechajú sa navrhnúť obsahy. Modul si prezrie všetky modely s prekladateľnými poľami, ktoré patria k webovej stránke (stránky, menu, blogy, produkty, podujatia, fóra, kurzy a ďalšie), a navrhne jedno pravidlo pre každý druh obsahu, s jazykmi webovej stránky ako cieľom.
- Čo nie je nainštalované (fóra, kurzy, galérie), sa nezobrazí a doplní sa neskôr, hneď ako sa to nainštaluje.
- Modely obchodu sa navrhujú iba vtedy, ak webová stránka má obchod. Zachytávajú sa iba zverejnené záznamy.
- Kontakty, firmy, poskytovateľov platieb, cenníky, spôsoby dodania, vernostné programy a filtre snippetov modul zámerne neponúka.
- Adresné názvy stránok (
seo_name) sa neprekladajú. - Nežiaduce druhy možno pred vytvorením odstrániť.
Vytvorenie a vyhľadávanie nestoja nič: pravidlo iba vypíše, ktoré texty potrebujú prácu. Až pri spracovaní sa volajú poskytovatelia a vznikajú náklady.
Dashboard, náklady a automatický štart
Dashboard ukazuje pre každé pravidlo, koľko textov je hotových, čaká na potvrdenie alebo človeka, je zaradených alebo zlyhalo. K tomu pribúda rozpis podľa jazyka a poskytovateľa, doterajšie a ešte očakávané náklady, odhadovaný zostávajúci čas a vypínač plánovaného spracovania.
Čísla na tomto obrázku sú vzorové údaje a nehovoria nič o skutočných nákladoch.
- Náklady sa vypočítavajú z toho, čo poskytovatelia skutočne hlásia: tokeny (OpenAI, Anthropic, Gemini, Cohere) alebo znaky (DeepL, Google, Azure). Tokeny sa zobrazujú vždy, peniaze iba vtedy, ak ste u poskytovateľa zadali cenu za milión tokenov (alebo znakov). Predvolené nastavenia neobsahujú ceny, pretože sa menia. Služby, ktoré tokeny nehlásia, sa odhadujú z dĺžky textu a označujú sa ako odhad.
- Prognóza: priemerné náklady a pracovný čas na text krát počet zaradených textov. Je to odhad, ktorý sa s prvými dávkami zlepšuje.
- Automatický štart: pravidlá s možnosťou Spustiť samo, keď sa záznam zmení pri každom behu plánovanej akcie hľadajú iba záznamy, ktoré sa zmenili od posledného vyhľadávania. So zapnutou plánovanou akciou sa upravená webová stránka teda znova preloží bez zásahu.
- Hlásenie o dokončení: Keď je vybavený posledný otvorený text pravidla, v kanáli AI Translation sa jednorazovo zobrazí správa „Všetky jazyky preložené“ (pri korektúre „Všetky texty skontrolované“).
Schválenie človekom
Modul štandardne nezapisuje nič do vašich záznamov bez súhlasu. Každý návrh zobrazuje verzie, kto ich napísal, známky a poznámky recenzentov. Návrh môžete prijať, zvoliť inú verziu, zadať vlastné znenie alebo ho zamietnuť.
Text a názvy poskytovateľov na tomto obrázku sú úplne vymyslené, aby sa ukázal vzhľad rozhrania.
Kto pravidlu dôveruje, môže zapnúť Automaticky prijať zhodu. Návrhy bez zhody čakajú na človeka aj vtedy. Pri prijatí modul ešte raz skontroluje, či sa zdrojový text medzitým nezmenil, znova vykoná kontroly značkovania a zapíše bez sledovania a bez upozornenia sledovateľov.
Bezpečnosť a ochrana údajov
- Po inštalácii je všetko vypnuté. Poskytovatelia a plánovaná akcia sú deaktivované. Bez vášho pričinenia sa nič neodosiela.
- Texty opúšťajú váš server, len čo je zapojená hostovaná služba. Pravidlo možno označiť ako Dôverné; potom text vidia iba poskytovatelia označení ako bežiaci na vlastnej infraštruktúre.
- Kľúče sú uložené v poli, ktoré vidia iba administrátori, alebo v premennej prostredia, na ktorú odkazuje len jej názov. V chybových hláseniach sa maskujú a v hlavičkách sa odosielajú. Výnimka: Voliteľný kľúč služby MyMemory sa tam dá odovzdať iba ako parameter dopytu.
- Lokálny príkaz spúšťa program, a preto je zablokovaný, kým sa systémový parameter
ai_translation_consensus.allow_commandnenastaví naTrue. Príkaz sa volá bez shellu a beží v prázdnom dočasnom adresári. - Prompt injection: Úlohy označujú text ako dáta. Pokyny v prekladanom texte sa nevykonávajú a výsledok, ktorý porušuje značky alebo zástupné symboly, sa zahodí.
- Bezplatné služby majú limity. Pollinations povoľuje anonymne jednu odpoveď za 45 sekúnd. Možnosť poskytovateľa
min_intervaltento odstup dodržiava a odpovede „Skúste to neskôr“ sa rešpektujú.
Inštalácia
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
Potrebné sú Odoo 19 a balík Pythonu requests. Súčasťou je nemecký preklad. Prepojovací modul ai_translation_consensus_website sa nainštaluje automaticky, ak je k dispozícii website. Po inštalácii je potrebné reštartovať službu Odoo, pretože modul obsahuje kód v Pythone. Kto prevádzkuje produkčný systém, nainštaluje modul najprv na kópiu databázy.
Prvé kroky: Otvorte ponuku KI preklad → Poskytovatelia, otestujte a zapnite služby, potom Začať tu a vytvorte prvé pravidlo. Pomocou Hľadať texty sa vytvoria návrhy, pomocou Spracovať dávku sa zavolajú poskytovatelia. Začnite s malým pravidlom, napríklad s jedným blogovým príspevkom a dvoma jazykmi, a pozrite si výsledok a náklady skôr, než zaradíte do frontu celú webovú stránku.
obmedzeniach
- Kvalita závisí od modelov, ktoré zapnete. Krížová kontrola znižuje chyby jednotlivých modelov, ale nie je zárukou. Pri právne alebo bezpečnostne kritických textoch modul nenahrádza rodeného hovoriaceho.
- Náklady rastú rýchlo. Jeden text stojí jedno volanie na prekladateľa, jedno kontrolné volanie na recenzenta a pri rozdelenom hlasovaní druhé kolo. Kontext stránky zvyšuje vstup každého volania. Pravidlo so 45 cieľovými jazykmi znásobuje počet textov. Obmedzte behy pomocou Záznamy na jedno vyhľadávanie, Nové návrhy na jedno vyhľadávanie a Návrhy na jeden beh cronu a ako recenzentov pridajte lacné alebo lokálne modely.
- Len polia s
translate=True. Formátovaný text sa spracúva po blokoch (mechanizmus termov v Odoo). - Ceny a názvy modelov sa menia. Predvolené nastavenia nie sú udržiavaným cenníkom.
- Vytvorené pre Odoo 19.0 Community. Iné verzie nie sú podporované.
Časté otázky
Prekladá alebo prepisuje sa niečo bez môjho súhlasu?
Nie, pokiaľ nezapnete Automaticky prijať zhodu. Ani vtedy sa nezapisujú iba návrhy so zhodou. Poskytovatelia a plánovaná akcia sú po inštalácii vypnutí.
Potrebujem kľúče pre platených poskytovateľov?
Len pre poskytovateľov, ktorí ho vyžadujú. S Pollinations, MyMemory alebo lokálne prevádzkovaným modelom (napríklad Ollama) to ide aj bez nich. Bezplatné služby sú často obmedzené a pomalé, pre celú webovú stránku sa zvyčajne hodia len ako doplnok.
Koľko stojí preklad?
Závisí to od poskytovateľa, modelu, dĺžky textu a počtu jazykov, preto modul neuvádza pevné čísla. Dashboard zobrazuje spotrebu a náklady, len čo zadáte ceny, a odhaduje zostávajúce náklady zaradených textov.
Môžem texty udržať dôverné?
Áno, pomocou možnosti pravidla Dôverné. Potom pracujú iba poskytovatelia, ktorí sú označení ako bežiaci na vašej vlastnej infraštruktúre, napríklad lokálna Ollama.
Nahrádza to preklad vstavaný v Odoo?
Nie. Modul využíva viacjazyčnosť Odoo a zapisuje do tých istých prekladov, ktoré by ste inak udržiavali ručne.
Pod akou licenciou je?
Pod AGPL-3. Chyby a vylepšenia sú vítané ako issue v repozitári GitHub .
Podpora od Biricon IT Services
Staráme sa o inštalácie Odoo pre malé a stredné podniky: od zavedenia cez úpravy a migrácie až po bežnú prevádzku. Ak prevádzkujete svoju webovú stránku Odoo vo viacerých jazykoch, chcete zabezpečiť preklady pomocou AI alebo bezpečne priniesť modul do svojej produkčnej inštancie, radi vám pomôžeme. Ďalšie vlastné vývoje: Archivácia firmy vrátane portálových používateľov, Čísla dokladov z prefixu, roka a počítadla a Obchodný register a overenie adries pre rakúskych zákazníkov.
Stav: 3. novembra 2026. Verzia modulu 19.0.1.0.0. Obrázky zobrazujú vymyslené ukážkové dáta.