Ultralytics YOLO27:
Get Started

الاستدلال#

توفر Ultralytics Platform استدلالًا عبر المتصفح لاختبار النماذج المدرّبة، ونقاط نهاية مخصصة للوصول البرمجي.

علامة تبويب التنبؤ بالنموذج في Ultralytics Platform مع طبقة عرض للكشوف

علامة تبويب التنبؤ#

يتضمن كل نموذج ذي أوزان علامة تبويب Predict للاستدلال عبر المتصفح:

  1. انتقل إلى نموذجك
  2. انقر على علامة التبويب Predict
  3. حمّل صورة أو استخدم مثالًا أو افتح كاميرا الويب
  4. راجع طبقة العرض الخاصة بالمهمة وملخص التنبؤ والتوقيت والاستجابة الأولية

تُظهر النماذج التي لا تحتوي على أوزان حالة فارغة بدلًا من ذلك — درّب النموذج أو حمّل الأوزان أولًا.

منطقة إسقاط تحميل الصور في علامة تبويب التنبؤ في Ultralytics Platform

طرق الإدخال#

تدعم لوحة التنبؤ طرق إدخال متعددة:

الطريقةالوصف
تحميل صورةاسحب صورة وأفلتها أو انقر لتحميلها
صور أمثلةانقر على الأمثلة المضمّنة (صور مجموعة البيانات أو الصور الافتراضية)
التقاط صورة بكاميرا الويببث مباشر للكاميرا مع إمكانية التقاط إطار واحد
كاميرا IPبث RTSP أو RTSPS على عملية النشر الخاصة بك
graph LR
    A[Upload Image]:::start --> D[Auto-Inference]:::proc
    B[Example Image]:::start --> D
    C[Webcam Capture]:::start --> D
    D --> E[Results + Overlays]:::out

    classDef start fill:#4CAF50,color:#fff
    classDef proc fill:#2196F3,color:#fff
    classDef out fill:#9C27B0,color:#fff

تحميل صورة#

اسحب صورة وأفلتها أو انقر لتحميلها:

  • التنسيقات المدعومة: JPEG، PNG، WebP، AVIF، HEIC، JP2، TIFF، BMP
  • الحجم الأقصى: 10 MB
  • الاستدلال التلقائي: تظهر النتائج تلقائيًا بعد التحميل
الاستدلال التلقائي

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

تغيير الحجم من جهة العميل

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

صور الأمثلة#

تعرض لوحة التنبؤ ما يصل إلى صورتين تجريبيتين من مجموعة البيانات المرتبطة بنموذجك، مع تفضيل التقسيم val، ثم test، ثم train. إذا لم تكن هناك مجموعة بيانات مرتبطة، تُستخدم الصور الافتراضية:

الصورةالمحتوى
bus.jpgمشهد شارع به مركبات
zidane.jpgمشهد رياضي به أشخاص

بالنسبة إلى نماذج OBB، تُعرض بدلًا من ذلك صور جوية لقوارب ومطار.

الصور المحمّلة مسبقًا

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

كاميرا الويب#

حدّد كاميرا الويب أعلى منطقة الصورة لبدء بث مباشر من الكاميرا:

  1. امنح إذن الوصول إلى الكاميرا عند ظهور المطالبة
  2. انقر على معاينة الفيديو لالتقاط إطار
  3. يُجرى الاستدلال تلقائيًا على الإطار الملتقط
  4. انقر على العودة إلى كاميرا الويب للرجوع إلى البث المباشر

في علامة التبويب Predict لعملية النشر الخاصة بك، تنفّذ كاميرا الويب الاستدلال باستمرار بدلًا من ذلك. راجع الاستدلال المباشر بالكاميرا.

عرض النتائج#

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

نتائج علامة تبويب التنبؤ في Ultralytics Platform مع الكشوف وإحصاءات السرعة

تعرض لوحة النتائج ما يلي:

الحقلالوصف
ملخص النتائجقائمة بكل كشف، أو أفضل 5 فئات لنماذج التصنيف والنماذج الدلالية
إحصاءات السرعةالمعالجة المسبقة والاستدلال والمعالجة اللاحقة والشبكة (ms)
الإصداراتإصدارات Ultralytics وPyTorch، بالإضافة إلى نطاق العمق أو حجم القناع عند الاقتضاء
استجابة JSONاستجابة API الأولية في كتلة تعليمات برمجية، مع حذف بيانات الخريطة بترميز base64

