Skip to content

API взаимодействия с сервером

Dmitriy Komarov edited this page May 3, 2026 · 21 revisions

POST запросы

  1. /api/datasets/{dataset_id}/classes

    • Принимает список классов датасетов в формате json
    • Сохраняет их в базе данных
  2. /api/addDataset

    • Принимает путь к датасету
    • Сохраняет петь к датасету в базе данных
    • Возвращает json формата
        {
           "id": dataset.id,
           "name": dataset.name,
           "status": {"id": 0, "name": "Just Load"},
           "total_size": dataset.total_size,
           "inwork_size": 0,
           "path": dataset.path,
           "average_percent_success": None,
           "current_model_architecture": dataset.current_model_architecture,
           "metric_precision": dataset.metric_precision,
           "metric_recall": dataset.metric_recall,
           "metric_f1": dataset.metric_f1,
           "metric_mean_iou": dataset.metric_mean_iou,
           "metrics_boxes_total": dataset.metrics_boxes_total,
           "metrics_images_total": dataset.metrics_images_total,
       }
  3. /api/datasets/{dataset_id}/model

    • Необходим для смены модели для конкретного датасета
  4. /api/datasets/{dataset_id}/hyperparams

    • Необходим смены гиперпараметров для конкретного датасета
  5. /api/datasets/{dataset_id}/augmentation

    • Необходим смены параметров аугментации
  6. api/train/{dataset_name}

    • Необходим дообучения модели
  7. /api/correct/{dataset_name}

    • Необходим для внесения корректировок разметки
  8. /api/predict/{dataset_name}/{filename}

    • Необходим для получения предсказанной рамки от модели
    • возвращает json формата
    [
        {
            "id": i,
            "class_id": b["class_id"],
            "label": b["class_name"],
            "conf": b["confidence"],
            "x1": int(b["x1"]),
            "y1": int(b["y1"]),
            "x2": int(b["x2"]),
            "y2": int(b["y2"]),
        }
        for i, b in enumerate(boxes)
    ]

GET-запросы

  1. /api/datasets/{dataset_id}/classes

    • необходим для получения списка классов в датасете
    • возвращает json формата
    [
        {"class_id": c.class_id, "name": c.name, "color": c.color}
        ...
    ]
  2. /api/getDatasets

    • необходим для получения списка загруженных датасетов
    • возвращает json формата
    [
        {
                "id": ds.id,
                "name": ds.name,
                "status": {
                    "id": status.id,
                    "name": status.name
                },
                "total_size": ds.total_size,
                "inwork_size": ds.inwork_size,
                "path": ds.path,
                "average_percent_success": ds.average_percent_success,
                "current_model_architecture": ds.current_model_architecture,
                "metric_precision": ds.metric_precision,
                "metric_recall": ds.metric_recall,
                "metric_f1": ds.metric_f1,
                "metric_mean_iou": ds.metric_mean_iou,
                "metrics_boxes_total": ds.metrics_boxes_total,
                "metrics_images_total": ds.metrics_images_total,
            }
        ...
    ]
  3. /api/models

    • возвращает список доступных моделей
  4. /api/datasets/{dataset_id}/model

    • возвращает то, какая модель выбрана для данного датасета
  5. /api/datasets/{dataset_id}/next-batch

    • запускает обработку следующего пакета изображений
  6. /api/datasets/{dataset_id}/hyperparams

    • Необходим для получения текущих настроек гиперпараметров
    • Возвращает json формата
        {
           "epochs": config.epochs,
           "batch_size": config.batch_size,
           "learning_rate": config.learning_rate,
           "imgsz": config.imgsz,
           "optimizer": config.optimizer
       }
  7. /api/datasets/{dataset_id}/metrics

    • Необходим для получения значений метрик
    • Возвращает json формата
    [
           {
           "version": v.version,
           "architecture": v.architecture,
           "epochs": v.epochs,
           "is_active": v.is_active,
           "created_at": v.created_at.isoformat(),
           "precision": v.precision,
           "recall": v.recall,
           "f1": v.f1,
           "map50": v.map50,
           "map50_95": v.map50_95,
           "mean_iou": v.mean_iou,
           "confusion_matrix": json.loads(v.confusion_matrix_json) if v.confusion_matrix_json else None,
           "mlflow_run_id": v.mlflow_run_id,
       }
    ]
  8. /api/datasets/{dataset_id}/metrics/latest

    • Необходим для получения последних значений метрик
    • Возвращает json формата
    {
           "version": v.version,
           "architecture": v.architecture,
           "epochs": v.epochs,
           "is_active": v.is_active,
           "created_at": v.created_at.isoformat(),
           "precision": v.precision,
           "recall": v.recall,
           "f1": v.f1,
           "map50": v.map50,
           "map50_95": v.map50_95,
           "mean_iou": v.mean_iou,
           "confusion_matrix": json.loads(v.confusion_matrix_json) if v.confusion_matrix_json else None,
           "mlflow_run_id": v.mlflow_run_id,
    }
  9. /api/datasets/{dataset_id}/augmentation

    • Необходим для получения параметров аугментаций
    • Возвращает json формата
    {
           "augmentation_enabled": config.augmentation_enabled,
           "augmentation_threshold": config.augmentation_threshold
    }
  10. /api/train/jobs/{job_id}

    • Необходим для получения статуса разметки
    • Возвращает json формата
    {
           "id": job.id,
           "dataset_id": job.dataset_id,
           "status": job.status,
           "error": job.error,
           "created_at": job.created_at,
           "started_at": job.started_at,
           "finished_at": job.finished_at,
    }
  11. /api/datasets/{dataset_name}/images

    • Необходим для получения списка изображений датасета
    • Возвращает json формата
    {"dataset": dataset_name, "images": files}
  12. /api/datasets/{dataset_name}/images/{filename}

    • Необходим для получения конкретного изображения из датасета

Clone this wiki locally