aboutsummaryrefslogtreecommitdiff
path: root/backend/api
diff options
context:
space:
mode:
Diffstat (limited to 'backend/api')
-rw-r--r--backend/api/api/Controllers/ExperimentController.cs10
-rw-r--r--backend/api/api/Controllers/ModelController.cs10
-rw-r--r--backend/api/api/Controllers/PredictorController.cs5
-rw-r--r--backend/api/api/Models/Experiment.cs1
-rw-r--r--backend/api/api/Models/Model.cs4
-rw-r--r--backend/api/api/Models/Predictor.cs3
-rw-r--r--backend/api/api/Services/ExperimentService.cs4
-rw-r--r--backend/api/api/Services/IMlConnectionService.cs4
-rw-r--r--backend/api/api/Services/IModelService.cs1
-rw-r--r--backend/api/api/Services/MlConnectionService.cs55
-rw-r--r--backend/api/api/Services/ModelService.cs4
11 files changed, 28 insertions, 73 deletions
diff --git a/backend/api/api/Controllers/ExperimentController.cs b/backend/api/api/Controllers/ExperimentController.cs
index 190c0e01..5cf10eb2 100644
--- a/backend/api/api/Controllers/ExperimentController.cs
+++ b/backend/api/api/Controllers/ExperimentController.cs
@@ -38,15 +38,7 @@ namespace api.Controllers
var parameter = headerValue.Parameter;
uploaderId = jwtToken.TokenToId(parameter);
if (uploaderId == null)
- return null;
- else
- {
- FileModel fileModel = _fileService.getFile(experiment.fileId);
- experiment.isPreProcess = false;
- _experimentService.Create(experiment);
- _mlConnectionService.PreProcess(experiment, fileModel.path);
- return Ok();
- }
+ return BadRequest();
}
else
return BadRequest();
diff --git a/backend/api/api/Controllers/ModelController.cs b/backend/api/api/Controllers/ModelController.cs
index 8031700a..eb40bf43 100644
--- a/backend/api/api/Controllers/ModelController.cs
+++ b/backend/api/api/Controllers/ModelController.cs
@@ -45,15 +45,15 @@ namespace api.Controllers
var parameter = headerValue.Parameter;
uploaderId = jwtToken.TokenToId(parameter);
if (uploaderId == null)
- return null;
+ return BadRequest();
}
else
return BadRequest();
var experiment=_experimentService.Get(model.experimentId);
var dataset = _datasetService.GetOneDataset(experiment.datasetId);
var filepath = _fileService.GetFilePath(dataset.fileId, uploaderId);
- var result = await _mlService.SendModelAsync(model, filepath);
- return Ok(result);
+ _mlService.TrainModel(model,experiment,filepath);//To do Obavestiti korisnika kada se model istrenira
+ return Ok();
}
// GET: api/<ModelController>/mymodels
@@ -161,10 +161,8 @@ namespace api.Controllers
return NotFound($"Model with name = {model.name} exisits");
else
{
- FileModel fileModel = _fileService.getFile(model.fileId);
- model.isPreProcess = false;
+ model.isTrained = false;
_modelService.Create(model);
- _mlConnectionService.PreProcess(model, fileModel.path);
//return Ok();
if (existingModel == null)
_modelService.Create(model);
diff --git a/backend/api/api/Controllers/PredictorController.cs b/backend/api/api/Controllers/PredictorController.cs
index 20d8f962..8feef725 100644
--- a/backend/api/api/Controllers/PredictorController.cs
+++ b/backend/api/api/Controllers/PredictorController.cs
@@ -188,11 +188,6 @@ namespace api.Controllers
_predictorService.Create(predictor);
return CreatedAtAction(nameof(Get), new { id = predictor._id }, predictor);
- FileModel fileModel = _fileService.getFile(predictor.fileId);
- predictor.isPreProcess = false;
- _predictorService.Create(predictor);
- _mlConnectionService.PreProcess(predictor, fileModel.path);
- return Ok();
}
}
diff --git a/backend/api/api/Models/Experiment.cs b/backend/api/api/Models/Experiment.cs
index 903d6dae..688813a0 100644
--- a/backend/api/api/Models/Experiment.cs
+++ b/backend/api/api/Models/Experiment.cs
@@ -19,7 +19,6 @@ namespace api.Models
public string nullValues { get; set; }
public NullValues[] nullValuesReplacers { get; set; }
public string fileId { get; set; }
- public bool isPreProcess { get; set; }
}
}
diff --git a/backend/api/api/Models/Model.cs b/backend/api/api/Models/Model.cs
index e4e66a86..b169dddf 100644
--- a/backend/api/api/Models/Model.cs
+++ b/backend/api/api/Models/Model.cs
@@ -37,9 +37,7 @@ namespace api.Models
public string[] metrics { get; set; }
public int epochs { get; set; }
-
- public bool isPreProcess { get; set; }
- public string fileId { get; set; }
+ public bool isTrained { get; set; }
//public NullValues[] nullValues { get; set; }
}
}
diff --git a/backend/api/api/Models/Predictor.cs b/backend/api/api/Models/Predictor.cs
index d4ee9fa7..911a9aee 100644
--- a/backend/api/api/Models/Predictor.cs
+++ b/backend/api/api/Models/Predictor.cs
@@ -18,8 +18,7 @@ namespace api.Models
public bool accessibleByLink { get; set; }
public DateTime dateCreated { get; set; }
public string experimentId { get; set; }
- public string fileId { get; set; }
- public bool isPreProcess { get; set; }
+
}
}
diff --git a/backend/api/api/Services/ExperimentService.cs b/backend/api/api/Services/ExperimentService.cs
index c9de233e..f7f61136 100644
--- a/backend/api/api/Services/ExperimentService.cs
+++ b/backend/api/api/Services/ExperimentService.cs
@@ -23,9 +23,9 @@ namespace api.Services
return _experiment.Find(exp=>exp._id == id).FirstOrDefault();
}
- public void Update(string username, string name, Experiment experiment)
+ public void Update(string id, Experiment experiment)
{
- _experiment.ReplaceOne(experiment => experiment.username == username && experiment.name == name, experiment);
+ _experiment.ReplaceOne(experiment => experiment._id == id, experiment);
}
}
}
diff --git a/backend/api/api/Services/IMlConnectionService.cs b/backend/api/api/Services/IMlConnectionService.cs
index e1529cc5..5edc5554 100644
--- a/backend/api/api/Services/IMlConnectionService.cs
+++ b/backend/api/api/Services/IMlConnectionService.cs
@@ -7,9 +7,7 @@ namespace api.Services
{
Task<string> SendModelAsync(object model, object dataset);
Task PreProcess(Dataset dataset, string filePath);
- Task PreProcess(Experiment experiment, string filePath);
- Task PreProcess(Predictor predictor, string filePath);
- Task PreProcess(Model model, string filePath);
+ Task TrainModel(Model model, Experiment experiment, string filePath);
//Task<Dataset> PreProcess(Dataset dataset, byte[] file, string filename);
}
} \ No newline at end of file
diff --git a/backend/api/api/Services/IModelService.cs b/backend/api/api/Services/IModelService.cs
index 3e70a1c3..86aa5b56 100644
--- a/backend/api/api/Services/IModelService.cs
+++ b/backend/api/api/Services/IModelService.cs
@@ -13,6 +13,7 @@ namespace api.Services
Model Create(Model model);
Model Replace(Model model);
void Update(string username, string name, Model model);
+ public void Update(string id, Model model);
void Delete(string username, string name);
bool CheckHyperparameters(int inputNeurons, int hiddenLayerNeurons, int hiddenLayers, int outputNeurons);
}
diff --git a/backend/api/api/Services/MlConnectionService.cs b/backend/api/api/Services/MlConnectionService.cs
index 146afd85..fb42965b 100644
--- a/backend/api/api/Services/MlConnectionService.cs
+++ b/backend/api/api/Services/MlConnectionService.cs
@@ -10,6 +10,7 @@ namespace api.Services
{
private RestClient client;
private readonly IDatasetService _datasetService;
+ private readonly IModelService _modelService;
public MlConnectionService(IDatasetService datasetService)
{
@@ -17,55 +18,38 @@ namespace api.Services
_datasetService=datasetService;
}
- public async Task<string> SendModelAsync(object model, object dataset)
+ public async Task<string> SendModelAsync(object model, object dataset)//Don't Use
{
var request = new RestRequest("train", Method.Post);
request.AddJsonBody(new { model, dataset});
var result = await this.client.ExecuteAsync(request);
return result.Content; //Response od ML microservisa
}
- public async Task PreProcess(Dataset dataset,string filePath)//(Dataset dataset,byte[] file,string filename)
- {
- var request=new RestRequest("preprocess", Method.Post);
- request.AddParameter("dataset", JsonConvert.SerializeObject(dataset));
- //request.AddFile("file", file,filename);
- request.AddFile("file", filePath);
- request.AddHeader("Content-Type", "multipart/form-data");
- var result=await this.client.ExecuteAsync(request);
-
- Dataset newDataset = JsonConvert.DeserializeObject<Dataset>(result.Content);
- newDataset.isPreProcess = true;
- _datasetService.Update(newDataset);
-
- return;
-
- }
-
- /*public async Task PreProcess(Experiment experiment, string filePath)//(Dataset dataset,byte[] file,string filename)
+ public async Task TrainModel(Model model, Experiment experiment, string filePath)
{
- var request = new RestRequest("preprocess", Method.Post);
- request.AddParameter("dataset", JsonConvert.SerializeObject(experiment));
+ var request = new RestRequest("train", Method.Post);
+ request.AddParameter("model", JsonConvert.SerializeObject(model));
+ request.AddParameter("experiment", JsonConvert.SerializeObject(experiment));
//request.AddFile("file", file,filename);
request.AddFile("file", filePath);
request.AddHeader("Content-Type", "multipart/form-data");
var result = await this.client.ExecuteAsync(request);
- Dataset newDataset = JsonConvert.DeserializeObject<Dataset>(result.Content);
- newDataset.isPreProcess = true;
- _experimentService.Update(newDataset);
+ Model newModel = JsonConvert.DeserializeObject<Model>(result.Content);
+ newModel.isTrained = true;
+ _modelService.Update(newModel._id, newModel);
return;
}
-
- public async Task PreProcess(Predictor predictor, string filePath)//(Dataset dataset,byte[] file,string filename)
+ public async Task PreProcess(Dataset dataset,string filePath)//(Dataset dataset,byte[] file,string filename)
{
- var request = new RestRequest("preprocess", Method.Post);
+ var request=new RestRequest("preprocess", Method.Post);
request.AddParameter("dataset", JsonConvert.SerializeObject(dataset));
//request.AddFile("file", file,filename);
request.AddFile("file", filePath);
request.AddHeader("Content-Type", "multipart/form-data");
- var result = await this.client.ExecuteAsync(request);
+ var result=await this.client.ExecuteAsync(request);
Dataset newDataset = JsonConvert.DeserializeObject<Dataset>(result.Content);
newDataset.isPreProcess = true;
@@ -75,21 +59,8 @@ namespace api.Services
}
- public async Task PreProcess(Model model, string filePath)//(Dataset dataset,byte[] file,string filename)
- {
- var request = new RestRequest("preprocess", Method.Post);
- request.AddParameter("dataset", JsonConvert.SerializeObject(dataset));
- //request.AddFile("file", file,filename);
- request.AddFile("file", filePath);
- request.AddHeader("Content-Type", "multipart/form-data");
- var result = await this.client.ExecuteAsync(request);
-
- Dataset newDataset = JsonConvert.DeserializeObject<Dataset>(result.Content);
- newDataset.isPreProcess = true;
- _datasetService.Update(newDataset);
+
- return;
- }*/
}
}
diff --git a/backend/api/api/Services/ModelService.cs b/backend/api/api/Services/ModelService.cs
index c2b4e692..daba2855 100644
--- a/backend/api/api/Services/ModelService.cs
+++ b/backend/api/api/Services/ModelService.cs
@@ -64,6 +64,10 @@ namespace api.Services
{
_model.ReplaceOne(model => model.username == username && model.name == name, model);
}
+ public void Update(string id, Model model)
+ {
+ _model.ReplaceOne(model => model._id == id, model);
+ }
//
public bool CheckHyperparameters(int inputNeurons, int hiddenLayerNeurons, int hiddenLayers, int outputNeurons)
{