diff options
Diffstat (limited to 'backend/api')
-rw-r--r-- | backend/api/api/Controllers/PredictorController.cs | 19 | ||||
-rw-r--r-- | backend/api/api/Models/Predictor.cs | 1 | ||||
-rw-r--r-- | backend/api/api/Services/IMlConnectionService.cs | 3 | ||||
-rw-r--r-- | backend/api/api/Services/MlConnectionService.cs | 18 |
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; + } } } |