Tham chiếu REST API
Ultralytics Platform cung cấp một REST API toàn diện để truy cập theo lập trình vào các tập dữ liệu, model, quá trình huấn luyện và triển khai.

# List your datasets
curl -H "Authorization: Bearer YOUR_API_KEY" \
https://platform.ultralytics.com/api/datasetsKhám phá tài liệu tham chiếu API tương tác đầy đủ trong tài liệu API Ultralytics Platform.
Tổng quan về API
API được tổ chức xoay quanh các tài nguyên cốt lõi của nền tảng:
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| Tài nguyên | Mô tả | Các thao tác chính |
|---|---|---|
| Datasets | Bộ sưu tập hình ảnh được gán nhãn | CRUD, hình ảnh, nhãn, xuất dữ liệu, phiên bản, sao chép |
| Projects | Không gian làm việc huấn luyện | CRUD, sao chép, biểu tượng |
| Models | Các checkpoint đã huấn luyện | CRUD, dự đoán, tải xuống, sao chép, xuất |
| Deployments | Các endpoint suy luận chuyên dụng | CRUD, khởi động/dừng, số liệu, nhật ký, trạng thái sức khỏe |
| Exports | Công việc chuyển đổi định dạng | Tạo, trạng thái, tải xuống |
| Training | Công việc huấn luyện trên GPU đám mây | Khởi động, trạng thái, hủy |
| Billing | Số dư và gói đăng ký | Số dư, nạp tiền, phương thức thanh toán |
| Teams | Cộng tác trong không gian làm việc | Thành viên, lời mời, vai trò |
Xác thực
Các API tài nguyên như datasets, projects, models, training, exports và predictions sử dụng xác thực bằng API-key. Các endpoint công khai (liệt kê datasets, projects và models công khai) hỗ trợ quyền đọc ẩn danh mà không cần key. Các lộ trình liên quan đến tài khoản — bao gồm hoạt động, cài đặt, teams, billing và các luồng GDPR — hiện yêu cầu một phiên trình duyệt đã xác thực và không khả dụng thông qua API key.
Lấy API Key
- Đi tới
Settings>API Keys - Nhấp vào
Create Key - Sao chép key đã được tạo
Xem API Keys để biết hướng dẫn chi tiết.
Header ủy quyền
Thêm API key của bạn vào tất cả các request:
Authorization: Bearer YOUR_API_KEYCác API key sử dụng định dạng ul_ theo sau bởi 40 ký tự hex. Hãy giữ bí mật key của bạn -- không bao giờ commit nó vào hệ thống quản lý phiên bản hoặc chia sẻ công khai.
Ví dụ
curl -H "Authorization: Bearer YOUR_API_KEY" \
https://platform.ultralytics.com/api/datasetsBase URL
Tất cả các endpoint API đều sử dụng:
https://platform.ultralytics.com/api
Giới hạn tốc độ (Rate Limits)
API áp dụng giới hạn tốc độ cho mỗi API-key (cửa sổ trượt, được hỗ trợ bởi Upstash Redis) để bảo vệ chống lại việc lạm dụng trong khi vẫn giữ cho việc sử dụng hợp pháp không bị hạn chế. Lưu lượng truy cập ẩn danh được bảo vệ bổ sung bởi các biện pháp kiểm soát lạm dụng cấp nền tảng của Vercel.
Khi bị điều tiết, API sẽ trả về 429 cùng với metadata thử lại:
Retry-After: 12
X-RateLimit-Reset: 2026-02-21T12:34:56.000ZGiới hạn theo API Key
Giới hạn tốc độ được áp dụng tự động dựa trên endpoint đang được gọi. Các thao tác tiêu tốn tài nguyên có giới hạn chặt chẽ hơn để ngăn chặn lạm dụng, trong khi các thao tác CRUD tiêu chuẩn chia sẻ một mức giới hạn mặc định hào phóng:
| Endpoint | Giới hạn | Áp dụng cho |
|---|---|---|
| Mặc định | 100 request/phút | Tất cả các endpoint không được liệt kê dưới đây (danh sách, lấy, tạo, cập nhật, xóa) |
| Training | 10 request/phút | Bắt đầu công việc huấn luyện trên đám mây (POST /api/training/start) |
| Tải lên | 10 request/phút | Tải tệp lên, URL đã ký và nhập dataset |
| Dự đoán | 20 request/phút | Suy luận model chia sẻ (POST /api/models/{id}/predict) |
| Xuất | 20 request/phút | Xuất định dạng model (POST /api/exports), xuất NDJSON dataset và tạo phiên bản |
| Tải xuống | 30 request/phút | Tải xuống tệp trọng số model (GET /api/models/{id}/download) |
| Chuyên dụng | Không giới hạn | Dedicated endpoints — dịch vụ của riêng bạn, không có giới hạn API |
Mỗi danh mục có một bộ đếm độc lập cho mỗi API key. Ví dụ, việc thực hiện 20 request dự đoán không ảnh hưởng đến hạn mức mặc định 100 request/phút của bạn.
Dedicated Endpoints (Không giới hạn)
Dedicated endpoints không chịu các giới hạn tốc độ của API key. Khi bạn triển khai một model đến một dedicated endpoint, các request tới URL endpoint đó (ví dụ: https://predict-abc123.run.app/predict) đi trực tiếp đến dịch vụ chuyên dụng của bạn mà không có giới hạn tốc độ từ Nền tảng. Bạn đang trả tiền cho điện toán, vì vậy bạn nhận được thông lượng từ cấu hình dịch vụ chuyên dụng của mình thay vì các giới hạn API chia sẻ.
Khi bạn nhận được mã trạng thái 429, hãy đợi theo Retry-After (hoặc cho đến khi X-RateLimit-Reset) trước khi thử lại. Xem Câu hỏi thường gặp về giới hạn tốc độ để biết cách triển khai thuật toán exponential backoff.
Định dạng phản hồi
Phản hồi thành công
Các phản hồi trả về JSON với các trường đặc thù của tài nguyên:
{
"datasets": [...],
"total": 100
}Phản hồi lỗi
{
"error": "Dataset not found"
}| Trạng thái HTTP | Ý nghĩa |
|---|---|
200 | Thành công |
201 | Đã tạo |
400 | Request không hợp lệ |
401 | Yêu cầu xác thực |
403 | Không đủ quyền |
404 | Không tìm thấy tài nguyên |
409 | Xung đột (trùng lặp) |
429 | Đã vượt quá giới hạn tốc độ |
500 | Lỗi máy chủ |
Datasets API
Tạo, duyệt và quản lý các tập dữ liệu hình ảnh được gán nhãn để huấn luyện các model YOLO. Xem Tài liệu Datasets.
Liệt kê các tập dữ liệu
GET /api/datasetsCác tham số truy vấn:
| Tham số | Kiểu | Mô tả |
|---|---|---|
username | string | Lọc theo tên người dùng |
slug | string | Lấy thông tin tập dữ liệu đơn lẻ theo slug |
limit | int | Số lượng mục mỗi trang (mặc định: 20, tối đa: 500) |
owner | string | Tên người dùng sở hữu không gian làm việc |
curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://platform.ultralytics.com/api/datasets?limit=10"Phản hồi:
{
"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"
}Lấy tập dữ liệu
GET /api/datasets/{datasetId}Trả về chi tiết đầy đủ của tập dữ liệu bao gồm metadata, tên lớp và số lượng chia tách dữ liệu.
Tạo tập dữ liệu
POST /api/datasetsBody:
{
"slug": "my-dataset",
"name": "My Dataset",
"task": "detect",
"description": "A custom detection dataset",
"visibility": "private",
"classNames": ["person", "car"]
}Các giá trị task hợp lệ: detect, segment, classify, pose, obb.
Cập nhật tập dữ liệu
PATCH /api/datasets/{datasetId}Body (cập nhật một phần):
{
"name": "Updated Name",
"description": "New description",
"visibility": "public"
}Xóa tập dữ liệu
DELETE /api/datasets/{datasetId}Xóa mềm tập dữ liệu (được chuyển vào thùng rác, có thể khôi phục trong vòng 30 ngày).
Sao chép tập dữ liệu
POST /api/datasets/{datasetId}/cloneTạo bản sao của tập dữ liệu với tất cả hình ảnh và nhãn. Chỉ các tập dữ liệu công khai mới có thể được sao chép. Yêu cầu một phiên trình duyệt nền tảng đang hoạt động — không khả dụng qua API key.
Body (tất cả các trường đều tùy chọn):
{
"name": "cloned-dataset",
"description": "My cloned dataset",
"visibility": "private",
"owner": "team-username"
}Xuất tập dữ liệu
GET /api/datasets/{datasetId}/exportTrả về phản hồi JSON với URL tải xuống đã ký cho bản xuất tập dữ liệu mới nhất.
Các tham số truy vấn:
| Tham số | Kiểu | Mô tả |
|---|---|---|
v | integer | Số phiên bản (đánh chỉ số từ 1). Nếu bỏ qua, sẽ trả về bản xuất mới nhất (không lưu cache). |
Phản hồi:
{
"downloadUrl": "https://storage.example.com/export.ndjson?signed=...",
"cached": true
}Tạo phiên bản tập dữ liệu
POST /api/datasets/{datasetId}/exportTạo một bản snapshot phiên bản mới được đánh số của tập dữ liệu. Chỉ dành cho chủ sở hữu. Phiên bản này ghi lại số lượng hình ảnh hiện tại, số lượng lớp, số lượng chú thích và phân bổ tách dữ liệu, sau đó tạo và lưu trữ một bản xuất NDJSON không thể thay đổi.
Request Body:
{
"description": "Added 500 training images"
}Tất cả các trường đều tùy chọn. Trường description là nhãn do người dùng cung cấp cho phiên bản.
Phản hồi:
{
"version": 3,
"downloadUrl": "https://storage.example.com/v3.ndjson?signed=..."
}Cập nhật mô tả phiên bản
PATCH /api/datasets/{datasetId}/exportCập nhật mô tả của một phiên bản hiện có. Chỉ dành cho chủ sở hữu.
Request Body:
{
"version": 2,
"description": "Fixed mislabeled classes"
}Phản hồi:
{
"ok": true
}Lấy thống kê lớp
GET /api/datasets/{datasetId}/class-statsTrả về phân bổ lớp, bản đồ nhiệt vị trí và thống kê kích thước. Kết quả được lưu cache tối đa 5 phút.
Phản hồi:
{
"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
}Lấy các model được huấn luyện trên tập dữ liệu
GET /api/datasets/{datasetId}/modelsTrả về các model đã được huấn luyện sử dụng tập dữ liệu này.
Phản hồi:
{
"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
}Tự động chú thích tập dữ liệu
POST /api/datasets/{datasetId}/predictChạy suy luận YOLO trên hình ảnh tập dữ liệu để tự động tạo chú thích. Sử dụng một model đã chọn để dự đoán nhãn cho các hình ảnh chưa được chú thích.
Body:
| Trường | Kiểu | Bắt buộc | Mô tả |
|---|---|---|---|
imageHash | string | Có | Hash của hình ảnh cần chú thích |
modelId | string | Không | ID model để sử dụng cho suy luận |
confidence | float | Không | Ngưỡng tin cậy (mặc định: 0.25) |
iou | float | Không | Ngưỡng IoU (mặc định: 0.45) |
Nhập tập dữ liệu
POST /api/datasets/ingestTạo công việc nhập tập dữ liệu để xử lý các tệp ZIP hoặc TAR đã tải lên, bao gồm .tar.gz và .tgz, chứa hình ảnh và nhãn.
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]Hình ảnh tập dữ liệu
Liệt kê hình ảnh
GET /api/datasets/{datasetId}/imagesCác tham số truy vấn:
| Tham số | Kiểu | Mô tả |
|---|---|---|
split | string | Lọc theo split: train, val, test |
offset | int | Offset phân trang (mặc định: 0) |
limit | int | Số lượng mục mỗi trang (mặc định: 50, tối đa: 5000) |
sort | string | Thứ tự sắp xếp: newest, oldest, name-asc, name-desc, height-asc, height-desc, width-asc, width-desc, size-asc, size-desc, labels-asc, labels-desc (một số bị vô hiệu hóa đối với các tập dữ liệu >100k hình ảnh) |
hasLabel | string | Lọc theo trạng thái nhãn (true hoặc false) |
hasError | string | Lọc theo trạng thái lỗi (true hoặc false) |
search | string | Tìm kiếm theo tên tệp hoặc hash hình ảnh |
includeThumbnails | string | Bao gồm URL hình thu nhỏ đã ký (mặc định: true) |
includeImageUrls | string | Bao gồm URL hình ảnh đầy đủ đã ký (mặc định: false) |
Lấy URL hình ảnh đã ký
POST /api/datasets/{datasetId}/images/urlsLấy các URL đã ký cho một loạt các hash hình ảnh (để hiển thị trên trình duyệt).
Xóa hình ảnh
DELETE /api/datasets/{datasetId}/images/{hash}Lấy nhãn hình ảnh
GET /api/datasets/{datasetId}/images/{hash}/labelsTrả về các chú thích và tên lớp cho một hình ảnh cụ thể.
Cập nhật nhãn hình ảnh
PUT /api/datasets/{datasetId}/images/{hash}/labelsBody:
{
"labels": [
{ "classId": 0, "bbox": [0.5, 0.5, 0.2, 0.3] },
{ "classId": 1, "segments": [0.1, 0.2, 0.3, 0.2, 0.2, 0.4] }
]
}Tọa độ nhãn sử dụng các giá trị chuẩn hóa YOLO từ 0 đến 1. Bounding box sử dụng [x_center, y_center, width, height].
Nhãn phân đoạn sử dụng segments, một danh sách phẳng các đỉnh đa giác [x1, y1, x2, y2, ...].
Thao tác hình ảnh hàng loạt
Di chuyển hình ảnh giữa các split (train/val/test) trong một tập dữ liệu:
PATCH /api/datasets/{datasetId}/images/bulkXóa hình ảnh hàng loạt:
DELETE /api/datasets/{datasetId}/images/bulkAPI Dự án
Tổ chức các model của bạn vào các dự án. Mỗi model thuộc về một dự án. Xem Tài liệu dự án.
Liệt kê dự án
GET /api/projectsCác tham số truy vấn:
| Tham số | Kiểu | Mô tả |
|---|---|---|
username | string | Lọc theo tên người dùng |
limit | int | Số lượng mục mỗi trang |
owner | string | Tên người dùng sở hữu không gian làm việc |
Lấy dự án
GET /api/projects/{projectId}Tạo dự án
POST /api/projectscurl -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/projectsCập nhật dự án
PATCH /api/projects/{projectId}Xóa dự án
DELETE /api/projects/{projectId}Xóa mềm dự án (được chuyển vào thùng rác).
Sao chép dự án
POST /api/projects/{projectId}/cloneSao chép một dự án công khai (cùng với tất cả các model của dự án đó) vào không gian làm việc của bạn. Yêu cầu một phiên trình duyệt nền tảng đang hoạt động — không khả dụng qua API key.
Biểu tượng dự án
Tải lên biểu tượng dự án (multipart form với tệp hình ảnh):
POST /api/projects/{projectId}/iconXóa biểu tượng dự án:
DELETE /api/projects/{projectId}/iconCả hai đều yêu cầu một phiên trình duyệt nền tảng đang hoạt động — không khả dụng qua API key.
API Mô hình
Quản lý các model YOLO đã được huấn luyện — xem số liệu, tải xuống trọng số, chạy suy luận và xuất sang các định dạng khác. Xem tài liệu về Model.
Liệt kê Model
GET /api/modelsCác tham số truy vấn:
| Tham số | Kiểu | Bắt buộc | Mô tả |
|---|---|---|---|
projectId | string | Có | ID Dự án (bắt buộc) |
fields | string | Không | Bộ trường: summary, charts |
ids | string | Không | Các ID model được phân tách bằng dấu phẩy |
limit | int | Không | Số kết quả tối đa (mặc định 20, tối đa 100) |
Liệt kê các Model đã hoàn thành
GET /api/models/completedTrả về các model đã huấn luyện xong (để sử dụng trong các trình chọn model và triển khai).
Lấy Model
GET /api/models/{modelId}Tạo Model
POST /api/modelsJSON Body:
| Trường | Kiểu | Bắt buộc | Mô tả |
|---|---|---|---|
projectId | string | Có | ID dự án đích |
slug | string | Không | URL slug (chữ cái thường, số/dấu gạch nối) |
name | string | Không | Tên hiển thị (tối đa 100 ký tự) |
description | string | Không | Mô tả model (tối đa 1000 ký tự) |
task | string | Không | Loại tác vụ (detect, segment, pose, obb, classify) |
Việc tải lên các tệp .pt của model được xử lý riêng biệt. Sử dụng UI nền tảng để kéo và thả tệp model vào một dự án.
Cập nhật Model
PATCH /api/models/{modelId}Xóa Model
DELETE /api/models/{modelId}Tải xuống các tệp Model
GET /api/models/{modelId}/filesTrả về các URL tải xuống đã được ký cho các tệp model.
Sao chép mô hình
POST /api/models/{modelId}/cloneSao chép một model công khai vào một trong các dự án của bạn. Yêu cầu một phiên trình duyệt nền tảng đang hoạt động — không khả dụng qua API key.
Body:
{
"targetProjectSlug": "my-project",
"modelName": "cloned-model",
"description": "Cloned from public model",
"owner": "team-username"
}| Trường | Kiểu | Bắt buộc | Mô tả |
|---|---|---|---|
targetProjectSlug | string | Có | Slug dự án đích |
modelName | string | Không | Tên cho model đã sao chép |
description | string | Không | Mô tả model |
owner | string | Không | Tên người dùng của nhóm (để sao chép không gian làm việc) |
Theo dõi lượt tải xuống
POST /api/models/{modelId}/track-downloadTheo dõi phân tích lượt tải xuống model.
Chạy suy luận
POST /api/models/{modelId}/predictMultipart Form:
| Trường | Kiểu | Mô tả |
|---|---|---|
file | tệp | Tệp hình ảnh (JPEG, PNG, WebP) |
conf | float | Ngưỡng tin cậy (mặc định: 0.25) |
iou | float | Ngưỡng IoU (mặc định: 0.7) |
imgsz | int | Kích thước hình ảnh theo pixel (mặc định: 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/predictPhản hồi:
{
"images": [
{
"shape": [1080, 1920],
"results": [
{
"class": 0,
"name": "person",
"confidence": 0.92,
"box": { "x1": 100, "y1": 50, "x2": 300, "y2": 400 }
}
]
}
],
"metadata": {
"imageCount": 1
}
}Lấy Predict Token
POST /api/models/{modelId}/predict/tokenTuyến đường này được tab Predict trong ứng dụng sử dụng để cấp các token suy luận tồn tại trong thời gian ngắn cho các cuộc gọi trực tiếp từ trình duyệt → predict-service (độ trễ thấp hơn, không có proxy API). Nó yêu cầu một phiên trình duyệt nền tảng đang hoạt động và không khả dụng qua API key. Đối với suy luận lập trình, hãy gọi POST /api/models/{modelId}/predict với API key của bạn.
Làm nóng (Warmup) Model
POST /api/models/{modelId}/predict/warmupTuyến đường warmup được tab Predict sử dụng để tải trước trọng số của model trên dịch vụ dự đoán trước lần suy luận đầu tiên của người dùng. Nó yêu cầu một phiên trình duyệt nền tảng đang hoạt động và không khả dụng qua API key.
API Huấn luyện
Khởi chạy quá trình huấn luyện YOLO trên các GPU đám mây (24 loại GPU từ RTX 2000 Ada đến B300) và theo dõi tiến trình theo thời gian thực. Xem tài liệu về Huấn luyện trên Đám mây.
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]Bắt đầu huấn luyện
POST /api/training/startcurl -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/startCác loại GPU khả dụng bao gồm rtx-4090, a100-80gb-pcie, a100-80gb-sxm, h100-sxm, rtx-pro-6000, b300 và các loại khác. Xem Huấn luyện trên Đám mây để biết danh sách đầy đủ cùng bảng giá.
Lấy trạng thái huấn luyện
GET /api/models/{modelId}/trainingTrả về trạng thái công việc huấn luyện hiện tại, số liệu và tiến trình cho một model. Các dự án công khai có thể được truy cập ẩn danh; các dự án riêng tư yêu cầu phiên trình duyệt nền tảng đang hoạt động (tuyến đường này không chấp nhận xác thực bằng API key).
Hủy huấn luyện
DELETE /api/models/{modelId}/trainingChấm dứt instance tính toán đang chạy và đánh dấu công việc là đã hủy. Yêu cầu phiên trình duyệt nền tảng đang hoạt động — không khả dụng qua API key.
API Triển khai
Triển khai các model tới các điểm cuối suy luận chuyên dụng với các kiểm tra sức khỏe và giám sát. Các triển khai mới sử dụng scale-to-zero theo mặc định và API chấp nhận một đối tượng resources tùy chọn. Xem tài liệu về Endpoint.
Chỉ GET /api/deployments, POST /api/deployments, GET /api/deployments/{deploymentId} và DELETE /api/deployments/{deploymentId} hỗ trợ xác thực bằng API key. Các tuyến phụ predict, health, logs, metrics, start và stop yêu cầu phiên trình duyệt nền tảng đang hoạt động — chúng là các proxy tiện lợi cho UI trong ứng dụng. Đối với suy luận lập trình, hãy gọi URL điểm cuối của chính triển khai (ví dụ: https://predict-abc123.run.app/predict) trực tiếp với API key của bạn. Các điểm cuối chuyên dụng không bị giới hạn tốc độ.
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]Liệt kê Triển khai
GET /api/deploymentsCác tham số truy vấn:
| Tham số | Kiểu | Mô tả |
|---|---|---|
modelId | string | Lọc theo model |
status | string | Lọc theo trạng thái |
limit | int | Số kết quả tối đa (mặc định: 20, tối đa: 100) |
owner | string | Tên người dùng sở hữu không gian làm việc |
Tạo Triển khai
POST /api/deploymentsBody:
{
"modelId": "model_abc123",
"name": "my-deployment",
"region": "us-central1",
"resources": {
"cpu": 1,
"memoryGi": 2,
"minInstances": 0,
"maxInstances": 1
}
}| Trường | Kiểu | Bắt buộc | Mô tả |
|---|---|---|---|
modelId | string | Có | ID model để triển khai |
name | string | Có | Tên triển khai |
region | string | Có | Khu vực triển khai |
resources | đối tượng | Không | Cấu hình tài nguyên (cpu, memoryGi, minInstances, maxInstances) |
Tạo một điểm cuối suy luận chuyên dụng trong khu vực được chỉ định. Điểm cuối có thể truy cập toàn cầu thông qua một URL duy nhất.
Hộp thoại triển khai hiện gửi các mặc định cố định là cpu=1, memoryGi=2, minInstances=0 và maxInstances=1. Tuyến đường API chấp nhận đối tượng resources, nhưng giới hạn của gói đăng ký giới hạn minInstances ở mức 0 và maxInstances ở mức 1.
Chọn một khu vực gần với người dùng của bạn để có độ trễ thấp nhất. UI của nền tảng hiển thị ước tính độ trễ cho tất cả 43 khu vực khả dụng.
Lấy Triển khai
GET /api/deployments/{deploymentId}Xóa Triển khai
DELETE /api/deployments/{deploymentId}Bắt đầu Triển khai
POST /api/deployments/{deploymentId}/startTiếp tục một triển khai đã dừng.
Dừng Triển khai
POST /api/deployments/{deploymentId}/stopTạm dừng một triển khai đang chạy (dừng thanh toán).
Kiểm tra sức khỏe
GET /api/deployments/{deploymentId}/healthTrả về trạng thái sức khỏe của điểm cuối triển khai.
Chạy suy luận trên Triển khai
POST /api/deployments/{deploymentId}/predictGửi hình ảnh trực tiếp đến một điểm cuối triển khai để suy luận. Về mặt chức năng tương đương với dự đoán model, nhưng được định tuyến qua điểm cuối chuyên dụng để có độ trễ thấp hơn.
Multipart Form:
| Trường | Kiểu | Mô tả |
|---|---|---|
file | tệp | Tệp hình ảnh (JPEG, PNG, WebP) |
conf | float | Ngưỡng tin cậy (mặc định: 0.25) |
iou | float | Ngưỡng IoU (mặc định: 0.7) |
imgsz | int | Kích thước hình ảnh theo pixel (mặc định: 640) |
Lấy số liệu
GET /api/deployments/{deploymentId}/metricsTrả về số liệu đếm yêu cầu, độ trễ và tỷ lệ lỗi với dữ liệu sparkline.
Các tham số truy vấn:
| Tham số | Kiểu | Mô tả |
|---|---|---|
range | string | Phạm vi thời gian: 1h, 6h, 24h (mặc định), 7d, 30d |
sparkline | string | Đặt thành true để có dữ liệu sparkline được tối ưu hóa cho chế độ xem bảng điều khiển |
Lấy Logs
GET /api/deployments/{deploymentId}/logsCác tham số truy vấn:
| Tham số | Kiểu | Mô tả |
|---|---|---|
severity | string | Bộ lọc phân tách bằng dấu phẩy: DEBUG, INFO, WARNING, ERROR, CRITICAL |
limit | int | Số lượng mục (mặc định: 50, tối đa: 200) |
pageToken | string | Token phân trang từ phản hồi trước |
API giám sát
GET /api/monitoring là route chỉ dành cho UI và yêu cầu phiên trình duyệt nền tảng đang hoạt động. Route này không chấp nhận xác thực bằng API-key. Hãy truy vấn các chỉ số triển khai riêng lẻ thông qua các route theo từng triển khai (cũng chỉ dành cho phiên trình duyệt) hoặc sử dụng Xuất Cloud Monitoring trên dịch vụ Cloud Run đã triển khai để truy cập theo lập trình.
Chỉ số tổng hợp
GET /api/monitoringTrả về các chỉ số tổng hợp trên tất cả các triển khai của người dùng: tổng số yêu cầu, số triển khai đang hoạt động, tỷ lệ lỗi và độ trễ trung bình.
API xuất (Export API)
Chuyển đổi model sang các định dạng được tối ưu hóa như ONNX, TensorRT, CoreML và TFLite để triển khai trên thiết bị biên (edge). Xem Tài liệu triển khai.
Danh sách xuất
GET /api/exportsCác tham số truy vấn:
| Tham số | Kiểu | Mô tả |
|---|---|---|
modelId | string | ID của model (bắt buộc) |
status | string | Lọc theo trạng thái |
limit | int | Số kết quả tối đa (mặc định: 20, tối đa: 100) |
Tạo yêu cầu xuất
POST /api/exportsBody:
| Trường | Kiểu | Bắt buộc | Mô tả |
|---|---|---|---|
modelId | string | Có | ID của model nguồn |
format | string | Có | Định dạng xuất (xem bảng bên dưới) |
gpuType | string | Có điều kiện | Bắt buộc khi format là engine (TensorRT) |
args | đối tượng | Không | Các tham số xuất (imgsz, half, dynamic, v.v.) |
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/exportsCác định dạng được hỗ trợ:
| Định dạng | Giá trị | Trường hợp sử dụng |
|---|---|---|
| ONNX | onnx | Suy luận đa nền tảng |
| TorchScript | torchscript | Triển khai PyTorch |
| OpenVINO | openvino | Phần cứng Intel |
| TensorRT | engine | Tối ưu hóa NVIDIA GPU |
| CoreML | coreml | Thiết bị Apple |
| TFLite | tflite | Thiết bị di động và nhúng |
| TF SavedModel | saved_model | TensorFlow Serving |
| TF GraphDef | pb | Đồ thị đóng băng (frozen graph) TensorFlow |
| PaddlePaddle | paddle | Baidu PaddlePaddle |
| NCNN | ncnn | Mạng thần kinh di động |
| Edge TPU | edgetpu | Thiết bị Google Coral |
| TF.js | tfjs | Suy luận trên trình duyệt |
| MNN | mnn | Suy luận di động Alibaba |
| RKNN | rknn | Rockchip NPU |
| IMX | imx | Cảm biến Sony IMX500 |
| Axelera | axelera | Bộ tăng tốc Axelera AI |
| ExecuTorch | executorch | Runtime Meta ExecuTorch |
Lấy trạng thái xuất
GET /api/exports/{exportId}Hủy yêu cầu xuất
DELETE /api/exports/{exportId}Theo dõi quá trình tải xuống xuất
POST /api/exports/{exportId}/track-downloadAPI hoạt động (Activity API)
Xem nguồn cấp dữ liệu về các hành động gần đây trên tài khoản của bạn — các lượt huấn luyện, tải lên, v.v. Xem Tài liệu hoạt động.
Các route Hoạt động được vận hành bởi các yêu cầu xác thực qua trình duyệt từ UI nền tảng. Chúng không được cung cấp dưới dạng API công khai, không chấp nhận xác thực bằng API-key và các hình dạng route bên dưới chỉ được ghi lại để tham khảo. Sử dụng luồng Hoạt động trong UI nền tảng để xem, đánh dấu hoặc lưu trữ các sự kiện.
Danh sách hoạt động
GET /api/activityCác tham số truy vấn:
| Tham số | Kiểu | Mô tả |
|---|---|---|
limit | int | Kích thước trang (mặc định: 20, tối đa: 100) |
page | int | Số trang (mặc định: 1) |
archived | boolean | true cho tab Lưu trữ, false cho Hộp thư đến |
search | string | Tìm kiếm không phân biệt chữ hoa chữ thường trong các trường sự kiện |
Đánh dấu sự kiện đã xem
POST /api/activity/mark-seenBody:
{
"all": true
}Hoặc truyền vào các ID cụ thể:
{
"eventIds": ["EVENT_ID_1", "EVENT_ID_2"]
}Lưu trữ sự kiện
POST /api/activity/archiveBody:
{
"all": true,
"archive": true
}Hoặc truyền vào các ID cụ thể:
{
"eventIds": ["EVENT_ID_1", "EVENT_ID_2"],
"archive": false
}API thùng rác
Xem và khôi phục các mục đã xóa. Các mục sẽ bị xóa vĩnh viễn sau 30 ngày. Xem Tài liệu thùng rác.
Danh sách thùng rác
GET /api/trashCác tham số truy vấn:
| Tham số | Kiểu | Mô tả |
|---|---|---|
type | string | Bộ lọc: all, project, dataset, model |
page | int | Số trang (mặc định: 1) |
limit | int | Số mục mỗi trang (mặc định: 50, tối đa: 200) |
owner | string | Tên người dùng sở hữu không gian làm việc |
Khôi phục mục
POST /api/trashBody:
{
"id": "item_abc123",
"type": "dataset"
}Xóa vĩnh viễn mục
DELETE /api/trashBody:
{
"id": "item_abc123",
"type": "dataset"
}Xóa vĩnh viễn không thể hoàn tác. Tài nguyên và tất cả dữ liệu liên quan sẽ bị xóa.
Dọn sạch thùng rác
DELETE /api/trash/emptyXóa vĩnh viễn tất cả các mục trong thùng rác.
DELETE /api/trash/empty yêu cầu một phiên trình duyệt đã xác thực và không khả dụng qua API key. Hãy sử dụng nút Dọn sạch thùng rác trong UI thay vào đó.
API thanh toán
Kiểm tra số dư tín dụng, mua tín dụng, xem lịch sử giao dịch và cấu hình tự động nạp tiền. Xem Tài liệu thanh toán.
Số tiền thanh toán sử dụng đơn vị cent (creditsCents), trong đó 100 = $1.00.
Lấy số dư
GET /api/billing/balanceCác tham số truy vấn:
| Tham số | Kiểu | Mô tả |
|---|---|---|
owner | string | Tên người dùng sở hữu không gian làm việc |
Phản hồi:
{
"creditsCents": 2500,
"plan": "free",
"cashBalance": 25,
"creditBalance": 0,
"reservedAmount": 0,
"totalBalance": 25
}Lấy tóm tắt sử dụng
GET /api/billing/usage-summaryTrả về chi tiết gói, giới hạn và các chỉ số sử dụng.
Lấy các giao dịch
GET /api/billing/transactionsTrả về lịch sử giao dịch (mới nhất trước).
Các tham số truy vấn:
| Tham số | Kiểu | Mô tả |
|---|---|---|
owner | string | Tên người dùng sở hữu không gian làm việc |
Tạo phiên thanh toán (Checkout Session)
POST /api/billing/checkout-sessionBody:
{
"amount": 25,
"owner": "team-username"
}| Trường | Kiểu | Bắt buộc | Mô tả |
|---|---|---|---|
amount | số | Có | Số tiền tính bằng đô la ($5-$1000) |
owner | string | Không | Tên người dùng nhóm cho việc nạp tiền workspace (yêu cầu vai trò quản trị) |
Tạo một phiên thanh toán để mua tín dụng.
Tạo phiên thanh toán đăng ký
POST /api/billing/subscription-checkoutTạo một phiên thanh toán để nâng cấp gói đăng ký Pro.
Body:
{
"planId": "pro",
"billingCycle": "monthly",
"owner": "team-username"
}| Trường | Kiểu | Bắt buộc | Mô tả |
|---|---|---|---|
planId | string | Có | Gói để đăng ký (pro) |
billingCycle | string | Không | Chu kỳ thanh toán: monthly (mặc định) hoặc yearly |
owner | string | Không | Tên người dùng nhóm cho các nâng cấp không gian làm việc (yêu cầu vai trò quản trị viên) |
Hủy hoặc Tiếp tục Đăng ký
DELETE /api/billing/subscription-checkoutTheo mặc định, hủy đăng ký Pro vào cuối kỳ. Gửi {"resume": true} để tiếp tục một yêu cầu hủy đã được lên lịch trước khi kỳ thanh toán kết thúc.
Body:
{
"resume": true
}Tự động nạp tiền
Tự động thêm tín dụng khi số dư giảm xuống dưới ngưỡng.
Lấy Cấu hình Tự động Nạp tiền
GET /api/billing/auto-topupCác tham số truy vấn:
| Tham số | Kiểu | Mô tả |
|---|---|---|
owner | string | Tên người dùng sở hữu không gian làm việc |
Cập nhật Cấu hình Tự động Nạp tiền
PATCH /api/billing/auto-topupBody:
{
"enabled": true,
"thresholdCents": 500,
"amountCents": 2500
}Phương thức Thanh toán
Liệt kê các Phương thức Thanh toán
GET /api/billing/payment-methodsTạo Setup Intent
POST /api/billing/payment-methods/setupTrả về một client secret để thêm phương thức thanh toán mới.
Đặt Phương thức Thanh toán Mặc định
POST /api/billing/payment-methods/defaultBody:
{
"paymentMethodId": "pm_123"
}Cập nhật Thông tin Thanh toán
PATCH /api/billing/payment-methodsBody:
{
"name": "Jane Doe",
"address": {
"line1": "123 Main St",
"city": "San Francisco",
"state": "CA",
"postal_code": "94105",
"country": "US"
}
}Xóa Phương thức Thanh toán
DELETE /api/billing/payment-methods/{id}API Lưu trữ
Kiểm tra phân tích mức sử dụng lưu trữ theo danh mục (tập dữ liệu, model, bản xuất) và xem các mục lớn nhất của bạn.
Các tuyến đường lưu trữ yêu cầu một phiên trình duyệt nền tảng đang hoạt động và không thể truy cập qua API key. Sử dụng trang Settings > Profile trong giao diện người dùng để xem phân tích tương tác.
Lấy Thông tin Lưu trữ
GET /api/storagePhản hồi:
{
"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"
}
]
}
}API Tải lên
Tải tệp trực tiếp lên bộ lưu trữ đám mây bằng các URL đã ký để truyền tải nhanh chóng và đáng tin cậy. Sử dụng quy trình hai bước: lấy URL đã ký, sau đó tải tệp lên. Xem tài liệu về Dữ liệu.
Lấy URL Tải lên đã Ký
POST /api/upload/signed-urlYêu cầu một URL đã ký để tải tệp trực tiếp lên bộ lưu trữ đám mây. URL đã ký bỏ qua máy chủ API để truyền các tệp lớn.
Body:
{
"assetType": "images",
"assetId": "abc123",
"filename": "my-image.jpg",
"contentType": "image/jpeg",
"totalBytes": 5242880
}| Trường | Kiểu | Mô tả |
|---|---|---|
assetType | string | Loại tài nguyên: models, datasets, images, videos |
assetId | string | ID của tài nguyên mục tiêu |
filename | string | Tên tệp gốc |
contentType | string | Loại MIME |
totalBytes | int | Kích thước tệp tính bằng byte |
Phản hồi:
{
"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"
}Hoàn tất Tải lên
POST /api/upload/completeThông báo cho nền tảng rằng quá trình tải tệp lên đã hoàn tất để bắt đầu xử lý.
Body:
{
"datasetId": "abc123",
"objectPath": "datasets/abc123/images/my-image.jpg",
"filename": "my-image.jpg",
"contentType": "image/jpeg",
"size": 5242880
}API Khóa API
Quản lý các API key của bạn để truy cập theo lập trình. Xem tài liệu về API Keys.
Liệt kê các Khóa API
GET /api/api-keysTạo Khóa API
POST /api/api-keysBody:
{
"name": "training-server"
}Xóa Khóa API
DELETE /api/api-keysCác tham số truy vấn:
| Tham số | Kiểu | Mô tả |
|---|---|---|
keyId | string | ID khóa API cần thu hồi |
Ví dụ:
curl -X DELETE \
-H "Authorization: Bearer YOUR_API_KEY" \
"https://platform.ultralytics.com/api/api-keys?keyId=KEY_ID"API Nhóm & Thành viên
Tạo không gian làm việc nhóm, mời thành viên và quản lý vai trò để cộng tác. Xem tài liệu về Nhóm.
Liệt kê các Nhóm
GET /api/teamsTạo Nhóm
POST /api/teams/createBody:
{
"username": "my-team",
"fullName": "My Team"
}Liệt kê Thành viên
GET /api/membersTrả về các thành viên của không gian làm việc hiện tại.
Mời Thành viên
POST /api/membersBody:
{
"email": "user@example.com",
"role": "editor"
}| Vai trò | Quyền hạn |
|---|---|
viewer | Quyền truy cập chỉ đọc vào các tài nguyên không gian làm việc |
editor | Tạo, chỉnh sửa và xóa tài nguyên |
admin | Quản lý thành viên, thanh toán và tất cả các tài nguyên (chỉ chủ sở hữu nhóm mới có thể chỉ định) |
Chủ sở hữu (owner) nhóm là người tạo và không thể bị mời. Quyền sở hữu được chuyển giao riêng thông qua POST /api/members/transfer-ownership. Xem Nhóm để biết chi tiết đầy đủ về vai trò.
Cập nhật Vai trò Thành viên
PATCH /api/members/{userId}Xóa Thành viên
DELETE /api/members/{userId}Chuyển giao Quyền sở hữu
POST /api/members/transfer-ownershipLời mời
Chấp nhận Lời mời
POST /api/invites/acceptLấy Thông tin Lời mời
GET /api/invites/infoCác tham số truy vấn:
| Tham số | Kiểu | Mô tả |
|---|---|---|
token | string | Token lời mời |
Thu hồi Lời mời
DELETE /api/invites/{inviteId}Gửi lại Lời mời
POST /api/invites/{inviteId}/resendAPI Khám phá
Tìm kiếm và duyệt các tập dữ liệu công khai và dự án được cộng đồng chia sẻ. Xem tài liệu về Khám phá.
Tìm kiếm Nội dung Công khai
GET /api/explore/searchCác tham số truy vấn:
| Tham số | Kiểu | Mô tả |
|---|---|---|
q | string | Truy vấn tìm kiếm |
type | string | Loại tài nguyên: all (mặc định), projects, datasets |
sort | string | Thứ tự sắp xếp: stars (mặc định), newest, oldest, name-asc, name-desc, count-desc, count-asc |
offset | int | Phân trang offset (mặc định: 0). Kết quả trả về 20 mục mỗi trang. |
Dữ liệu thanh bên
GET /api/explore/sidebarTrả về nội dung được tuyển chọn cho thanh bên Khám phá.
API Người dùng & Cài đặt
Quản lý hồ sơ, API key, mức sử dụng lưu trữ và cài đặt quyền riêng tư dữ liệu của bạn. Xem tài liệu về Cài đặt.
Lấy Người dùng theo Tên người dùng
GET /api/usersCác tham số truy vấn:
| Tham số | Kiểu | Mô tả |
|---|---|---|
username | string | Tên người dùng cần tìm kiếm |
Theo dõi hoặc Bỏ theo dõi Người dùng
PATCH /api/usersBody:
{
"username": "target-user",
"followed": true
}Kiểm tra sự sẵn có của Tên người dùng
GET /api/username/checkCác tham số truy vấn:
| Tham số | Kiểu | Mô tả |
|---|---|---|
username | string | Tên người dùng cần kiểm tra |
suggest | bool | Tùy chọn: true để bao gồm gợi ý nếu đã được sử dụng |
Cài đặt
GET /api/settings
POST /api/settingsLấy hoặc cập nhật cài đặt hồ sơ người dùng (tên hiển thị, tiểu sử, liên kết xã hội, v.v.).
Biểu tượng Hồ sơ
POST /api/settings/icon
DELETE /api/settings/iconTải lên hoặc xóa ảnh đại diện hồ sơ.
Onboarding
POST /api/onboardingHoàn tất quy trình onboarding (thiết lập vùng dữ liệu, tên người dùng).
API GDPR
Yêu cầu xuất tất cả dữ liệu của bạn hoặc xóa vĩnh viễn tài khoản của bạn. Xem tài liệu về Cài đặt.
Lấy Trạng thái Công việc GDPR
GET /api/gdprCác tham số truy vấn:
| Tham số | Kiểu | Mô tả |
|---|---|---|
jobId | string | ID công việc GDPR cần kiểm tra |
Trả về trạng thái công việc. Đối với các công việc xuất dữ liệu đã hoàn tất, phản hồi bao gồm downloadUrl.
Bắt đầu Quy trình Xuất hoặc Xóa
POST /api/gdprBody:
{
"action": "export"
}{
"action": "delete",
"confirmationWord": "DELETE"
}Tùy chọn cho không gian làm việc nhóm:
{
"action": "delete",
"confirmationWord": "DELETE",
"teamUsername": "my-team"
}Việc xóa tài khoản là vĩnh viễn và không thể hoàn tác. Tất cả dữ liệu, model và quá trình triển khai sẽ bị xóa.
Mã lỗi
| Mã | Trạng thái HTTP | Mô tả |
|---|---|---|
UNAUTHORIZED | 401 | API key không hợp lệ hoặc bị thiếu |
FORBIDDEN | 403 | Không đủ quyền |
NOT_FOUND | 404 | Không tìm thấy tài nguyên |
VALIDATION_ERROR | 400 | Dữ liệu yêu cầu không hợp lệ |
RATE_LIMITED | 429 | Quá nhiều yêu cầu |
INTERNAL_ERROR | 500 | Lỗi máy chủ |
Tích hợp Python
Để tích hợp dễ dàng hơn, hãy sử dụng gói Python của Ultralytics, gói này tự động xử lý xác thực, tải lên và truyền phát số liệu theo thời gian thực.
Cài đặt & Thiết lập
pip install ultralyticsXác minh cài đặt:
yolo checkViệc tích hợp nền tảng yêu cầu ultralytics>=8.4.35. Các phiên bản thấp hơn sẽ KHÔNG hoạt động với nền tảng.
Xác thực
yolo settings api_key=YOUR_API_KEYSử dụng Datasets của Nền tảng
Tham chiếu tập dữ liệu với URI ul://:
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,
)Định dạng URI:
| Mẫu | Mô tả |
|---|---|
ul://username/datasets/slug | Tập dữ liệu |
ul://username/project-name | Dự án |
ul://username/project/model-name | Model cụ thể |
ul://ultralytics/yolo26/yolo26n | Model chính thức |
Đẩy lên nền tảng
Gửi kết quả đến một dự án trên nền tảng:
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",
)Những gì được đồng bộ:
- Số liệu huấn luyện (thời gian thực)
- Trọng số model cuối cùng
- Biểu đồ xác thực
- Đầu ra console
- Số liệu hệ thống
Ví dụ về API
Tải model từ nền tảng:
# Your own model
model = YOLO("ul://username/project/model-name")
# Official model
model = YOLO("ul://ultralytics/yolo26/yolo26n")Chạy suy luận:
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 probabilitiesXuất model:
# 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)Xác thực:
metrics = model.val(data="ul://username/datasets/my-dataset")
print(f"mAP50: {metrics.box.map50}")
print(f"mAP50-95: {metrics.box.map}")Webhook
Nền tảng sử dụng các webhook nội bộ để truyền phát số liệu huấn luyện thời gian thực từ SDK Python ultralytics (chạy trên GPU đám mây hoặc máy từ xa/cục bộ) ngược lại nền tảng — bao gồm loss theo từng epoch, mAP, số liệu thống kê hệ thống và trạng thái hoàn thành. Các webhook này được xác thực thông qua webhookSecret HMAC được cung cấp cho mỗi công việc huấn luyện và không dành cho các ứng dụng người dùng sử dụng.
Tất cả các gói: Tiến trình huấn luyện thông qua SDK ultralytics (số liệu thời gian thực, thông báo hoàn thành) hoạt động tự động trên mọi gói — chỉ cần đặt project=username/my-project name=my-run khi huấn luyện và SDK sẽ tự động truyền các sự kiện ngược lại nền tảng. Không cần đăng ký webhook từ phía người dùng.
Các gói webhook hướng người dùng (POST callback đến một URL mà bạn kiểm soát) hiện đang nằm trong lộ trình của gói Enterprise và chưa khả dụng. Trong thời gian chờ đợi, hãy thăm dò GET /api/models/{modelId}/training để biết trạng thái hoặc sử dụng activity feed trong giao diện người dùng.
Câu hỏi thường gặp (FAQ)
Làm thế nào để phân trang các kết quả lớn?
Hầu hết các endpoint sử dụng tham số limit để kiểm soát số lượng kết quả được trả về cho mỗi yêu cầu:
curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://platform.ultralytics.com/api/datasets?limit=50"Các endpoint Activity và Trash cũng hỗ trợ tham số page cho việc phân trang theo trang:
curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://platform.ultralytics.com/api/activity?page=2&limit=20"Endpoint Explore Search sử dụng offset thay vì page, với kích thước trang cố định là 20:
curl "https://platform.ultralytics.com/api/explore/search?type=datasets&offset=20&sort=stars"Tôi có thể sử dụng API mà không cần SDK không?
Có, tất cả chức năng đều khả dụng thông qua REST. SDK Python là một trình bao bọc tiện lợi bổ sung các tính năng như truyền phát số liệu thời gian thực và tự động tải lên model. Bạn cũng có thể khám phá tương tác tất cả các endpoint tại platform.ultralytics.com/api/docs.
Có thư viện client cho API không?
Hiện tại, hãy sử dụng gói Python của Ultralytics hoặc thực hiện các yêu cầu HTTP trực tiếp. Các thư viện client chính thức cho các ngôn ngữ khác đang được lên kế hoạch.
Làm thế nào để xử lý giới hạn tốc độ (rate limit)?
Sử dụng header Retry-After từ phản hồi 429 để chờ đợi đúng khoảng thời gian cần thiết:
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")Làm thế nào để tìm ID model hoặc tập dữ liệu của tôi?
ID tài nguyên được trả về khi bạn tạo tài nguyên thông qua API. Bạn cũng có thể tìm thấy chúng trong URL của nền tảng:
https://platform.ultralytics.com/username/project/model-name
^^^^^^^^ ^^^^^^^ ^^^^^^^^^^
username project modelSử dụng các endpoint liệt kê để tìm kiếm theo tên hoặc lọc theo dự án.