|
from fastapi import FastAPI, HTTPException |
|
from pydantic import BaseModel |
|
from transformers import pipeline |
|
|
|
app = FastAPI() |
|
|
|
classifier = pipeline("text-classification", model="ShazaAly/suplyd-intent-classifier") |
|
|
|
class IntentRequest(BaseModel): |
|
text: str |
|
|
|
class IntentResponse(BaseModel): |
|
label: str |
|
confidence: float |
|
|
|
@app.post("/classify", response_model=IntentResponse) |
|
def classify_intent(req: IntentRequest): |
|
if not req.text.strip(): |
|
return {"label": "غير ذلك", "confidence": 1.0} |
|
|
|
try: |
|
results = classifier(req.text) |
|
top = results[0] |
|
return { |
|
"label": top["label"], |
|
"confidence": top["score"] |
|
} |
|
except Exception as e: |
|
raise HTTPException(status_code=500, detail=str(e)) |
|
|