Перакласці вэб-сайт на дзесяць, дваццаць або сорак моў з адным ШІ можна хутка. Складаней пытанне, ці можна давяраць выніку. Асобная моўная мадэль час ад часу прыдумляе словы, перакладае назвы прадуктаў або змяняе лічбу, і сама гэтага не заўважае. Таму мы напісалі для Odoo 19 модуль, у якім некалькі ШІ і сэрвісаў перакладу працуюць над адным тэкстам, ананімна ўзаемна ацэньваюць свае вынікі і спыняюцца на фармулёўцы, якая адначасова гучыць дакладна і натуральна. Тое, што не адназначна, чалавек атрымлівае на рашэнне.
Модуль называецца ai_translation_consensus і даступны як свабоднае праграмнае забеспячэнне пад ліцэнзіяй AGPL-3 на GitHub:
github.com/Alex0176/odoo-ai-translation-consensus
Ідэя: узаемная праверка замест даверу
Модуль умее дзве рэчы:
- Перакладаць: дапаўняць адсутныя (або састарэлыя) пераклады кожнага перакладальнага поля ў Odoo, гэта значыць допісы блога, вэб-старонкі, меню, прадукты і ўсё астатняе, што Odoo захоўвае на некалькіх мовах. ШІ бачаць пры гэтым не толькі асобны сказ, але і суседнія блокі і фрагмент усёй старонкі. Так асобныя словы разумеюцца ў правільным кантэксце.
- Вычытка: правяраць тэкст на ягонай уласнай мове і прапаноўваць лепшыя фармулёўкі або выпраўленні. Арыгінал пры гэтым заўсёды з'яўляецца адным з кандыдатаў. Калі перамагае арыгінал, нічога не змяняецца.
Асноўнае — узаемная праверка. Кожны ШІ добра ацэньвае чужыя тэксты, нават калі сам часам памыляецца. Менавіта гэта выкарыстоўвае модуль: некалькі пастаўшчыкоў пішуць па адной версіі, а потым тыя ж пастаўшчыкі ацэньваюць усе версіі, не ведаючы, чые яны. Уласную версію пастаўшчык не ацэньвае.
Так узнікае прапанова
- Пераклад. Кожны перакладчык паралельна піша версію.
- Фіксаваныя праверкі. Без ШІ кантралюецца, ці засталіся без змен HTML-тэгі, сутнасці, запаўняльнікі кшталту
%sабо{}, лічбы і спасылкі. Версія, якая гэта парушае, ніколі не можа перамагчы, якой бы плаўнай яна ні гучала. - Ацэнка. Астатнія версіі перамешваюцца і ананімізуюцца. Кожны правяральнік ставіць для кожнай адзнаку за дакладнасць і за натуральнасць (ад 1 да 10), называе фаварыта і можа прапанаваць паляпшэнне.
- Узгадненне. Ранг версіі — 0,5 × сярэдняя адзнака + 5 × доля галасоў за фаварыта. Узгадненнем лічыцца, калі лепшая версія мае не менш за 60 % галасоў за фаварыта і сярэднюю адзнаку не ніжэй за 7,0.
- Другі раунд. Без узгаднення лепшыя версіі разам з прапановамі правяральнікаў па паляпшэнні трапляюць у ацэнку яшчэ раз.
- Чалавек. Калі і тады няма адназначнасці, прапанова чакае рашэння.
Калі ёсць толькі чыстыя сэрвісы перакладу без функцыі праверкі (напрыклад, DeepL), вынік лічыцца ўзгодненым толькі тады, калі не менш за два сэрвісы далі дакладна той самы тэкст. Пры вычытцы вынікі павінны заставацца прыкметна падобнымі да арыгінала (падобнасць не менш за 0,6, аднолькавыя лічбы). Малыя бясплатныя мадэлі часам адказваюць на пакет са зрушанымі або чужымі тэкстамі. Такія адказы адкідаюцца, а не пускаюцца на галасаванне. Глосарый фіксуе назвы марак і ўстойлівыя тэрміны.
Пастаўшчыкі: з ключом і без
Бясплатныя і платныя сэрвісы могуць удзельнічаць у адным галасаванні. Модуль пастаўляецца з перадналадамі для многіх пастаўшчыкоў; усе пасля ўстаноўкі адключаны.
| Тып | Перакладае | Правярае / выпраўляе | Прыклады |
|---|---|---|---|
| Інтэрфейс, сумяшчальны з OpenAI | так | так | OpenAI, Mistral, DeepSeek, xAI, Groq, Together, OpenRouter, Cerebras, Qwen, Moonshot, GitHub Models, Hugging Face, Ollama, LM Studio, vLLM, llama.cpp |
| Сумяшчальны з OpenAI без ключа | так | так | Ollama на ўласным серверы, Pollinations |
| Anthropic | так | так | Claude |
| Google Gemini, Cohere | так | так | |
| Лакальная каманда | так | так | claude -p або любая праграма, якая чытае са stdin і выводзіць адказ |
| Сэрвісы перакладу | так | не | DeepL, Google Translate, Azure Translator, LibreTranslate, MyMemory, Lingva |
Уводзяць ключ (або назву зменнай асяроддзя, якая яго ўтрымлівае), націскаюць Праверыць злучэнне і ўключаюць пастаўшчыка. Назвы мадэляў у перадналадах — гэта адпраўныя кропкі; хто іх выкарыстоўвае, павінен звяраць іх з актуальным спісам пастаўшчыка. З двума або больш пастаўшчыкамі ёсць сапраўдная ўзаемная праверка, з адным — ніхто не правярае яго працу. Памочнік на гэта паказвае.
Увесь вэб-сайт адразу
Стартавы памочнік (меню Пераклад ШІ → Пачаць тут) тлумачыць крокі і стварае першае правіла. Калі ўсталяваны модуль website, аўтаматычна усталёўваецца і модуль-мост ai_translation_consensus_website. Ён дапаўняе аб'ём «Увесь вэб-сайт з усім, што на ім ёсць»: выбіраюць вэб-сайт і прапануюць сабе змест. Модуль разглядае ўсе мадэлі з перакладальнымі палямі, якія адносяцца да вэб-сайта (старонкі, меню, блогі, прадукты, мерапрыемствы, форумы, курсы і іншае), і прапануе па адным правіле для кожнага віду кантэнту, з мовамі вэб-сайта ў якасці мэты.
- Што не ўсталявана (форумы, курсы, галерэі), не з'яўляецца і будзе ўключана пазней, як толькі будзе ўсталявана.
- Мадэлі крамы прапануюцца толькі калі ў вэб-сайта ёсць крама. Фіксуюцца толькі апублікаваныя запісы.
- Кантакты, фірмы, пастаўшчыкоў плацяжоў, прайскуранты, спосабы дастаўкі, праграмы лаяльнасці і фільтры сніпетаў модуль наўмысна не прапануе.
- Адрасныя імёны старонак (
seo_name) не перакладаюцца. - Непажаданыя віды можна выдаліць перад стварэннем.
Стварэнне і пошук нічога не каштуюць: правіла толькі пералічвае, якія тэксты патрабуюць працы. Толькі пры апрацоўцы выклікаюцца пастаўшчыкі і ўзнікаюць выдаткі.
Дашборд, выдаткі і аўтаматычны запуск
Дашборд паказвае па кожным правіле, колькі тэкстаў гатовыя, чакаюць пацверджання або чалавека, пастаўлены ў чаргу або не ўдаліся. Да гэтага дадаюцца разбіўка па мове і пастаўшчыку, дагэтуль панесеныя і яшчэ чаканыя выдаткі, ацэначны час да канца і пераключальнік запланаванай апрацоўкі.
Лічбы на гэтым малюнку — прыклады даных і нічога не кажуць пра рэальныя выдаткі.
- Выдаткі разлічваюцца з таго, што пастаўшчыкі фактычна паведамляюць: токены (OpenAI, Anthropic, Gemini, Cohere) або сімвалы (DeepL, Google, Azure). Токены паказваюцца заўсёды, грошы — толькі тады, калі вы ўвялі цану за мільён токенаў (або сімвалаў) у пастаўшчыка. Перадналады не ўтрымліваюць цэн, бо яны змяняюцца. Сэрвісы, якія не паведамляюць токены, ацэньваюцца па даўжыні тэксту і пазначаюцца як ацэнка.
- Прагноз: сярэднія выдаткі і працоўны час на тэкст памножаныя на колькасць тэкстаў у чарзе. Гэта ацэнка, якая становіцца лепшай з першымі пакетамі.
- Аўтаматычны запуск: правілы з опцыяй Запускацца самастойна, калі запіс змяняецца пры кожным запуску запланаванага дзеяння шукаюць толькі запісы, змененыя з моманту апошняга пошуку. Таму пры ўключаным запланаваным дзеянні адрэдагаваная вэб-старонка перакладаецца нанова без усялякіх дзеянняў.
- Паведамленне пра завяршэнне: Калі апошні адкрыты тэкст правіла апрацаваны, у канале AI Translation адзін раз з’яўляецца паведамленне «Усе мовы перакладзены» (пры вычытцы — «Усе тэксты правераны»).
Зацвярджэнне чалавекам
Па змаўчанні модуль нічога не запісвае ў вашы даныя без вашай згоды. Кожная прапанова паказвае варыянты, іх аўтараў, ацэнкі і заўвагі рэцэнзентаў. Вы можаце прыняць прапанову, выбраць іншы варыянт, увесці ўласную фармулёўку або адхіліць прапанову.
Тэкст і назвы пастаўшчыкоў на гэтым малюнку выдуманыя — яны толькі паказваюць выгляд экрана.
Той, хто давярае правілу, можа ўключыць Аўтаматычна прымаць пагадненне. Прапановы без пагаднення ўсё роўна чакаюць чалавека. Пры прыняцці модуль яшчэ раз правярае, ці не змяніўся зыходны тэкст, паўторна выконвае праверкі разметкі і запісвае без адсочвання і без апавяшчэння падпісчыкаў.
Бяспека і абарона даных
- Пасля ўстаноўкі ўсё выключана. Пастаўшчыкі і запланаванае дзеянне дэактываваны. Без вашага ўдзелу нічога не адпраўляецца.
- Тэксты пакідаюць ваш сервер, як толькі ўдзельнічае хостынгавы сэрвіс. Правіла можна пазначыць як Канфідэнцыйнае; тады тэкст бачаць толькі пастаўшчыкі, пазначаныя як тыя, што працуюць на ўласнай інфраструктуры.
- Ключы захоўваюцца ў полі, якое бачаць толькі адміністратары, або ў зменнай асяроддзя, на якую паказвае толькі імя. У паведамленнях пра памылкі яны маскіруюцца і перадаюцца ў загалоўках. Выключэнне: неабавязковы ключ MyMemory можна перадаць толькі як параметр запыту.
- Лакальная каманда запускае праграму і таму заблакіравана, пакуль сістэмны параметр
ai_translation_consensus.allow_commandне ўстаноўлены ўTrue. Каманда выклікаецца без абалонкі і выконваецца ў пустым часовым каталогу. - Prompt-injection: У заданнях тэкст пазначаецца як даныя. Інструкцыі ўнутры перакладаемага тэксту не выконваюцца, а вынік, які парушае тэгі або запаўняльнікі, адкідаецца.
- У бясплатных сэрвісаў ёсць абмежаванні. Pollinations дазваляе ананімна адзін адказ на 45 секунд. Опцыя пастаўшчыка
min_intervalвытрымлівае гэты інтэрвал, а адказы «Паспрабуйце пазней» улічваюцца.
Устаноўка
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
Патрэбны Odoo 19 і Python-пакет requests. Нямецкі пераклад ужо ўключаны. Мадуль-мост ai_translation_consensus_website усталёўваецца аўтаматычна, калі ёсць website. Пасля ўстаноўкі сэрвіс Odoo трэба перазапусціць, бо модуль змяшчае код Python. Хто эксплуатуе баявую сістэму, ставіць модуль спачатку на копію базы даных.
Першыя крокі: адкрыйце меню KI-Übersetzung → Anbieter, пратэстуйце сэрвісы і ўключыце іх, затым націсніце Hier starten і стварыце першае правіла. Праз Nach Texten suchen ствараюцца прапановы, праз Einen Stapel verarbeiten выклікаюцца пастаўшчыкі. Пачніце з невялікага правіла, напрыклад з аднаго допісу ў блогу і дзвюх моў, і паглядзіце на вынік і кошт, перш чым ставіць у чаргу цэлы сайт.
Абмежаванні
- Якасць залежыць ад мадэляў, якія вы ўключаеце. Перакрыжаваная праверка памяншае колькасць памылак асобных мадэляў, але не дае гарантыі. Для юрыдычна або ў плане бяспекі крытычных тэкстаў модуль не замяняе носьбіта мовы.
- Выдаткі растуць хутка. Адзін тэкст каштуе аднаго выкліку на кожнага перакладчыка, аднаго выкліку праверкі на кожнага рэцэнзента і, пры падзеленым галасаванні, другога раўнду. Кантэкст старонкі павялічвае ўваходныя даныя кожнага выкліку. Правіла з 45 мовамі-мэтамі шматкроць павялічвае колькасць тэкстаў. Абмяжоўвайце запускі праз Datensätze je Suchlauf, Neue Vorschläge je Suchlauf і Vorschläge je Cron-Lauf і дадайце ў якасці рэцэнзентаў танныя або лакальныя мадэлі.
- Толькі палі з
translate=True. Фарматаваны тэкст апрацоўваецца па блоках (механізм тэрмінаў Odoo). - Цэны і назвы мадэляў змяняюцца. Прадвызначаныя значэнні не з’яўляюцца актуальным прайс-лістом.
- Створана для Odoo 19.0 Community. Іншыя версіі не падтрымліваюцца.
Частыя пытанні
Ці перакладаецца або перазапісваецца што-небудзь без маёй згоды?
Не, пакуль вы не ўключыце Аўтаматычна прымаць пагадненне. Але і тады запісваюцца толькі прапановы з пагадненнем. Пастаўшчыкі і запланаванае дзеянне пасля ўстаноўкі выключаны.
Ці патрэбны мне ключы для платных пастаўшчыкоў?
Толькі для тых пастаўшчыкоў, якія іх патрабуюць. З Pollinations, MyMemory або лакальна запушчанай мадэллю (напрыклад, Ollama) можна абысціся без іх. Бясплатныя сэрвісы часта абмежаваныя і павольныя, для цэлага сайта яны звычайна падыходзяць толькі як дапаўненне.
Колькі каштуе пераклад?
Гэта залежыць ад пастаўшчыка, мадэлі, даўжыні тэксту і колькасці моў, таму модуль не дае фіксаваных лічбаў. Панэль паказвае спажыванне і выдаткі, як толькі вы ўвядзеце цэны, і ацэньвае застатковы кошт тэкстаў, пастаўленых у чаргу.
Ці магу я захаваць тэксты ў таямніцы?
Так, з дапамогай опцыі правіла Канфідэнцыйнае. Тады працуюць толькі пастаўшчыкі, пазначаныя як тыя, што працуюць на вашай уласнай інфраструктуры, напрыклад лакальны Ollama.
Ці замяняе гэта ўласны пераклад Odoo?
Не. Модуль выкарыстоўвае шматмоўнасць Odoo і запісвае ў тыя самыя пераклады, якія вы інакш вядзяце ўручную.
Пад якой ліцэнзіяй ён распаўсюджваецца?
Пад AGPL-3. Паведамленні пра памылкі і паляпшэнні вітаюцца як issue ў рэпазіторыі GitHub .
Падтрымка ад Biricon IT Services
Мы суправаджаем устаноўкі Odoo для малых і сярэдніх прадпрыемстваў: ад укаранення праз адаптацыі і міграцыі да бягучай эксплуатацыі. Калі вы вядзяце свой сайт на Odoo на некалькіх мовах, хочаце забяспечыць пераклады з дапамогай ШІ або бяспечна ўвесці модуль у вашу баявую інстанцыю, мы з ахвотай дапаможам. Іншыя ўласныя распрацоўкі: Архіваванне фірмы разам з карыстальнікамі партала, Нумары дакументаў з прэфікса, года і лічыльніка і Firmenbuch і праверка адрасоў для аўстрыйскіх кліентаў.
Стан на: 3 лістапада 2026 г. Версія модуля 19.0.1.0.0. На малюнках паказаны выдуманыя прыклады даных.