نقاط النهاية المخصصة#
Ultralytics Platform يتيح نشر نماذج YOLO إلى نقاط نهاية مخصصة في 42 منطقة عالمية. كل نقطة نهاية هي خدمة أحادية المستأجر مع سلوك القياس إلى الصفر، وعنوان URL فريد لنقطة النهاية، ومراقبة مستقلة.

إنشاء نقطة نهاية#
من علامة تبويب النشر#
انشر نموذجاً من علامة التبويب Deploy الخاصة به:
- انتقل إلى النموذج الخاص بك
- انقر على علامة التبويب Deploy
- راجع خريطة العالم وجدول المناطق، الذي يتم مرتباً حسب زمن الوصول المقاس من موقعك
- انقر فوق Deploy في صف المنطقة التي تريد استخدامها
يبدأ النشر فوراً بدون خطوة لتسمية النموذج: حيث يُنشأ الاسم تلقائياً من اسم النموذج ومدينة المنطقة (على سبيل المثال yolo26n-iowa). يجب أن يحتوي النموذج على أوزان، وإلا فسيعرض تبويب البيانات حالة فارغة بدلاً من جدول المناطق.
من صفحة عمليات النشر#
أنشئ عملية نشر من صفحة Deploy العامة في الشريط الجانبي:
- انقر فوق New Deployment
- حدد نموذجاً من قائمة تحديد النماذج، والتي تعرض النماذج المكتملة الخاصة بك
- حدد منطقة من الخريطة المصغرة أو جدول زمن الانتقال
- راجع اسم النشر المنشأ تلقائياً، والذي يمكنك تعديله هنا
- انقر فوق Deploy Model

