Возврат структурированного ответа с предсказанием

Развёртывание ИИ в производственной среде с помощью FastAPI

Matt Eckerle

Software and Data Engineering Leader

Трудности при развёртывании моделей

Схема ML-предсказания с FastAPI

 

 

  1. Корректно принять входные данные
  2. Валидировать данные и обработать ошибки
  3. Выполнить предсказание
  4. Вернуть структурированный ответ
Развёртывание ИИ в производственной среде с помощью FastAPI

Определение структуры запроса

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

text: str
sentiment: str
confidence: float
Развёртывание ИИ в производственной среде с помощью FastAPI

Создание эндпоинта предсказания

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

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

 

Ответ:

{
    "text": "This movie was fantastic!",
    "sentiment": "POSITIVE",
    "confidence": 0.95
}
Развёртывание ИИ в производственной среде с помощью FastAPI

Обработка ошибок

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

Ответ при ошибке предсказания

{
    "detail": "Prediction failed",
    "status_code": 500
}
Развёртывание ИИ в производственной среде с помощью FastAPI

Тестирование эндпоинта

# 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
}
Развёртывание ИИ в производственной среде с помощью FastAPI

Давайте потренируемся!

Развёртывание ИИ в производственной среде с помощью FastAPI

Preparing Video For Download...