تثبيت وتشغيل حاويات المترجم (معاينة)

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

تمكنك المترجم الحاوية من إنشاء بنية تطبيق مترجم تم تحسينها لكل من قدرات السحابة القوية ومحلية الحافة.

راجع قائمة اللغات المعتمدة عند استخدام حاويات المترجم.

هام

  • المترجم الحاوية في معاينة مسورة واستخدامها يجب عليك إرسال طلب عبر الإنترنت، والموافقة عليه. راجع طلب الموافقة لتشغيل الحاوية أدناه لمزيد من المعلومات.
  • تدعم حاوية المترجم ميزات محدودة مقارنة بعروض السحابة. راجعأساليب ترجمةContainer لمزيد من التفاصيل.

المتطلبات الأساسية

للبدء، ستحتاج إلى حساب Azure نشط. إذا لم يكن لديك حساب، يمكنك إنشاء حساب مجاني.

ستحتاج أيضًا إلى ما يلي:

مطلوب الغرض
الإلمام ب Docker
  • يجب أن يكون لديك فهم أساسي لمفاهيم Docker، مثل السجلات والمستودعات والحاويات وصور الحاويات، بالإضافة إلى معرفة المصطلحات والأوامر الأساسيةdocker.
محرك "Docker"
  • تحتاج إلى تثبيت Docker Engine على كمبيوتر مضيف. يوفر Docker الحزم التي تكوّن بيئة Docker على أنظمة التشغيل ⁧⁩macOS⁧⁩، و⁧⁩Windows⁧⁩، و⁧⁩Linux⁧⁩. للحصول على دليل تمهيدي لأساسيات Docker والحاويات، اطّلِع على ⁧⁩نظرة عامة حول Docker⁧⁩.
  • يجب تكوين Docker للسماح للحاويات بالاتصال ببيانات الفوترة وإرسالها إلى Azure.
  • في Windows، يجب أيضا تكوين Docker لدعم حاويات Linux.
مورد المترجم
  • مورد Azure المترجم بمنطقة أخرى غير "العمومية"، ومفتاح API المقترن وURI نقطة النهاية. كلتا القيمتين مطلوبة لبدء الحاوية ويمكن العثور عليها في صفحة نظرة عامة على الموارد.
‏‏اختياري الغرض
Azure CLI (واجهة سطر الأوامر)
  • يمكنك Azure CLI من استخدام مجموعة من الأوامر عبر الإنترنت لإنشاء موارد Azure وإدارتها. وهو متاح للتثبيت في بيئات Windows وmacOS وLinux ويمكن تشغيله في حاوية Docker وAzure Cloud Shell.

العناصر المطلوبة

تتطلب جميع حاويات الخدمات المعرفية ثلاثة عناصر أساسية:

  • إعداد قبول EULA. تم تعيين اتفاقية ترخيص المستخدم النهائي (EULA) بقيمة Eula=accept.

  • مفتاح API وعنوان URL لنقطة النهاية. يتم استخدام مفتاح API لبدء الحاوية. يمكنك استرداد مفتاح API وقيم عنوان URL لنقطة النهاية عن طريق الانتقال إلى صفحة مفاتيح الموارد المترجم ونقطة النهاية وتحديد الأيقونةCopy to clipboard.

هام

  • يتم استخدام المفاتيح للوصول إلى واجهة برمجة تطبيقات الخدمة المعرفية. لا تشارك مفاتيحك. قم بتخزينها بأمان، على سبيل المثال، باستخدام Azure Key Vault. نوصي أيضاً بإعادة تجديد هذه المفاتيح بانتظام. مفتاح واحد فقط ضروري لإجراء استدعاء واجهة برمجة التطبيقات. عند تجديد المفتاح الأول، يمكنك استخدام المفتاح الثاني للوصول المستمر إلى الخدمة.

الكمبيوتر المضيف

المضيف هو كمبيوتر يستند إلى x64 يقوم بتشغيل حاوية Docker. يمكن أن يكون جهاز كمبيوتر في أماكن عملك أو خدمة استضافة Docker في Azure، مثل:

