العودة إلى المدونة
MLOps 30 يناير 2025 7 min للقراءة

نشر نماذج تعلم الآلة باستخدام FastAPI: قائمة مراجعة الإنتاج

من pickle إلى FastAPI الإنتاجي — الاستدلال غير المتزامن، التحقق من المدخلات، حد المعدل، الفحوصات الصحية.

أبسط FastAPI إنتاجي

from fastapi import FastAPI, HTTPException
from pydantic import BaseModel
import joblib
import numpy as np

app = FastAPI()
model = joblib.load('model.pkl')

class PredictRequest(BaseModel):
    features: list[float]
    
class PredictResponse(BaseModel):
    prediction: float
    probability: float
    model_version: str = 'v1.2'

@app.post('/predict', response_model=PredictResponse)
async def predict(req: PredictRequest):
    X = np.array(req.features).reshape(1, -1)
    pred = model.predict(X)[0]
    prob = model.predict_proba(X)[0].max()
    return PredictResponse(prediction=float(pred), probability=float(prob))

@app.get('/health')
def health(): return {'status': 'ok', 'model': 'loaded'}

قائمة مراجعة الإنتاج

  • التحقق من المدخلات باستخدام Pydantic
  • نقطة نهاية فحص صحي
  • تسجيل الطلبات (structlog)
  • تحديد المعدل (slowapi)
  • تسخين النموذج عند الإقلاع
  • إيقاف سلس
  • Docker مع بناء متعدد المراحل
FastAPIDockerDeploymentREST APIProduction
O

Ossama Elhakki

مهندس ذكاء اصطناعي وأنظمة ML — المغرب