Validación de entrada en FastAPI

Implementación de IA en producción con FastAPI

Matt Eckerle

Software and Data Engineering Leader

Validar los datos de entrada

Diagrama de flujo que muestra una predicción de ML con FastAPI

Implementación de IA en producción con FastAPI

¿Por qué validar la entrada?

 

  • Validación para mantener la integridad de datos
  • Evita errores en la aplicación
  • Se integra con Pydantic
  • Ofrece potentes herramientas de validación

 

Un logotipo de Pydantic

Implementación de IA en producción con FastAPI

Pydantic para funciones predefinidas

Validación de campos con pydantic

Implementación de IA en producción con FastAPI

Validación personalizada con pydantic

Validación personalizada con pydantic

Implementación de IA en producción con FastAPI

Informe de errores claro

Informe de errores durante la validación

Implementación de IA en producción con FastAPI

Validadores de campos en Pydantic

  • Endpoint de registro de usuarios

  • Validación del nombre de usuario introducido:

from pydantic import BaseModel, Field
class User(BaseModel):
    username: str = Field(..., min_length=3, max_length=50)
Implementación de IA en producción con FastAPI

Añadir validadores personalizados

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
Implementación de IA en producción con FastAPI

Validadores personalizados en acción

Solicitud válida:

{"username": "john_doe", "age": 25}
Usuario válido: username='john_doe' age=25

Solicitud no válida:

{"username": "too_young", "age": 10}
Error de validación para {'username': 'too_young', 'age': 10}: User must be at least 13
Implementación de IA en producción con FastAPI

Integrarlo todo

Informe de errores durante la validación

  • Validador de campo para el nombre de usuario
  • Validador personalizado para la edad
  • Mensaje de error si falla la validación
Implementación de IA en producción con FastAPI

Integrarlo todo

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

Salida:

{
  "message": "User created successfully",
    "user": {
          "username": "john_doe", 
           "age": 25
    }
}
Implementación de IA en producción con FastAPI

¡Vamos a practicar!

Implementación de IA en producción con FastAPI

Preparing Video For Download...