متطلبات الحاوية وتوصياتها

يصف الجدول التالي المواصفات الدنيا والموصى بها للحاويات المترجم. مطلوب ما لا يقل عن 2 غيغابايت (غيغابايت) من الذاكرة ويجب أن يكون كل وحدة معالجة مركزية 2.6 غيغاهرتز على الأقل (غيغاهرتز) أو أسرع. والذاكرة، بالجيجابايت (GB)، لتخصيصها لكل المترجم. يصف الجدول التالي الحد الأدنى والتوصية بتخصيص الموارد لكل حاوية المترجم.

الحاوية الحدّ الأدنى المستحسنة زوج اللغة
المترجم متصل نواتان، ذاكرة 2 جيجابايت ذاكرة أساسية 4، 8 غيغابايت 4

لكل زوج لغة، يوصى بسعة 2 غيغابايت من الذاكرة. بشكل افتراضي، تحتوي حاوية المترجم دون اتصال على أربعة أزواج لغات. تتوافق الذاكرة والذاكرة مع --cpus الإعدادات و --memory ، والتي يتم استخدامها كجزء من docker run الأمر.

ملاحظة

  • تتوافق الذاكرة والذاكرة الأساسية لوحدة المعالجة --cpus المركزية مع الإعدادات و --memory ، والتي يتم استخدامها كجزء من أمر تشغيل docker.

  • تستند المواصفات الدنيا والموصى بها إلى حدود Docker، وليس موارد الجهاز المضيف.

طلب الموافقة لتشغيل الحاوية

أكمل تطبيق الخدمات المعرفية Azure للخدمات المسورة ثم أرسله لطلب الوصول إلى الحاوية.

يطلب النموذج معلومات عنك وعن شركتك وسيناريو المستخدم الذي ستستخدم الحاوية من أجله. بعد إرسال النموذج، يراجعه فريق الخدمات المعرفية في Azure ويرسل إليك رسالة بريد إلكتروني بقرار في غضون 10 أيام عمل.

هام

  • في النموذج، يجب استخدام عنوان بريد إلكتروني مقترن بمعرف اشتراك Azure.
  • يجب أن يكون مورد Azure الذي تستخدمه لتشغيل الحاوية قد تم إنشاؤه باستخدام معرف اشتراك Azure المعتمد.
  • تحقق من بريدك الإلكتروني (كل من علبة الوارد والمجلدات غير الهامة) للحصول على تحديثات حول حالة التطبيق الخاص بك من Microsoft.

بعد الموافقة، ستتمكن من تشغيل الحاوية بعد تنزيلها من Microsoft Container Registry (MCR)، الموضحة لاحقا في المقالة.

لن تتمكن من تشغيل الحاوية إذا لم تتم الموافقة على اشتراك Azure.

الحصول على صور الحاوية باستخدام أوامر docker

هام

  • تستخدم أوامر docker في الأقسام التالية الشرطة المائلة الخلفية، \، كحرف متابعة سطر. استبدل هذا أو أزله استنادا إلى متطلبات نظام التشغيل المضيف.
  • تُحدد الخياراتEULA وBillingApiKey لتشغيل الحاوية؛ وإلا فلن يتم تشغيل الحاوية.

استخدم الأمر docker run لتنزيل صورة حاوية من سجل حاوية Microsoft وتشغيلها.

docker run --rm -it -p 5000:5000 --memory 12g --cpus 4 \
-v /mnt/d/TranslatorContainer:/usr/local/models \
-e apikey={API_KEY} \
-e eula=accept \
-e billing={ENDPOINT_URI} \
-e Languages=en,fr,es,ar,ru  \
mcr.microsoft.com/azure-cognitive-services/translator/text-translation:1.0.019410001-amd64-preview