دورة حياة النشر#
stateDiagram-v2
[*] --> Creating: Deploy
Creating --> Deploying: Service starting
Deploying --> Ready: Service URL published
Ready --> Stopping: Stop
Ready --> Deploying: Replace model
Stopping --> Stopped: Stopped
Stopped --> Deploying: Start
Deploying --> Stopped: Start failed
Ready --> [*]: Delete
Stopped --> [*]: Delete
Creating --> Failed: Error
Deploying --> Failed: Error
Failed --> [*]: Delete
classDef proc fill:#2196F3,color:#fff
classDef out fill:#9C27B0,color:#fff
classDef error fill:#F44336,color:#fff
classDef extern fill:#607D8B,color:#fff
class Creating,Deploying,Stopping proc
class Ready out
class Failed error
class Stopped externقم بتوصيل تنبيهات Slack لتلقي رسالة عندما يصبح النشر جاهزاً أو يفشل في البدء.
اختيار المنطقة#
اختر من بين 42 منطقة حول العالم. تعرض خريطة المناطق التفاعلية والجدول ما يلي:
- دبابيس المنطقة: مرمزة بالألوان حسب زمن الوصول على تدرج من الأخضر إلى الأحمر (المناطق الأسرع تكون أكثر خضرة، والمناطق الأبطأ تكون أكثر احمراراً)
- المناطق المُنشطة: تظهر مميزة بشارة "Deployed" في الجدول
- المناطق قيد النشر: مؤشر نبض متحرك على الدبوس وفي صف الجدول
- تمييز ثنائي الاتجاه: التمرير فوق الخريطة يبرز صف الجدول، والعكس صحيح
يتضمن جدول المناطق في علامة تبويب نموذج Deploy ما يلي:
| العمود | الوصف |
|---|---|
| الموقع | المدينة والدولة مع أيقونة العلم |
| المنطقة | معرف المنطقة |
| زمن الانتقال | وقت استجابة الشبكة المقاس من متصفحك |
| المسافة | المسافة من موقعك التقريبي بالكيلومتر |
| الإجراءات | زر النشر أو شارة حالة "Deployed" |
الجدول قابل للبحث حسب المدينة والدولة والمنطقة، ويتم فرزه افتراضياً حسب زمن الانتقال.
يُظهر مربع الحوار New Deployment (من صفحة Deploy العامة) جدول مناطق أبسط يحتوي فقط على أعمدة الموقع (Location)، وزمن الانتقال (Latency)، والتحديد (Select)، ويعرض أسرع 20 منطقة مع ملاحظة بخصوص المناطق المتبقية. استخدم الخريطة المصغرة لاختيار أي منطقة أخرى.
يقيس متصفحك زمن الانتقال لكل من المناطق الـ 42، وتُخزن النتائج مؤقتاً لمدة 30 دقيقة ويتم مشاركتها عبر تبويب Deploy ومربع حوار New Deployment. استخدم زر إعادة الفحص (Rescan) في تبويب نموذج Deploy لإعادة القياس من شبكتك الحالية. تُحسب المسافة بناءً على الموقع التقريبي لطلبك، لذا فهي تُعد دليلاً تقريبياً وليست قيمة دقيقة.
المناطق المتاحة#
| المنطقة | الموقع |
|---|---|
| us-central1 | آيوا، الولايات المتحدة الأمريكية |
| us-east1 | ساوث كارولينا، الولايات المتحدة الأمريكية |
| us-east4 | شمال فيرجينيا، الولايات المتحدة الأمريكية |
| us-east5 | كولومبوس، الولايات المتحدة الأمريكية |
| us-south1 | دالاس، الولايات المتحدة الأمريكية |
| us-west1 | أوريغون، الولايات المتحدة الأمريكية |
| us-west2 | لوس أنجلوس، الولايات المتحدة الأمريكية |
| us-west3 | سولت ليك سيتي، الولايات المتحدة الأمريكية |
| us-west4 | لاس فيغاس، الولايات المتحدة الأمريكية |
| northamerica-northeast1 | مونتريال، كندا |
| northamerica-northeast2 | تورنتو، كندا |
| northamerica-south1 | كيريتارو، المكسيك |
| southamerica-east1 | ساو باولو، البرازيل |
| southamerica-west1 | سانتياغو، تشيلي |
تهيئة نقطة النهاية#
مربع حوار النشر الجديد#
يجمع مربع حوار New Deployment ثلاثة مدخلات:
| الحقل | الوصف |
|---|---|
| النموذج (Model) | أي نموذج مكتمل في مساحة العمل، يتم اختياره باستخدام أداة التحديد |
| المنطقة (Region) | منطقة النشر، يتم اختيارها على الخريطة المصغرة أو في جدول زمن الانتقال |
| اسم النشر (Deployment Name) | يُنشأ تلقائياً بمجرد تحديد النموذج والمنطقة، وهو قابل للتعديل |
أسفل الاسم، توجد لوحة الموارد (Resources) للقراءة فقط تحمل شارة Custom resources coming soon. الموارد غير قابلة للتكوين حالياً: حيث تعمل كل نقطة نهاية كنسخة واحدة يتم تحجيمها إلى الصفر عندما تكون في حالة خمول.
يجمع اسم النشر بين اسم النموذج ومدينة المنطقة، على سبيل المثال yolo26n-iowa. في تبويب نموذج Deploy، تُضاف لاحقة رقمية عندما يكون للنموذج نشر مسبق في المنطقة (على سبيل المثال yolo26n-iowa-2). يجب أن تكون الأسماء فريدة داخل مساحة العمل - حيث يؤدي نشر اسم موجود مسبقاً إلى إرجاع خطأ بدلاً من إعادة تسميته صمتاً.
علامة تبويب النشر (النشر السريع)#
يستخدم النشر من تبويب Deploy الخاص بالنموذج نفس الموارد الثابتة والاسم المنشأ تلقائياً، دون أي خطوات في مربع حوار. يظهر النشر فوراً في قائمة عمليات النشر النشطة (Active Deployments) أسفل جدول المناطق أثناء إنشائه.
إدارة نقاط النهاية#
أنماط العرض#
تدعم قائمة عمليات النشر ثلاثة أوضاع للعرض:
| النمط | الوصف |
|---|---|
| بطاقات | بطاقات تفصيلية كاملة مع السجلات، وأمثلة التعليمات البرمجية، ولوحة التنبؤ |
| مدمج (Compact) | شبكة من البطاقات الأصغر مع المقاييس الرئيسية |
| جدول | جدول بيانات (DataTable) مع أعمدة قابلة للفرز والبحث |

