Jakaria commited on
Commit
ee01b94
·
1 Parent(s): f3d5a8d

Add Bangla model API

Browse files
Files changed (1) hide show
  1. app.py +21 -24
app.py CHANGED
@@ -2,37 +2,34 @@ from fastapi import FastAPI
2
  from pydantic import BaseModel
3
  import joblib
4
 
5
- app=FastAPI()
6
 
7
  class PredictRequest(BaseModel):
8
- text:str
9
 
10
- #load model
11
- model=joblib.load('english_model.pkl')
12
- vectorizer=joblib.load('english_tfid.pkl')
13
- label_encoder=joblib.load('english_label_encoder.pkl')
14
 
15
  @app.get("/")
16
  def root():
17
- return {"message":"welcome to the english model api end point"}
18
 
19
  @app.post("/predict")
20
- def predict(request:PredictRequest):
21
- vect=vectorizer.transform([request.text])
22
- pred=model.predict(vect)
23
- label=label_encoder.inverse_transform(pred)
24
 
25
- if label[0]==0:
26
- return {"prediction":"Hate regarding age"}
27
- elif label[0]==1:
28
- return {"prediction":"Hate regarding ethnicity"}
29
- elif label[0]==2:
30
- return {"prediction":"Hate regarding gender"}
31
- elif label[0]==3:
32
- return {"prediction":"Not Hate"}
33
- elif label[0]==4:
34
- return {"prediction":"other hate"}
35
- elif label[0]==5:
36
- return {"prediction":"hate regarding religion"}
37
 
38
-
 
2
  from pydantic import BaseModel
3
  import joblib
4
 
5
+ app = FastAPI()
6
 
7
  class PredictRequest(BaseModel):
8
+ text: str
9
 
10
+ # Load model and vectorizer
11
+ model = joblib.load("english_model.pkl")
12
+ vectorizer = joblib.load("english_tfid.pkl")
13
+ label_encoder = joblib.load("english_label_encoder.pkl")
14
 
15
  @app.get("/")
16
  def root():
17
+ return {"message": "Welcome to the English model API endpoint"}
18
 
19
  @app.post("/predict")
20
+ def predict(request: PredictRequest):
21
+ vect = vectorizer.transform([request.text])
22
+ pred = model.predict(vect) # returns encoded int
23
+ label = label_encoder.inverse_transform(pred) # convert back to string
24
 
25
+ # Map label strings to friendly messages
26
+ mapping = {
27
+ "age": "Hate regarding age",
28
+ "ethnicity": "Hate regarding ethnicity",
29
+ "gender": "Hate regarding gender",
30
+ "not_cyberbullying": "Not Hate",
31
+ "other_cyberbullying": "Other hate",
32
+ "religion": "Hate regarding religion"
33
+ }
 
 
 
34
 
35
+ return {"prediction": mapping[label[0]]}