مرجع REST API
منصة Ultralytics توفر واجهة REST API شاملة للوصول البرمجي إلى مجموعات البيانات والنماذج والتدريب وعمليات النشر.

بدء سريع
# List your datasets
curl -H "Authorization: Bearer YOUR_API_KEY" \
https://platform.ultralytics.com/api/datasets
وثائق واجهة برمجة التطبيقات التفاعلية
تصفح المرجع الكامل التفاعلي لواجهة برمجة التطبيقات ( API) في وثائق واجهة برمجة التطبيقاتUltralytics .
نظرة عامة على API
يتم تنظيم واجهة برمجة التطبيقات (API) حول موارد المنصة الأساسية:
graph LR
A[API Key] --> B[Datasets]
A --> C[Projects]
A --> D[Models]
A --> E[Deployments]
B -->|train on| D
C -->|contains| D
D -->|deploy to| E
D -->|export| F[Exports]
B -->|auto-annotate| B
| الموارد | الوصف | العمليات الرئيسية |
|---|---|---|
| مجموعات البيانات | مجموعات الصور الموسومة | CRUD، صور، تسميات، تصدير، إصدارات، استنساخ |
| المشاريع | مساحات عمل التدريب | CRUD، استنساخ، أيقونة |
| النماذج | نقاط التفتيش المدربة | CRUD، توقع، تنزيل، استنساخ، تصدير |
| عمليات النشر | نقاط نهاية استدلال مخصصة | CRUD، بدء/إيقاف، مقاييس، سجلات، صحة |
| عمليات التصدير | مهام تحويل التنسيق | إنشاء، حالة، تنزيل |
| التدريب | مهام تدريب GPU السحابية | بدء، حالة، إلغاء |
| الفواتير | الأرصدة والاشتراكات | الرصيد، تعبئة الرصيد، طرق الدفع |
| الفرق | التعاون في مساحة العمل | الأعضاء، الدعوات، الأدوار |
المصادقة
تتطلب معظم طلبات API المصادقة عبر مفتاح API. تدعم نقاط النهاية العامة (قائمة مجموعات البيانات العامة والمشاريع والنماذج) الوصول للقراءة بشكل مجهول دون مفتاح.
الحصول على مفتاح API
- انتقل إلى
Settings>Profile(قسم مفاتيح API) - انقر
Create Key - انسخ المفتاح الذي تم إنشاؤه
راجع مفاتيح API للحصول على تعليمات مفصلة.
رأس التفويض
قم بتضمين مفتاح API الخاص بك في جميع الطلبات:
Authorization: Bearer YOUR_API_KEY
تنسيق مفتاح API
تستخدم مفاتيح API التنسيق ul_ متبوعًا بـ 40 حرفًا سداسيًا عشريًا. حافظ على سرية مفتاحك - لا تقم أبدًا بإدخاله في التحكم في الإصدار أو مشاركته علنًا.
مثال
curl -H "Authorization: Bearer YOUR_API_KEY" \
https://platform.ultralytics.com/api/datasets
import requests
headers = {"Authorization": "Bearer YOUR_API_KEY"}
response = requests.get(
"https://platform.ultralytics.com/api/datasets",
headers=headers,
)
data = response.json()
const response = await fetch("https://platform.ultralytics.com/api/datasets", {
headers: { Authorization: "Bearer YOUR_API_KEY" },
});
const data = await response.json();
عنوان URL الأساسي
تستخدم جميع نقاط نهاية API:
https://platform.ultralytics.com/api
حدود المعدل
تستخدم واجهة برمجة التطبيقات (API) نظامًا مزدوج الطبقات لتقييد معدل الاستخدام لحماية النظام من إساءة الاستخدام مع الحفاظ على الاستخدام المشروع دون قيود:
- لكل مفتاح API — يتم فرض القيود لكل مفتاح API على الطلبات المصادق عليها
- لكل عنوان IP — 100 طلب/دقيقة لكل عنوان IP على جميع
/api/*المسارات (ينطبق على الطلبات المصادق عليها وغير المصادق عليها)
عند الاختناق، تعيد واجهة برمجة التطبيقات 429 مع إعادة محاولة البيانات الوصفية:
Retry-After: 12
X-RateLimit-Reset: 2026-02-21T12:34:56.000Z
وفقًا لحدود مفتاح API
يتم تطبيق حدود المعدل تلقائيًا بناءً على نقطة النهاية التي يتم استدعاؤها. العمليات المكلفة لها حدود أكثر صرامة لمنع إساءة الاستخدام، بينما تشترك عمليات CRUD القياسية في حدود افتراضية سخية:
| نقطة النهاية | الحد الأقصى | ينطبق على |
|---|---|---|
| افتراضي | 100 طلب/دقيقة | جميع نقاط النهاية غير المدرجة أدناه (list, get, create, update, delete) |
| التدريب | 10 طلبات/دقيقة | بدء وظائف التدريب على السحابة (POST /api/training/start) |
| تحميل | 10 طلبات/دقيقة | تحميل الملفات وعناوين URL الموقعة واستيعاب مجموعات البيانات |
| توقع | 20 طلبات/دقيقة | استنتاج النموذج المشترك (POST /api/models/{id}/predict) |
| تصدير | 20 طلبات/دقيقة | تصدير تنسيق النموذج (POST /api/exports، صادرات NDJSON لمجموعات البيانات، وإنشاء الإصدارات |
| تنزيل | 30 طلب/دقيقة | تنزيل ملفات وزن النموذج (GET /api/models/{id}/download) |
| مخصصة | غير محدود | نقاط نهاية مخصصة — خدمتك الخاصة، بدون قيود على API |
كل فئة لها عداد مستقل لكل مفتاح API. على سبيل المثال، إجراء 20 طلبًا للتنبؤ لا يؤثر على الحد الافتراضي المسموح به وهو 100 طلب في الدقيقة.
نقاط نهاية مخصصة (غير محدودة)
نقاط نهاية مخصصة هي لا يخضع لحدود معدل مفتاح APIعند نشر نموذج إلى نقطة نهاية مخصصة، تُرسل الطلبات إلى عنوان URL لنقطة النهاية هذه (على سبيل المثال، https://predict-abc123.run.app/predict) تنتقل مباشرة إلى خدمتك المخصصة دون قيود على المعدل من المنصة. أنت تدفع مقابل الحوسبة، لذا تحصل على إنتاجية غير محدودة تصل إلى تكوين توسيع نقطة النهاية الخاصة بك.
حدود معدل المعالجة
عندما تتلقى 429 رمز الحالة، انتظر Retry-After (أو حتى X-RateLimit-Reset) قبل إعادة المحاولة. انظر الـ الأسئلة الشائعة حول حدود السرعة لتنفيذ التراجع الأسي.
تنسيق الاستجابة
ردود النجاح
تُرجع الاستجابات JSON مع حقول خاصة بالموارد:
{
"datasets": [...],
"total": 100
}
استجابات الأخطاء
{
"error": "Dataset not found"
}
| حالة HTTP | المعنى |
|---|---|
200 | النجاح |
201 | الإنشاء |
400 | طلب غير صالح |
401 | المصادقة مطلوبة |
403 | أذونات غير كافية |
404 | المورد غير موجود |
409 | تعارض (مكرر) |
429 | تجاوز حد المعدل |
500 | خطأ في الخادم |
واجهة برمجة تطبيقات مجموعات البيانات
أنشئ وتصفح وادِر مجموعات بيانات الصور المصنفة لتدريب نماذج YOLO. انظر وثائق مجموعات البيانات.
قائمة مجموعات البيانات
GET /api/datasets
معلمات الاستعلام:
| المعلمة | النوع | الوصف |
|---|---|---|
username | سلسلة نصية | تصفية حسب اسم المستخدم |
slug | سلسلة نصية | جلب مجموعة بيانات واحدة بواسطة slug |
limit | عدد صحيح | العناصر لكل صفحة (الافتراضي: 20، الحد الأقصى: 500) |
owner | سلسلة نصية | اسم المستخدم لمالك مساحة العمل |
curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://platform.ultralytics.com/api/datasets?limit=10"
import requests
resp = requests.get(
"https://platform.ultralytics.com/api/datasets",
headers={"Authorization": f"Bearer {API_KEY}"},
params={"limit": 10},
)
for ds in resp.json()["datasets"]:
print(f"{ds['name']}: {ds['imageCount']} images")
الاستجابة:
{
"datasets": [
{
"_id": "dataset_abc123",
"name": "my-dataset",
"slug": "my-dataset",
"task": "detect",
"imageCount": 1000,
"classCount": 10,
"classNames": ["person", "car"],
"visibility": "private",
"username": "johndoe",
"starCount": 3,
"isStarred": false,
"sampleImages": [
{
"url": "https://storage.example.com/...",
"width": 1920,
"height": 1080,
"labels": [{ "classId": 0, "bbox": [0.5, 0.4, 0.3, 0.6] }]
}
],
"createdAt": "2024-01-15T10:00:00Z",
"updatedAt": "2024-01-16T08:30:00Z"
}
],
"total": 1,
"region": "us"
}
الحصول على مجموعة بيانات
GET /api/datasets/{datasetId}
يعرض تفاصيل مجموعة البيانات الكاملة بما في ذلك البيانات الوصفية وأسماء الفئات وعدد الأقسام.
إنشاء مجموعة بيانات
POST /api/datasets
الجسم:
{
"slug": "my-dataset",
"name": "My Dataset",
"task": "detect",
"description": "A custom detection dataset",
"visibility": "private",
"classNames": ["person", "car"]
}
المهام المدعومة
صالح task القيم: detect, segment, classify, pose, obb.
تحديث مجموعة البيانات
PATCH /api/datasets/{datasetId}
النص (تحديث جزئي):
{
"name": "Updated Name",
"description": "New description",
"visibility": "public"
}
حذف مجموعة البيانات
DELETE /api/datasets/{datasetId}
حذف مؤقت لمجموعة البيانات (نقلها إلى سلة المهملات، يمكن استعادتها خلال 30 يومًا).
استنساخ مجموعة البيانات
POST /api/datasets/{datasetId}/clone
ينشئ نسخة من مجموعة البيانات مع جميع الصور والتسميات. يمكن استنساخ مجموعات البيانات العامة فقط.
النص (جميع الحقول اختيارية):
{
"name": "cloned-dataset",
"description": "My cloned dataset",
"visibility": "private",
"owner": "team-username"
}
تصدير مجموعة البيانات
GET /api/datasets/{datasetId}/export
إرجاع استجابة JSON مع عنوان URL للتنزيل الموقع لأحدث تصدير لمجموعة البيانات.
معلمات الاستعلام:
| المعلمة | النوع | الوصف |
|---|---|---|
v | عدد صحيح | رقم الإصدار (مفهرس من 1). إذا تم حذفه، يتم إرجاع أحدث تصدير (غير مخزن في ذاكرة التخزين المؤقت). |
الاستجابة:
{
"downloadUrl": "https://storage.example.com/export.ndjson?signed=...",
"cached": true
}
إنشاء إصدار مجموعة بيانات
POST /api/datasets/{datasetId}/export
إنشاء لقطة إصدار مرقمة جديدة لمجموعة البيانات. للمالك فقط. يلتقط هذا الإصدار العدد الحالي للصور وعدد الفئات وعدد التعليقات التوضيحية وتوزيع التقسيم، ثم يقوم بإنشاء وتخزين تصدير NDJSON غير قابل للتغيير.
نص الطلب:
{
"description": "Added 500 training images"
}
جميع الحقول اختيارية. الـ description الحقل هو تسمية يحددها المستخدم للإصدار.
الاستجابة:
{
"version": 3,
"downloadUrl": "https://storage.example.com/v3.ndjson?signed=..."
}
وصف إصدار التحديث
PATCH /api/datasets/{datasetId}/export
تحديث وصف إصدار موجود. للمالك فقط.
نص الطلب:
{
"version": 2,
"description": "Fixed mislabeled classes"
}
الاستجابة:
{
"ok": true
}
الحصول على إحصائيات الفصل
GET /api/datasets/{datasetId}/class-stats
يعرض توزيع الفئات، وخريطة الحرارة للموقع، وإحصائيات الأبعاد. يتم تخزين النتائج في ذاكرة التخزين المؤقت لمدة تصل إلى 5 دقائق.
الاستجابة:
{
"classes": [{ "classId": 0, "count": 1500, "imageCount": 450 }],
"imageStats": {
"widthHistogram": [{ "bin": 640, "count": 120 }],
"heightHistogram": [{ "bin": 480, "count": 95 }],
"pointsHistogram": [{ "bin": 4, "count": 200 }]
},
"locationHeatmap": {
"bins": [
[5, 10],
[8, 3]
],
"maxCount": 50
},
"dimensionHeatmap": {
"bins": [
[2, 5],
[3, 1]
],
"maxCount": 12,
"minWidth": 10,
"maxWidth": 1920,
"minHeight": 10,
"maxHeight": 1080
},
"classNames": ["person", "car", "dog"],
"cached": true,
"sampled": false,
"sampleSize": 1000
}
احصل على نماذج مدربة على مجموعة البيانات
GET /api/datasets/{datasetId}/models
تُرجع النماذج التي تم تدريبها باستخدام مجموعة البيانات هذه.
الاستجابة:
{
"models": [
{
"_id": "model_abc123",
"name": "experiment-1",
"slug": "experiment-1",
"status": "completed",
"task": "detect",
"epochs": 100,
"bestEpoch": 87,
"projectId": "project_xyz",
"projectSlug": "my-project",
"projectIconColor": "#3b82f6",
"projectIconLetter": "M",
"username": "johndoe",
"startedAt": "2024-01-14T22:00:00Z",
"completedAt": "2024-01-15T10:00:00Z",
"createdAt": "2024-01-14T21:55:00Z",
"metrics": {
"mAP50": 0.85,
"mAP50-95": 0.72,
"precision": 0.88,
"recall": 0.81
}
}
],
"count": 1
}
تصنيف مجموعة البيانات تلقائيًا
POST /api/datasets/{datasetId}/predict
قم بتشغيل YOLO على صور مجموعة البيانات لتوليد التعليقات التوضيحية تلقائيًا. يستخدم نموذجًا محددًا للتنبؤ بالعلامات للصور غير المُعلّقة.
الجسم:
| الحقل | النوع | مطلوب | الوصف |
|---|---|---|---|
imageHash | سلسلة نصية | نعم | تجزئة الصورة المراد تعليقها |
modelId | سلسلة نصية | لا | معرف النموذج المراد استخدامه للاستدلال |
confidence | عائم | لا | عتبة الثقة (الافتراضي: 0.25) |
iou | عائم | لا | IoU (الافتراضية: 0.45) |
استيعاب مجموعة البيانات
POST /api/datasets/ingest
أنشئ مهمة استيعاب مجموعة بيانات لمعالجة ملفات ZIP أو TAR المحملة، بما في ذلك .tar.gz و .tgz، تحتوي على صور وتسميات.
graph LR
A[Upload Archive] --> B[POST /api/datasets/ingest]
B --> C[Process Archive]
C --> D[Extract images]
C --> E[Parse labels]
C --> F[Generate thumbnails]
D & E & F --> G[Dataset ready]
صور مجموعة البيانات
قائمة الصور
GET /api/datasets/{datasetId}/images
معلمات الاستعلام:
| المعلمة | النوع | الوصف |
|---|---|---|
split | سلسلة نصية | تصفية حسب التقسيم: train, val, test |
offset | عدد صحيح | إزاحة ترقيم الصفحات (الافتراضي: 0) |
limit | عدد صحيح | العناصر لكل صفحة (الافتراضي: 50، الحد الأقصى: 5000) |
sort | سلسلة نصية | ترتيب الفرز: newest, oldest, name-asc, name-desc, size-asc, size-desc, labels-asc, labels-desc |
hasLabel | سلسلة نصية | تصفية حسب حالة الملصق (true أو false) |
hasError | سلسلة نصية | تصفية حسب حالة الخطأ (true أو false) |
search | سلسلة نصية | البحث حسب اسم الملف أو تجزئة الصورة |
includeThumbnails | سلسلة نصية | تضمين عناوين URL المصغرة الموقعة (الافتراضي: true) |
includeImageUrls | سلسلة نصية | تضمين عناوين URL الكاملة للصور الموقعة (الافتراضي: false) |
الحصول على عناوين URL للصور الموقعة
POST /api/datasets/{datasetId}/images/urls
احصل على عناوين URL موقعة لمجموعة من تجزئات الصور (لعرضها في المتصفح).
حذف الصورة
DELETE /api/datasets/{datasetId}/images/{hash}
الحصول على تسميات الصور
GET /api/datasets/{datasetId}/images/{hash}/labels
يعرض التعليقات التوضيحية وأسماء الفئات لصورة معينة.
تحديث تسميات الصور
PUT /api/datasets/{datasetId}/images/{hash}/labels
الجسم:
{
"labels": [{ "classId": 0, "bbox": [0.5, 0.5, 0.2, 0.3] }]
}
تنسيق الإحداثيات
تستخدم صناديق الإحاطة تنسيق YOLO المعياري: [x_center, y_center, width, height] حيث جميع القيم تتراوح بين 0 و 1.
عمليات الصور المجمعة
نقل الصور بين الأقسام (التدريب/التقييم/الاختبار) داخل مجموعة البيانات:
PATCH /api/datasets/{datasetId}/images/bulk
حذف الصور بشكل مجمع:
DELETE /api/datasets/{datasetId}/images/bulk
واجهة برمجة تطبيقات المشاريع
نظم نماذجك في مشاريع. ينتمي كل نموذج إلى مشروع واحد. راجع وثائق المشاريع.
سرد المشاريع
GET /api/projects
معلمات الاستعلام:
| المعلمة | النوع | الوصف |
|---|---|---|
username | سلسلة نصية | تصفية حسب اسم المستخدم |
limit | عدد صحيح | عدد العناصر في كل صفحة |
owner | سلسلة نصية | اسم المستخدم لمالك مساحة العمل |
الحصول على مشروع
GET /api/projects/{projectId}
إنشاء مشروع
POST /api/projects
curl -X POST \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"name": "my-project", "slug": "my-project", "description": "Detection experiments"}' \
https://platform.ultralytics.com/api/projects
resp = requests.post(
"https://platform.ultralytics.com/api/projects",
headers={"Authorization": f"Bearer {API_KEY}"},
json={"name": "my-project", "slug": "my-project", "description": "Detection experiments"},
)
project_id = resp.json()["projectId"]
تحديث المشروع
PATCH /api/projects/{projectId}
حذف المشروع
DELETE /api/projects/{projectId}
حذف المشروع بشكل مؤقت (نقله إلى سلة المهملات).
استنساخ المشروع
POST /api/projects/{projectId}/clone
أيقونة المشروع
تحميل رمز المشروع (نموذج متعدد الأجزاء مع ملف صورة):
POST /api/projects/{projectId}/icon
إزالة رمز المشروع:
DELETE /api/projects/{projectId}/icon
واجهة برمجة تطبيقات النماذج
إدارة YOLO المدربة — عرض المقاييس، وتنزيل الأوزان، وتشغيل الاستدلال، والتصدير إلى تنسيقات أخرى. راجع وثائق النماذج.
سرد النماذج
GET /api/models
معلمات الاستعلام:
| المعلمة | النوع | مطلوب | الوصف |
|---|---|---|---|
projectId | سلسلة نصية | نعم | رقم المشروع (مطلوب) |
fields | سلسلة نصية | لا | مجموعة الحقول: summary, charts |
ids | سلسلة نصية | لا | معرفات النماذج المفصولة بفاصلات |
limit | عدد صحيح | لا | النتائج القصوى (الافتراضي 20، الحد الأقصى 100) |
قائمة النماذج المكتملة
GET /api/models/completed
إرجاع النماذج التي انتهت من التدريب (لاستخدامها في محددات النماذج والنشر).
الحصول على نموذج
GET /api/models/{modelId}
إنشاء نموذج
POST /api/models
نص JSON:
| الحقل | النوع | مطلوب | الوصف |
|---|---|---|---|
projectId | سلسلة نصية | نعم | رقم مشروع الهدف |
slug | سلسلة نصية | لا | عنوان URL (أحرف أبجدية رقمية صغيرة/واصلة) |
name | سلسلة نصية | لا | اسم العرض (100 حرف كحد أقصى) |
description | سلسلة نصية | لا | وصف النموذج (1000 حرف كحد أقصى) |
task | سلسلة نصية | لا | نوع المهمة (detect، segment، الوضع، obb classify) |
تحميل ملف النموذج
النموذج .pt يتم التعامل مع تحميل الملفات بشكل منفصل. استخدم واجهة المستخدم الخاصة بالمنصة لسحب ملفات النماذج وإفلاتها في المشروع.
تحديث النموذج
PATCH /api/models/{modelId}
حذف النموذج
DELETE /api/models/{modelId}
تنزيل ملفات النماذج
GET /api/models/{modelId}/files
يعيد عناوين URL موقعة لتنزيل ملفات النموذج.
استنساخ النموذج
POST /api/models/{modelId}/clone
استنساخ نموذج عام إلى أحد مشاريعك.
الجسم:
{
"targetProjectSlug": "my-project",
"modelName": "cloned-model",
"description": "Cloned from public model",
"owner": "team-username"
}
| الحقل | النوع | مطلوب | الوصف |
|---|---|---|---|
targetProjectSlug | سلسلة نصية | نعم | اسم المشروع الوجهة |
modelName | سلسلة نصية | لا | اسم النموذج المستنسخ |
description | سلسلة نصية | لا | وصف النموذج |
owner | سلسلة نصية | لا | اسم المستخدم الخاص بالفريق (لنسخ مساحة العمل) |
تتبع التنزيل
POST /api/models/{modelId}/track-download
تتبع تحليلات تنزيل النماذج.
تشغيل الاستدلال
POST /api/models/{modelId}/predict
نموذج متعدد الأجزاء:
| الحقل | النوع | الوصف |
|---|---|---|
file | ملف | ملف صورة (JPEG، PNG، WebP) |
conf | عائم | عتبة الثقة (الافتراضي: 0.25) |
iou | عائم | IoU (الافتراضية: 0.7) |
imgsz | عدد صحيح | حجم الصورة بالبكسل (الافتراضي: 640) |
curl -X POST \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "file=@image.jpg" \
-F "conf=0.5" \
https://platform.ultralytics.com/api/models/MODEL_ID/predict
with open("image.jpg", "rb") as f:
resp = requests.post(
f"https://platform.ultralytics.com/api/models/{model_id}/predict",
headers={"Authorization": f"Bearer {API_KEY}"},
files={"file": f},
data={"conf": 0.5},
)
results = resp.json()["images"][0]["results"]
الاستجابة:
{
"images": [
{
"shape": [1080, 1920],
"results": [
{
"class": 0,
"name": "person",
"confidence": 0.92,
"box": { "x1": 100, "y1": 50, "x2": 300, "y2": 400 }
}
]
}
],
"metadata": {
"imageCount": 1
}
}
احصل على رمز Predict
POST /api/models/{modelId}/predict/token
احصل على رمز قصير الأجل لطلبات التنبؤ المباشرة. يتجاوز الرمز وكيل API للحصول على استنتاجات ذات زمن انتقال أقل من تطبيقات جانب العميل.
نموذج الإحماء
POST /api/models/{modelId}/predict/warmup
قم بتحميل نموذج مسبقًا للحصول على استنتاج أول أسرع. قم باستدعاء هذا قبل تشغيل التنبؤات لتجنب التأخير في الطلب الأولي.
واجهة برمجة تطبيقات التدريب
ابدأ YOLO على وحدات معالجة الرسومات السحابية (RTX 4090، A100، H100) وتابع التقدم المحرز في الوقت الفعلي. راجع وثائق التدريب السحابي.
graph LR
A[POST /training/start] --> B[Job Created]
B --> C{Training}
C -->|progress| D[GET /models/id/training]
C -->|cancel| E[DELETE /models/id/training]
C -->|complete| F[Model Ready]
F --> G[Deploy or Export]
ابدأ التدريب
POST /api/training/start
curl -X POST \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"modelId": "MODEL_ID",
"projectId": "PROJECT_ID",
"gpuType": "rtx-4090",
"trainArgs": {
"model": "yolo26n.pt",
"data": "ul://username/datasets/my-dataset",
"epochs": 100,
"imgsz": 640,
"batch": 16
}
}' \
https://platform.ultralytics.com/api/training/start
resp = requests.post(
"https://platform.ultralytics.com/api/training/start",
headers={"Authorization": f"Bearer {API_KEY}"},
json={
"modelId": "MODEL_ID",
"projectId": "PROJECT_ID",
"gpuType": "rtx-4090",
"trainArgs": {
"model": "yolo26n.pt",
"data": "ul://username/datasets/my-dataset",
"epochs": 100,
"imgsz": 640,
"batch": 16,
},
},
)
GPU
أنواع وحدات GPU المتاحة تشمل rtx-4090, a100-80gb-pcie, a100-80gb-sxm, h100-sxm, rtx-pro-6000، وغيرها. انظر التدريب السحابي للحصول على القائمة الكاملة مع الأسعار.
الحصول على حالة التدريب
GET /api/models/{modelId}/training
إرجاع حالة مهمة التدريب الحالية والمقاييس والتقدم المحرز لنموذج ما.
إلغاء التدريب
DELETE /api/models/{modelId}/training
ينهي تشغيل مثيل الحوسبة ويضع علامة على المهمة على أنها ملغاة.
واجهة برمجة تطبيقات عمليات النشر
انشر النماذج إلى نقاط نهاية استدلال مخصصة مع التحجيم التلقائي، وفحوصات السلامة، والمراقبة. راجع وثائق نقاط النهاية.
graph LR
A[Create] --> B[Deploying]
B --> C[Ready]
C -->|stop| D[Stopped]
D -->|start| C
C -->|delete| E[Deleted]
D -->|delete| E
C -->|predict| F[Inference Results]
سرد عمليات النشر
GET /api/deployments
معلمات الاستعلام:
| المعلمة | النوع | الوصف |
|---|---|---|
modelId | سلسلة نصية | تصفية حسب النموذج |
status | سلسلة نصية | تصفية حسب الحالة |
limit | عدد صحيح | النتائج القصوى (الافتراضي: 20، الحد الأقصى: 100) |
owner | سلسلة نصية | اسم المستخدم لمالك مساحة العمل |
إنشاء عملية نشر
POST /api/deployments
الجسم:
{
"modelId": "model_abc123",
"name": "my-deployment",
"region": "us-central1",
"resources": {
"cpu": 1,
"memoryGi": 2,
"minInstances": 0,
"maxInstances": 1
}
}
| الحقل | النوع | مطلوب | الوصف |
|---|---|---|---|
modelId | سلسلة نصية | نعم | معرف النموذج المراد نشره |
name | سلسلة نصية | نعم | اسم النشر |
region | سلسلة نصية | نعم | منطقة النشر |
resources | كائن | لا | تكوين الموارد (cpu، ذاكرة Gi، الحد الأدنى من الحالات، الحد الأقصى من الحالات) |
ينشئ نقطة نهاية استدلال مخصصة في المنطقة المحددة. يمكن الوصول إلى نقطة النهاية عالميًا عبر عنوان URL فريد.
اختيار المنطقة
اختر منطقة قريبة من مستخدميك لأقل زمن استجابة. تعرض واجهة مستخدم المنصة تقديرات زمن الاستجابة لجميع المناطق الـ 43 المتاحة.
الحصول على عملية نشر
GET /api/deployments/{deploymentId}
حذف عملية النشر
DELETE /api/deployments/{deploymentId}
بدء عملية النشر
POST /api/deployments/{deploymentId}/start
استئناف النشر المتوقف.
إيقاف عملية النشر
POST /api/deployments/{deploymentId}/stop
إيقاف النشر قيد التشغيل مؤقتًا (إيقاف الفوترة).
فحص السلامة
GET /api/deployments/{deploymentId}/health
إرجاع حالة صحة نقطة نهاية النشر.
تشغيل الاستدلال عند النشر
POST /api/deployments/{deploymentId}/predict
إرسال صورة مباشرة إلى نقطة نهاية النشر للاستدلال. وظيفياً، هذا مكافئ لتنبؤ النموذج، ولكن يتم توجيهه عبر نقطة النهاية المخصصة لزمن انتقال أقل.
نموذج متعدد الأجزاء:
| الحقل | النوع | الوصف |
|---|---|---|
file | ملف | ملف صورة (JPEG، PNG، WebP) |
conf | عائم | عتبة الثقة (الافتراضي: 0.25) |
iou | عائم | IoU (الافتراضية: 0.7) |
imgsz | عدد صحيح | حجم الصورة بالبكسل (الافتراضي: 640) |
الحصول على المقاييس
GET /api/deployments/{deploymentId}/metrics
يعرض عدد الطلبات المرتجعة ومقاييس زمن الاستجابة ومعدل الأخطاء مع بيانات sparkline.
معلمات الاستعلام:
| المعلمة | النوع | الوصف |
|---|---|---|
range | سلسلة نصية | النطاق الزمني: 1h, 6h, 24h (افتراضي)، 7d, 30d |
sparkline | سلسلة نصية | اضبط على true للحصول على بيانات خطية مصغرة محسّنة لعرض لوحة المعلومات |
الحصول على السجلات
GET /api/deployments/{deploymentId}/logs
معلمات الاستعلام:
| المعلمة | النوع | الوصف |
|---|---|---|
severity | سلسلة نصية | مرشح مفصول بفاصلات: DEBUG, INFO, WARNING, ERROR, CRITICAL |
limit | عدد صحيح | عدد الإدخالات (الافتراضي: 50، الحد الأقصى: 200) |
pageToken | سلسلة نصية | رمز ترقيم الصفحات من الاستجابة السابقة |
واجهة برمجة التطبيقات للمراقبة
المقاييس المجمعة
GET /api/monitoring
يعرض المقاييس المجمعة عبر جميع عمليات النشر الخاصة بالمستخدمين: إجمالي الطلبات، وعمليات النشر النشطة، ومعدل الأخطاء، ومتوسط زمن الاستجابة.
واجهة برمجة تطبيقات التصدير
تحويل النماذج إلى تنسيقات محسّنة مثل ONNX و TensorRT و CoreML و TFLite للنشر على الأجهزة الطرفية. راجع وثائق النشر.
سرد عمليات التصدير
GET /api/exports
معلمات الاستعلام:
| المعلمة | النوع | الوصف |
|---|---|---|
modelId | سلسلة نصية | رقم الطراز (مطلوب) |
status | سلسلة نصية | تصفية حسب الحالة |
limit | عدد صحيح | النتائج القصوى (الافتراضي: 20، الحد الأقصى: 100) |
إنشاء عملية تصدير
POST /api/exports
الجسم:
| الحقل | النوع | مطلوب | الوصف |
|---|---|---|---|
modelId | سلسلة نصية | نعم | معرف نموذج المصدر |
format | سلسلة نصية | نعم | تنسيق التصدير (انظر الجدول أدناه) |
gpuType | سلسلة نصية | شرطي | مطلوب عند format هو engine (TensorRT) |
args | كائن | لا | تصدير الحجج (imgsz, half, dynamic، إلخ.) |
curl -X POST \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"modelId": "MODEL_ID", "format": "onnx"}' \
https://platform.ultralytics.com/api/exports
resp = requests.post(
"https://platform.ultralytics.com/api/exports",
headers={"Authorization": f"Bearer {API_KEY}"},
json={"modelId": "MODEL_ID", "format": "onnx"},
)
export_id = resp.json()["exportId"]
التنسيقات المدعومة:
| التنسيق | القيمة | حالة الاستخدام |
|---|---|---|
| ONNX | onnx | الاستدلال عبر الأنظمة الأساسية |
| TorchScript | torchscript | نشر PyTorch |
| OpenVINO | openvino | أجهزة Intel |
| TensorRT | engine | GPU الرسومات NVIDIA |
| CoreML | coreml | أجهزة Apple |
| TFLite | tflite | المحمول والمدمج |
| TF SavedModel | saved_model | TensorFlow |
| TF GraphDef | pb | رسم بياني TensorFlow |
| PaddlePaddle | paddle | بايدو PaddlePaddle |
| NCNN | ncnn | شبكة عصبية متنقلة |
| Edge TPU | edgetpu | أجهزة Google Coral |
| TF.js | tfjs | استنتاج المتصفح |
| MNN | mnn | استدلال Alibaba على الأجهزة المحمولة |
| RKNN | rknn | وحدة المعالجة العصبية Rockchip |
| IMX | imx | مستشعر Sony IMX500 |
| Axelera | axelera | مسرعات Axelera AI |
| ExecuTorch | executorch | وقت تشغيل Meta ExecuTorch |
الحصول على حالة التصدير
GET /api/exports/{exportId}
إلغاء التصدير
DELETE /api/exports/{exportId}
تتبع التصدير تنزيل
POST /api/exports/{exportId}/track-download
واجهة برمجة تطبيقات النشاط
اعرض موجزًا بالأنشطة الأخيرة التي تمت على حسابك — مثل الجولات التدريبية، وعمليات التحميل، والمزيد. راجع وثائق "النشاط".
سرد النشاط
GET /api/activity
معلمات الاستعلام:
| المعلمة | النوع | الوصف |
|---|---|---|
limit | عدد صحيح | حجم الصفحة (الافتراضي: 20، الحد الأقصى: 100) |
page | عدد صحيح | رقم الصفحة (افتراضي: 1) |
archived | قيمة منطقية | true لعلامة التبويب "الأرشيف"، false لصندوق الوارد |
search | سلسلة نصية | بحث غير حساس لحالة الأحرف في حقول الأحداث |
وضع علامة على الأحداث المشاهدة
POST /api/activity/mark-seen
الجسم:
{
"all": true
}
أو تمرير معرفات محددة:
{
"eventIds": ["EVENT_ID_1", "EVENT_ID_2"]
}
أرشفة الأحداث
POST /api/activity/archive
الجسم:
{
"all": true,
"archive": true
}
أو تمرير معرفات محددة:
{
"eventIds": ["EVENT_ID_1", "EVENT_ID_2"],
"archive": false
}
واجهة برمجة تطبيقات سلة المهملات
عرض العناصر المحذوفة واستعادتها. يتم حذف العناصر نهائيًا بعد مرور 30 يومًا. راجع وثائق "سلة المهملات".
عرض سلة المهملات
GET /api/trash
معلمات الاستعلام:
| المعلمة | النوع | الوصف |
|---|---|---|
type | سلسلة نصية | مرشح: all, project, dataset, model |
page | عدد صحيح | رقم الصفحة (افتراضي: 1) |
limit | عدد صحيح | العناصر في كل صفحة (الافتراضي: 50، الحد الأقصى: 200) |
owner | سلسلة نصية | اسم المستخدم لمالك مساحة العمل |
استعادة عنصر
POST /api/trash
الجسم:
{
"id": "item_abc123",
"type": "dataset"
}
حذف العنصر نهائياً
DELETE /api/trash
الجسم:
{
"id": "item_abc123",
"type": "dataset"
}
لا رجعة فيه
لا يمكن التراجع عن الحذف الدائم. سيتم إزالة المورد وجميع البيانات المرتبطة به.
إفراغ سلة المهملات
DELETE /api/trash/empty
يحذف جميع العناصر الموجودة في سلة المهملات بشكل دائم.
واجهة برمجة تطبيقات الفواتير
تحقق من رصيد رصيدك، واشترِ أرصدة، واعرض سجل المعاملات، وقم بتكوين التعبئة التلقائية. راجع وثائق الفوترة.
وحدات العملة
تستخدم مبالغ الفوترة السنتات (creditsCents) حيث 100 = $1.00.
الحصول على الرصيد
GET /api/billing/balance
معلمات الاستعلام:
| المعلمة | النوع | الوصف |
|---|---|---|
owner | سلسلة نصية | اسم المستخدم لمالك مساحة العمل |
الاستجابة:
{
"creditsCents": 2500,
"plan": "free",
"cashBalance": 25,
"creditBalance": 0,
"reservedAmount": 0,
"totalBalance": 25
}
الحصول على ملخص الاستخدام
GET /api/billing/usage-summary
يعرض تفاصيل الخطة والحدود ومقاييس الاستخدام.
الحصول على المعاملات
GET /api/billing/transactions
يعرض سجل المعاملات (الأحدث أولاً).
معلمات الاستعلام:
| المعلمة | النوع | الوصف |
|---|---|---|
owner | سلسلة نصية | اسم المستخدم لمالك مساحة العمل |
إنشاء جلسة إتمام الدفع
POST /api/billing/checkout-session
الجسم:
{
"amount": 25,
"owner": "team-username"
}
| الحقل | النوع | مطلوب | الوصف |
|---|---|---|---|
amount | رقم | نعم | المبلغ بالدولار (5-1000 دولار) |
owner | سلسلة نصية | لا | اسم المستخدم الخاص بالفريق لإعادة تعبئة رصيد مساحة العمل (يتطلب دور المسؤول) |
ينشئ جلسة دفع لشراء الرصيد.
إنشاء إتمام دفع الاشتراك
POST /api/billing/subscription-checkout
ينشئ جلسة دفع لترقية اشتراك Pro.
الجسم:
{
"planId": "pro",
"billingCycle": "monthly",
"owner": "team-username"
}
| الحقل | النوع | مطلوب | الوصف |
|---|---|---|---|
planId | سلسلة نصية | نعم | خطط للاشتراك في (pro) |
billingCycle | سلسلة نصية | لا | دورة الفوترة: monthly (افتراضي) أو yearly |
owner | سلسلة نصية | لا | اسم المستخدم الخاص بالفريق لترقية مساحة العمل (يتطلب دور المسؤول) |
إنشاء جلسة بوابة
POST /api/billing/portal-session
يعيد عنوان URL إلى بوابة الفوترة لإدارة الاشتراك.
تعبئة تلقائية
إضافة أرصدة تلقائيًا عندما ينخفض الرصيد عن حد معين.
الحصول على تكوين إعادة التعبئة التلقائية
GET /api/billing/auto-topup
معلمات الاستعلام:
| المعلمة | النوع | الوصف |
|---|---|---|
owner | سلسلة نصية | اسم المستخدم لمالك مساحة العمل |
تحديث إعدادات التعبئة التلقائية
PATCH /api/billing/auto-topup
الجسم:
{
"enabled": true,
"thresholdCents": 500,
"amountCents": 2500
}
طرق الدفع
قائمة طرق الدفع
GET /api/billing/payment-methods
إنشاء نية إعداد
POST /api/billing/payment-methods/setup
إرجاع سر العميل لإضافة طريقة دفع جديدة.
تعيين طريقة الدفع الافتراضية
POST /api/billing/payment-methods/default
الجسم:
{
"paymentMethodId": "pm_123"
}
تحديث معلومات الفوترة
PATCH /api/billing/payment-methods
الجسم:
{
"name": "Jane Doe",
"address": {
"line1": "123 Main St",
"city": "San Francisco",
"state": "CA",
"postal_code": "94105",
"country": "US"
}
}
حذف طريقة الدفع
DELETE /api/billing/payment-methods/{id}
واجهة برمجة تطبيقات التخزين
تحقق من تفاصيل استخدام التخزين حسب الفئة (مجموعات البيانات، النماذج، الصادرات) واطلع على أكبر العناصر لديك.
الحصول على معلومات التخزين
GET /api/storage
الاستجابة:
{
"tier": "free",
"usage": {
"storage": {
"current": 1073741824,
"limit": 107374182400,
"percent": 1.0
}
},
"region": "us",
"username": "johndoe",
"updatedAt": "2024-01-15T10:00:00Z",
"breakdown": {
"byCategory": {
"datasets": { "bytes": 536870912, "count": 2 },
"models": { "bytes": 268435456, "count": 4 },
"exports": { "bytes": 268435456, "count": 3 }
},
"topItems": [
{
"_id": "dataset_abc123",
"name": "my-dataset",
"slug": "my-dataset",
"sizeBytes": 536870912,
"type": "dataset"
},
{
"_id": "model_def456",
"name": "experiment-1",
"slug": "experiment-1",
"sizeBytes": 134217728,
"type": "model",
"parentName": "My Project",
"parentSlug": "my-project"
}
]
}
}
إعادة حساب السعة التخزينية
POST /api/storage
يؤدي إلى إعادة حساب استخدام التخزين.
تحميل واجهة برمجة التطبيقات
قم بتحميل الملفات مباشرةً إلى التخزين السحابي باستخدام عناوين URL الموقعة لإجراء عمليات نقل سريعة وموثوقة. يتم ذلك من خلال خطوتين: الحصول على عنوان URL موقّع، ثم تحميل الملف. راجع وثائق البيانات.
احصل على عنوان URL للتحميل الموقع
POST /api/upload/signed-url
اطلب عنوان URL موقّع لتحميل ملف مباشرة إلى التخزين السحابي. يتجاوز عنوان URL الموقّع خادم API لنقل الملفات الكبيرة.
الجسم:
{
"assetType": "images",
"assetId": "abc123",
"filename": "my-image.jpg",
"contentType": "image/jpeg",
"totalBytes": 5242880
}
| الحقل | النوع | الوصف |
|---|---|---|
assetType | سلسلة نصية | نوع الأصل: models, datasets, images, videos |
assetId | سلسلة نصية | معرف الأصل المستهدف |
filename | سلسلة نصية | اسم الملف الأصلي |
contentType | سلسلة نصية | نوع MIME |
totalBytes | عدد صحيح | حجم الملف بالبايت |
الاستجابة:
{
"sessionId": "session_abc123",
"uploadUrl": "https://storage.example.com/...",
"objectPath": "images/abc123/my-image.jpg",
"downloadUrl": "https://cdn.example.com/...",
"expiresAt": "2026-02-22T12:00:00Z"
}
اكتمال التحميل
POST /api/upload/complete
أخبر المنصة بأن تحميل الملف قد اكتمل حتى تبدأ في معالجته.
الجسم:
{
"datasetId": "abc123",
"objectPath": "datasets/abc123/images/my-image.jpg",
"filename": "my-image.jpg",
"contentType": "image/jpeg",
"size": 5242880
}
واجهة برمجة تطبيقات مفاتيح API
قم بإدارة مفاتيح واجهة برمجة التطبيقات (API) الخاصة بك للوصول البرمجي. راجع وثائق مفاتيح واجهة برمجة التطبيقات (API).
عرض مفاتيح API
GET /api/api-keys
إنشاء مفتاح API
POST /api/api-keys
الجسم:
{
"name": "training-server"
}
حذف مفتاح API
DELETE /api/api-keys
معلمات الاستعلام:
| المعلمة | النوع | الوصف |
|---|---|---|
keyId | سلسلة نصية | معرف مفتاح API المراد إلغاؤه |
مثال:
curl -X DELETE \
-H "Authorization: Bearer YOUR_API_KEY" \
"https://platform.ultralytics.com/api/api-keys?keyId=KEY_ID"
واجهة برمجة التطبيقات للفرق والأعضاء
أنشئ مساحات عمل للفرق، وادعُ الأعضاء، وادِر الأدوار للتعاون. انظر وثائق الفرق.
قائمة الفرق
GET /api/teams
إنشاء فريق
POST /api/teams/create
الجسم:
{
"username": "my-team",
"fullName": "My Team"
}
قائمة الأعضاء
GET /api/members
يعرض أعضاء مساحة العمل الحالية.
دعوة عضو
POST /api/members
الجسم:
{
"email": "user@example.com",
"role": "editor"
}
أدوار الأعضاء
| الدور | الصلاحيات |
|---|---|
viewer | وصول للقراءة فقط إلى موارد مساحة العمل |
editor | إنشاء الموارد وتحريرها وحذفها |
admin | وصول كامل بما في ذلك إدارة الأعضاء |
انظر Teams للحصول على تفاصيل الدور في واجهة المستخدم.
تحديث دور العضو
PATCH /api/members/{userId}
إزالة عضو
DELETE /api/members/{userId}
نقل الملكية
POST /api/members/transfer-ownership
دعوات
قبول الدعوة
POST /api/invites/accept
احصل على معلومات الدعوة
GET /api/invites/info
معلمات الاستعلام:
| المعلمة | النوع | الوصف |
|---|---|---|
token | سلسلة نصية | رمز الدعوة |
إلغاء الدعوة
DELETE /api/invites/{inviteId}
إعادة إرسال الدعوة
POST /api/invites/{inviteId}/resend
استكشف واجهة برمجة التطبيقات
ابحث وتصفح مجموعات البيانات العامة والمشاريع التي يشاركها المجتمع. راجع وثائق "Explore".
البحث في المحتوى العام
GET /api/explore/search
معلمات الاستعلام:
| المعلمة | النوع | الوصف |
|---|---|---|
q | سلسلة نصية | استعلام البحث |
type | سلسلة نصية | نوع المورد: all (افتراضي)، projects, datasets |
sort | سلسلة نصية | ترتيب الفرز: stars (افتراضي)، newest, oldest, name-asc, name-desc, count-desc, count-asc |
offset | عدد صحيح | إزاحة ترقيم الصفحات (الافتراضي: 0). تعرض النتائج 20 عنصرًا في كل صفحة. |
بيانات الشريط الجانبي
GET /api/explore/sidebar
يعرض محتوى مختارًا للشريط الجانبي "استكشاف".
واجهات برمجة التطبيقات الخاصة بالمستخدم والإعدادات
قم بإدارة ملفك الشخصي ومفاتيح واجهة برمجة التطبيقات (API) واستخدام مساحة التخزين وإعدادات خصوصية البيانات. راجع وثائق الإعدادات.
الحصول على المستخدم حسب اسم المستخدم
GET /api/users
معلمات الاستعلام:
| المعلمة | النوع | الوصف |
|---|---|---|
username | سلسلة نصية | اسم المستخدم المطلوب البحث عنه |
متابعة أو إلغاء متابعة المستخدم
PATCH /api/users
الجسم:
{
"username": "target-user",
"followed": true
}
التحقق من توفر اسم المستخدم
GET /api/username/check
معلمات الاستعلام:
| المعلمة | النوع | الوصف |
|---|---|---|
username | سلسلة نصية | اسم المستخدم للتحقق |
suggest | منطقي | اختياري: true لتضمين اقتراح إذا تم أخذه |
الإعدادات
GET /api/settings
POST /api/settings
الحصول على إعدادات ملف تعريف المستخدم أو تحديثها (الاسم المعروض، السيرة الذاتية، الروابط الاجتماعية، إلخ).
أيقونة الملف الشخصي
POST /api/settings/icon
DELETE /api/settings/icon
تحميل أو إزالة الصورة الشخصية للملف الشخصي.
التأهيل
POST /api/onboarding
أكمل تدفق الإعداد الأولي (تعيين منطقة البيانات، اسم المستخدم).
واجهة برمجة تطبيقات GDPR
اطلب تصدير جميع بياناتك أو احذف حسابك نهائيًا. راجع وثائق الإعدادات.
احصل على حالة وظيفة GDPR
GET /api/gdpr
معلمات الاستعلام:
| المعلمة | النوع | الوصف |
|---|---|---|
jobId | سلسلة نصية | رقم الوظيفة GDPR للتحقق |
يعرض حالة المهمة. بالنسبة لمهام التصدير المكتملة، تتضمن الاستجابة downloadUrl.
بدء التصدير أو حذف التدفق
POST /api/gdpr
الجسم:
{
"action": "export"
}
{
"action": "delete",
"confirmationWord": "DELETE"
}
اختياري لمساحات عمل الفريق:
{
"action": "delete",
"confirmationWord": "DELETE",
"teamUsername": "my-team"
}
إجراء لا رجعة فيه
حذف الحساب دائم ولا يمكن التراجع عنه. سيتم حذف جميع البيانات والنماذج وعمليات النشر.
رموز الأخطاء
| الرمز | حالة HTTP | الوصف |
|---|---|---|
UNAUTHORIZED | 401 | مفتاح API غير صالح أو مفقود |
FORBIDDEN | 403 | أذونات غير كافية |
NOT_FOUND | 404 | المورد غير موجود |
VALIDATION_ERROR | 400 | بيانات الطلب غير صالحة |
RATE_LIMITED | 429 | عدد كبير جداً من الطلبات |
INTERNAL_ERROR | 500 | خطأ في الخادم |
Python
لتسهيل عملية التكامل، استخدمPython Ultralytics Python التي تتولى المصادقة والتحميل وتدفق المقاييس في الوقت الفعلي تلقائيًا.
التثبيت والإعداد
pip install ultralytics
تحقق من التثبيت:
yolo check
متطلبات إصدار الحزمة
يتطلب تكامل المنصة ultralytics>=8.4.14. الإصدارات الأقدم لن تعمل مع المنصة.
المصادقة
yolo settings api_key=YOUR_API_KEY
export ULTRALYTICS_API_KEY=YOUR_API_KEY
from ultralytics import settings
settings.api_key = "YOUR_API_KEY"
استخدام مجموعات بيانات المنصة
مجموعات البيانات المرجعية مع ul:// URIs:
from ultralytics import YOLO
model = YOLO("yolo26n.pt")
# Train on your Platform dataset
model.train(
data="ul://your-username/datasets/your-dataset",
epochs=100,
imgsz=640,
)
تنسيق URI:
| النمط | الوصف |
|---|---|
ul://username/datasets/slug | مجموعة البيانات |
ul://username/project-name | المشروع |
ul://username/project/model-name | نموذج محدد |
ul://ultralytics/yolo26/yolo26n | النموذج الرسمي |
الدفع إلى المنصة
إرسال النتائج إلى مشروع منصة:
from ultralytics import YOLO
model = YOLO("yolo26n.pt")
# Results automatically sync to Platform
model.train(
data="coco8.yaml",
epochs=100,
project="your-username/my-project",
name="experiment-1",
)
ما الذي يتزامن:
- مقاييس التدريب (في الوقت الفعلي)
- أوزان النموذج النهائي
- مخططات التحقق
- إخراج وحدة التحكم
- مقاييس النظام
أمثلة على واجهة برمجة التطبيقات
تحميل نموذج من المنصة:
# Your own model
model = YOLO("ul://username/project/model-name")
# Official model
model = YOLO("ul://ultralytics/yolo26/yolo26n")
تشغيل الاستدلال:
results = model("image.jpg")
# Access results
for r in results:
boxes = r.boxes # Detection boxes
masks = r.masks # Segmentation masks
keypoints = r.keypoints # Pose keypoints
probs = r.probs # Classification probabilities
نموذج التصدير:
# Export to ONNX
model.export(format="onnx", imgsz=640, half=True)
# Export to TensorRT
model.export(format="engine", imgsz=640, half=True)
# Export to CoreML
model.export(format="coreml", imgsz=640)
التحقق من الصحة:
metrics = model.val(data="ul://username/datasets/my-dataset")
print(f"mAP50: {metrics.box.map50}")
print(f"mAP50-95: {metrics.box.map}")
Webhooks
تقوم Webhooks بإخطار الخادم الخاص بك بأحداث المنصة عبر استدعاءات HTTP POST:
| الحدث | الوصف |
|---|---|
training.started | بدء مهمة التدريب |
training.epoch | اكتمل العصر |
training.completed | اكتمل التدريب |
training.failed | فشل التدريب |
export.completed | التصدير جاهز |
توافر الباقة
جميع الخطط: تعمل خطافات الويب للتدريب عبر حزمة تطوير البرامج (SDK) لـ python (مقاييس في الوقت الفعلي، إشعارات الاكتمال) تلقائيًا على كل خطة -- لا يتطلب أي تهيئة.
للمؤسسات فقط: تتطلب نقاط نهاية webhook المخصصة التي ترسل استدعاءات HTTP POST إلى عنوان URL الخاص بخادمك خطة Enterprise. اتصل بالمبيعات للحصول على التفاصيل.
الأسئلة الشائعة
كيف يمكنني تقسيم النتائج الكبيرة إلى صفحات؟
تستخدم معظم نقاط النهاية limit المعلمة للتحكم في عدد النتائج التي يتم إرجاعها لكل طلب:
curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://platform.ultralytics.com/api/datasets?limit=50"
تدعم نقاط النهاية Activity و Trash أيضًا page معلمة للترقيم الصفحي القائم على الصفحات:
curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://platform.ultralytics.com/api/activity?page=2&limit=20"
تستخدم نقطة نهاية البحث Explore Search offset بدلاً من page، بحجم صفحة ثابت يبلغ 20:
curl "https://platform.ultralytics.com/api/explore/search?type=datasets&offset=20&sort=stars"
هل يمكنني استخدام واجهة برمجة التطبيقات (API) بدون حزمة تطوير البرامج (SDK)؟
نعم، جميع الوظائف متاحة عبر REST. وتُعد Python أداة مساعدة توفر ميزات مثل البث المباشر للمقاييس وتحميل النماذج تلقائيًا. كما يمكنك استكشاف جميع نقاط النهاية بشكل تفاعلي على platform.ultralytics.com/api/docs.
هل توجد مكتبات عميل لواجهة برمجة التطبيقات (API)؟
حاليًا، استخدم حزمة Ultralytics python أو قم بإجراء طلبات HTTP مباشرة. يجري التخطيط لمكتبات عميل رسمية للغات أخرى.
كيف أتعامل مع قيود المعدل؟
استخدم Retry-After رأس من الاستجابة 429 للانتظار المدة المناسبة:
import time
import requests
def api_request_with_retry(url, headers, max_retries=3):
for attempt in range(max_retries):
response = requests.get(url, headers=headers)
if response.status_code != 429:
return response
wait = int(response.headers.get("Retry-After", 2**attempt))
time.sleep(wait)
raise Exception("Rate limit exceeded")
كيف يمكنني العثور على معرف النموذج أو مجموعة البيانات الخاصة بي؟
يتم إرجاع معرفات الموارد عند إنشاء الموارد عبر واجهة برمجة التطبيقات. يمكنك أيضًا العثور عليها في عنوان URL الخاص بالمنصة:
https://platform.ultralytics.com/username/project/model-name
^^^^^^^^ ^^^^^^^ ^^^^^^^^^^
username project model
استخدم نقاط نهاية القائمة للبحث حسب الاسم أو التصفية حسب المشروع.