diff --git a/src/main/java/com/kamco/cd/kamcoback/model/service/ModelMngService.java b/src/main/java/com/kamco/cd/kamcoback/model/service/ModelMngService.java index d32059b7..f8108745 100644 --- a/src/main/java/com/kamco/cd/kamcoback/model/service/ModelMngService.java +++ b/src/main/java/com/kamco/cd/kamcoback/model/service/ModelMngService.java @@ -1,5 +1,7 @@ package com.kamco.cd.kamcoback.model.service; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; import com.kamco.cd.kamcoback.common.utils.FIleChecker; import com.kamco.cd.kamcoback.common.utils.FIleChecker.Basic; import com.kamco.cd.kamcoback.config.api.ApiResponseDto; @@ -10,6 +12,8 @@ import com.kamco.cd.kamcoback.postgres.core.ModelMngCoreService; import com.kamco.cd.kamcoback.upload.dto.UploadDto; import com.kamco.cd.kamcoback.upload.service.UploadService; import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; import java.time.LocalDate; import java.util.List; import java.util.UUID; @@ -81,6 +85,30 @@ public class ModelMngService { modelMetricAddReq.setLoss(0); modelMetricAddReq.setIou(0); + ObjectMapper mapper = new ObjectMapper(); + String filePath = addReq.getClsModelPath()+addReq.getClsModelFileName(); + String dataJson = null; + try { + dataJson = Files.readString(Path.of(filePath)); + JsonNode node = mapper.readTree(dataJson); + + double f1_score = node.get("properties").get("f1_score").asDouble(); + double precision = node.get("properties").get("precision").asDouble(); + double recall = node.get("properties").get("recall").asDouble(); + double loss = node.get("properties").get("loss").asDouble(); + double iou = node.get("properties").get("iou").asDouble(); + + modelMetricAddReq.setF1Score(f1_score); + modelMetricAddReq.setPrecision(precision); + modelMetricAddReq.setRecall(recall); + modelMetricAddReq.setLoss(loss); + modelMetricAddReq.setIou(iou); + + } catch (IOException e) { + return new ApiResponseDto.ResponseObj("fail", "JSON파일 오류"); + } + + modelMngCoreService.insertModelResultMetric(modelMetricAddReq); return new ApiResponseDto.ResponseObj(ApiResponseDto.ApiResponseCode.OK, "등록되었습니다."); @@ -121,7 +149,7 @@ public class ModelMngService { int endPos = 20; List files = - FIleChecker.getFilesFromAllDepth(dirPath, "*", "pth,py", 10, "name", startPos, endPos); + FIleChecker.getFilesFromAllDepth(dirPath, "*", "pth,py,json", 10, "name", startPos, endPos); for (Basic dto : files) { // 예: 파일명 출력 및 추가 작업