koyu008 commited on
Commit
a3af327
·
verified ·
1 Parent(s): 2d04c0e

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +24 -35
app.py CHANGED
@@ -6,7 +6,6 @@ from transformers import DistilBertTokenizer, DistilBertModel, AutoModel, AutoTo
6
  from langdetect import detect
7
  from huggingface_hub import snapshot_download
8
  import os
9
- from typing import List
10
 
11
 
12
  # Device
@@ -86,45 +85,35 @@ app.add_middleware(
86
 
87
 
88
  class TextIn(BaseModel):
89
- texts: List[str]
90
 
91
 
92
  @app.post("/api/predict")
93
  @app.post("/api/predict")
94
  def predict(data: TextIn):
95
- results = []
96
-
97
- for text in data.texts:
98
- try:
99
- lang = detect(text)
100
- except:
101
- lang = "unknown"
102
-
103
- if lang == "en":
104
- tokenizer = english_tokenizer
105
- model = english_model
106
- inputs = tokenizer(text, return_tensors="pt", padding=True, truncation=True).to(device)
107
- with torch.no_grad():
108
- outputs = model(**inputs)
109
- probs = torch.sigmoid(outputs).squeeze().cpu().tolist()
110
- predictions = dict(zip(english_labels, probs))
111
- else:
112
- tokenizer = hinglish_tokenizer
113
- model = hinglish_model
114
- inputs = tokenizer(text, return_tensors="pt", padding=True, truncation=True).to(device)
115
- with torch.no_grad():
116
- outputs = model(**inputs)
117
- probs = torch.softmax(outputs, dim=1).squeeze().cpu().tolist()
118
- predictions = dict(zip(hinglish_labels, probs))
119
-
120
- results.append({
121
- "text": text,
122
- "language": lang if lang in ["en", "hi"] else "unknown",
123
- "predictions": predictions
124
- })
125
-
126
- return {"results": results}
127
-
128
 
129
  @app.get("/")
130
  def root():
 
6
  from langdetect import detect
7
  from huggingface_hub import snapshot_download
8
  import os
 
9
 
10
 
11
  # Device
 
85
 
86
 
87
  class TextIn(BaseModel):
88
+ text: str
89
 
90
 
91
  @app.post("/api/predict")
92
  @app.post("/api/predict")
93
  def predict(data: TextIn):
94
+ text = data.text
95
+ try:
96
+ lang = detect(text)
97
+ except:
98
+ lang = "unknown"
99
+
100
+ if lang == "en":
101
+ tokenizer = english_tokenizer
102
+ model = english_model
103
+ inputs = tokenizer(text, return_tensors="pt", padding=True, truncation=True).to(device)
104
+ with torch.no_grad():
105
+ outputs = model(**inputs)
106
+ probs = torch.sigmoid(outputs).squeeze().cpu().tolist()
107
+ return {"language": "English", "predictions": dict(zip(english_labels, probs))}
108
+
109
+ else:
110
+ tokenizer = hinglish_tokenizer
111
+ model = hinglish_model
112
+ inputs = tokenizer(text, return_tensors="pt", padding=True, truncation=True).to(device)
113
+ with torch.no_grad():
114
+ outputs = model(**inputs)
115
+ probs = torch.softmax(outputs, dim=1).squeeze().cpu().tolist()
116
+ return {"language": "Hinglish", "predictions": dict(zip(hinglish_labels, probs))}
 
 
 
 
 
 
 
 
 
 
117
 
118
  @app.get("/")
119
  def root():