Обработка различных типов входных данных в FastAPI

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

Matt Eckerle

Software and Data Engineering Leader

Ресторан vs API

Сравнение ресторана с входными данными API

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

Процесс валидации

 

 

  • Входящие данные через запрос
  • Валидация входных данных с помощью Pydantic
  • Обработка различных типов данных согласно требованиям модели
  • Обработанные данные передаются в модель

Блок-схема валидации запроса

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

Система модерации комментариев

 

class CommentMetrics(BaseModel):
    length: int           
    user_karma: int     
    report_count: int

class CommentText(BaseModel): content: str

Иконки блоков комментариев

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

Эндпоинт для чисел с плавающей точкой

app = FastAPI()

@app.post("/predict")
def predict_score(data: CommentMetrics):
features = np.array([ data.length, data.user_karma, data.report_count ])
model = CommentScorer() prediction = model.predict(features)
return {"prediction": round(prediction, 2), "input": data.dict()}
Развёртывание ИИ в производственной среде с помощью FastAPI

Эндпоинт для текстовых данных

@app.post("/analyze_text")

def analyze(comment: CommentText):
forbidden = ["spam", "hate", "free" "fake", "sign up"]
text_lower = comment.lower()
issues = [word for word in forbidden if word in text_lower]
return { "issues": issues, "needs_moderation": len(issues) }

Результат для комментария: Sign up for free

{
    "issues": ["free", "sign up"],
    "needs_moderation": 2
}
Развёртывание ИИ в производственной среде с помощью FastAPI

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

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

Preparing Video For Download...