aboutsummaryrefslogtreecommitdiff
path: root/backend/api
diff options
context:
space:
mode:
Diffstat (limited to 'backend/api')
-rw-r--r--backend/api/api/Controllers/PredictorController.cs19
-rw-r--r--backend/api/api/Models/Predictor.cs1
-rw-r--r--backend/api/api/Services/IMlConnectionService.cs3
-rw-r--r--backend/api/api/Services/MlConnectionService.cs18
4 files changed, 34 insertions, 7 deletions
diff --git a/backend/api/api/Controllers/PredictorController.cs b/backend/api/api/Controllers/PredictorController.cs
index 233ea401..87c32048 100644
--- a/backend/api/api/Controllers/PredictorController.cs
+++ b/backend/api/api/Controllers/PredictorController.cs
@@ -15,12 +15,14 @@ namespace api.Controllers
private readonly IPredictorService _predictorService;
private IJwtToken jwtToken;
private readonly IMlConnectionService _mlConnectionService;
+ private readonly IExperimentService _experimentService;
- public PredictorController(IPredictorService predictorService, IConfiguration configuration, IJwtToken Token, IMlConnectionService mlConnectionService)
+ public PredictorController(IPredictorService predictorService, IConfiguration configuration, IJwtToken Token, IMlConnectionService mlConnectionService, IExperimentService experimentService)
{
_predictorService = predictorService;
jwtToken = Token;
_mlConnectionService = mlConnectionService;
+ _experimentService = experimentService;
}
public string getUsername()
@@ -160,7 +162,7 @@ namespace api.Controllers
// POST api/<PredictorController>/usepredictor {predictor,inputs}
[HttpPost("usepredictor/{id}")]
[Authorize(Roles = "User,Guest")]
- public ActionResult UsePredictor(String id, [FromBody] PredictorColumns[] inputs)
+ public async Task<ActionResult> UsePredictor(String id, [FromBody] PredictorColumns[] inputs)
{
string username = getUsername();
@@ -168,10 +170,17 @@ namespace api.Controllers
return BadRequest();
Predictor predictor = _predictorService.GetPredictor(username, id);
-
+
+ Experiment e = _experimentService.Get(predictor.experimentId);
+
+ string result = await _mlConnectionService.Predict(predictor, e, inputs);
+
+ //salji ml
+
+ /*
foreach(PredictorColumns i in inputs)
- Debug.WriteLine(i.value.ToString());
- return NoContent();
+ Debug.WriteLine(i.value.ToString());*/
+ return Ok(result);
}
// PUT api/<PredictorController>/{name}
diff --git a/backend/api/api/Models/Predictor.cs b/backend/api/api/Models/Predictor.cs
index b1d6444b..3f9889be 100644
--- a/backend/api/api/Models/Predictor.cs
+++ b/backend/api/api/Models/Predictor.cs
@@ -18,6 +18,7 @@ namespace api.Models
public bool accessibleByLink { get; set; }
public DateTime dateCreated { get; set; }
public string experimentId { get; set; }
+ public string h5FileId { get; set; }
}
}
diff --git a/backend/api/api/Services/IMlConnectionService.cs b/backend/api/api/Services/IMlConnectionService.cs
index d161bf49..d5dda9f2 100644
--- a/backend/api/api/Services/IMlConnectionService.cs
+++ b/backend/api/api/Services/IMlConnectionService.cs
@@ -8,6 +8,9 @@ namespace api.Services
Task<string> SendModelAsync(object model, object dataset);
Task PreProcess(Dataset dataset, string filePath,string id);
Task TrainModel(Model model, Experiment experiment, string filePath, Dataset dataset, string id);
+
+ Task<string> Predict(Predictor predictor, Experiment experiment, PredictorColumns[] inputs);
+
//Task<Dataset> PreProcess(Dataset dataset, byte[] file, string filename);
}
} \ No newline at end of file
diff --git a/backend/api/api/Services/MlConnectionService.cs b/backend/api/api/Services/MlConnectionService.cs
index bde9ce4c..4363b4ad 100644
--- a/backend/api/api/Services/MlConnectionService.cs
+++ b/backend/api/api/Services/MlConnectionService.cs
@@ -14,8 +14,9 @@ namespace api.Services
private readonly IModelService _modelService;
private readonly IHubContext<ChatHub> _ichat;
private readonly IConfiguration _configuration;
+ private readonly IFileService _fileService;
- public MlConnectionService(IConfiguration configuration,IDatasetService datasetService,IHubContext<ChatHub> ichat)
+ public MlConnectionService(IConfiguration configuration,IDatasetService datasetService,IHubContext<ChatHub> ichat, IFileService fileService)
{
_configuration = configuration;
@@ -23,6 +24,7 @@ namespace api.Services
_datasetService=datasetService;
_ichat=ichat;
+ _fileService = fileService;
}
public async Task<string> SendModelAsync(object model, object dataset)//Don't Use
@@ -67,8 +69,20 @@ namespace api.Services
}
-
+ public async Task<string> Predict(Predictor predictor, Experiment experiment, PredictorColumns[] inputs)
+ {
+ string filePath = _fileService.GetFilePath(predictor.h5FileId, predictor.username);
+
+ var request = new RestRequest("predict", Method.Post);
+ request.AddParameter("predictor", JsonConvert.SerializeObject(predictor));
+ request.AddParameter("experiment", JsonConvert.SerializeObject(experiment));
+ request.AddFile("file", filePath);
+ request.AddHeader("Content-Type", "multipart/form-data");
+
+ var result = await this.client.ExecuteAsync(request);
+ return result.Content;
+ }
}
}