File size: 674 Bytes
37c48d4
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import joblib

from fastapi import FastAPI
from pydantic import BaseModel

from preprocessor import clean_text

app = FastAPI()

model = joblib.load("tfidf_logreg_98acc.joblib")


class Data(BaseModel):
    text: str


@app.get("/")
def read_root() -> dict:
    return {"message": "Welcome to the Hadhari API!", "usage": "POST to /predict with {'text': 'your input'}"}


@app.post("/predict")
def predict(data: Data) -> dict:
    text = clean_text(data.text)
    prediction = int(model.predict([text])[0])

    probabilities = model.predict_proba([text])[0]

    confidence = float(probabilities[prediction])

    return {"prediction": prediction, "confidence": confidence}