moahmedwafy commited on
Commit
7d83587
·
1 Parent(s): 1810165

feat: fitness model

Browse files
models-server/models/__pycache__/fitness_model.cpython-312.pyc CHANGED
Binary files a/models-server/models/__pycache__/fitness_model.cpython-312.pyc and b/models-server/models/__pycache__/fitness_model.cpython-312.pyc differ
 
models-server/models/fitness_model.py CHANGED
@@ -1,8 +1,8 @@
1
- import pickle
2
- import os
3
  from sklearn.preprocessing import OneHotEncoder
4
  import random
5
  import pandas as pd
 
 
6
 
7
  SERVER_FILE_DIR = os.path.dirname(os.path.abspath(__file__))
8
  FITNESS_MODEL_PATH = os.path.join(
@@ -250,24 +250,9 @@ class FitnessModel:
250
 
251
  return all_recommendations # Trim to ensure exactly 30 elements
252
 
253
-
254
- class FModel:
255
- def __init__(self):
256
  with open(FITNESS_MODEL_PATH, "rb") as f:
257
- self.model = pickle.load(f)
258
 
259
- def predict(
260
- self,
261
- home_or_gym: int,
262
- level: str,
263
- goal: str,
264
- gender: str,
265
- age: int,
266
- feedback: bool,
267
- old_weight: int,
268
- equipments: list,
269
- ):
270
- print("model", self.model)
271
- return self.model.predict(
272
- home_or_gym, level, goal, gender, age, feedback, old_weight, equipments
273
- )
 
 
 
1
  from sklearn.preprocessing import OneHotEncoder
2
  import random
3
  import pandas as pd
4
+ import os
5
+ import pickle
6
 
7
  SERVER_FILE_DIR = os.path.dirname(os.path.abspath(__file__))
8
  FITNESS_MODEL_PATH = os.path.join(
 
250
 
251
  return all_recommendations # Trim to ensure exactly 30 elements
252
 
253
+ @classmethod
254
+ def load(cls):
 
255
  with open(FITNESS_MODEL_PATH, "rb") as f:
256
+ fitness_model = pickle.load(f)
257
 
258
+ return fitness_model
 
 
 
 
 
 
 
 
 
 
 
 
 
 
models-server/server.py CHANGED
@@ -1,16 +1,16 @@
1
- from flask import Flask, request
2
  from dotenv import load_dotenv
3
  import os
4
- import json
5
- from models.fitness_model import FModel
6
 
7
  load_dotenv()
8
 
 
9
  HOST = os.getenv("MODELS_HOST") or "127.0.0.1"
10
  PORT = os.getenv("MODELS_PORT") or "3030"
11
 
12
- fitness_model = FModel()
13
 
 
14
  app = Flask("model-server")
15
 
16
 
@@ -36,10 +36,10 @@ def fitness_predict():
36
  for paramName in paramNames:
37
  value = request.json.get(paramName)
38
  if value is None:
39
- return json.dumps({"error": f"{paramName} is missing"}), 399
40
  params[paramName] = value
41
 
42
- return json.dump({"result": fitness_model.predict(**params)})
43
 
44
 
45
  if __name__ == "__main__":
 
1
+ from flask import Flask, request, jsonify
2
  from dotenv import load_dotenv
3
  import os
4
+ from models.fitness_model import FitnessModel
 
5
 
6
  load_dotenv()
7
 
8
+
9
  HOST = os.getenv("MODELS_HOST") or "127.0.0.1"
10
  PORT = os.getenv("MODELS_PORT") or "3030"
11
 
 
12
 
13
+ fitness_model = FitnessModel.load()
14
  app = Flask("model-server")
15
 
16
 
 
36
  for paramName in paramNames:
37
  value = request.json.get(paramName)
38
  if value is None:
39
+ return jsonify({"error": f"{paramName} is missing"}), 399
40
  params[paramName] = value
41
 
42
+ return jsonify({"result": fitness_model.predict(**params)})
43
 
44
 
45
  if __name__ == "__main__":