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
import pandas as pd
import numpy as np
import requests
from datetime import datetime, time
import time as sleep_time
import logging
import json
from fonction import generateModele
print("[INFO] STARTING DAILY USERS MODELS TRAINING")
@ -18,27 +19,6 @@ def generateJsonModel(model:LinearRegression):
json = {"coef":listCoef,"intercept":listIntercept}
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):
response = requests.get(urlGetAllData)
@ -59,27 +39,26 @@ def sendJsonToApi(url,json):
urlGetAllData = "https://codefirst.iut.uca.fr/containers/SmartFit-smartfit_api/ai/data"
while(True):
logging.warning("Info - Début de la boucle")
jsonBack = { "Users" : []}
heure_actuelle = datetime.now().time()
if ( heure_actuelle == time(8, 0)):
logging.warning("Info - Procédure de création des modèles ")
# --- Call Api
dataUser = getUserWithData(url=urlGetAllData)
for user in dataUser["Users"]:
for user in dataUser:
userUUID:any = user["uuid"]
for category in user["categories"]:
jsonTmp = {}
#Mettre la condition longueur ici
jsonTmp["Identifiant"] = user["Identifiant"]
jsonTmp["Info"] = []
model = generateModele(category["infos"])
for category in user["Info"]:
#Mettre la condition longueur ici
model = generateModele(category)
jsonTmp["Info"].append({"Category": category["Category"],"Model" : generateJsonModel(model)})
jsonTmp["uuid"] = userUUID
jsonTmp["category"] = category["name"]
jsonTmp["model"] = json.dumps(generateJsonModel(model))
# Add User
jsonBack["Users"].append(jsonTmp)
sendJsonToApi(urlGetAllData,json.dumps(jsonTmp))
# -- Send Api
sendJsonToApi(urlGetAllData,jsonBack)
logging.warning("Info - Procédure de création des modèles fini ")
else :
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