Skip to content

Prototype API

Ersikan edited this page Jan 25, 2021 · 17 revisions

API proto

actions nécessaires

  • Voir le dataset
  • Préciser le label
  • Créer un modèle
  • Voir le résultat du modèle

/dataset

POST /dataset

Envoie un nouveau dataset

GET /dataset

Récupère la liste des datasets

GET /dataset/{id}

Récupère les informations sur le datasets, comme la liste des configs ou la liste des colonnes

{
  "columns": ["column1", "column2", "column3"],
  "configs": ["600465fe160c3c5beeba568c"],
  "name": "dataset.csv"
}

POST /dataset/{id}/config/lint

Lint une config envoyée dans le body, au lieu de lint une config déjà enregistrée dans la base de données.

Config

POST /dataset/{id}/config

Ajoute une nouvelle config

GET /config/{id}

Récupère les informations sur la config

GET /config/{id}/lint

Récupère des conseils sur les colonnes à enlever et pourquoi les enlever.

Renvoie une liste de tableau par colonnes :

Index 0 : La description du conseil

Index 1 : Le lien d'information du conseil (le conseil peux ne pas avoir de lien. Exemple : le conseil indiquant que toutes les valeurs sont les mêmes)

Index 2 : True = test négatif (malus), False = test positif (bonus)

{
    "lints": {
        "COLUMN_1": [
            ["Lint 1 description", "link.com", true],
            ["Lint 2 description", "link.com", false],
            ["Lint 3 description", "", true]
        ],
        "OTHER_COLUMN": [
            ["Lint 1 description", "link.com", false],
            ["Lint 2 description", "", true],
            ["Lint 3 description", "link.com", true]
        ],
    }
}

GET /config/{id}/sweetviz

Renvoie la visualisation du dataset générée par Sweetviz.

Config format

Model type

Le type de modèle à entraîner peut être défini grâce à la propriété model_type. Pour l'instant le type de modèle peut être soit classification, soit regression.

{
  "label": "column_1",
  "columns": {
    "column_1": true,
    "column_2": false,
    "column_3": true,
    "column_4": true
  },
  "model_type": "classification"
}

Model

POST /config/{id}/model

Crée un nouveau modèle

Ici on rajoutera les paramètres avancés de TPOT pour plus contrôler le modèle

Pour l'instant le modèle accepte la propriété generations qui détermine le nombre de génération d'entraînement réalisées par TPOT.

Exemple

{
  "generations": 5
}

GET /model/{id}

Récupère les informations sur le modèle

POST /model/{id}/train

Lance l'entraînement d'un modèle

GET /model/{id}/status

Récupère l'état actuel de l'entraînement du modèle

Le résultat est un objet json contenant les propriétés suivantes:

  • status: not started | starting | started | exporting | done | error
  • logs: contient les logs affichés par TPOT dans la console s'ils sont disponibles

GET /model/{id}/export

Récupère le fichier python généré par TPOT correspondant à la meilleure pipeline

POST /model/{id}/predict

Prédit une valeur en utilisant le modèle créé par TPOT.

Le body doit contenir les valeur des différentes colonnes d'entrée du modèle.

Par exemple pour cette config, les colonnes d'entrées sont column_3 et column_4.

{
	"label": "column_1",
	"columns": {
		"column_1": true,
		"column_2": false,
		"column_3": true,
		"column_4": true
	}
}

Pour effectuer une prédiction il faut donc envoyer :

{
  "column_3": -3.14,
  "column_4": 42.42
}
Clone this wiki locally