Cargar un modelo preentrenado

Implementación de IA en producción con FastAPI

Matt Eckerle

Software and Data Engineering Leader

Estructura actual

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

Implementación de IA en producción con FastAPI

Problema al cargar modelos

Diagrama que explica el ciclo de vida de petición/respuesta

Persona frustrada esperando la respuesta de la API

Implementación de IA en producción con FastAPI

Cargar modelos antes de la petición

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

Implementación de IA en producción con FastAPI

Cargar el modelo

from fastapi import FastAPI
sentiment_model = None
def load_model():
    global sentiment_model
    sentiment_model = SentimentAnalyzer("trained_model.joblib")
    print("Model loaded successfully")
load_model()
Model loaded successfully
Implementación de IA en producción con FastAPI

Evento de lifespan de FastAPI

Diagrama de flujo que explica el lifespan de FastAPI

Implementación de IA en producción con FastAPI

Evento de lifespan de FastAPI

from contextlib import asynccontextmanager
@asynccontextmanager
async def lifespan(app: FastAPI):
    # Startup: Load the ML model
    load_model()
    yield
app = FastAPI(lifespan=lifespan)
Implementación de IA en producción con FastAPI

Comprobaciones de estado

 

@app.get("/health")
def health_check():
    if sentiment_model is not None:
        return {"status": "healthy", 
                "model_loaded": True}
    return {"status": "unhealthy", 
            "model_loaded": False}

Comando curl:

curl -X GET \
  "http://localhost:8080/health" \
  -H "accept: application/json"

Resultado:

{
  "status": "healthy",
  "model_loaded": true
}
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...