Retour au Blog
MLOps 30 janvier 2025 7 min de lecture

Déployer des modèles ML avec FastAPI : checklist de production

Du pickle au FastAPI de production — inférence async, validation Pydantic, rate limiting, health checks.

FastAPI de production minimal

from fastapi import FastAPI, HTTPException
from pydantic import BaseModel
import joblib
import numpy as np

app = FastAPI()
model = joblib.load('model.pkl')

class PredictRequest(BaseModel):
    features: list[float]
    
class PredictResponse(BaseModel):
    prediction: float
    probability: float
    model_version: str = 'v1.2'

@app.post('/predict', response_model=PredictResponse)
async def predict(req: PredictRequest):
    X = np.array(req.features).reshape(1, -1)
    pred = model.predict(X)[0]
    prob = model.predict_proba(X)[0].max()
    return PredictResponse(prediction=float(pred), probability=float(prob))

@app.get('/health')
def health(): return {'status': 'ok', 'model': 'loaded'}

Checklist de production

  • Validation des entrées avec Pydantic
  • Endpoint de health check
  • Journalisation des requêtes (structlog)
  • Rate limiting (slowapi)
  • Warmup du modèle au démarrage
  • Arrêt gracieux
  • Docker avec build multi-stage
FastAPIDockerDeploymentREST APIProduction
O

Ossama Elhakki

Ingénieur IA & Systèmes ML — Maroc