Կայքը տասը, քսան կամ քառասուն լեզվով թարգմանելը մեկ AI-ի հետ արագ է արվում։ Ավելի դժվար է հարցը՝ կարելի՞ է վստահել արդյունքին։ Առանձին լեզվական մոդելը երբեմն հորինում է բառեր, թարգմանում է ապրանքների անունները կամ փոխում է թիվը, և ինքը դա չի նկատում։ Այդ պատճառով մենք Odoo 19-ի համար գրել ենք մոդուլ, որտեղ մի քանի AI և թարգմանչական ծառայություն աշխատում են նույն տեքստի վրա, իրենց արդյունքները փոխադարձաբար անանուն գնահատում են և համաձայնվում են այն ձևակերպման շուրջ, որը միաժամանակ ճշգրիտ է և բնական հնչում։ Այն, ինչ միանշանակ չէ, որոշման համար տրվում է մարդուն։
Մոդուլը կոչվում է ai_translation_consensus և որպես ազատ ծրագրային ապահովում՝ AGPL-3 լիցենզիայով, հասանելի է GitHub-ում՝
github.com/Alex0176/odoo-ai-translation-consensus
Այս հոդվածի բովանդակությունը
- Գաղափարը․ փոխադարձ ստուգում՝ վստահության փոխարեն
- Ինչպես է ծնվում առաջարկը
- Մատակարարներ․ բանալիով և առանց բանալու
- Ամբողջ կայքը միանգամից
- Վահանակ, ծախսեր և ավտոմատ մեկնարկ
- Հաստատում՝ մարդու կողմից
- Անվտանգություն և տվյալների պաշտպանություն
- Տեղադրում
- Սահմանափակումներ
- Հաճախ տրվող հարցեր
- Biricon IT Services-ի աջակցությունը
Գաղափարը․ փոխադարձ ստուգում՝ վստահության փոխարեն
Մոդուլը կարող է երկու բան․
- Թարգմանել․ լրացնել Odoo-ում յուրաքանչյուր թարգմանելի դաշտի բացակայող (կամ հնացած) թարգմանությունները, այսինքն՝ բլոգի հոդվածները, կայքի էջերը, ընտրացանկերը, ապրանքները և մնացած ամեն ինչ, ինչ Odoo-ն պահում է բազմալեզու։ AI-ները տեսնում են ոչ միայն առանձին նախադասությունը, այլև հարևան բլոկները և ամբողջ էջի հատվածը։ Այդպես առանձին բառերը հասկացվում են ճիշտ համատեքստում։
- Սրբագրել․ ստուգել տեքստը իր սեփական լեզվով և առաջարկել ավելի լավ ձևակերպումներ կամ ուղղումներ։ Բնօրինակը միշտ թեկնածուներից մեկն է։ Եթե բնօրինակը հաղթում է, ոչինչ չի փոխվում։
Հիմքը փոխադարձ ստուգումն է։ Յուրաքանչյուր AI լավ է օտար տեքստերը գնահատելու մեջ, նույնիսկ եթե ինքը երբեմն սխալվում է։ Մոդուլն օգտագործում է հենց դա․ մի քանի մատակարար յուրաքանչյուրը գրում է մեկ տարբերակ, և հետո նույն մատակարարները գնահատում են բոլոր տարբերակները՝ չիմանալով, թե ով է դրանց հեղինակը։ Սեփական տարբերակը մատակարարը չի գնահատում։
Ինչպես է ծնվում առաջարկը
- Թարգմանել։ Յուրաքանչյուր թարգմանիչ զուգահեռաբար գրում է մեկ տարբերակ։
- Ֆիքսված ստուգումներ։ Առանց AI-ի ստուգվում է, արդյոք HTML թեգերը, entity-ները,
%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 |
Մուտքագրում եք բանալին (կամ այն պարունակող միջավայրի փոփոխականի անունը), սեղմում եք Փորձարկել կապը և միացնում եք մատակարարին։ Կանխադրվածներում մոդելների անունները մեկնակետեր են․ ով դրանք օգտագործում է, պետք է համեմատի մատակարարի ընթացիկ ցանկի հետ։ Երկու կամ ավելի մատակարարների դեպքում կա իրական փոխադարձ ստուգում, միայն մեկի դեպքում ոչ ոք չի ստուգում նրա աշխատանքը։ Օգնականը դա նշում է։
Ամբողջ կայքը միանգամից
Մեկնարկի օգնականը (AI թարգմանություն → Սկսել այստեղ ընտրացանկը) բացատրում է քայլերը և ստեղծում է առաջին կանոնը։ Եթե website մոդուլը տեղադրված է, կամրջող ai_translation_consensus_website մոդուլը գալիս է ավտոմատ։ Այն ավելացնում է «Ամբողջ կայքը՝ իր վրա եղած ամեն ինչով» ծավալը․ ընտրում եք կայքը և թույլ եք տալիս, որ ձեզ առաջարկվեն բովանդակությունները։ Մոդուլը դիտարկում է թարգմանելի դաշտերով բոլոր մոդելները, որոնք պատկանում են կայքին (էջեր, ընտրացանկեր, բլոգներ, ապրանքներ, միջոցառումներ, ֆորումներ, դասընթացներ և այլն), և առաջարկում է մեկ կանոն յուրաքանչյուր բովանդակության տեսակի համար՝ նպատակ ունենալով կայքի լեզուները։
- Այն, ինչ տեղադրված չէ (ֆորումներ, դասընթացներ, պատկերասրահներ), չի երևում և ավելացվում է հետագայում՝ տեղադրվելուն պես։
- Խանութի մոդելները առաջարկվում են միայն այն դեպքում, երբ կայքն ունի խանութ։ Ընդգրկվում են միայն հրապարակված գրառումները։
- Կոնտակտներ, ընկերություններ, վճարային մատակարարներ, գնացուցակներ, առաքման տեսակներ, հավատարմության ծրագրեր և snippet-զտիչներ մոդուլը միտումնավոր չի առաջարկում։
- Էջերի հասցեի անունները (
seo_name) չեն թարգմանվում։ - Չցանկացած տեսակները կարելի է հեռացնել ստեղծելուց առաջ։
Ստեղծումը և որոնումը ոչինչ չեն արժենում․ կանոնը միայն թվարկում է, թե որ տեքստերն են աշխատանք պահանջում։ Մատակարարները կանչվում են միայն մշակման ժամանակ, և միայն այդ ժամանակ են ծախսեր առաջանում։
Վահանակ, ծախսեր և ավտոմատ մեկնարկ
Վահանակը յուրաքանչյուր կանոնի համար ցույց է տալիս, թե քանի տեքստ է պատրաստ, սպասում է հաստատման կամ մարդու, հերթագրված է կամ ձախողվել է։ Դրանց գումարվում են բաշխումը ըստ լեզվի և մատակարարի, մինչ այժմ եղած և դեռ սպասվող ծախսերը, գնահատված մնացած ժամանակը և պլանավորված մշակման անջատիչը։
Այս պատկերի թվերը օրինակային տվյալներ են և իրական ծախսերի մասին ոչինչ չեն ասում։
- Ծախսերը հաշվարկվում են այն տվյալներից, որ իրականում հայտնում են մատակարարները՝ թոքեններ (OpenAI, Anthropic, Gemini, Cohere) կամ նիշեր (DeepL, Google, Azure)։ Թոքենները միշտ ցուցադրվում են, գումարը՝ միայն այն դեպքում, երբ դուք մատակարարի մոտ գրանցել եք գինը մեկ միլիոն թոքենի (կամ նիշի) համար։ Կանխադրվածները գներ չեն պարունակում, քանի որ դրանք փոխվում են։ Թոքեններ չհայտնող ծառայությունները գնահատվում են տեքստի երկարությամբ և նշվում են որպես գնահատական։
- Կանխատեսում․ միջին ծախսերը և աշխատաժամանակը մեկ տեքստի համար՝ բազմապատկած հերթագրված տեքստերի քանակով։ Սա գնահատական է, որը առաջին փաթեթներից հետո ավելի լավանում է։
- Ավտոմատ մեկնարկ․ Ինքնուրույն սկսել, երբ գրառումը փոխվում է տարբերակով կանոնները պլանավորված գործողության յուրաքանչյուր գործարկման ժամանակ որոնում են միայն այն գրառումները, որոնք փոխվել են վերջին որոնումից հետո։ Պլանավորված գործողության միացված վիճակում խմբագրված կայքը, հետևաբար, առանց ձեռքի միջամտության նորից թարգմանվում է։
- Ավարտի հաղորդագրություն. Երբ կանոնի վերջին բաց տեքստը մշակվում է, AI Translation ալիքում մեկ անգամ հայտնվում է «Բոլոր լեզուները թարգմանված են» հաղորդագրությունը (սրբագրման դեպքում՝ «Բոլոր տեքստերը ստուգված են»)։
Հաստատում՝ մարդու կողմից
Լռելյայն մոդուլը առանց համաձայնության ոչինչ չի գրում Ձեր գրառումների մեջ։ Յուրաքանչյուր առաջարկ ցույց է տալիս տարբերակները, թե ովքեր են դրանք գրել, գնահատականները և գրախոսների նկատառումները։ Կարող եք ընդունել առաջարկը, ընտրել այլ տարբերակ, մուտքագրել սեփական ձևակերպումը կամ մերժել։
Այս պատկերում տեքստը և մատակարարների անունները ազատորեն հորինված են՝ տեսքը ցուցադրելու համար։
Ով վստահում է կանոնին, կարող է միացնել Համաձայնությունն ավտոմատ ընդունել տարբերակը։ Համաձայնություն չունեցող առաջարկները նույնիսկ այդ դեպքում սպասում են մարդու։ Ընդունելիս մոդուլը կրկին ստուգում է՝ արդյոք սկզբնաղբյուր տեքստը միջանկյալում փոխվել է, նորից վերահսկում է մարկափի ստուգումները և գրում է առանց հետևման և առանց հետևորդներին ծանուցելու։
Անվտանգություն և տվյալների պաշտպանություն
- Տեղադրումից հետո ամեն ինչ անջատված է։ Մատակարարները և պլանավորված գործողությունը ապաակտիվացված են։ Առանց Ձեր միջամտության ոչինչ չի ուղարկվում։
- Տեքստերը լքում են Ձեր սերվերը, հենց որ ներգրավված է հոսթինգային ծառայություն։ Կանոնը կարելի է նշել որպես Գաղտնի. այդ դեպքում տեքստը տեսնում են միայն այն մատակարարները, որոնք նշված են որպես սեփական ենթակառուցվածքում աշխատող։
- Բանալիները պահվում են դաշտում, որը տեսնում են միայն ադմինիստրատորները, կամ միջավայրի փոփոխականում, որին հղվում է միայն անունը։ Սխալի հաղորդագրություններում դրանք քողարկվում են և ուղարկվում են header-ներում։ Բացառություն. MyMemory-ի ընտրովի բանալին այնտեղ կարող է փոխանցվել միայն որպես հարցման պարամետր։
- Լոկալ հրամանը գործարկում է ծրագիր, ուստի արգելափակված է, մինչև համակարգային պարամետրը
ai_translation_consensus.allow_commandսահմանվիTrue։ Հրամանը կանչվում է առանց shell-ի և աշխատում է դատարկ ժամանակավոր դիրեկտորիայում։ - Prompt-ինջեկցիա. Հանձնարարություններում տեքստը նշվում է որպես տվյալներ։ Թարգմանվող տեքստի հրահանգները չեն կատարվում, իսկ այն արդյունքը, որը խախտում է թեգերը կամ տեղապահները, մերժվում է։
- Անվճար ծառայություններն ունեն սահմաններ։ 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 կոդ։ Ով արտադրական համակարգ է շահագործում, մոդուլը նախ տեղադրում է տվյալների բազայի պատճենի վրա։
Առաջին քայլերը. բացել AI թարգմանություն → Մատակարարներ մենյուն, փորձարկել ու միացնել ծառայությունները, ապա Սկսել այստեղ և ստեղծել առաջին կանոնը։ Փնտրել տեքստեր գործողությամբ ստեղծվում են առաջարկները, Մշակել մեկ փաթեթ գործողությամբ կանչվում են մատակարարները։ Սկսեք փոքր կանոնից, օրինակ՝ մեկ բլոգային հոդվածով և երկու լեզվով, և ուսումնասիրեք արդյունքն ու ծախսերը, նախքան մի ամբողջ կայք հերթագրելը։
Սահմանափակումներ
- Որակը կախված է Ձեր միացրած մոդելներից։ Խաչաձև ստուգումը նվազեցնում է առանձին մոդելների սխալները, սակայն երաշխիք չի տալիս։ Իրավական կամ անվտանգության համար կարևոր տեքստերի դեպքում մոդուլը չի փոխարինում մայրենի լեզվով խոսողին։
- Ծախսերն արագ աճում են։ Մեկ տեքստը արժե մեկ կանչ յուրաքանչյուր թարգմանչի համար, մեկ ստուգման կանչ յուրաքանչյուր ստուգողի համար, իսկ բաժանված քվեարկության դեպքում՝ երկրորդ փուլ։ Էջի համատեքստը մեծացնում է յուրաքանչյուր կանչի մուտքը։ 45 թիրախ լեզու ունեցող կանոնը բազմապատկում է տեքստերի քանակը։ Սահմանափակեք գործարկումները Գրառումներ մեկ որոնման համար, Նոր առաջարկներ մեկ որոնման համար և Առաջարկներ մեկ cron գործարկման համար կարգավորումներով, և որպես ստուգողներ ավելացրեք մատչելի կամ լոկալ մոդելներ։
- Միայն
translate=Trueունեցող դաշտեր։ Ձևաչափված տեքստը մշակվում է բլոկ առ բլոկ (Odoo-ի term մեխանիզմը)։ - Գները և մոդելների անվանումները փոխվում են։ Նախնական կարգավորումները պահպանվող գնացուցակ չեն։
- Ստեղծված է Odoo 19.0 Community-ի համար։ Այլ տարբերակներ չեն աջակցվում։
Հաճախ տրվող հարցեր
Արդյո՞ք ինչ-որ բան թարգմանվում կամ վերագրվում է առանց իմ համաձայնության։
Ոչ, քանի դեռ չեք միացրել Համաձայնությունն ավտոմատ ընդունել տարբերակը։ Նույնիսկ այդ դեպքում գրվում են միայն համաձայնություն ունեցող առաջարկները։ Մատակարարները և պլանավորված գործողությունը տեղադրումից հետո անջատված են։
Արդյո՞ք ինձ բանալիներ են պետք վճարովի մատակարարների համար։
Միայն այն մատակարարների համար, որոնք պահանջում են։ Pollinations-ի, MyMemory-ի կամ լոկալ շահագործվող մոդելի (օրինակ՝ Ollama) դեպքում՝ առանց բանալու։ Անվճար ծառայությունները հաճախ սահմանափակ են և դանդաղ, ամբողջ կայքի համար դրանք սովորաբար հարմար են միայն որպես լրացում։
Որքա՞ն արժե մեկ թարգմանությունը։
Դա կախված է մատակարարից, մոդելից, տեքստի երկարությունից և լեզուների քանակից, ուստի մոդուլը ֆիքսված թվեր չի սահմանում։ Dashboard-ը ցույց է տալիս սպառումն ու ծախսերը, հենց որ մուտքագրեք գները, և գնահատում է հերթագրված տեքստերի մնացյալ ծախսը։
Կարո՞ղ եմ տեքստերը գաղտնի պահել։
Այո, Գաղտնի կանոնի տարբերակով։ Այդ դեպքում աշխատում են միայն այն մատակարարները, որոնք նշված են որպես Ձեր սեփական ենթակառուցվածքում աշխատող, օրինակ՝ լոկալ Ollama։
Արդյո՞ք սա փոխարինում է Odoo-ի սեփական թարգմանությանը։
Ոչ։ Մոդուլն օգտագործում է Odoo-ի բազմալեզվությունը և գրում է այն նույն թարգմանությունների մեջ, որոնք այլապես պահպանում եք ձեռքով։
Ի՞նչ լիցենզիայով է այն։
AGPL-3 լիցենզիայով։ Սխալները և բարելավումները ողջունվում են որպես issue՝ GitHub պահոցում ։
Biricon IT Services-ի աջակցությունը
Մենք սպասարկում ենք Odoo տեղադրումներ փոքր և միջին ձեռնարկությունների համար՝ ներդրումից և հարմարեցումներից ու միգրացիաներից մինչև ընթացիկ շահագործում։ Եթե ցանկանում եք Ձեր Odoo կայքը շահագործել բազմալեզու, թարգմանությունները ապահովագրել արհեստական բանականությամբ կամ մոդուլն ապահով կերպով տեղափոխել Ձեր արտադրական ինստանս, սիրով կօգնենք։ Այլ սեփական մշակումներ՝ Ընկերության արխիվացում՝ պորտալի օգտատերերի հետ միասին, Փաստաթղթերի համարներ՝ նախածանցից, տարուց և հաշվիչից և Firmenbuch և հասցեների ստուգում ավստրիացի հաճախորդների համար.
Վիճակը՝ 2026 թ. նոյեմբերի 3։ Մոդուլի տարբերակ 19.0.1.0.0։ Պատկերները ցույց են տալիս հորինված օրինակելի տվյալներ։