ML API 🟡 BETA

The ML API provides endpoints for machine learning operations, model training, and predictive analytics.

Status: Roadmap

This API is on the development roadmap. The endpoints documented below represent the planned interface design.

Base URL

http://localhost:9000/api/v1/ml

Authentication

Uses the standard botserver authentication mechanism with appropriate role-based permissions.

Endpoints

Dataset Management

MethodEndpointDescription
POST/api/v1/ml/datasetsCreate a new dataset
GET/api/v1/ml/datasetsList all datasets
GET/api/v1/ml/datasets/{dataset_id}Get dataset details
PUT/api/v1/ml/datasets/{dataset_id}Update dataset
DELETE/api/v1/ml/datasets/{dataset_id}Delete dataset

Model Training

MethodEndpointDescription
POST/api/v1/ml/trainStart a training job
GET/api/v1/ml/jobsList all training jobs
GET/api/v1/ml/jobs/{job_id}Get job details
POST/api/v1/ml/jobs/{job_id}/stopStop a training job

Predictions

MethodEndpointDescription
POST/api/v1/ml/predictMake a single prediction
POST/api/v1/ml/batch-predictMake batch predictions
GET/api/v1/ml/predictions/{prediction_id}Get prediction result

Model Evaluation

MethodEndpointDescription
GET/api/v1/ml/models/{model_id}/metricsGet model metrics
POST/api/v1/ml/models/{model_id}/evaluateEvaluate model on test data
GET/api/v1/ml/models/{model_id}/confusion-matrixGet confusion matrix

Feature Engineering

MethodEndpointDescription
POST/api/v1/ml/features/extractExtract features from data
GET/api/v1/ml/features/importanceGet feature importance scores
POST/api/v1/ml/features/transformTransform features

Request Examples

Create Dataset

dataset = NEW OBJECT
dataset.name = "customer_churn"
dataset.source = "customers_table"
dataset.target_column = "churned"

result = POST "/api/v1/ml/datasets", dataset
TALK "Dataset created: " + result.id

Start Training Job

training_config = NEW OBJECT
training_config.dataset_id = "ds-123"
training_config.model_type = "classification"
training_config.algorithm = "random_forest"
training_config.parameters = {"n_estimators": 100, "max_depth": 10}

job = POST "/api/v1/ml/train", training_config
TALK "Training job started: " + job.job_id

Make Prediction

input = NEW OBJECT
input.model_id = "model-456"
input.features = {"age": 35, "tenure": 24, "monthly_charges": 75.50}

result = POST "/api/v1/ml/predict", input
TALK "Prediction: " + result.prediction
TALK "Confidence: " + result.confidence

Batch Predictions

batch_input = NEW OBJECT
batch_input.model_id = "model-456"
batch_input.data = [
    {"age": 25, "tenure": 12, "monthly_charges": 50.00},
    {"age": 45, "tenure": 36, "monthly_charges": 95.00},
    {"age": 30, "tenure": 6, "monthly_charges": 65.00}
]

results = POST "/api/v1/ml/batch-predict", batch_input
FOR EACH result IN results.predictions
    TALK result.id + ": " + result.prediction
NEXT

Get Model Metrics

metrics = GET "/api/v1/ml/models/model-456/metrics"
TALK "Accuracy: " + metrics.accuracy
TALK "Precision: " + metrics.precision
TALK "Recall: " + metrics.recall
TALK "F1 Score: " + metrics.f1_score

Supported Algorithms

Classification

AlgorithmDescription
random_forestRandom Forest Classifier
gradient_boostingGradient Boosting Classifier
logistic_regressionLogistic Regression
svmSupport Vector Machine
neural_networkNeural Network Classifier

Regression

AlgorithmDescription
linear_regressionLinear Regression
random_forest_regressorRandom Forest Regressor
gradient_boosting_regressorGradient Boosting Regressor
neural_network_regressorNeural Network Regressor

Clustering

AlgorithmDescription
kmeansK-Means Clustering
dbscanDBSCAN Clustering
hierarchicalHierarchical Clustering

Response Codes

CodeDescription
200Success
201Created
202Accepted (async job started)
400Bad Request (invalid parameters)
401Unauthorized
403Forbidden
404Model or dataset not found
422Unprocessable Entity (invalid data format)
500Internal Server Error

Job Status Values

StatusDescription
queuedJob is waiting to start
runningJob is in progress
completedJob finished successfully
failedJob encountered an error
cancelledJob was manually stopped

Required Permissions

Endpoint CategoryRequired Role
Dataset Managementml_user or higher
Model Trainingml_trainer or admin
Predictionsml_user or higher
Model Evaluationml_user or higher
Feature Engineeringml_trainer or admin