Schémas Pydantic pour les requêtes et les réponses
BaseModel, validation des champs, indications de type, response_model, gestion des erreurs de validation.
Schémas Pydantic pour les requêtes et les réponses est une leçon Learn AI with Python gratuite sur CoddyKit. Ceci est la leçon 2 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Learn AI with Python, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Learn AI with Python comprend 4 leçons au total.
Pourquoi des schémas ?
Les dictionnaires bruts sont sujets aux erreurs. Les modèles Pydantic définissent précisément la structure des requêtes et des réponses, valident automatiquement les types et documentent votre API. FastAPI les utilise nativement.
Le BaseModel
Les schémas Pydantic sont des sous-classes de BaseModel. Chaque attribut typé devient un champ validé ; les types incorrects sont rejetés avant l’exécution de votre code.
from pydantic import BaseModel
class PredictRequest(BaseModel):
features: list[float]Un schéma de requête
Définissez ce que les clients doivent envoyer. Ici, features doit être une liste de nombres flottants, et vous pouvez ajouter d’autres champs comme une version de modèle ou un identifiant de requête.
class PredictRequest(BaseModel):
features: list[float]
model_version: str = "latest"Un schéma de réponse
Définissez ce que votre API renvoie afin que les clients disposent d’un contrat stable et documenté.
class PredictResponse(BaseModel):
prediction: float
probability: floatUtiliser des schémas dans un point de terminaison
Indiquez le type du paramètre avec votre modèle de requête : FastAPI analyse et valide automatiquement le corps JSON pour le convertir en objet typé.
from fastapi import FastAPI
app = FastAPI()
@app.post("/predict")
def predict(req: PredictRequest):
pred = model.predict([req.features])[0]
return {"prediction": pred, "probability": 0.92}Le paramètre response_model
Transmettez response_model au décorateur de route. FastAPI valide et filtre la sortie pour qu’elle corresponde au schéma, supprime les champs supplémentaires et documente la réponse dans /docs.
@app.post("/predict", response_model=PredictResponse)
def predict(req: PredictRequest) -> PredictResponse:
return PredictResponse(prediction=1.0, probability=0.92)list[float] pour les vecteurs de caractéristiques
Déclarer les caractéristiques avec list[float] signifie que Pydantic rejette les chaînes de caractères ou les types mélangés avant l’inférence, ce qui permet de détecter les données d’entrée mal formées à la frontière plutôt qu’au cœur du code du modèle.
HTTPException pour les erreurs
Lorsque la validation des types réussit mais que les règles métier échouent (nombre incorrect de caractéristiques, modèle inconnu), levez une HTTPException avec un code d’état et un message.
from fastapi import HTTPException
@app.post("/predict")
def predict(req: PredictRequest):
if len(req.features) != 4:
raise HTTPException(status_code=422,
detail="Expected exactly 4 features")
return {"prediction": model.predict([req.features])[0]}Validateurs de champs
Un field_validator applique des règles personnalisées à un champ, par exemple pour rejeter les listes de caractéristiques vides, avant même l’exécution de la logique du point de terminaison.
from pydantic import BaseModel, field_validator
class PredictRequest(BaseModel):
features: list[float]
@field_validator("features")
@classmethod
def not_empty(cls, v):
if not v:
raise ValueError("features cannot be empty")
return vContraintes de champs
Utilisez Field pour déclarer des contraintes comme une longueur minimale ou des plages numériques ; celles-ci apparaissent également dans la documentation générée automatiquement.
from pydantic import BaseModel, Field
class PredictRequest(BaseModel):
features: list[float] = Field(min_length=1)Réponses 422 automatiques
Lorsqu’une requête échoue à la validation Pydantic, FastAPI renvoie automatiquement une 422 Unprocessable Entity avec un corps d’erreur détaillé, sans code supplémentaire. C’est l’un des principaux gains de productivité de FastAPI.
Vérification rapide
Testez vos connaissances sur les schémas Pydantic.
Récapitulatif
Vous avez défini des schémas BaseModel pour les requêtes et les réponses, utilisé list[float] pour les caractéristiques, appliqué response_model, levé des HTTPException pour les erreurs métier et ajouté des field validators. FastAPI renvoie automatiquement une erreur 422 pour les entrées invalides. Ensuite : charger et servir le modèle.
Questions Fréquemment Posées
La leçon « Schémas Pydantic pour les requêtes et les réponses » est-elle gratuite ?
Oui — le texte complet de « Schémas Pydantic pour les requêtes et les réponses » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Learn AI with Python, passe à CoddyKit PRO. Le cours Learn AI with Python comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Schémas Pydantic pour les requêtes et les réponses » ?
BaseModel, validation des champs, indications de type, response_model, gestion des erreurs de validation. Tu pratiques Learn AI with Python avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Learn AI with Python ?
Aucune expérience préalable n'est requise. Learn AI with Python sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 4.
Combien de temps prend la leçon « Schémas Pydantic pour les requêtes et les réponses » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Learn AI with Python ?
Oui. Chaque leçon Learn AI with Python inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Notions fondamentales de FastAPI pour les ingénieurs en apprentissage automatique
- Schémas Pydantic pour les requêtes et les réponses
- Charger et servir des modèles d’apprentissage automatique
- Conteneuriser l’API du modèle