Преминете към съдържание

Odoo 19: превод с ИИ и насрещна проверка – модулът ai_translation_consensus, в който няколко ИИ се проверяват взаимно

3 ноември 2026 г. | Odoo 19 Community | Собствена разработка
3 ноември 2026 г. от
Odoo 19: превод с ИИ и насрещна проверка – модулът ai_translation_consensus, в който няколко ИИ се проверяват взаимно

Модулът ai_translation_consensus за Odoo 19: няколко ИИ превеждат, оценяват взаимно преводите си анонимно, а човек ги одобрява

Eine Webseite in zehn, zwanzig oder vierzig Sprachen zu übersetzen, ist mit einer einzelnen KI schnell gemacht. Schwieriger ist die Frage, ob man dem Ergebnis trauen kann. Ein einzelnes Sprachmodell erfindet gelegentlich Wörter, übersetzt Produktnamen mit oder verändert eine Zahl, und es merkt es selbst nicht. Wir haben deshalb für Odoo 19 ein Modul geschrieben, bei dem mehrere KIs und Übersetzungsdienste am selben Text arbeiten, ihre Ergebnisse gegenseitig anonym bewerten und sich auf die Formulierung einigen, die gleichzeitig genau und natürlich klingt. Was nicht eindeutig ist, bekommt ein Mensch zur Entscheidung.

Модулът се казва ai_translation_consensus и е достъпен в GitHub като свободен софтуер под лиценза AGPL-3:

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

Идеята: взаимна проверка вместо доверие

Модулът има две функции:

  • Превод: попълване на липсващи или обновяване на остарели преводи за всяко преводимо поле в Odoo — публикации в блогове, уебстраници, менюта, продукти и всичко друго, което Odoo съхранява на няколко езика. ИИ виждат не само отделното изречение, а и съседните блокове и откъс от цялата страница. Така отделните думи се разбират в правилния контекст.
  • Редакция: проверка на текста на собствения му език и предлагане на по-добри формулировки или поправки. Оригиналът винаги е сред кандидатите. Ако той спечели, нищо не се променя.

В основата е взаимната проверка. Всеки ИИ се справя добре с оценяването на чужди текстове, дори когато самият той понякога греши. Модулът използва това: няколко доставчика създават по един вариант, а след това същите доставчици оценяват всички варианти, без да знаят кой ги е написал. Никой доставчик не оценява собствения си вариант.

Как се създава предложение

Процес: превод, проверка, оценяване, постигане на съгласие, одобрение от човек

  1. Превод. Всички преводачи създават по един вариант паралелно.
  2. Задължителни проверки. Без участие на ИИ се проверява дали HTML таговете, символните обекти, заместителите като %s или {}, числата и връзките са запазени непроменени. Вариант, който не отговаря на това изискване, никога не може да спечели, колкото и гладко да звучи.
  3. Оценяване. Останалите варианти се разбъркват и анонимизират. Всеки проверяващ дава на всеки вариант оценка за точност и естественост (от 1 до 10), посочва предпочитан вариант и може да предложи подобрение.
  4. Постигане на съгласие. Резултатът за класиране на даден вариант е 0,5 × средната оценка + 5 × дела на гласовете за него като предпочитан вариант. Счита се, че има съгласие, когато най-добрият вариант е получил поне 60 % от гласовете за предпочитан вариант и има средна оценка поне 7,0.
  5. Втори кръг. Ако няма съгласие, най-добрите варианти се оценяват още веднъж заедно с предложенията за подобрение от проверяващите.
  6. Човешка намеса. Ако и тогава няма еднозначен резултат, предложението изчаква решение от човек.

Ако участват само услуги за превод без функция за проверка (например 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). Токените се показват винаги, а паричните суми — само ако сте въвели цена за милион токени или символи в настройките на доставчика. Предварителните настройки не съдържат цени, тъй като те се променят. За услугите, които не отчитат токени, броят им се изчислява приблизително от дължината на текста и се обозначава като приблизителен.
  • Прогноза: средните разходи и времето за обработка на един текст, умножени по броя текстове на опашката. Това е приблизителна оценка, която става по-точна с първите обработени партиди.
  • Автоматично стартиране: при всяко изпълнение на планираното действие правилата с опцията Автоматично стартиране при промяна на запис търсят само записи, променени след последното търсене. Така, когато планираното действие е включено, редактираният уебсайт се превежда отново без ръчна намеса.
  • Използване на абонаментите: При доставчиците, които работят чрез програма за командния ред с вход в акаунт (Antigravity, Codex), модулът проверява на всеки десет минути каква част от лимита за текущия абонаментен период е изразходвана и кога ще се възстанови. Таблото показва за всеки активен доставчик лента с часа на възстановяване, заявките за последните 24 часа и причината за текущата пауза. С един бутон данните могат да се обновят веднага. Така се вижда, че седмичната квота може да се изчерпи за няколко часа, още преди заявките да започнат да бъдат отхвърляни. За доставчиците, които не подават данни за потреблението (например MyMemory), това се посочва изрично, вместо да се показва измислена стойност.
  • Известие за завършване: когато последният необработен текст по дадено правило е готов, в канала AI Translation се появява еднократно съобщението „Преведено на всички езици“ (при редакция — „Всички текстове са проверени“).

Одобрение от човек