بطاقة النشر (عرض البطاقات)#
تعرض كل بطاقة نشر في عرض البطاقات ما يلي:
- الرأس: الاسم، وعلم المنطقة، وشارة الحالة، وأزرار الإجراءات المتاحة للحالة الحالية - استبدال وإيقاف عندما تكون الحالة جاهزة (Ready)، وبدء عندما تكون الحالة متوقفة (Stopped)، والحذف في أي وقت
- عنوان URL لنقطة النهاية: عنوان URL قابل للنسخ مع رابط لمرجع واجهة برمجة التطبيقات (API) الخاص بنقطة النهاية
- المقاييس: عدد الطلبات (24 ساعة)، وزمن الانتقال P95، ومعدل الأخطاء، أو "لا توجد حركة مرور بعد" ("No traffic yet")
- فحص الصحة: مؤشر صحة مباشر مع زمن الاستجابة والتحديث اليدوي
- علامات التبويب:
Logs،Code، وPredict - التذييل: بادئة مفتاح واجهة برمجة التطبيقات المرتبط بالنشر وتاريخ جاهزيته
- رسالة الحالة: سبب الفشل، عند فشل عملية النشر
تظهر عناوين URL، والمقاييس، وفحص الصحة، والتبويبات فقط عندما يكون النشر في حالة جاهز (Ready). يعرض تبويب Logs إدخالات السجل الأخيرة مع تصفية حسب مستوى الخطورة (الكل / الأخطاء). يعرض تبويب Code أمثلة تعليمية برمجية جاهزة للاستخدام بلغات Python وJavaScript وcURL مع عنوان URL لنقطة النهاية الخاصة بك، بالإضافة إلى مفتاح واجهة برمجة التطبيقات المرتبط لمالكي مساحة العمل (راجع المراقبة). يوفر تبويب Predict لوحة تنبؤ مضمنة للاختبار مباشرة على النشر.
تعرض البطاقات المدمجة العلم، والاسم، والمدينة، والحالة، والمقاييس الثلاثة. عرض الجدول قابل للفرز حسب الاسم، والمنطقة، والحالة، والطلبات، وزمن الانتقال P95، والأخطاء، مع ميزة البحث عبر الاسم والمنطقة والحالة. يحتفظ كلا العرضين بإجراء الحذف؛ بينما تتوفر إجراءات البدء والإيقاف والاستبدال في عرض البطاقات.
استبدال نموذج#
استبدل النموذج الكامن وراء نقطة نهاية جاهزة دون تغيير عنوان URL الخاص بها:
- افتح النشر في عرض البطاقات
- انقر على استبدال النموذج
- حدد نموذجاً آخر مكتملاً من مساحة العمل نفسها
- قم بتعديل اسم النشر اختيارياً
- انقر على استبدال النموذج
يستمر النموذج الحالي في تقديم الخدمات بينما يبدأ تشغيل النموذج البديل. بمجرد أن يصبح البديل جاهزاً، تنتقل حركة المرور إلى النموذج الجديد. يظل مُعرف النشر، وعنوان URL، والمنطقة، ومفتاح واجهة برمجة التطبيقات دون تغيير؛ ولا يتغير اسم العرض إلا عند إدخال اسم جديد. إذا فشل الاستبدال، يظل النموذج والاسم السابقان نشطين.
يتطلب الاستبدال جميع الشروط التالية، ويتم رفضه بخلاف ذلك:
- النشر في حالة جاهز (Ready) وليس لديه أي عملية دورة حياة أخرى قيد التنفيذ
- النموذج البديل يمتلك أوزاناً وينتمي إلى نفس مساحة عمل النشر
- النموذج البديل ليس هو النموذج المنشور بالفعل حالياً
يؤدي الاستبدال إلى إزالة النموذج السابق من النشر. تخدم كل نقطة نهاية نموذجاً واحداً؛ قم بإنشاء نشر آخر عندما تحتاج إلى توفر كلا النموذجين في الوقت نفسه.
حالات النشر#
| الحالة | الوصف |
|---|---|
| إنشاء (Creating) | يتم إعداد النشر |
| نشر (Deploying) | الحاوية قيد البدء |
| جاهز (Ready) | نقطة النهاية مباشرة وتقبل الطلبات |
| إيقاف (Stopping) | نقطة النهاية قيد الإغلاق |
| متوقف (Stopped) | نقطة النهاية متوقفة مؤقتاً وغير متاحة |
| Failed | فشل النشر (انظر رسالة الخطأ) |
عنوان URL لنقطة النهاية#
لكل نقطة نهاية عنوان URL فريد، على سبيل المثال:
https://predict-<deployment-id>-<hash>-<region>.a.run.app
انقر فوق زر النسخ لنسخ عنوان URL. انقر فوق أيقونة المستندات لفتح مرجع واجهة برمجة التطبيقات الخاص بنقطة النهاية. تقدم نقطة النهاية المسارات التالية:
| المسار | الطريقة (Method) | الوصف |
|---|---|---|
/predict | POST | تشغيل الاستدلال؛ يتطلب مفتاح واجهة برمجة التطبيقات الخاص بالنشر |
/health | GET | فحص الحيوية للإبلاغ عن حالة الخدمة وعدد النماذج المخزنة مؤقتاً |
/ | GET | ملخص الحالة للخدمة المنشورة |
/docs | GET | مرجع تفاعلي لواجهة برمجة التطبيقات مُنشأ لهذا النشر والنموذج والمنطقة |
إدارة دورة الحياة#
تحكم في حالة نقطة النهاية الخاصة بك:
graph LR
R[Ready]:::out -->|Stop| S[Stopped]:::extern
S -->|Start| R
R -->|Delete| D[Deleted]:::error
S -->|Delete| D
classDef out fill:#9C27B0,color:#fff
classDef error fill:#F44336,color:#fff
classDef extern fill:#607D8B,color:#fff| الإجراء | الوصف |
|---|---|
| بدء (Start) | استئناف نقطة نهاية متوقفة |
| إيقاف (Stop) | إيقاف نقطة النهاية مؤقتاً |
| حذف | إزالة نقطة النهاية بشكل دائم |
إيقاف نقطة النهاية#
قم بإيقاف نقطة النهاية عندما لا تريدها أن تقبل الطلبات:
- انقر فوق أيقونة الإيقاف المؤقت على بطاقة النشر
- تتغير حالة نقطة النهاية إلى "Stopping" ثم "Stopped"
نقاط النهاية المتوقفة:
- لا تقبل الطلبات، ولا تبلغ عن أي مقاييس أو حالة صحية
- تحتفظ بعنوان URL، والمنطقة، ومفتاح واجهة برمجة التطبيقات المرتبط، ويمكن إعادة تشغيلها في أي وقت
- لا تزال تحسب ضمن حصة النشر الخاصة بخطتك - احذف نقطة نهاية لتحرير خانتها
حذف نقطة النهاية#
إزالة نقطة نهاية بشكل دائم:
- انقر فوق أيقونة الحذف (سلة المهملات) على بطاقة النشر
- أكد الحذف في مربع الحوار
الحذف فوري ونهائي - عمليات النشر لا تذهب إلى سلة المهملات. يؤدي حذف نقطة النهاية إلى إزالة خدمتها وتحرير خانة في حصة النشر الخاصة بك. يمكنك دائماً إنشاء نقطة نهاية جديدة، لكنها تتلقى عنوان URL جديداً.
تتم إزالة عمليات النشر أيضاً عند حذف نموذجها أو مشروعها بشكل دائم، أو عندما يصل نموذج أو مشروع منقول إلى سلة المهملات إلى نهاية نافذة الاحتفاظ به.
استخدام نقاط النهاية#
المصادقة#
يرتبط كل نشر بمفتاح واجهة برمجة تطبيقات واحد من مساحة العمل المالكة للنموذج. قم تضمينه في الطلبات:
Authorization: Bearer YOUR_API_KEYتقبل نقطة النهاية المفتاح المرتبط عند الإنشاء فقط، لذا لا يوجد مفتاح آخر يفتحها - ولا حتى مفتاح نشط آخر في نفس مساحة العمل. للتحكم في المفتاح الذي يتم ربطه، قم بالنشر عبر واجهة برمجة التطبيقات المُوثقة بمفتاح مالك مساحة العمل: يتم ربط هذا المفتاح بالضبط، وأنت تمتلكه بالفعل. عمليات النشر التي تُنشأ بأي طريقة أخرى (واجهة مستخدم المنصة، أو استدعاء واجهة برمجة تطبيقات مُوثق كعضو في الفريق) تربط أحد مفاتيح مساحة العمل المالكة النشطة تلقائياً - حددها من خلال بادئة المفتاح الظاهرة في تذييل بطاقة النشر، واطلب من مالك مساحة العمل قيمته، نظراً لأن المالك وحده هو من يمكنه عرض قيم المفاتيح (راجع مفاتيح واجهة برمجة التطبيقات). يمكن لأعضاء الفريق الذين ليس لديهم المفتاح المرتبط تشغيل الاستدلال من خلال وكيل التنبؤ للمنصة في المتصفح.
حذف أو إلغاء تنشيط مفتاح واجهة برمجة التطبيقات المرتبط لا يلغي الوصول المباشر إلى نقطة النهاية - فاي شخص يحمل سلسلة المفتاح لا يزال بإمكانه استدعاء عنوان URL لنقطة النهاية. ما يتعطل هو وكيل التنبؤ للمنصة، والذي يتحقق من المفتاح بشكل مباشر ويبلغ عن عدم توفره بعد. لإلغاء الوصول تماماً، أوقف النشر أو احذفه؛ وبعد تدوير المفاتيح، أنشئ نقطة النهاية مرة أخرى بحيث تربط المفتاح الجديد.
طلبات نقطة النهاية المباشرة#
أرسل طلبات الإنتاج مباشرة إلى عنوان URL الظاهر على بطاقة النشر. هذه الطلبات لا تمر عبر محدد معدل طلبات واجهة برمجة التطبيقات للمنصة، لذا فإن حد التنبؤ البالغ 20 طلباً في الدقيقة لا ينطبق. لا يزال لنقطة النهاية سقف السعة الخاص بها:
- تخدم نسخة واحدة كل نقطة نهاية، مع معالجة عدد محدود من الطلبات في نفس الوقت
- الطلبات التي لا يمكن خدمتها بسرعة ترجع
429مع رأسRetry-After - يمكن تشغيل طلب واحد لمدة تصل إلى ساعة واحدة، مما يتيح إكمال استدلال الفيديو
- الاستجابات التي تزيد عن 1 كيلوبايت يتم ضغطها باستخدام gzip، وتُسمح بطلبات المتصفح عبر الأصل (cross-origin)
مثال على الطلب#
import requests
# Deployment endpoint
url = "https://YOUR_DEPLOYMENT_URL.run.app/predict"
# Headers with your deployment API key
headers = {"Authorization": "Bearer YOUR_API_KEY"}
# Inference parameters
data = {"conf": 0.25, "iou": 0.7, "imgsz": 640}
# Send image for inference
with open("image.jpg", "rb") as f:
response = requests.post(url, headers=headers, data=data, files={"file": f})
print(response.json())معلمات الطلب#
| المعامل | النوع | الافتراضي | النطاق | الوصف |
|---|---|---|---|---|
file | ملف | - | - | ملف صورة أو فيديو (مطلوب ما لم يتم تعيين source) |
conf | float | 0.25 | 0.01 – 1.0 | الحد الأدنى لعتبة الثقة |
iou | float | 0.7 | 0.0 – 0.95 | عتبة NMS IoU |
imgsz | int | 640 | 32 – 1280 | حجم صورة الإدخال بالبكسل |
normalize | منطقي (bool) | false | - | إرجاع إحداثيات صندوق الإحاطة (bounding box) كـ 0 – 1 |
decimals | int | 5 | 0 – 10 | الدقة العشرية لقيم الإحداثيات |
bits | int | 8 | 8, 12, 16 | كمية خريطة العمق، لنماذج العمق فقط |
source | string | - | - | عنوان URL لصورة أو سلسلة base64 (بديل لـ file) |
راجع استجابات العمق لمعرفة كيف يغير bits خريطة العمق المُرجعة وكيفية فك شفرتها.
تقبل نقاط النهاية المخصصة كلاً من الصور والفيديوهات عبر معامل file.
- تنسيقات الصور (حتى 100 ميجابايت): AVIF, BMP, DNG, HEIC, JP2, JPEG, JPG, MPO, PNG, TIF, TIFF, WEBP
- تنسيقات الفيديو (حتى 100 ميجابايت): ASF, AVI, GIF, M4V, MKV, MOV, MP4, MPEG, MPG, TS, WEBM, WMV
يتم معالجة كل إطار فيديو على حدة وتُرجع النتائج لكل إطار. يمكنك أيضاً تمرير عنوان URL عام لصورة أو صورة مشفرة بتنسيق base64 عبر معلمة source بدلاً من file. يتم رفض عمليات التحميل مفرطة الحجم باستخدام 413.
تنسيق الاستجابة#
مثل الاستدلال المشترك تماماً مع الحقول الخاصة بالمهمة.
الأسئلة الشائعة#
تعتمد حدود نقاط النهاية على الخطة:
- Free: حتى 3 عمليات نشر
- Pro: حتى 10 عمليات نشر
- Enterprise: عمليات نشر غير محدودة
لا يزال من الممكن نشر كل نموذج في مناطق متعددة ضمن حصة خطتك. تُحسب الحصة مقابل مساحة العمل المالكة للنموذج، لذا فإن أعضاء الفريق الذين ينشرون نموذجاً مشتركاً يستهلكون مخصصات المالك. يؤدي الوصول إلى الحد الأقصى إلى إرجاع خطأ يطلب منك حذف نشر موجود أولاً.
لا، المناطق ثابتة. لتغيير المناطق:
- احذف نقطة النهاية الحالية
- أنشئ نقطة نهاية جديدة في المنطقة المطلوبة
تتلقى نقطة النهاية الجديدة عنوان URL جديداً. لتغيير النموذج الكامن خلف نقطة النهاية وحدها، استخدم استبدال النموذج، والذي يحتفظ بعنوان URL.
للتغطية العالمية:
- انشر في مناطق متعددة
- استخدم موازن تحميل أو توجيه DNS
- وجه المستخدمين إلى أقرب نقطة نهاية
يعتمد وقت التشغيل البارد على النموذج وما إذا كانت نقطة النهاية قد تم تحجيمها إلى الصفر؛ تمنح المنصة نقطة النهاية الخاملة وقتاً إضافياً للبدء قبل الإبلاغ عن عدم صحتها. يؤدي تشغيل فحص الصحة من بطاقة النشر قبل تدفق مفاجئ لحركة المرور إلى تسخين النسخة.
لا. تخدم كل نقطة نهاية حركة المرور على عنوان URL لنقطة النهاية المُنشأ والظاهر على بطاقتها، والذي يظل مستقراً طوال عمر النشر - بما في ذلك عبر عمليات استبدال النموذج.