Esquemas de Pydantic para solicitudes y respuestas
BaseModel, validación de campos, sugerencias de tipos, response_model y gestión de errores de validación.
Esquemas de Pydantic para solicitudes y respuestas es una lección gratuita de Learn AI with Python en CoddyKit. Esta es la lección 2 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Learn AI with Python, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Learn AI with Python incluye 4 lecciones en total.
¿Por qué utilizar esquemas?
Los diccionarios sin estructura son propensos a errores. Los modelos de Pydantic definen la forma exacta de las solicitudes y respuestas, validan los tipos automáticamente y documentan su API. FastAPI los utiliza de forma nativa.
El BaseModel
Los esquemas de Pydantic heredan de BaseModel. Cada atributo tipado se convierte en un campo validado; los tipos incorrectos se rechazan antes de que se ejecute su código.
from pydantic import BaseModel
class PredictRequest(BaseModel):
features: list[float]Un esquema de solicitud
Defina lo que deben enviar los clientes. Aquí, features debe ser una lista de números de coma flotante, y puede añadir más campos, como una versión del modelo o un identificador de solicitud.
class PredictRequest(BaseModel):
features: list[float]
model_version: str = "latest"Un esquema de respuesta
Defina lo que devuelve su API para que los clientes reciban un contrato estable y documentado.
class PredictResponse(BaseModel):
prediction: float
probability: floatUsar esquemas en un endpoint
Indique el tipo del parámetro con su modelo de solicitud y FastAPI analizará y validará automáticamente el cuerpo JSON para convertirlo en un objeto tipado.
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}El parámetro response_model
Pase response_model al decorador de la ruta. FastAPI valida y filtra el resultado para que coincida con el esquema, elimina los campos adicionales y documenta la respuesta en /docs.
@app.post("/predict", response_model=PredictResponse)
def predict(req: PredictRequest) -> PredictResponse:
return PredictResponse(prediction=1.0, probability=0.92)list[float] para vectores de características
Especificar las características como list[float] hace que Pydantic rechace las cadenas o los tipos mezclados antes de la inferencia, detectando los datos de entrada mal formados en el límite, en lugar de hacerlo en lo más profundo del código del modelo.
HTTPException para errores
Cuando la validación de tipos se completa correctamente, pero fallan las reglas de negocio (número incorrecto de características o modelo desconocido), genere una HTTPException con un código de estado y un mensaje.
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]}Validadores de campos
Un field_validator aplica reglas personalizadas a un campo, como rechazar listas de características vacías, incluso antes de que se ejecute la lógica del endpoint.
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 vRestricciones de campos
Utilice Field para aplicar restricciones declarativas, como una longitud mínima o rangos numéricos, que también aparecen en la documentación generada automáticamente.
from pydantic import BaseModel, Field
class PredictRequest(BaseModel):
features: list[float] = Field(min_length=1)Respuestas 422 automáticas
Cuando una solicitud no supera la validación de Pydantic, FastAPI devuelve automáticamente un 422 Unprocessable Entity con un cuerpo de error detallado, sin necesidad de código adicional. Esta es una de las mayores ventajas de productividad de FastAPI.
Comprobación rápida
Compruebe sus conocimientos sobre los esquemas de Pydantic.
Resumen
Definió esquemas BaseModel para solicitudes y respuestas, utilizó list[float] para las características, aplicó response_model, generó HTTPException para los errores de negocio y añadió validadores de campos. FastAPI devuelve automáticamente el código 422 cuando los datos de entrada no son válidos. Siguiente tema: cargar y servir el modelo.
Preguntas frecuentes
¿La lección «Esquemas de Pydantic para solicitudes y respuestas» es gratis?
Sí — el texto completo de «Esquemas de Pydantic para solicitudes y respuestas» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Learn AI with Python, actualiza a CoddyKit PRO. El curso de Learn AI with Python incluye 4 lecciones en total.
¿Qué aprenderé en «Esquemas de Pydantic para solicitudes y respuestas»?
BaseModel, validación de campos, sugerencias de tipos, response_model y gestión de errores de validación. Practicas Learn AI with Python con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Learn AI with Python?
No se requiere experiencia previa. Learn AI with Python en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 2 de 4.
¿Cuánto tiempo toma la lección «Esquemas de Pydantic para solicitudes y respuestas»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Learn AI with Python?
Sí. Cada lección de Learn AI with Python incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Fundamentos de FastAPI para ingenieros de ML
- Esquemas de Pydantic para solicitudes y respuestas
- Carga y servicio de modelos de ML
- Dockerización de la API del modelo