По подразбиране модулът не записва нищо във вашите записи без одобрение. Всяко предложение показва вариантите, авторите им, оценките и бележките на проверяващите. Можете да приемете предложението, да изберете друг вариант, да въведете собствена формулировка или да го отхвърлите.

Предложение с три варианта, оценки, гласове за предпочитан вариант и решение от човек. Примерният текст е измислен.

Текстът и имената на доставчиците в това изображение са измислени, за да се демонстрира изгледът.

Ако имате доверие в дадено правило, можете да включите Автоматично приемане при съгласие. Предложенията без постигнато съгласие продължават да чакат решение от човек. При приемане модулът проверява още веднъж дали изходният текст междувременно е променен, повтаря проверките на маркирането и записва без проследяване на промените и без известяване на последователите.

Сигурност и защита на данните

  • След инсталирането всичко е изключено. Доставчиците и планираното действие са деактивирани. Без ваша намеса не се изпраща нищо.
  • Текстовете напускат вашия сървър, когато участва външно хоствана услуга. Дадено правило може да се отбележи като Поверително; тогава текстът е достъпен само за доставчици, обозначени като работещи на собствена инфраструктура.
  • Ключовете се съхраняват в поле, видимо само за администраторите, или в променлива на средата, към която се препраща само чрез името ѝ. В съобщенията за грешки ключовете се маскират, а при изпращане се предават в заглавките на заявките. Изключение: незадължителният ключ за MyMemory може да се предава само като параметър на заявката.
  • Локална команда изпълнява програма и затова е блокирана, докато системният параметър ai_translation_consensus.allow_command не бъде зададен на True. Командата се извиква без командна обвивка и се изпълнява в празна временна директория.
  • Инжектиране на инструкции: заявките обозначават текста като данни. Инструкциите в превеждания текст не се изпълняват, а резултат, който нарушава целостта на таговете или заместителите, се отхвърля.
  • Безплатните услуги имат ограничения. 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 код. Ако поддържате работеща система, първо инсталирайте модула върху копие на базата данни.

Първи стъпки: отворете менюто Превод с ИИ → Доставчици, тествайте и включете услугите, след това изберете Започнете тук и създайте първото правило. С Търсене на текстове се създават предложенията, а с Обработка на партида се изпращат заявките към доставчиците. Започнете с правило с малък обхват, например една публикация в блога и два езика, и прегледайте резултата и разходите, преди да добавите цял уебсайт в опашката.

Ограничения

  • Качеството зависи от моделите, които включите. Насрещната проверка намалява грешките на отделните модели, но не дава гаранция. При текстове с правно значение или свързани с безопасността модулът не замества проверката от носител на езика.
  • Разходите нарастват бързо. За всеки текст се изпраща по една заявка към всеки преводач, по една заявка за проверка към всеки проверяващ, а при разделени гласове се провежда втори кръг. Контекстът на страницата увеличава обема на входните данни при всяка заявка. Правило с 45 целеви езика умножава броя на текстовете. Ограничете обработката чрез Записи на търсене, Нови предложения на търсене и Предложения на изпълнение на Cron и добавете евтини или локални модели като проверяващи.
  • Само полета с translate=True. Форматираният текст се обработва по блокове чрез механизма за преводни сегменти на Odoo.
  • Цените и имената на моделите се променят. Предварително зададените стойности не са актуализирана ценова листа.
  • Разработено за Odoo 19.0 Community. Други версии не се поддържат.

Често задавани въпроси

Ще се превежда или презаписва ли нещо без моето съгласие?

Не, докато не включите Автоматично прилагане при съгласие. Дори тогава се записват само предложенията, за които е постигнато съгласие. След инсталирането доставчиците и планираното действие са изключени.

Нужни ли са ми ключове за платените доставчици?

Само за доставчиците, които изискват ключ. С Pollinations, MyMemory или локално работещ модел (например Ollama) можете да работите и без ключ. Безплатните услуги често имат ограничения и са бавни, затова за цял уебсайт обикновено са подходящи само като допълнение.

Колко струва един превод?

Това зависи от доставчика, модела, дължината на текста и броя на езиците, затова модулът не задава фиксирани стойности. След като въведете цените, таблото показва потреблението и разходите и изчислява приблизително оставащите разходи за текстовете в опашката.

Мога ли да запазя поверителността на текстовете?

Да, с опцията Поверително в правилото. Тогава се използват само доставчици, отбелязани като работещи във вашата собствена инфраструктура, например локална инсталация на Ollama.

Това замества ли вградения превод на Odoo?

Не. Модулът използва многоезичните възможности на Odoo и записва в същите преводи, които иначе поддържате ръчно.

Под какъв лиценз се разпространява?

Под AGPL-3. Сигнали за грешки и предложения за подобрения можете да подавате като Issue в хранилището в GitHub са добре дошли.

Съдействие от Biricon IT Services

Обслужваме инсталации на Odoo за малки и средни предприятия: от внедряването през персонализирането и миграциите до ежедневната експлоатация. Ако искате да поддържате своя Odoo уебсайт на няколко езика, да проверявате преводите с ИИ или безопасно да внедрите модул в работната си среда, с удоволствие ще помогнем. Други наши разработки: Архивиране на фирма заедно с потребителите ѝ в портала, Номера на документи от префикс, година и пореден номер и Търговски регистър и проверка на адреси за австрийски клиенти.

Свържете се с нас сега

Актуално към 8 ноември 2026 г. Версия на модула: 19.0.1.2.0. Изображенията показват измислени примерни данни.