تظهر أداتان فوق المعاينة بعد توفر النتائج: انقر على الصورة لتكبيرها مع الإبقاء على طبقات العرض، واستخدم زر التنزيل لحفظ صورة JPEG مشروحة للنتيجة الحالية.

معلمات الاستدلال#

اضبط سلوك الاستدلال باستخدام أشرطة التمرير الثلاثة أسفل الصورة (تعرض نماذج العمق حجم الصورة فقط):

أشرطة تمرير المعلمات في علامة تبويب التنبؤ بمنصة Ultralytics

المعلمةالنطاقالافتراضيالوصف
الثقةمن 0.01 إلى 1.0، بزيادات قدرها 0.010.25الحد الأدنى لعتبة الثقة
IoUمن 0.0 إلى 0.95، بزيادات قدرها 0.010.7عتبة IoU لـ NMS
حجم الصورةمن 32 إلى 1280، بزيادات قدرها 32640بُعد تغيير حجم الإدخال
إعادة التشغيل التلقائي

يؤدي تغيير أي معلمة إلى إعادة تشغيل الاستدلال تلقائيًا على الصورة الحالية، بعد تأخير قدره 500ms. لا حاجة إلى إعادة الرفع.

عتبة الثقة#

تصفية التنبؤات حسب الثقة:

  • أعلى (0.5+): تنبؤات أقل وأكثر موثوقية
  • أقل (0.1-0.25): تنبؤات أكثر، مع بعض التشويش
  • الافتراضي (0.25): توازن مناسب لمعظم حالات الاستخدام

عتبة IoU#

التحكم في الكبت غير الأقصى:

  • أعلى (0.7+): السماح بمزيد من الصناديق المتداخلة
  • أقل (0.3-0.5): كبت الاكتشافات المتداخلة بصرامة أكبر
  • الافتراضي (0.7): سلوك NMS متوازن لمعظم حالات الاستخدام

التنبؤ بالنشر#

تتضمن كل نقطة نهاية مخصصة قيد التشغيل علامة تبويب Predict في صفحة النشر الخاصة بها. تستخدم هذه العلامة خدمة الاستدلال الخاصة بالنشر بدلاً من خدمة التنبؤ المشتركة، ما يتيح لك اختبار نقطة النهاية المنشورة من المتصفح.

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

الاستدلال المباشر بالكاميرا#

في علامة التبويب Predict لعملية نشر تملكها، حدّد كاميرا الويب أو كاميرا IP لتشغيل نقطة النهاية على فيديو مباشر:

المصدرآلية العمل
كاميرا الويبيرسل المتصفح الإطارات إلى نقطة النهاية واحدًا تلو الآخر، ويرسم كل نتيجة فوق البث المباشر
كاميرا IPأدخل عنوان URL من نوع rtsp:// أو rtsps://، بما في ذلك بيانات الاعتماد، وانقر على اتصال؛ تقرأ نقطة النهاية الكاميرا وتبث كل نتيجة إليك

يستخدم الاستدلال المباشر مفتاح API المرتبط بنقطة النهاية، ولا يمكن تحميله إلا لمالك مساحة العمل؛ أما بالنسبة إلى أعضاء الفريق الآخرين، فتلتقط كاميرا الويب إطارات منفردة ولا تتوفر كاميرا IP، كما هو الحال في علامة التبويب Predict الخاصة بالنموذج. يجب أن تكون كاميرا IP قابلة للوصول من الإنترنت: ترفض نقطة النهاية عناوين الشبكة المحلية مثل 192.168.x.x. تعرض كل نتيجة أحدث إطار، لذا تُتجاوز الإطارات عندما يتأخر الاستدلال. تُطبّق تغييرات أشرطة التمرير على إطار كاميرا الويب التالي، وتُعيد تشغيل بث كاميرا IP. يتوقف الاستدلال المباشر مؤقتًا عندما تكون علامة تبويب المتصفح مخفية. انقر على المعاينة لالتقاط إطار، أو انقر على قطع الاتصال لإيقاف عرض كاميرا IP.

كاميرا تعمل في الخلفية#

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

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

تتيح نقاط النهاية ذات الحجم الافتراضي الاستدلال المباشر باستخدام كاميرا الويب وكاميرا IP دون خيار التشغيل في الخلفية. لحفظ كاميرا تعمل في الخلفية عبر API، استخدم إجراء camera الخاص بعملية النشر.

بث النتائج من API#

أرسل عنوان URL من نوع RTSP أو RTSPS بوصفه source، مع الترويسة Accept: text/event-stream، إلى عنوان URL لنقطة نهاية مخصصة لتلقي النتائج على هيئة أحداث يرسلها الخادم:

