Validation des entrées dans FastAPI

Déployer l'IA en production avec FastAPI

Matt Eckerle

Software and Data Engineering Leader

Valider les données d'entrée

Organigramme montrant une prédiction ML avec FastAPI

Déployer l'IA en production avec FastAPI

Pourquoi valider les entrées ?

 

  • Validation pour l'intégrité des données
  • Prévenir les erreurs dans l'application
  • S'intègre à Pydantic
  • Outils puissants pour valider les données

 

Logo de Pydantic

Déployer l'IA en production avec FastAPI

Pydantic pour fonctions prédéfinies

Validation de champ avec pydantic

Déployer l'IA en production avec FastAPI

Validation personnalisée avec pydantic

Validation personnalisée avec pydantic

Déployer l'IA en production avec FastAPI

Signalement d'erreurs convivial

Signalement des erreurs pendant la validation

Déployer l'IA en production avec FastAPI

Validateurs de champs Pydantic

  • Point de terminaison d'inscription d'utilisateur

  • Valider le nom d'utilisateur saisi :

from pydantic import BaseModel, Field
class User(BaseModel):
    username: str = Field(..., min_length=3, max_length=50)
Déployer l'IA en production avec FastAPI

Ajouter des validateurs personnalisés

class User(BaseModel):
    username: str = Field(..., 
                          min_length=3, 
                          max_length=50)
    age: int

@field_validator('age') def age_criteria(cls, age): if age < 13: raise ValueError('User must be at least 13') return age
Déployer l'IA en production avec FastAPI

Validateurs personnalisés en action

Requête valide :

{"username": "john_doe", "age": 25}
Utilisateur valide : username='john_doe' age=25

Requête invalide :

{"username": "too_young", "age": 10}
Erreur de validation pour {'username': 'too_young', 'age': 10} : User must be at least 13
Déployer l'IA en production avec FastAPI

Mettre le tout ensemble

Signalement des erreurs pendant la validation

  • Validateur de champ pour le nom d'utilisateur
  • Validateur personnalisé pour l'âge
  • Message d'erreur si la validation échoue
Déployer l'IA en production avec FastAPI

Mettre le tout ensemble

@app.post("/users")
def create_user(user: User):
    return {"message": "User created",
            "user": user.model_dump()}

Résultat :

{
  "message": "User created successfully",
    "user": {
          "username": "john_doe", 
           "age": 25
    }
}
Déployer l'IA en production avec FastAPI

Passons à la pratique !

Déployer l'IA en production avec FastAPI

Preparing Video For Download...