Fundamentos de FastAPI para ingenieros de ML
Aplicación FastAPI, endpoints GET/POST, parámetros de ruta y consulta, y async def frente a def para inferencia de ML.
Fundamentos de FastAPI para ingenieros de ML es una lección gratuita de Learn AI with Python en CoddyKit. Esta es la lección 1 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é FastAPI para ML?
FastAPI es un framework web moderno de Python, ideal para servir modelos: es rápido, genera documentación interactiva automáticamente y valida las solicitudes mediante anotaciones de tipos. Se ha convertido en la forma predeterminada de envolver un modelo detrás de una API HTTP.
Crear la aplicación
Instancie una aplicación de FastAPI; este objeto app contiene todas sus rutas.
from fastapi import FastAPI
app = FastAPI(title="Model Serving API")Un endpoint GET /health
Una comprobación de estado permite que los balanceadores de carga y los orquestadores confirmen que el servicio está activo. Devuelve un estado sencillo sin realizar tareas costosas.
@app.get("/health")
def health():
return {"status": "ok"}Un endpoint POST /predict
Las predicciones requieren datos de entrada, por lo que utilizan POST con un cuerpo de solicitud. La función recibe la carga útil analizada y devuelve el resultado del modelo.
@app.post("/predict")
def predict(features: list[float]):
result = model.predict([features])
return {"prediction": result[0]}GET frente a POST
- GET: recupera datos, no tiene cuerpo y se utiliza para comprobaciones de estado y lecturas sencillas.
- POST: envía datos en el cuerpo y se utiliza para predicciones en las que se presentan características.
Ejecutar con uvicorn
uvicorn es el servidor ASGI que ejecuta FastAPI. Puede iniciarlo desde el código o desde la línea de comandos.
import uvicorn
if __name__ == "__main__":
uvicorn.run(app, host="0.0.0.0", port=8000)Iniciar desde la línea de comandos
Lo más habitual es iniciarlo mediante la CLI, indicando el módulo y el objeto de la aplicación a uvicorn. --reload reinicia automáticamente el servidor cuando se producen cambios en el código durante el desarrollo.
# terminal
uvicorn main:app --host 0.0.0.0 --port 8000 --reloadDocumentación interactiva incluida
FastAPI genera automáticamente Swagger UI en /docs y ReDoc en /redoc a partir de las anotaciones de tipos, por lo que puede probar los endpoints en el navegador sin escribir código adicional.
async def para tareas limitadas por E/S
Utilice async def en los endpoints que esperan operaciones de E/S (bases de datos, API externas o lecturas de archivos). La asincronía permite que el servidor gestione otras solicitudes mientras espera, lo que mejora el rendimiento.
@app.get("/external")
async def fetch():
data = await call_remote_service()
return datasync def para inferencias limitadas por CPU
El modelo predict suele estar limitado por CPU. Defina esos endpoints con un sync def normal; FastAPI los ejecuta en un grupo de hilos para que no bloqueen el bucle de eventos. Usar async en tareas con un uso intensivo de la CPU en realidad congelaría el servidor.
@app.post("/predict")
def predict(features: list[float]):
# CPU-bound inference -> sync def
return {"prediction": model.predict([features])[0]}Elegir entre async y sync
- async def: tareas limitadas por E/S, espera a operaciones de red o disco.
- sync def: inferencia del modelo limitada por CPU, se ejecuta en un grupo de hilos.
Elegir la opción adecuada mantiene el servidor receptivo bajo carga.
Comprobación rápida
Compruebe sus conocimientos básicos de FastAPI.
Resumen
Creó un servicio de FastAPI: creó app, añadió GET /health y POST /predict, lo ejecutó con uvicorn y aprendió a utilizar async def para tareas limitadas por E/S y sync def para inferencias limitadas por CPU. Siguiente tema: esquemas de solicitud y respuesta con Pydantic.
Preguntas frecuentes
¿La lección «Fundamentos de FastAPI para ingenieros de ML» es gratis?
Sí — el texto completo de «Fundamentos de FastAPI para ingenieros de ML» 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 «Fundamentos de FastAPI para ingenieros de ML»?
Aplicación FastAPI, endpoints GET/POST, parámetros de ruta y consulta, y async def frente a def para inferencia de ML. 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 1 de 4.
¿Cuánto tiempo toma la lección «Fundamentos de FastAPI para ingenieros de ML»?
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