| name | ml-deployment |
| description | Deploy ML models to production - APIs, containerization, monitoring, and MLOps |
| version | 1.4.0 |
| sasmp_version | 1.4.0 |
| bonded_agent | 07-model-deployment |
| bond_type | PRIMARY_BOND |
| parameters | {"required":[{"name":"model","type":"object","validation":"Trained model with predict method"}],"optional":[{"name":"port","type":"integer","default":8000,"validation":"1024 <= port <= 65535"},{"name":"workers","type":"integer","default":4}]} |
| retry_logic | {"strategy":"exponential_backoff","max_attempts":3,"base_delay_ms":1000} |
| logging | {"level":"info","metrics":["latency_ms","requests_per_second","error_rate"]} |
ML Deployment Skill
Take models from development to production.
Quick Start
from fastapi import FastAPI
from pydantic import BaseModel
import numpy as np
import joblib
app = FastAPI(title="ML Model API")
model = joblib.load('model.pkl')
class PredictRequest(BaseModel):
features: list[float]
class PredictResponse(BaseModel):
prediction: float
@app.post("/predict", response_model=PredictResponse)
async def predict(request: PredictRequest):
X = np.array([request.features])
prediction = model.predict(X)[0]
return PredictResponse(prediction=float(prediction))
@app.get("/health")
async def health():
return {"status": "healthy"}
Key Topics
1. Model Export
import torch
import torch.onnx
def export_to_onnx(model, sample_input, path='model.onnx'):
model.()
torch.onnx.export(
model,
sample_input,
path,
export_params=,
opset_version=,
input_names=[],
output_names=[],
dynamic_axes={: {: }, : {: }}
)
onnxruntime ort
session = ort.InferenceSession()
input_name = session.get_inputs()[].name
output = session.run(, {input_name: input_data})[]