Returnarea unui răspuns structurat de predicție

Deployment AI în producție cu FastAPI

Matt Eckerle

Software and Data Engineering Leader

Provocări la implementarea modelelor

Diagramă flux pentru predicție ML cu FastAPI

 

 

  1. Acceptarea corectă a datelor de intrare
  2. Validarea datelor și gestionarea erorilor
  3. Realizarea predicțiilor
  4. Returnarea răspunsurilor bine structurate
Deployment AI în producție cu FastAPI

Definirea structurii cererii

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

text: str
sentiment: str
confidence: float
Deployment AI în producție cu FastAPI

Crearea endpoint-ului de predicție

@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 de intrare:

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

 

Răspuns:

{
    "text": "This movie was fantastic!",
    "sentiment": "POSITIVE",
    "confidence": 0.95
}
Deployment AI în producție cu FastAPI

Gestionarea erorilor

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

Răspuns când modelul nu reușește să prezică

{
    "detail": "Prediction failed",
    "status_code": 500
}
Deployment AI în producție cu FastAPI

Testarea endpoint-ului

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

Să exersăm!

Deployment AI în producție cu FastAPI

Preparing Video For Download...