Încărcarea unui model pre-antrenat

Deployment AI în producție cu FastAPI

Matt Eckerle

Software and Data Engineering Leader

Structura actuală

Diagramă de flux cu predicție ML folosind FastAPI

Deployment AI în producție cu FastAPI

Provocarea încărcării modelelor

Diagramă explicând ciclul cerere/răspuns

Un bărbat frustrat care așteaptă răspunsul API

Deployment AI în producție cu FastAPI

Încărcarea modelelor înainte de cerere

Diagramă de flux cu predicție ML folosind FastAPI

Deployment AI în producție cu FastAPI

Încărcarea modelului

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
Deployment AI în producție cu FastAPI

Eveniment lifespan FastAPI

Diagramă de flux care explică durata de viață FastAPI

Deployment AI în producție cu FastAPI

Eveniment lifespan FastAPI

from contextlib import asynccontextmanager
@asynccontextmanager
async def lifespan(app: FastAPI):
    # Startup: Load the ML model
    load_model()
    yield
app = FastAPI(lifespan=lifespan)
Deployment AI în producție cu FastAPI

Verificări de sănătate

 

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

Comandă Curl:

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

Rezultat:

{
  "status": "healthy",
  "model_loaded": true
}
Deployment AI în producție cu FastAPI

Să exersăm!

Deployment AI în producție cu FastAPI

Preparing Video For Download...