API Models and Training
Model endpoints are primarily in Core/api_models.py and Core/api_training.py.
Model Endpoints
- GET /api/models
- GET /api/models/custom
- GET /api/models/builtin
- GET /api/models/:model_id
- DELETE /api/models/:model_id
- GET /api/models/:model_id/download
- GET /api/models/:model_id/source
Model Import Endpoints
- POST /api/models/import/kaggle
- GET /api/models/import/kaggle/info
- POST /api/models/import/kaggle/analyze
- POST /api/models/import/kaggle/stage
- GET /api/models/import/jobs/:job_id
- GET /api/models/import/jobs/:job_id/inspect
- POST /api/models/import/jobs/:job_id/apply-wrapper
- POST /api/models/import/jobs/:job_id/test
Training Endpoints
- POST /api/training/start
- GET /api/training/status/:project_id/:run_id
- POST /api/training/stop
- GET /api/training/:project_id/:task_id/logs
- POST /api/training/cost
Example: Start Training
POST /api/training/start
Content-Type: application/json
{
"projectId": "prj_1707456789",
"datasetId": "ds_001",
"taskType": "object_detection",
"config": {
"epochs": 30,
"batchSize": 8
}
}
Example: Start Kaggle Import Job
POST /api/models/import/kaggle
Content-Type: application/json
{
"modelId": "my_custom_model_id",
"kaggleRef": "owner/model-slug",
"preset": "onnx_generic",
"version": "latest",
"name": "My Imported Model",
"description": "Imported from Kaggle"
}
Notes:
- The server uses a managed Kaggle integration; clients should not send Kaggle credentials.
kaggleRefcan be a Kaggle URL orowner/slugreference (depending on the UI flow).- If the response indicates
requiresConsent: true, the Kaggle resource likely requires additional access/consent.
Common Errors
400invalid training or import config404model/job not found409conflicting training job already active500runtime failure during import, wrapper generation, or test
Recommendations:
- Keep model import and wrapper validation as separate checkpoints.
- Persist import job IDs for async tracking.
- Record exact training config for reproducibility.
