إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
في هذا المقال، تتعلم كيفية نشر تطبيق يستخدم Azure OpenAI أو OpenAI على AKS. باستخدام OpenAI، يمكنك بسهولة تكييف نماذج الذكاء الاصطناعي مختلفة، مثل إنشاء المحتوى، والملخص، والبحث الدلالي، واللغة الطبيعية لإنشاء التعليمات البرمجية، لمهامك المحددة. تبدأ بنشر عنقود AKS في اشتراكك في Azure. بعد ذلك، يمكنك نشر خدمة OpenAI ونموذج التطبيق.
يمثل نموذج التطبيق الأصلي السحابي عمليات التنفيذ في العالم الحقيقي. يتكون التطبيق متعدد الحاويات من تطبيقات مكتوبة بلغات وأطر عمل متعددة، بما في ذلك:
- Golang مع Gin
- Rust مع Actix-Web
- JavaScript مع Vue.js وFastify
- Python مع FastAPI
توفر هذه التطبيقات الواجهات الأمامية للعملاء ومسؤولين المتجر وواجهات برمجة تطبيقات REST لإرسال البيانات إلى قائمة انتظار رسائل RabbitMQ وقاعدة بيانات MongoDB وتطبيقات وحدة التحكم لمحاكاة نسبة استخدام الشبكة.
Note
لا نوصي بتشغيل حاويات ذات حالة، مثل MongoDB و Rabbit MQ، دون تخزين مستمر للإنتاج. نستخدمها هنا للبساطة، لكننا نوصي باستخدام الخدمات المدارة، مثل Azure CosmosDB أو ناقل خدمة Azure.
للوصول إلى قاعدة شيفرة GitHub للتطبيق النموذجي، انظر AKS Store Demo.
قبل البدء
- تحتاج إلى حساب Azure مع اشتراك نشط. إذا لم يكن لديك حساب، فبادر بإنشاء حساب مجانا.
- في هذا العرض التجريبي، يمكنك استخدام خدمة Azure OpenAI أو خدمة OpenAI.
- إذا كنت تخطط لاستخدام Azure OpenAI service، عليك طلب الوصول لتفعيله على اشتراكك Azure باستخدام طلب الوصول إلى خدمة Azure OpenAI form.
- إذا كنت تخطط لاستخدام OpenAI ، فقم بالتسجيل في موقع OpenAI على الويب.
Prerequisites
استخدم بيئة باش في Azure Cloud Shell. لمزيد من المعلومات، راجع ابدأ مع Azure Cloud Shell.
إذا كنت تفضل تشغيل أوامر مرجعية لواجهة الواجهة محليا، install Azure CLI. إذا كنت تعمل على Windows أو macOS، فكر في تشغيل Azure CLI في حاوية Docker. لمزيد من المعلومات، راجع كيفية تشغيل Azure CLI في حاوية Docker.
إذا كنت تستخدم تثبيتا محليا، سجل الدخول إلى Azure CLI باستخدام أمر az login. لإنهاء عملية المصادقة، اتبع الخطوات المعروضة في جهازك. لخيارات تسجيل الدخول الأخرى، راجع المصادقة إلى Azure باستخدام Azure CLI.
عندما يطلب منك ذلك، قم بتثبيت إضافة Azure CLI عند الاستخدام الأول. لمزيد من المعلومات حول الإضافات، راجع استخدم وإدارة الإضافات باستخدام Azure CLI.
يُرجى تشغيل إصدار az للوصول إلى الإصدار والمكتبات التابعة التي تم تثبيتها. للتحديث لآخر إصدار، يُرجى تشغيل تحديث az.
إنشاء مجموعة موارد
مجموعة الموارد Azure هي مجموعة منطقية تقوم بنشر وإدارة الموارد Azure فيها. عند إنشاء مجموعة موارد، تتم مطالبتك بتحديد موقع. هذا الموقع هو موقع التخزين لبيانات مجموعة الموارد الخاصة بك وحيث تعمل مواردك في Azure إذا لم تحدد منطقة أخرى أثناء إنشاء الموارد.
في المثال التالي، سيتم إنشاء مجموعة موارد باسم myResourceGroup في موقع eastus.
إنشاء مجموعة موارد باستخدام الأمر .
az group create --name myResourceGroup --location eastusيظهر إخراج المثال التالي الإنشاء الناجح لمجموعة الموارد:
{ "id": "/subscriptions/<guid>/resourceGroups/myResourceGroup", "location": "eastus", "managedBy": null, "name": "myResourceGroup", "properties": { "provisioningState": "Succeeded" }, "tags": null, "type": "Microsoft.Resources/resourceGroups" }
إنشاء نظام مجموعة AKS
ينشئ المثال التالي نظام مجموعة باسم myAKSCluster في myResourceGroup.
إنشاء نظام مجموعة AKS باستخدام الأمر .
az aks create --resource-group myResourceGroup --name myAKSCluster --generate-ssh-keysبعد بضع دقائق، الأمر إكمال وإرجاع معلومات منسقة JSON حول الكتلة.
الاتصال بنظام المجموعة
لإدارة مجموعة Kubernetes، يمكنك استخدام عميل سطر الأوامر Kubernetes، kubectl.
kubectl مثبت بالفعل إذا كنت تستخدم Azure Cloud Shell.
تثبيت محليا باستخدام الأمر .
az aks install-cliNote
إذا كان النظام المستند إلى Linux يتطلب أذونات مرتفعة، يمكنك استخدام الأمر .
قم بتكوين للاتصال بنظام مجموعة Kubernetes باستخدام أمر .
ينفذ هذا الأمر العمليات التالية:
- حمل بيانات الاعتماد ثم احرص على تكوين Kubernetes CLI بغرض استخدامها.
- استخدم الموقع الافتراضي لملف تكوين Kubernetes. حدد موقعا مختلفا لملف تكوين Kubernetes باستخدام وسيطة --file .
az aks get-credentials --resource-group myResourceGroup --name myAKSClusterتحقق من الاتصال بالمجموعة باستخدام الأمر . يعمل هذا الأمر على استرجاع قائمة نظام المجموعة العنقودية.
kubectl get nodesيظهر إخراج المثال التالي العقد التي تم إنشاؤها في الخطوات السابقة. تأكد من أن حالة العقدة جاهزة.
NAME STATUS ROLES AGE VERSION aks-nodepool1-31469198-vmss000000 Ready agent 3h29m v1.25.6 aks-nodepool1-31469198-vmss000001 Ready agent 3h29m v1.25.6 aks-nodepool1-31469198-vmss000002 Ready agent 3h29m v1.25.6
Note
بالنسبة للمجموعات الخاصة، قد لا يمكن الوصول إلى العقد إذا حاولت الاتصال بها من خلال عنوان IP العام. لإصلاح ذلك، تحتاج إلى إنشاء نقطة نهاية داخل نفس VNET مثل نظام المجموعة للاتصال منها. اتبع الإرشادات لإنشاء نظام مجموعة AKS خاص ثم الاتصال به.
قم بنشر التطبيق
رسم تخطيطي للعرض التوضيحي الذكاء الاصطناعي AKS.
يتضمن ملف تطبيقات متجر AKS النشر والخدمات التالية لكوبيرنيتس:
- خدمة المنتج: تعرض معلومات المنتج.
- خدمة الطلب: يضع الطلبات.
- خدمة Makeline: تعالج الطلبات من قائمة الانتظار وتكمل الأوامر.
- واجهة المتجر: تطبيق ويب للعملاء لعرض المنتجات وتقديم الطلبات.
- مسؤول المتجر: تطبيق ويب لموظفي المتجر لعرض الطلبات في قائمة الانتظار وإدارة معلومات المنتج.
- عميل ظاهري: يحاكي إنشاء الأوامر على أساس مجدول.
- عامل ظاهري: يحاكي إكمال الأمر على أساس مجدول.
- Mongo DB: نسخة NoSQL للبيانات المستمرة.
- Rabbit MQ: قائمة انتظار الرسائل لقائمة انتظار الطلبات.
Note
لا نوصي بتشغيل حاويات ذات حالة، مثل MongoDB و Rabbit MQ، دون تخزين مستمر للإنتاج. نستخدمها هنا للبساطة، لكننا نوصي باستخدام الخدمات المدارة، مثل Azure CosmosDB أو ناقل خدمة Azure.
راجع قائمة YAML للطلب.
انشر التطبيق باستخدام الأمر وحدد اسم بيان YAML.
kubectl apply -f https://raw.githubusercontent.com/Azure-Samples/aks-store-demo/main/aks-store-all-in-one.yamlيظهر إخراج المثال التالي عمليات النشر والخدمات التي تم إنشاؤها بنجاح:
deployment.apps/mongodb created service/mongodb created deployment.apps/rabbitmq created service/rabbitmq created deployment.apps/order-service created service/order-service created deployment.apps/makeline-service created service/makeline-service created deployment.apps/product-service created service/product-service created deployment.apps/store-front created service/store-front created deployment.apps/store-admin created service/store-admin created deployment.apps/virtual-customer created deployment.apps/virtual-worker created
نشر OpenAI
يمكنك استخدام Azure OpenAI أو OpenAI وتشغيل تطبيقك على AKS.
- Azure OpenAI
- OpenAI
- في بوابة Azure، أنشئ مثيل Azure OpenAI.
- انتقل إلى نسخة Azure OpenAI التي أنشأتها.
- من شفرة النظرة العامة ، انتقل إلى بوابة مايكروسوفت فاوندري.
- قم بإنشاء نشر Chat جديد باستخدام النموذج الأساسي gpt-4o-mini .
لمزيد من المعلومات حول كيفية إنشاء نشر في Azure OpenAI، راجع ابدأ في توليد النصوص باستخدام خدمة Azure OpenAI.
نشر خدمة الذكاء الاصطناعي
الآن بعد نشر التطبيق، يمكنك نشر خدمة مصغرة تعتمد على Python والتي تستخدم OpenAI لتوليد أوصاف تلقائيا للمنتجات الجديدة التي تضاف إلى كتالوج المتجر.
- Azure OpenAI
- OpenAI
أنشئ ملفا باسم وانسخه في البيان التالي:
apiVersion: apps/v1 kind: Deployment metadata: name: ai-service spec: replicas: 1 selector: matchLabels: app: ai-service template: metadata: labels: app: ai-service spec: nodeSelector: "kubernetes.io/os": linux containers: - name: ai-service image: ghcr.io/azure-samples/aks-store-demo/ai-service:latest ports: - containerPort: 5001 env: - name: USE_AZURE_OPENAI value: "True" - name: AZURE_OPENAI_DEPLOYMENT_NAME value: "" - name: AZURE_OPENAI_ENDPOINT value: "" - name: OPENAI_API_KEY value: "" resources: requests: cpu: 20m memory: 50Mi limits: cpu: 50m memory: 128Mi --- apiVersion: v1 kind: Service metadata: name: ai-service spec: type: ClusterIP ports: - name: http port: 5001 targetPort: 5001 selector: app: ai-serviceتعيين متغير البيئة إلى .
احصل على اسم نشر OpenAI Azure من Foundry واملأ قيمة
AZURE_OPENAI_DEPLOYMENT_NAME.احصل على نقطة نهاية OpenAI Azure ومفتاح واجهة برمجة التطبيقات Azure OpenAI من بوابة Azure باختيار <مفاتيح >Keys و Endpoint في الشفرة اليسرى للمورد. قم بتحديث و في YAML وفقا لذلك.
انشر التطبيق باستخدام الأمر وحدد اسم بيان YAML.
kubectl apply -f ai-service.yamlيظهر إخراج المثال التالي عمليات النشر والخدمات التي تم إنشاؤها بنجاح:
deployment.apps/ai-service created service/ai-service created
Note
إضافة المعلومات الحساسة مباشرة، مثل مفاتيح API، إلى ملفات بيان Kubernetes الخاصة بك غير آمنة وقد يتم الالتزام بها عن طريق الخطأ في مستودعات التعليمات البرمجية. أضفناه هنا للتبسيط. بالنسبة لأعباء العمل الإنتاجية، استخدم Managed Identity للمصادقة على خدمة OpenAI Azure بدلا من ذلك أو خزن أسرارك في Azure Key Vault.
اختبر التطبيق
تحقق من حالة pods المنشورة باستخدام الأمر kubectl get pods .
kubectl get podsتأكد من تشغيل جميع الكبسولات قبل المتابعة إلى الخطوة التالية.
NAME READY STATUS RESTARTS AGE makeline-service-7db94dc7d4-8g28l 1/1 Running 0 99s mongodb-78f6d95f8-nptbz 1/1 Running 0 99s order-service-55cbd784bb-6bmfb 1/1 Running 0 99s product-service-6bf4d65f74-7cbvk 1/1 Running 0 99s rabbitmq-9855984f9-94nlm 1/1 Running 0 99s store-admin-7f7d768c48-9hn8l 1/1 Running 0 99s store-front-6786c64d97-xq5s9 1/1 Running 0 99s virtual-customer-79498f8667-xzsb7 1/1 Running 0 99s virtual-worker-6d77fff4b5-7g7rj 1/1 Running 0 99sاحصل على IP لتطبيق ويب مسؤول المتجر وخزن تطبيق الويب الأمامي باستخدام الأمر .
kubectl get service store-adminيعرض التطبيق موقع مسؤول المتجر على الإنترنت عبر موازن تحميل عام توفره خدمة Kubernetes. قد تستغرق هذه العملية بضع دقائق حتى تكتمل. يظهر عنوان IP الخارجي في البداية معلقا حتى تظهر الخدمة وتعرض عنوان IP.
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE store-admin LoadBalancer 10.0.142.228 40.64.86.161 80:32494/TCP 50mكرر نفس الخطوة للخدمة المسماة "store-front".
افتح مستعرض ويب واستعرض للوصول إلى عنوان IP الخارجي للخدمة. في المثال الموضح هنا، افتح 40.64.86.161 لرؤية مسؤول المتجر في المتصفح. كرر نفس الخطوة ل Store Front.
في مسؤول المتجر، حدد علامة التبويب المنتجات، ثم حدد إضافة منتجات.
عند تشغيل "خدمة الذكاء الاصطناعي" بنجاح، يجب أن ترى الزر Ask OpenAI بجوار حقل الوصف. املأ الاسم والسعر والكلمات الرئيسية، ثم قم بإنشاء وصف للمنتج عن طريق تحديد اسأل OpenAISave product.
لقطة شاشة لكيفية استخدام openAI لإنشاء وصف منتج.
يمكنك الآن رؤية المنتج الجديد الذي أنشأته على مسؤول المتجر الذي يستخدمه البائعون. في الصورة، يمكنك مشاهدة إضافة Dog Smart Collar.
لقطة شاشة تعرض المنتج الجديد في صفحة مسؤول المتجر.
يمكنك أيضا مشاهدة المنتج الجديد الذي قمت بإنشائه على واجهة المتجر المستخدمة من قبل المشترين. في الصورة، يمكنك مشاهدة إضافة Dog Smart Collar. تذكر الحصول على عنوان IP الخاص بالمخزن الأمامي باستخدام الأمر .
لقطة شاشة تعرض المنتج الجديد في الصفحة الأمامية للمتجر.
الخطوات التالية
الآن بعد أن أضفت وظائف OpenAI إلى تطبيق AKS، يمكنك Secure Access إلى Azure OpenAI من خدمة Kubernetes Service (AKS) Azure.
لمعرفة المزيد حول حالات استخدام الذكاء الاصطناعي التوليدية، راجع الموارد التالية: