from fastapi import FastAPI from pydantic import BaseModel from transformers import AutoTokenizer, AutoModelForSequenceClassification import torch app = FastAPI() MODEL_NAME = "shobika04/harassment-nlp-model" print("Loading model...") tokenizer = AutoTokenizer.from_pretrained(MODEL_NAME) model = AutoModelForSequenceClassification.from_pretrained(MODEL_NAME) model.eval() print("Model loaded successfully!") class TextRequest(BaseModel): text: str @app.get("/") def home(): return {"status": "Harassment Detection API is running"} @app.post("/predict") def predict(request: TextRequest): inputs = tokenizer( request.text, return_tensors="pt", truncation=True, padding=True ) with torch.no_grad(): outputs = model(**inputs) probs = torch.nn.functional.softmax(outputs.logits, dim=-1) predicted_class = torch.argmax(probs, dim=1).item() confidence = torch.max(probs).item() return { "prediction": int(predicted_class), "confidence": float(confidence) }