TP3 Parties 2-4 : API REST FastAPI (health, predict, batch, erreurs 404)
This commit is contained in:
44
lab/serving/schemas.py
Normal file
44
lab/serving/schemas.py
Normal file
@@ -0,0 +1,44 @@
|
||||
"""Schemas Pydantic du service de prediction (contrat d'entree/sortie de l'API)."""
|
||||
|
||||
import datetime
|
||||
|
||||
from pydantic import BaseModel, Field
|
||||
|
||||
|
||||
class PredictionRequest(BaseModel):
|
||||
"""Ce que le client fournit : QUI et QUAND, pas les features (calculees cote serveur)."""
|
||||
|
||||
client_id: str = Field(
|
||||
...,
|
||||
description="Identifiant du client (ex. 'MT_124').",
|
||||
examples=["MT_124"],
|
||||
)
|
||||
date: datetime.date | None = Field(
|
||||
default=None,
|
||||
description="Date de la prediction (parametre de requete). Optionnelle.",
|
||||
examples=["2015-01-01"],
|
||||
)
|
||||
|
||||
|
||||
class BatchPredictionRequest(BaseModel):
|
||||
"""Prediction pour plusieurs clients en une seule requete (inference batch)."""
|
||||
|
||||
client_ids: list[str] = Field(
|
||||
...,
|
||||
description="Liste d'identifiants clients.",
|
||||
examples=[["MT_124", "MT_156", "MT_158"]],
|
||||
)
|
||||
date: datetime.date | None = None
|
||||
|
||||
|
||||
class PredictionResponse(BaseModel):
|
||||
client_id: str
|
||||
prediction_kwh: float = Field(description="Consommation predite (kWh).")
|
||||
model_name: str
|
||||
model_version: str
|
||||
|
||||
|
||||
class BatchPredictionResponse(BaseModel):
|
||||
predictions: list[PredictionResponse]
|
||||
# Clients ignores (features introuvables) : on ne fait pas echouer tout le lot.
|
||||
unknown_client_ids: list[str] = Field(default_factory=list)
|
||||
Reference in New Issue
Block a user