File size: 1,133 Bytes
ca42861
79de231
 
5ac197e
ca42861
79de231
 
781ea3c
5ac197e
98fd9f1
 
 
 
 
 
79de231
98fd9f1
 
 
 
 
79de231
98fd9f1
5ac197e
79de231
 
 
2bc3f1e
79de231
 
 
 
 
5372f86
98fd9f1
5ac197e
98fd9f1
79de231
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
37
38
import os
from fastapi import FastAPI, Request
from fastapi.responses import JSONResponse
from transformers import pipeline

app = FastAPI()

token = os.environ.get("HF_TOKEN")

english_model = None
urdu_model = None

def get_english_model():
    global english_model
    if english_model is None:
        english_model = pipeline("text-classification", model="mrgmd01/Finetuned_siebert-sentiment-roberta-large-english", token=token)
    return english_model

def get_urdu_model():
    global urdu_model
    if urdu_model is None:
        urdu_model = pipeline("text-classification", model="mrgmd01/SA_Model_bert-base-multilingual-uncased", token=token)
    return urdu_model

@app.get("/")
def root():
    return {"status": "running"}

@app.post("/predict")
async def predict(request: Request):
    body = await request.json()
    text = body.get("text", "")
    language = body.get("language", "english")
    if language in ["urdu", "roman_urdu"]:
        result = get_urdu_model()(text)[0]
    else:
        result = get_english_model()(text)[0]
    return JSONResponse({"label": result["label"], "score": float(result["score"])})