from fastapi import FastAPI from type.request.predict import PredictRequest from type.response.predict import PredictResponse from hugging_face import model, dataset from transformer import transformer from pipeline import pipeline hate_speech_model = model.load_hugging_face_model('model_rf.pkl') hate_speech_dataset = dataset.load_dataset('data_clean.csv') tfidf = transformer.create_tfidf(hate_speech_dataset, 'Tweet', 'U') app = FastAPI() @app.get("/") def root(): return {"message": "All system running well :)"} @app.get("/healthz") def healthz(): return {"message": "All system running well :)"} @app.post("/predict") def predict(request: PredictRequest): preprocessed_text = pipeline.preprocessing(request.predict_text) predict_text = [preprocessed_text] predict_text = tfidf.transform(predict_text) prediction = hate_speech_model.predict(predict_text) return PredictResponse( predict_text = request.predict_text, is_hate_speech = prediction[0] == 1 )