File size: 1,092 Bytes
fb67692
 
 
f2ecfd4
fb67692
 
 
f2ecfd4
 
 
fb67692
f2ecfd4
fb67692
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
33
34
35
36
from flask import Flask, request, jsonify
from transformers import AutoTokenizer, AutoModelForSequenceClassification
import torch
import os

app = Flask(__name__)

# ✅ Fix cache permission issue
os.environ["HF_HOME"] = "/app/hf_cache"

# Load model once at startup
model_name = "ahsamkk/urdu-sentiment-model"  # your model name
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForSequenceClassification.from_pretrained(model_name)

@app.route("/predict", methods=["POST"])
def predict():
    text = request.json.get("text", "")
    inputs = tokenizer(text, return_tensors="pt", truncation=True, padding=True)
    outputs = model(**inputs)
    probs = torch.nn.functional.softmax(outputs.logits, dim=-1)
    label = torch.argmax(probs, dim=1).item()
    confidence = probs[0][label].item()

    return jsonify({
        "label": model.config.id2label[label],
        "confidence": confidence
    })

@app.route("/", methods=["GET"])
def home():
    return {"message": "Urdu Sentiment API is running!"}

if __name__ == "__main__":
    app.run(host="0.0.0.0", port=7860)