curl -N -X POST \
  "https://YOUR_DEPLOYMENT_URL.run.app/predict" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Accept: text/event-stream" \
  -F "source=rtsp://user:password@camera.example.com:554/stream" \
  -F "conf=0.25"

يتضمن حدث كل إطار images بتنسيق الاستجابة، مع إحداثيات مطبّعة (0-1)، وعنوان URL لبيانات صورة JPEG للإطار باسم preview، وmetadata الذي يتضمن المهمة وأسماء الفئات. ينطبق كل من conf وiou وimgsz فقط، ويستخدم بث عنوان URL لكاميرا نقطة النهاية التي تعمل في الخلفية إعداداتها الافتراضية. الأحداث التي تتضمن status فقط لا تحمل إطارًا، وينهي البث حدث يتضمن رسالة error (تعذرت قراءة الكاميرا أو لم تتمكن نقطة النهاية من تشغيل النموذج). يُغلق البث أيضًا عند إعادة تشغيل نقطة النهاية أو بلوغ الطلب الحد الزمني، لذا أعد الاتصال مع تطبيق تراجع تدريجي عند انتهائه دون خطأ. لا يبث مسار التنبؤ بعملية النشر في Platform API ولا SDK النتائج؛ أرسل طلبات الكاميرا إلى عنوان URL لنقطة النهاية مع مفتاح API المرتبط بها. يعيد طلب كاميرا source دون الترويسة 400.

واجهة برمجة تطبيقات نقطة النهاية المخصصة#

تتضمن بطاقة مستندات API في علامة تبويب النموذج Predict أمثلة لطلبات Python وJavaScript وcURL، مع تعبئة قيم الثقة وIoU وحجم الصورة المضبوطة حاليًا على أشرطة التمرير مسبقًا. يظل عنوان URL والمفتاح عنصرين نائبين إلى أن تنشر النموذج — وينقلك زر نشر بجوار علامات تبويب التعليمات البرمجية إلى علامة تبويب النموذج Deploy. بعد النشر، تعرض علامة تبويب النتيجة المستندات في علامة تبويب Predict بصفحة النشر عنوان URL لنقطة النهاية تلك، ومفتاح API المرتبط بها لمالكي مساحة العمل، ليكونا جاهزين للنسخ والتشغيل.

المصادقة#

أدرج مفتاح API في الطلبات:

Authorization: Bearer YOUR_API_KEY
مفتاح API مطلوب

لتشغيل الاستدلال من البرامج النصية أو دفاتر الملاحظات أو التطبيقات الخاصة بك، أدرج مفتاح API. أنشئ مفتاحًا في Settings > API Keys. لا تقبل نقطة النهاية المخصصة إلا المفتاح الوحيد الذي أُنشئت به؛ بينما تقبل واجهة API المشتركة للنموذج أي مفتاح نشط في مساحة العمل، كما تقبل النماذج العامة الطلبات مجهولة الهوية.

نقطة النهاية#

تستقبل نقاط النهاية المخصصة الطلبات على عنوان URL الخاص بها:

POST https://YOUR_DEPLOYMENT_URL.run.app/predict

يستخدم الاستدلال المشترك واجهة API للمنصة مع المسار الكامل للنموذج:

POST https://platform.ultralytics.com/api/models/{owner}/{project}/{model}/predict

يقبل كلاهما متن الطلب نفسه multipart/form-data ويُرجعان بنية الاستجابة نفسها. عند استخدام حزمة Python SDK، استخدم client.models.predict(owner, project, model, body=...) للاستدلال المشترك أو client.deployments.predict(owner, deployment, body=...) لنشر مخصص. تستدعي طريقتا SDK واجهة API للمنصة، لذا تنطبق حدود المعدل وحد حجم الطلب فيها. لتجنب هذه الحدود، أرسل الطلب مباشرةً إلى عنوان URL لنقطة نهاية مخصصة كما هو موضح ضمن الطلب. مثال على الاستدلال المشترك:

from ultralytics_platform import Platform

client = Platform()  # reads ULTRALYTICS_API_KEY
with open("image.jpg", "rb") as f:
    results = client.models.predict("acme-vision", "inspection", "v3", body={"file": f, "conf": 0.25})

الطلب#

import requests

url = "https://YOUR_DEPLOYMENT_URL.run.app/predict"
headers = {"Authorization": "Bearer YOUR_API_KEY"}
data = {"conf": 0.25, "iou": 0.7, "imgsz": 640}

with open("image.jpg", "rb") as image_file:
    response = requests.post(url, headers=headers, files={"file": image_file}, data=data)
