Gestionarea tipurilor de intrare în FastAPI

Deployment AI în producție cu FastAPI

Matt Eckerle

Software and Data Engineering Leader

Restaurant vs. API

Un restaurant comparat cu intrările unui API

Deployment AI în producție cu FastAPI

Fluxul de validare

 

 

  • Date primite prin cerere
  • Validarea datelor de intrare se realizează cu Pydantic
  • Procesarea diferitelor tipuri de date conform cerințelor modelului
  • Intrarea procesată este trimisă modelului

Diagramă a fluxului de validare a cererilor

Deployment AI în producție cu FastAPI

Sistem de moderare a comentariilor

 

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

class CommentText(BaseModel): content: str

Pictograme reprezentând casete de comentarii

Deployment AI în producție cu FastAPI

Endpoint pentru numere în virgulă mobilă

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()}
Deployment AI în producție cu FastAPI

Endpoint pentru intrare textuală

@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) }

Ieșire pentru comentariul: Sign up for free

{
    "issues": ["free", "sign up"],
    "needs_moderation": 2
}
Deployment AI în producție cu FastAPI

Să exersăm!

Deployment AI în producție cu FastAPI

Preparing Video For Download...