الأمر أعلاه:

  • تنزيل حاوية المترجم وتشغيلها من صورة الحاوية.
  • يخصص 12 غيغابايت من الذاكرة وأربعة ذاكرة أساسية لوحدة المعالجة المركزية.
  • يعرض منفذ TCP 5000 وتخصيص TTY زائف للحاوية
  • قبول اتفاقية المستخدم النهائي (EULA)
  • تكوين نقطة نهاية الفوترة
  • تنزيل نماذج الترجمة للغات الإنجليزية والفرنسية والإسبانية والعربية والروسية
  • يزيل الحاوية تلقائياً بعد إنهائها. صورة الحاوية لا تزال متوفرة على الكمبيوتر المضيف.

تشغيل حاويات متعددة على نفس المضيف

إذا كنت تنوي تشغيل حاويات متعددة مع منافذ مكشوفة، فتأكد من تشغيل كل حاوية بمنفذ مكشوف مختلف. على سبيل المثال، قم بتشغيل الحاوية الأولى على المنفذ 5000 والحاوية الثانية على المنفذ 5001.

يمكن أن يكون لديك هذه الحاوية وحاوية Azure Cognitive Services مختلفة تعمل على HOST معا. يمكنك أيضا أن يكون لديك حاويات متعددة من نفس حاوية الخدمات المعرفية قيد التشغيل.

الاستعلام عن نقطة النهاية المترجم للحاوية

توفر الحاوية واجهة برمجة تطبيقات نقطة نهاية المترجم تستند إلى REST. فيما يلي مثال على الطلب:

curl -X POST "http://localhost:5000/translate?api-version=3.0&from=en&to=zh-HANS"
    -H "Content-Type: application/json" -d "[{'Text':'Hello, what is your name?'}]"

ملاحظة

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

إيقاف الحاوية

لإيقاف تشغيل الحاوية، في بيئة سطر الأوامر حيث يتم تشغيل الحاوية، حدد Ctrl+C.

استكشاف الأخطاء وإصلاحها

التحقق من تشغيل حاوية

هناك عدة طرق للتحقق من تشغيل الحاوية:

  • توفر الحاوية صفحة منزلية في \ كتحقق مرئي من أن الحاوية قيد التشغيل.

  • يمكنك فتح مستعرض الويب المفضل لديك والانتقال إلى عنوان IP الخارجي والمنفذ المكشوف للحاوية المعنية. استخدم عناوين URL للطلب المختلفة أدناه للتحقق من تشغيل الحاوية. عناوين URL لطلب المثال المذكورة أدناه هي http://localhost:5000، ولكن قد تختلف الحاوية المحددة. ضع في اعتبارك أنك تنتقل إلى عنوان IP الخارجي للحاوية والمنفذ المكشوف.

URL للطلب الغرض
http://localhost:5000/ توفر الحاوية صفحةً رئيسيةً.
http://localhost:5000/ready مطلوب مع GET. يوفر التحقق من أن الحاوية جاهزة لقبول استعلام مقابل النموذج. يمكن استخدام هذا الطلب لفحوصات فعالية Kubernetes واستعداده.
http://localhost:5000/status مطلوب مع GET. يتحقق مما إذا كان مفتاح api المستخدم لبدء الحاوية صالحا دون التسبب في استعلام نقطة النهاية. يمكن استخدام هذا الطلب لفحوصات فعالية Kubernetes واستعداده.
http://localhost:5000/swagger توفر الحاوية مجموعةً كاملةً من الوثائق لنقاط النهاية وميزة Try it out. باستخدام هذه الميزة، يمكنك إدخال الإعدادات الخاصة بك في نموذج HTML مستند إلى الويب وإنشاء الاستعلام دون الحاجة إلى كتابة أي تعليمة برمجية. بعد إرجاع الاستعلام، يتم توفير مثال لأمر CURL لتوضيح عناوين HTTP وتنسيق النص الأساسي المطلوب.

Container home page

إذا كنت تواجه مشكلة في تشغيل حاوية الخدمات المعرفية، فيمكنك تجربة استخدام حاوية تشخيص Microsoft. استخدم هذه الحاوية لتشخيص الأخطاء الشائعة في بيئة النشر الخاصة بك والتي قد تمنع حاويات الخدمات المعرفية من العمل بالشكل المتوقع.