print(response.json())

علامة تبويب Python ضمن أمثلة التعليمات البرمجية في علامة تبويب التنبؤ بمنصة Ultralytics

معلمات الطلب#

المعلمةالنوعالافتراضيالنطاقالوصف
fileملف--ملف صورة أو فيديو (مطلوب ما لم يتم تعيين source)
conffloat0.250.01 – 1.0الحد الأدنى لعتبة الثقة
ioufloat0.70.0 – 0.95عتبة IoU لـ NMS
imgszint-32 – 1280حجم صورة الإدخال بالبكسل؛ القيمة الافتراضية هي حجم التدريب للنموذج (640 إذا لم يتوفر)
normalizeboolfalse-إرجاع إحداثيات الصندوق المحيط ضمن النطاق 0 – 1
decimalsint50 – 10الدقة العشرية لقيم الإحداثيات
vid_strideint1≥ 1التنبؤ بكل إطار فيديو رقم N؛ لا ينطبق على الصور
bitsint88, 12, 16تكميم خريطة العمق، لنماذج العمق فقط
sourceسلسلة نصية--عنوان URL للصورة أو سلسلة base64 (بديل لـ file)؛ الحد الأقصى 4,096 حرفًا عبر واجهة API للمنصة

الاستجابة#

{
    "images": [
        {
            "shape": [1080, 1920],
            "results": [
                {
                    "class": 0,
                    "name": "person",
                    "confidence": 0.92,
                    "box": { "x1": 100, "y1": 50, "x2": 300, "y2": 400 }
                },
                {
                    "class": 2,
                    "name": "car",
                    "confidence": 0.87,
                    "box": { "x1": 400, "y1": 200, "x2": 600, "y2": 350 }
                }
            ],
            "speed": {
                "preprocess": 1.2,
                "inference": 12.5,
                "postprocess": 2.3
            }
        }
    ],
    "metadata": {
        "imageCount": 1,
        "classNames": ["person", "bicycle", "car", "..."],
        "functionTimeAlive": 1284.51,
        "functionTimeCall": 0.018,
        "task": "detect",
        "version": {
            "ultralytics": "8.x.x",
            "torch": "2.6.0",
            "torchvision": "0.21.0",
            "python": "3.13.0"
        }
    }
}

عرض استجابة JSON في علامة تبويب التنبؤ بمنصة Ultralytics

حقول الاستجابة#

الحقلالنوعالوصف
imagesمصفوفةقائمة بالصور المعالَجة، يتضمن كل إطار فيديو معالَج عنصرًا واحدًا
images[].shapeمصفوفةأبعاد الصورة [الارتفاع، العرض]
images[].resultsمصفوفةقائمة بالاكتشافات
images[].results[].classintفهرس الفئة (معرّف عدد صحيح)
images[].results[].nameسلسلة نصيةاسم الفئة
images[].results[].confidencefloatثقة الاكتشاف (0-1)
images[].results[].boxكائنإحداثيات الصندوق المحيط
images[].semantic_maskكائنخريطة الفئات لكل بكسل (للنماذج الدلالية فقط)
images[].depthكائنخريطة العمق لكل بكسل (لنماذج العمق فقط)
images[].speedكائنأوقات المعالجة بالمللي ثانية
metadataكائنعدد الصور، وأسماء فئات النموذج، وأوقات الخدمة، والمهمة، والإصدارات

استجابات خاصة بكل مهمة#

يختلف تنسيق الاستجابة باختلاف المهمة:

{
  "class": 0,
  "name": "person",
  "confidence": 0.92,
  "box": {"x1": 100, "y1": 50, "x2": 300, "y2": 400}
}

حدود المعدل#

يقتصر معدل واجهة API المشتركة للنموذج على 20 طلبًا في الدقيقة لكل مفتاح API أو متصل مسجل الدخول أو عنوان IP مجهول الهوية. ويخضع مسار التنبؤ لنشر المنصة (POST /api/deployments/{owner}/{deployment}/predict) للحد نفسه. عند تقييد المعدل، تُرجع واجهة API 429 مع ترويسة Retry-After. راجع المرجع الكامل لحدود المعدل للاطلاع على جميع فئات نقاط النهاية.

هل تحتاج إلى معدل نقل أعلى؟

لا تمر الطلبات المرسلة مباشرةً إلى نقطة نهاية مخصصة عبر محدِّد معدل واجهة API للمنصة. ومع ذلك، تخفف نقطة النهاية الحمل باستخدام 429 وترويسة Retry-After عندما تبلغ سعتها مؤقتًا. للاستدلال المحلي بكميات كبيرة، راجع دليل وضع التنبؤ.

