Spaces:
Running
Running
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 |
-
|
| 255 |
-
def __init__(self):
|
| 256 |
with open(FITNESS_MODEL_PATH, "rb") as f:
|
| 257 |
-
|
| 258 |
|
| 259 |
-
|
| 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
|
| 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
|
| 40 |
params[paramName] = value
|
| 41 |
|
| 42 |
-
return
|
| 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__":
|