testUnitare-AI (mise en place)
continuous-integration/drone/push Build is passing Details

master
Enzo 1 year ago
parent 4a2be95d98
commit 120fc5704d

@ -0,0 +1,24 @@
from sklearn.linear_model import LinearRegression
import pandas as pd
import numpy as np
def generateModele(dataJson:dict[str,str]):
# -- Préparation des données
arrayBpm = []
arrayStartTime = []
arrayTimeOfActivity = []
for data in dataJson["Data"]:
arrayBpm.append(data["BpmAvg"])
arrayTimeOfActivity.append(data["TimeOfActivity"])
arrayStartTime.append(data["StartTime"])
# -- DataFrame
data = pd.DataFrame({
"Bpm": arrayBpm,
"TimeOfActivity": arrayTimeOfActivity
})
# -- Régression linéaire
model = LinearRegression()
model.fit(np.array(arrayStartTime).reshape(-1,1),data)
return model

@ -1,10 +1,11 @@
from sklearn.linear_model import LinearRegression from sklearn.linear_model import LinearRegression
import pandas as pd
import numpy as np
import requests import requests
from datetime import datetime, time from datetime import datetime, time
import time as sleep_time import time as sleep_time
import logging import logging
import json
from fonction import generateModele
print("[INFO] STARTING DAILY USERS MODELS TRAINING") print("[INFO] STARTING DAILY USERS MODELS TRAINING")
@ -18,27 +19,6 @@ def generateJsonModel(model:LinearRegression):
json = {"coef":listCoef,"intercept":listIntercept} json = {"coef":listCoef,"intercept":listIntercept}
return json return json
def generateModele(dataJson:dict[str,str]):
# -- Préparation des données
arrayBpm = []
arrayStartTime = []
arrayTimeOfActivity = []
for data in dataJson["Data"]:
arrayBpm.append(data["BpmAvg"])
arrayTimeOfActivity.append(data["TimeOfActivity"])
arrayStartTime.append(data["StartTime"])
# -- DataFrame
data = pd.DataFrame({
"Bpm": arrayBpm,
"TimeOfActivity": arrayTimeOfActivity
})
# -- Régression linéaire
model = LinearRegression()
model.fit(np.array(arrayStartTime).reshape(-1,1),data)
return model
def getUserWithData(url:str): def getUserWithData(url:str):
response = requests.get(urlGetAllData) response = requests.get(urlGetAllData)
@ -59,27 +39,26 @@ def sendJsonToApi(url,json):
urlGetAllData = "https://codefirst.iut.uca.fr/containers/SmartFit-smartfit_api/ai/data" urlGetAllData = "https://codefirst.iut.uca.fr/containers/SmartFit-smartfit_api/ai/data"
while(True): while(True):
logging.warning("Info - Début de la boucle") logging.warning("Info - Début de la boucle")
jsonBack = { "Users" : []}
heure_actuelle = datetime.now().time() heure_actuelle = datetime.now().time()
if ( heure_actuelle == time(8, 0)): if ( heure_actuelle == time(8, 0)):
logging.warning("Info - Procédure de création des modèles ") logging.warning("Info - Procédure de création des modèles ")
# --- Call Api # --- Call Api
dataUser = getUserWithData(url=urlGetAllData) dataUser = getUserWithData(url=urlGetAllData)
for user in dataUser["Users"]: for user in dataUser:
userUUID:any = user["uuid"]
for category in user["categories"]:
jsonTmp = {} jsonTmp = {}
#Mettre la condition longueur ici
jsonTmp["Identifiant"] = user["Identifiant"] model = generateModele(category["infos"])
jsonTmp["Info"] = []
for category in user["Info"]: jsonTmp["uuid"] = userUUID
#Mettre la condition longueur ici jsonTmp["category"] = category["name"]
model = generateModele(category) jsonTmp["model"] = json.dumps(generateJsonModel(model))
jsonTmp["Info"].append({"Category": category["Category"],"Model" : generateJsonModel(model)})
# Add User sendJsonToApi(urlGetAllData,json.dumps(jsonTmp))
jsonBack["Users"].append(jsonTmp)
# -- Send Api # -- Send Api
sendJsonToApi(urlGetAllData,jsonBack)
logging.warning("Info - Procédure de création des modèles fini ") logging.warning("Info - Procédure de création des modèles fini ")
else : else :
logging.warning("Info - Début sleep") logging.warning("Info - Début sleep")

@ -0,0 +1,9 @@
import unittest
from fonction import generateModele
class Testing(unittest.TestCase):
def test_model(self):
self.assertEqual(generateModele(),1)
if __name__ == '__main__':
unittest.main()
Loading…
Cancel
Save