تخطي للذهاب إلى المحتوى

Odoo 19: ترجمة بالذكاء الاصطناعي مع مراجعة متبادلة – وحدة ai_translation_consensus التي تراقب فيها عدة نماذج بعضها بعضاً

3 نوفمبر 2026 | Odoo 19 Community | تطوير ذاتي
3 نوفمبر 2026 بواسطة
Odoo 19: ترجمة بالذكاء الاصطناعي مع مراجعة متبادلة – وحدة ai_translation_consensus التي تراقب فيها عدة نماذج بعضها بعضاً

وحدة Odoo 19 المسماة ai_translation_consensus: عدة نماذج ذكاء اصطناعي تترجم وتقيّم بعضها بعضاً بشكل مجهول ويوافق إنسان

ترجمة موقع إلكتروني إلى عشر لغات أو عشرين أو أربعين أمر سريع بنموذج ذكاء اصطناعي واحد. الأصعب هو السؤال عما إذا كان يمكن الوثوق بالنتيجة. فالنموذج اللغوي الواحد يخترع أحياناً كلمات، ويترجم أسماء المنتجات، أو يغيّر رقماً، ولا يلاحظ ذلك بنفسه. ولهذا كتبنا لـ Odoo 19 وحدة تعمل فيها عدة نماذج ذكاء اصطناعي وخدمات ترجمة على النص نفسه، وتقيّم نتائج بعضها بعضاً بشكل مجهول وتتفق على الصياغة التي تبدو دقيقة وطبيعية في آن واحد. وما ليس حاسماً يُعرض على إنسان ليقرر.

اسم الوحدة ai_translation_consensus وهي متوفرة كبرمجية حرة بموجب رخصة AGPL-3 على GitHub:

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

الفكرة: مراجعة متبادلة بدلاً من الثقة

تستطيع الوحدة أمرين:

  • الترجمة: استكمال الترجمات الناقصة (أو القديمة) لكل حقل قابل للترجمة في Odoo، أي مقالات المدونة وصفحات الويب والقوائم والمنتجات وكل ما يحفظه Odoo بعدة لغات. ولا ترى نماذج الذكاء الاصطناعي الجملة المفردة فحسب، بل الكتل المجاورة ومقتطفاً من الصفحة كلها. وبهذا تُفهم الكلمات المفردة في سياقها الصحيح.
  • التدقيق اللغوي: فحص النص بلغته نفسها واقتراح صياغات أفضل أو تصحيحات. والأصل هنا دائماً أحد المرشحين. وإذا فاز الأصل فلا يتغير شيء.

جوهر الأمر هو المراجعة المتبادلة. فكل نموذج ذكاء اصطناعي جيد في الحكم على نصوص الآخرين، حتى لو أخطأ هو نفسه أحياناً. وتستفيد الوحدة من ذلك: يكتب عدة مزوّدين صيغة لكل منهم، ثم يقيّم المزوّدون أنفسهم جميع الصيغ دون أن يعرفوا من كتبها. ولا يقيّم المزوّد صيغته الخاصة.

كيف ينشأ الاقتراح

المسار: الترجمة، الفحص، التقييم، الاتفاق، موافقة البشر

  1. الترجمة. يكتب كل مترجم صيغة بالتوازي.
  2. فحوص ثابتة. يُفحص بدون ذكاء اصطناعي ما إذا بقيت وسوم HTML والكيانات (Entities) والعناصر النائبة مثل %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. وهي تضيف النطاق «موقع كامل بكل ما عليه»: يختار المرء الموقع ويدع الوحدة تقترح المحتويات. وتفحص الوحدة جميع النماذج التي لها حقول قابلة للترجمة وتنتمي إلى الموقع (الصفحات والقوائم والمدونات والمنتجات والفعاليات والمنتديات والدورات وغيرها)، وتقترح قاعدة لكل نوع محتوى، بلغات الموقع كهدف.

معالج البدء مع نطاق الموقع الكامل وأنواع المحتوى المقترحة

  • ما ليس مثبّتاً (المنتديات والدورات والمعارض) لا يظهر، ويُضاف لاحقاً بمجرد تثبيته.
  • لا تُقترح نماذج المتجر إلا إذا كان للموقع متجر. ولا تُلتقط إلا السجلات المنشورة.
  • جهات الاتصال والشركات ومزوّدو الدفع وقوائم الأسعار وطرق التسليم وبرامج الولاء ومرشحات المقتطفات (Snippet) لا تعرضها الوحدة عن قصد.
  • لا تُترجم أسماء عناوين الصفحات (seo_name).
  • يمكن إزالة الأنواع غير المرغوبة قبل الإنشاء.

