# api.py : le schéma refuse ce qui est hors bornes (réponse 422) from fastapi import FastAPI from pydantic import BaseModel, Field app = FastAPI() class Requete(BaseModel): conso_kwh: float = Field(ge=0, le=2000) surface_m2: float = Field(ge=20, le=200) temp_c: float = Field(ge=-30, le=45) # champ obligatoire : absent = rejeté @app.post("/predire") def predire(r: Requete): return {"puissance_kw": float(modele.predict([[r.conso_kwh, r.surface_m2, r.temp_c]])[0])} # test_non_regression.py : lancé par la CI avant chaque déploiement from sklearn.metrics import roc_auc_score def test_non_regression(): auc_nouveau = roc_auc_score(y_test, nouveau.predict_proba(X_test)[:, 1]) auc_ancien = roc_auc_score(y_test, ancien.predict_proba(X_test)[:, 1]) assert auc_nouveau >= auc_ancien - 0.01 # tolérance à régler selon la taille de y_test
Statistiques, finance quantitative, machine learning, deep learning, LLM, agents IA, MLOps : 321 épisodes avec des simulateurs à manipuler, pas des vidéos.
Statistics, quantitative finance, machine learning, deep learning, LLMs, AI agents, MLOps: 321 interactive episodes with simulators to play with, not videos.