Carregando um modelo pré-treinado

Colocando IA em Produção com FastAPI

Matt Eckerle

Software and Data Engineering Leader

Estrutura atual

Fluxograma mostrando previsão de ML com FastAPI

Colocando IA em Produção com FastAPI

Desafio ao carregar modelos

Um diagrama explicando o ciclo de vida de requisição/resposta

Um homem frustrado esperando a resposta da API

Colocando IA em Produção com FastAPI

Carregue modelos antes da requisição

Fluxograma mostrando previsão de ML com FastAPI

Colocando IA em Produção com FastAPI

Carregando o 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
Colocando IA em Produção com FastAPI

Evento de lifespan do FastAPI

Um diagrama de fluxo explicando o lifespan do FastAPI

Colocando IA em Produção com FastAPI

Evento de lifespan do FastAPI

from contextlib import asynccontextmanager
@asynccontextmanager
async def lifespan(app: FastAPI):
    # Startup: Load the ML model
    load_model()
    yield
app = FastAPI(lifespan=lifespan)
Colocando IA em Produção com FastAPI

Health checks

 

@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"

Saída:

{
  "status": "healthy",
  "model_loaded": true
}
Colocando IA em Produção com FastAPI

Vamos praticar!

Colocando IA em Produção com FastAPI

Preparing Video For Download...