from fastapi import FastAPI from pydantic import BaseModel import joblib app = FastAPI() class PredictRequest(BaseModel): text: str # Load model and vectorizer model = joblib.load("english_model.pkl") vectorizer = joblib.load("english_tfid.pkl") label_encoder = joblib.load("english_label_encoder.pkl") @app.get("/") def root(): return {"message": "Welcome to the English model API endpoint"} @app.post("/predict") def predict(request: PredictRequest): vect = vectorizer.transform([request.text]) pred = model.predict(vect) # returns encoded int label = label_encoder.inverse_transform(pred) # convert back to string # Map label strings to friendly messages mapping = { "age": "Hate regarding age", "ethnicity": "Hate regarding ethnicity", "gender": "Hate regarding gender", "not_cyberbullying": "Not Hate", "other_cyberbullying": "Other hate", "religion": "Hate regarding religion" } return {"prediction": mapping[label[0]]}