Gestructureerde voorspellingsrespons retourneren

AI in productie brengen met FastAPI

Matt Eckerle

Software and Data Engineering Leader

Uitdagingen bij het uitrollen van modellen

Stroomschema met ML-voorspelling in FastAPI

 

 

  1. Accepteer invoergegevens correct
  2. Valideer inkomende data en handel fouten af
  3. Maak voorspellingen
  4. Retourneer goed gestructureerde responses
AI in productie brengen met FastAPI

Verzoekstructuur definiëren

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

text: str
sentiment: str
confidence: float
AI in productie brengen met FastAPI

De prediction-endpoint maken

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

Input-JSON:

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

 

Response:

{
    "text": "This movie was fantastic!",
    "sentiment": "POSITIVE",
    "confidence": 0.95
}
AI in productie brengen met FastAPI

Fouthandling

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

Response wanneer het model geen voorspelling kan doen

{
    "detail": "Prediction failed",
    "status_code": 500
}
AI in productie brengen met FastAPI

De endpoint testen

# 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
}
AI in productie brengen met FastAPI

Laten we oefenen!

AI in productie brengen met FastAPI

Preparing Video For Download...