الإنشاء والبحث لا يكلفان شيئاً: فالقاعدة تسرد فقط النصوص التي تحتاج إلى عمل. ولا يُستدعى المزوّدون وتنشأ التكاليف إلا عند المعالجة.

لوحة المعلومات والتكاليف والبدء التلقائي

تعرض لوحة المعلومات لكل قاعدة عدد النصوص الجاهزة، وتلك التي تنتظر تأكيداً أو إنساناً، وتلك المصطفة، وتلك التي فشلت. ويضاف إلى ذلك التفصيل حسب اللغة والمزوّد، والتكاليف السابقة والمتوقعة، والوقت المتبقي المقدّر، ومفتاح المعالجة المجدولة.

لوحة معلومات مع التقدم والتكاليف والرموز (Tokens) واللغات. بيانات أمثلة.

الأرقام في هذه الصورة بيانات أمثلة ولا تدل على التكاليف الحقيقية.

  • التكاليف تُحسب مما يبلغ عنه المزوّدون فعلياً: الرموز (OpenAI وAnthropic وGemini وCohere) أو الأحرف (DeepL وGoogle وAzure). وتُعرض الرموز دائماً، أما المال فلا يُعرض إلا إذا أدخلتم سعر المليون رمز (أو حرف) لدى المزوّد. ولا تحتوي الإعدادات المسبقة على أسعار، لأنها تتغير. والخدمات التي لا تبلغ عن رموز تُقدَّر من طول النص وتُعلَّم كتقدير.
  • التوقع: متوسط التكاليف ووقت العمل لكل نص مضروباً في عدد النصوص المصطفة. وهذا تقدير يتحسن مع الدفعات الأولى.
  • البدء التلقائي: القواعد ذات الخيار ابدأ من تلقاء نفسك عند تغيير سجل تبحث في كل تشغيل للإجراء المجدول عن السجلات التي تغيرت منذ آخر بحث فقط. ومع تفعيل الإجراء المجدول تُترجم صفحة الويب المعدَّلة من جديد دون أي تدخل.
  • إشعار الاكتمال: عند إنجاز آخر نص مفتوح في قاعدة ما، تظهر مرة واحدة الرسالة «تمت ترجمة جميع اللغات» (وعند التدقيق «تم فحص جميع النصوص») في قناة AI Translation.

الموافقة من البشر

افتراضيًا لا تكتب الوحدة أي شيء في سجلاتكم دون موافقتكم. يعرض كل اقتراح الصيغ المقترحة ومن كتبها والدرجات وملاحظات المدقّقين. يمكنكم اعتماد الاقتراح أو اختيار صيغة أخرى أو كتابة صياغة خاصة بكم أو رفض الاقتراح.

اقتراح بثلاثة مرشحين مع الدرجات وأصوات المفضّل وقرار يتخذه إنسان. النص المعروض مثال مختلق بالكامل.

النص وأسماء المزوّدين في هذه الصورة مختلقة بالكامل لغرض عرض الواجهة.

من يثق بقاعدة ما يمكنه تفعيل خيار اعتماد الاتفاق تلقائيًا. أما الاقتراحات التي لم يحصل فيها اتفاق فتبقى بانتظار إنسان حتى في هذه الحالة. وعند الاعتماد تتحقق الوحدة مرة أخرى من أن النص المصدر لم يتغير في الأثناء، وتعيد فحوص الترميز، ثم تكتب دون تتبّع ودون إشعار المتابعين.

