모델등록시 JSON파일(상태값) 파싱 추가

This commit is contained in:
Moon
2026-01-12 12:04:10 +09:00
parent 91f27cb699
commit 80e75ae143

View File

@@ -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<Basic> files =
FIleChecker.getFilesFromAllDepth(dirPath, "*", "pth,py", 10, "name", startPos, endPos);
FIleChecker.getFilesFromAllDepth(dirPath, "*", "pth,py,json", 10, "name", startPos, endPos);
for (Basic dto : files) {
// 예: 파일명 출력 및 추가 작업