Restituire una risposta di predizione strutturata

Deployment di AI in produzione con FastAPI

Matt Eckerle

Software and Data Engineering Leader

Sfide nel deploy dei modelli

Diagramma di flusso che mostra una predizione ML con FastAPI

 

 

  1. Accetta correttamente i dati in input
  2. Convalida i dati in arrivo e gestisci gli errori
  3. Esegui le predizioni
  4. Restituisci risposte ben strutturate
Deployment di AI in produzione con FastAPI

Definire la struttura della richiesta

from pydantic import BaseModel
class PredictionRequest(BaseModel):
    text: str
class PredictionResponse(BaseModel):

text: str
sentiment: str
confidence: float
Deployment di AI in produzione con FastAPI

Creare l'endpoint di predizione

@app.post("/predict")
def predict_sentiment(request: PredictionRequest):
    if sentiment_model is None:
        raise HTTPException(
            status_code=503,
            detail="Model not loaded"
        )

result = sentiment_model(request.text)
return PredictionResponse( text=request.text, sentiment=result[0]["label"], confidence=result[0]["score"] )

JSON di input:

{"text": "This movie was fantastic!"}

 

Risposta:

{
    "text": "This movie was fantastic!",
    "sentiment": "POSITIVE",
    "confidence": 0.95
}
Deployment di AI in produzione con FastAPI

Gestione degli errori

try:
  result = sentiment_model(request.text)
  return PredictionResponse(
        text=request.text,
        sentiment=result[0]["label"],
        confidence=result[0]["score"]
    )
except Exception:
  raise HTTPException(
        status_code=500,
        detail="Prediction failed"
    )

Risposta quando il modello non riesce a prevedere

{
    "detail": "Prediction failed",
    "status_code": 500
}
Deployment di AI in produzione con FastAPI

Testare l'endpoint

# Esempio di richiesta
import requests

response = requests.post(
    "http://localhost:8000/predict",
    json={"text": "Great product!"}
)
print(response.json())
{
    "text": "Great product!",
    "sentiment": "POSITIVE",
    "confidence": 0.998
}
Deployment di AI in produzione con FastAPI

Esercitiamoci!

Deployment di AI in produzione con FastAPI

Preparing Video For Download...