معالجة الأخطاء#

استجابات الأخطاء الشائعة:

الرمزالرسالةالحل
400صورة غير صالحةتحقق من تنسيق الملف أو من أن النموذج يتضمن أوزانًا مدرَّبة
401غير مصرّح بهتحقق من مفتاح API
404النموذج غير موجودتحقق من أسماء المالك والمشروع والنموذج
413الإدخال كبير جدًاقلّل حجم الملف ليصبح دون حد نقطة النهاية
429تم تجاوز حد المعدلانتظر ثم أعد المحاولة، أو أرسل الطلبات مباشرةً إلى نقطة نهاية مخصصة
500خطأ في الخادمأعد محاولة الطلب
503الخدمة غير متاحةخدمة التنبؤ قيد التشغيل أو يتعذر الوصول إليها؛ انتظر قليلًا ثم أعد المحاولة

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

  • تقبل طريقتا الاستدلال ملفات الفيديو:

    • تقبل نقاط النهاية المخصصة ملفات الفيديو مباشرةً. التنسيقات المدعومة (حتى 32 MB لكل طلب): ASF وAVI وGIF وM4V وMKV وMOV وMP4 وMPEG وMPG وTS وWEBM وWMV. تُعاد النتائج لكل إطار معالَج، وقد يستغرق الطلب مدة تصل إلى ساعة واحدة. راجع نقاط النهاية المخصصة للتفاصيل.
    • يستخدم الاستدلال المشترك (POST /api/models/{owner}/{project}/{model}/predict) خدمة التنبؤ نفسها ويقبل تنسيقات الفيديو نفسها، لكن حجم الطلبات محدود بنحو 4.5 ميغابايت وتنتهي مهلتها بعد نحو 30 ثانية، ما يجعله مناسبًا للمقاطع القصيرة فقط. لا ترفع علامة التبويب تنبؤ في المتصفح سوى الصور، لذا استخدم نقطة نهاية مخصصة لملفات الفيديو، أو الاستدلال المباشر بالكاميرا لكاميرا ويب أو كاميرا IP.

    لا تقبل نماذج العمق ملفات الفيديو.

  • في علامة تبويب التنبؤ، يحفظ زر التنزيل فوق المعاينة النتيجة الحالية كصورة JPEG مشروحة. أما واجهة API نفسها فتعيد تنبؤات بصيغة JSON. لعرضها بصريًا:

    1. استخدم التنبؤات لرسم الصناديق محليًا
    2. شغّل النموذج محليًا باستخدام Ultralytics واحفظ النتيجة المشروحة باستخدام save() (أو احصل على مصفوفة باستخدام plot()):
    from ultralytics import YOLO
    
    model = YOLO("yolo26n.pt")
    results = model("image.jpg")
    results[0].save("annotated.jpg")

    راجع وثائق وضع التنبؤ للاطلاع على واجهة برمجة التطبيقات الكاملة للنتائج وخيارات التصور.

    • حد تبويب التنبؤ: 10 MB
    • حد واجهة برمجة التطبيقات للاستدلال المشترك: نحو 4.5 MB لكل طلب، بما في ذلك الطلبات عبر Python SDK
    • حد نقطة النهاية المخصصة: 32 MB لكل طلب يُرسل مباشرةً إلى عنوان URL لنقطة النهاية
    • تغيير الحجم تلقائيًا في تبويب التنبؤ: تُغيَّر أحجام الصور لتطابق Image Size المحدد قبل الرفع

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

  • تعالج واجهة برمجة التطبيقات الحالية صورة واحدة لكل طلب. لمعالجة الدفعات:

    1. أرسل طلبات منفصلة لكل صورة
    2. وزّع الطلبات على نقاط النهاية المخصصة عند الاقتضاء
    3. استخدم الاستدلال المحلي للدفعات الكبيرة
    الاستدلال على دفعات باستخدام Python
    import concurrent.futures
    
    import requests
    
    url = "https://YOUR_DEPLOYMENT_URL.run.app/predict"
    headers = {"Authorization": "Bearer YOUR_API_KEY"}
    images = ["img1.jpg", "img2.jpg", "img3.jpg"]
    
    def predict(image_path):
        with open(image_path, "rb") as f:
            return requests.post(url, headers=headers, files={"file": f}).json()
    
    with concurrent.futures.ThreadPoolExecutor(max_workers=4) as executor:
        results = list(executor.map(predict, images))

التعليقات