للحصول على الحاوية، استخدم الأمر التالي docker pull :

docker pull mcr.microsoft.com/azure-cognitive-services/diagnostic

ثم قم بتشغيل الحاوية. استبدل {ENDPOINT_URI} بنقطة النهاية الخاصة بك، واستبدل {API_KEY} بمفتاحك إلى المورد الخاص بك:

docker run --rm mcr.microsoft.com/azure-cognitive-services/diagnostic \
Eula=accept \
Billing={ENDPOINT_URI} \
ApiKey={API_KEY}

ستختبر الحاوية اتصال الشبكة بنقطة نهاية الفوترة.

نماذج التعليمات البرمجية للترجمة النصية

ترجمة النص باستخدام swagger

الإنجليزية ↔ الألمانية

انتقل إلى صفحة swagger: <http://localhost:5000/swagger/index.html>

  1. حدد POST /translate
  2. حدد Try it out
  3. أدخل المعلمة From ك en
  4. أدخل المعلمة إلى ك de
  5. أدخل معلمة api-version ك 3.0
  6. ضمن النصوص، استبدل string ب JSON التالي
  [
        {
            "text": "hello, how are you"
        }
  ]

حدد Execute، يتم إخراج الترجمات الناتجة في نص الاستجابة. يجب أن تتوقع شيئا مشابها للاستجابة التالية:

"translations": [
      {
          "text": "hallo, wie geht es dir",
          "to": "de"
      }
    ]

ترجمة النص باستخدام Python

import requests, json

url = 'http://localhost:5000/translate?api-version=3.0&from=en&to=fr'
headers = { 'Content-Type': 'application/json' }
body = [{ 'text': 'Hello, how are you' }]

request = requests.post(url, headers=headers, json=body)
response = request.json()

print(json.dumps(
    response,
    sort_keys=True,
     indent=4,
     ensure_ascii=False,
     separators=(',', ': ')))

ترجمة النص باستخدام تطبيق وحدة تحكم C#/.NET

قم بتشغيل Visual Studio، وإنشاء تطبيق وحدة تحكم جديد. *.csproj تحرير الملف لإضافة العقدة <LangVersion>7.1</LangVersion> — يحدد C# 7.1. أضف حزمة Newtoonsoft.Json NuGet، الإصدار 11.0.2.

في استبدال Program.cs كافة التعليمات البرمجية الموجودة بما يلي:

using Newtonsoft.Json;
using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;

namespace TranslateContainer
{
    class Program
    {
        const string ApiHostEndpoint = "http://localhost:5000";
        const string TranslateApi = "/translate?api-version=3.0&from=en&to=de";

        static async Task Main(string[] args)
        {
            var textToTranslate = "Sunny day in Seattle";
            var result = await TranslateTextAsync(textToTranslate);

            Console.WriteLine(result);
            Console.ReadLine();
        }

        static async Task<string> TranslateTextAsync(string textToTranslate)
        {
            var body = new object[] { new { Text = textToTranslate } };
            var requestBody = JsonConvert.SerializeObject(body);

            var client = new HttpClient();
            using (var request =
                new HttpRequestMessage
                {
                    Method = HttpMethod.Post,
                    RequestUri = new Uri($"{ApiHostEndpoint}{TranslateApi}"),
                    Content = new StringContent(requestBody, Encoding.UTF8, "application/json")
                })
            {
                // Send the request and await a response.
                var response = await client.SendAsync(request);

                return await response.Content.ReadAsStringAsync();
            }
        }
    }
}

الملخص

في هذه المقالة، تعلمت المفاهيم وسير العمل لتنزيل حاوية المترجم وتثبيتها وتشغيلها. الآن أنت تعرف:

  • يوفر المترجم حاويات Linux ل Docker.
  • يتم تنزيل صور الحاوية من سجل الحاوية وتشغيلها في Docker.
  • يمكنك استخدام واجهة برمجة تطبيقات REST لاستدعاء عملية "الترجمة" في حاوية المترجم عن طريق تحديد URI المضيف للحاوية.

الخطوات التالية