Skip to content

ML Models API

机器学习模型管理 API,用于模型训练、部署和预测。

端点列表

方法端点说明
POST/api/ml-models创建模型
GET/api/ml-models获取模型列表
GET/api/ml-models/{id}获取模型详情
PUT/api/ml-models/{id}更新模型
DELETE/api/ml-models/{id}删除模型
POST/api/ml-models/{id}/train启动训练
POST/api/ml-models/{id}/deploy部署模型
POST/api/ml-models/{id}/predict预测请求

模型类型

类型说明应用场景
CLASSIFICATION分类模型流失预测、作弊检测
REGRESSION回归模型LTV 预测、风险评分
CLUSTERING聚类模型玩家分群
ANOMALY_DETECTION异常检测异常行为识别
TIME_SERIES时间序列趋势预测

模型状态

状态说明
DRAFT草稿
TRAINING训练中
EVALUATING评估中
DEPLOYED已部署
ARCHIVED已归档

创建模型

http
POST /api/ml-models
Content-Type: application/json
Authorization: Bearer {token}

{
  "gameId": "game_abc123",
  "name": "Churn Prediction Model",
  "type": "CLASSIFICATION",
  "algorithm": "Random Forest",
  "framework": "scikit-learn",
  "description": "预测玩家流失概率"
}

响应:

json
{
  "id": "ml_abc123",
  "gameId": "game_abc123",
  "name": "Churn Prediction Model",
  "type": "CLASSIFICATION",
  "status": "DRAFT",
  "version": 1,
  "createdAt": "2024-01-01T00:00:00Z"
}

启动训练

http
POST /api/ml-models/{id}/train
Content-Type: application/json
Authorization: Bearer {token}

{
  "datasetConfig": {
    "source": "clickhouse",
    "query": "SELECT * FROM events WHERE event_date > '2024-01-01'",
    "features": ["play_time", "level", "purchases"],
    "label": "churned"
  },
  "hyperparameters": {
    "n_estimators": 100,
    "max_depth": 10
  }
}

部署模型

http
POST /api/ml-models/{id}/deploy
Content-Type: application/json
Authorization: Bearer {token}

{
  "servingEndpoint": "http://ml-service:8080/predict",
  "canaryDeployment": false
}

预测请求

http
POST /api/ml-models/{id}/predict
Content-Type: application/json
Authorization: Bearer {token}

{
  "features": {
    "play_time": 120,
    "level": 15,
    "purchases": 3
  }
}

响应:

json
{
  "prediction": "churn",
  "probability": 0.85,
  "confidence": 0.92,
  "latencyMs": 15
}

模型监控

  • 预测量 - 每日预测请求数
  • 延迟 - P50/P95/P99 延迟
  • 准确率 - 基于反馈的准确率
  • 漂移检测 - 模型性能下降告警

A/B 测试

支持模型 A/B 测试:

http
POST /api/ml-models/{id}/ab-test
Content-Type: application/json
Authorization: Bearer {token}

{
  "baselineModelId": "ml_baseline",
  "trafficSplit": 50
}

Released under the MIT License.