الأمان وحماية البيانات

  • كل شيء متوقف بعد التثبيت. المزوّدون والإجراء المجدول معطّلون. لن يُرسَل أي شيء دون تدخّلكم.
  • تغادر النصوص خادمكم بمجرد مشاركة خدمة مستضافة. يمكن وسم القاعدة بأنها سرية؛ عندها لا يرى النص إلا المزوّدون الموسومون بأنهم يعملون على بنية تحتية خاصة بكم.
  • المفاتيح تُحفظ في حقل لا يراه سوى المسؤولين، أو في متغيّر بيئة لا يشير إليه إلا اسمه. تُحجب في رسائل الخطأ وتُرسَل في الترويسات. استثناء: لا يمكن تمرير المفتاح الاختياري لخدمة MyMemory هناك إلا كمعامل استعلام.
  • الأمر المحلي ينفّذ برنامجًا، ولذلك يبقى محظورًا إلى أن يُضبط معامل النظام ai_translation_consensus.allow_command على True. يُستدعى الأمر دون صدفة (shell) ويعمل في دليل مؤقت فارغ.
  • حقن الأوامر (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. ومن يشغّل نظامًا إنتاجيًا فليثبّت الوحدة أولًا على نسخة من قاعدة البيانات.

الخطوات الأولى: افتحوا القائمة الترجمة بالذكاء الاصطناعي ← المزوّدون، واختبروا الخدمات وفعّلوها، ثم ابدأ من هنا وأنشئوا القاعدة الأولى. باستخدام البحث عن نصوص تُنشأ الاقتراحات، وباستخدام معالجة دفعة واحدة يجري استدعاء المزوّدين. ابدأوا بقاعدة صغيرة، مثل تدوينة واحدة ولغتين، وتأمّلوا النتيجة والتكلفة قبل أن تضعوا موقعًا كاملًا في الطابور.

الحدود

  • تعتمد الجودة على النماذج التي تفعّلونها. يقلّل التدقيق المتبادل من أخطاء النماذج الفردية، لكنه لا يمنح ضمانًا. وبالنسبة إلى النصوص الحساسة قانونيًا أو أمنيًا، لا تغني الوحدة عن مترجم من أهل اللغة.
  • التكاليف تتزايد بسرعة. يكلّف النص الواحد استدعاءً لكل مترجِم، واستدعاء تدقيق لكل مدقّق، وجولة ثانية في حالة التصويت المنقسم. ويزيد سياق الصفحة من مدخلات كل استدعاء. وقاعدة بـ 45 لغة هدف تضاعف عدد النصوص. حدّوا عمليات التشغيل عبر السجلات لكل عملية بحث والاقتراحات الجديدة لكل عملية بحث والاقتراحات لكل تشغيل Cron، وأضيفوا نماذج رخيصة أو محلية كمدقّقين.
  • الحقول ذات translate=True فقط. يُعالَج النص المنسّق كتلةً كتلة (آلية المصطلحات في Odoo).
  • الأسعار وأسماء النماذج تتغير. القيم الافتراضية ليست قائمة أسعار محدّثة.
  • مبنية لـ Odoo 19.0 Community. الإصدارات الأخرى غير مدعومة.

الأسئلة الشائعة

هل تُترجَم نصوصي أو يُكتب فوقها دون موافقتي؟

لا، ما دمتم لا تفعّلون اعتماد الاتفاق تلقائيًا. وحتى حينها لا تُكتب إلا الاقتراحات التي حصل فيها اتفاق. المزوّدون والإجراء المجدول معطّلون بعد التثبيت.

هل أحتاج إلى مفاتيح للمزوّدين المدفوعين؟

فقط للمزوّدين الذين يشترطون ذلك. مع Pollinations أو MyMemory أو نموذج يُشغَّل محليًا (مثل Ollama) يمكن العمل دونها. الخدمات المجانية محدودة وبطيئة في الغالب، وهي لا تصلح لموقع كامل إلا كعنصر مكمّل.

كم تكلّف الترجمة؟

يتوقف ذلك على المزوّد والنموذج وطول النص وعدد اللغات، ولهذا لا تحدّد الوحدة أرقامًا ثابتة. تعرض لوحة المعلومات الاستهلاك والتكاليف بمجرد إدخالكم الأسعار، وتقدّر التكلفة المتبقية للنصوص المصطفّة في الطابور.

هل يمكنني إبقاء النصوص سرية؟

نعم، بخيار القاعدة سري. عندها لا يعمل إلا المزوّدون الموسومون بأنهم يعملون على بنيتكم التحتية الخاصة، مثل Ollama محلي.

هل يحلّ هذا محل ترجمة Odoo المدمجة؟

لا. تستفيد الوحدة من تعدد اللغات في Odoo وتكتب في الترجمات نفسها التي تتولون صيانتها يدويًا في العادة.

تحت أي رخصة تتوفر؟

تحت AGPL-3. والأخطاء والتحسينات مرحَّب بها كمسألة (Issue) في مستودع GitHub .

الدعم من Biricon IT Services

نحن نرعى تثبيتات Odoo للشركات الصغيرة والمتوسطة: من التطبيق الأولي مرورًا بالتخصيصات وعمليات الترحيل وصولًا إلى التشغيل اليومي. وإذا كنتم تريدون تشغيل موقعكم على Odoo بعدة لغات، أو تأمين الترجمات بالذكاء الاصطناعي، أو إدخال وحدة إلى نسخة الإنتاج لديكم بأمان، فيسعدنا مساعدتكم. تطويرات خاصة أخرى: أرشفة شركة مع مستخدمي البوابة التابعين لها, أرقام مستندات من بادئة وسنة وعدّاد و السجل التجاري والتحقق من العناوين للعملاء النمساويين.

تواصلوا معنا الآن

التاريخ: 3 نوفمبر 2026. إصدار الوحدة 19.0.1.0.0. تعرض الصور بيانات أمثلة مختلقة.