Dineflow commited on
Commit
6d66b8d
·
verified ·
1 Parent(s): 0fa669a

Update handler.py

Browse files
Files changed (1) hide show
  1. handler.py +21 -39
handler.py CHANGED
@@ -1,49 +1,31 @@
1
- import joblib
2
- import os
3
- import json
4
 
5
- class EndpointHandler:
6
- def __init__(self, model_dir):
7
- self.model_dir = model_dir
8
- self.vectorizer = joblib.load(os.path.join(model_dir, 'vectorizer.joblib'))
9
- self.model = joblib.load(os.path.join(model_dir, 'logistic_classifier.joblib'))
10
 
11
- # Verify that the tokenizer configuration is correct
12
- with open(os.path.join(model_dir, "tokenizer.json"), "r") as file:
13
- tokenizer_config = json.load(file)
14
- if tokenizer_config['tokenizer'] != 'split':
15
- raise ValueError("Tokenizer configuration does not match the expected tokenizer.")
16
 
17
- def predict_rating(self, review):
18
- review_tfidf = self.vectorizer.transform([review])
19
- predicted_rating = self.model.predict(review_tfidf)[0]
20
- return int(predicted_rating)
21
 
22
- def __call__(self, inputs):
23
- try:
24
- inputs_dict = json.loads(inputs)
25
 
26
- if 'review' not in inputs_dict:
27
- return json.dumps({"error": "No valid review provided"})
28
 
29
- review = inputs_dict['review']
30
 
31
- if not review:
32
- return json.dumps({"error": "No valid review provided"})
 
 
33
 
34
- predicted_rating = self.predict_rating(review)
35
-
36
- response = {
37
- "review": review,
38
- "predicted_rating": predicted_rating
39
- }
40
-
41
- return json.dumps(response)
42
-
43
- except json.JSONDecodeError:
44
- return json.dumps({"error": "Invalid JSON format"})
45
-
46
- except Exception as e:
47
- return json.dumps({"error": str(e)})
48
 
 
 
49
 
 
 
 
1
+ def __call__(self, inputs):
2
+ try:
3
+ inputs_dict = json.loads(inputs)
4
 
5
+ if 'inputs' not in inputs_dict:
6
+ return json.dumps({"error": "No valid inputs provided"})
 
 
 
7
 
8
+ inputs_data = inputs_dict['inputs']
 
 
 
 
9
 
10
+ if 'review' not in inputs_data:
11
+ return json.dumps({"error": "No valid review provided"})
 
 
12
 
13
+ review = inputs_data['review']
 
 
14
 
15
+ if not review:
16
+ return json.dumps({"error": "No valid review provided"})
17
 
18
+ predicted_rating = self.predict_rating(review)
19
 
20
+ response = {
21
+ "review": review,
22
+ "predicted_rating": predicted_rating
23
+ }
24
 
25
+ return json.dumps(response)
 
 
 
 
 
 
 
 
 
 
 
 
 
26
 
27
+ except json.JSONDecodeError:
28
+ return json.dumps({"error": "Invalid JSON format"})
29
 
30
+ except Exception as e:
31
+ return json.dumps({"error": str(e)})