bla-bla / app.py
Burhan21's picture
initial commit
0c634d7
from fastapi import FastAPI
from pydantic import BaseModel
from transformers import AutoTokenizer, AutoModelForSequenceClassification
import torch
import torch.nn.functional as F
app = FastAPI(title="RoBERTa LoRA Sentiment API")
model_name = "Burhan21/roberta-lora-sentiment"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForSequenceClassification.from_pretrained(model_name)
class TextRequest(BaseModel):
text: str
@app.get("/")
def root():
return {"message": "Sentiment API is running"}
@app.get("/health")
def health():
return {"status": "ok"}
@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 = F.softmax(outputs.logits, dim=-1)
confidence = probs.max().item()
pred_class = probs.argmax(-1).item()
label = "Positive" if pred_class == 1 else "Negative"
return {
"text": request.text,
"prediction": label,
"confidence": round(confidence, 4),
"model": model_name
}