Mengembalikan respons prediksi terstruktur

Menerapkan AI ke Produksi dengan FastAPI

Matt Eckerle

Software and Data Engineering Leader

Tantangan dalam menerapkan model

Diagram alur yang menampilkan prediksi ML dengan FastAPI

 

 

  1. Terima data input dengan benar
  2. Validasi data masuk dan tangani error
  3. Lakukan prediksi
  4. Kembalikan respons yang terstruktur baik
Menerapkan AI ke Produksi dengan FastAPI

Mendefinisikan struktur permintaan

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

text: str
sentiment: str
confidence: float
Menerapkan AI ke Produksi dengan FastAPI

Membuat endpoint prediksi

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

 

Respons:

{
    "text": "This movie was fantastic!",
    "sentiment": "POSITIVE",
    "confidence": 0.95
}
Menerapkan AI ke Produksi dengan FastAPI

Penanganan error

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

Respons saat model gagal memprediksi

{
    "detail": "Prediction failed",
    "status_code": 500
}
Menerapkan AI ke Produksi dengan FastAPI

Menguji endpoint

# 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
}
Menerapkan AI ke Produksi dengan FastAPI

Ayo berlatih!

Menerapkan AI ke Produksi dengan FastAPI

Preparing Video For Download...