모델학습관리 > 모델별 진행 상황 API 추가
This commit is contained in:
@@ -14,6 +14,7 @@ import com.kamco.cd.training.model.dto.ModelTrainDetailDto.ModelTrainMetrics;
|
||||
import com.kamco.cd.training.model.dto.ModelTrainDetailDto.ModelValidationMetrics;
|
||||
import com.kamco.cd.training.model.dto.ModelTrainDetailDto.TransferHyperSummary;
|
||||
import com.kamco.cd.training.model.dto.ModelTrainMngDto.Basic;
|
||||
import com.kamco.cd.training.model.dto.ModelTrainMngDto.ModelProgressStepDto;
|
||||
import com.kamco.cd.training.postgres.entity.ModelMasterEntity;
|
||||
import com.kamco.cd.training.postgres.repository.model.ModelConfigRepository;
|
||||
import com.kamco.cd.training.postgres.repository.model.ModelDetailRepository;
|
||||
@@ -102,4 +103,8 @@ public class ModelTrainDetailCoreService {
|
||||
public ModelFileInfo getModelTrainFileInfo(UUID uuid) {
|
||||
return modelDetailRepository.getModelTrainFileInfo(uuid);
|
||||
}
|
||||
|
||||
public List<ModelProgressStepDto> findModelTrainProgressInfo(UUID uuid) {
|
||||
return modelDetailRepository.findModelTrainProgressInfo(uuid);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,6 +9,7 @@ import com.kamco.cd.training.model.dto.ModelTrainDetailDto.ModelTestMetrics;
|
||||
import com.kamco.cd.training.model.dto.ModelTrainDetailDto.ModelTrainMetrics;
|
||||
import com.kamco.cd.training.model.dto.ModelTrainDetailDto.ModelValidationMetrics;
|
||||
import com.kamco.cd.training.model.dto.ModelTrainDetailDto.TransferHyperSummary;
|
||||
import com.kamco.cd.training.model.dto.ModelTrainMngDto.ModelProgressStepDto;
|
||||
import com.kamco.cd.training.postgres.entity.ModelMasterEntity;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
@@ -37,4 +38,6 @@ public interface ModelDetailRepositoryCustom {
|
||||
ModelBestEpoch getModelTrainBestEpoch(UUID uuid);
|
||||
|
||||
ModelFileInfo getModelTrainFileInfo(UUID uuid);
|
||||
|
||||
List<ModelProgressStepDto> findModelTrainProgressInfo(UUID uuid);
|
||||
}
|
||||
|
||||
@@ -19,12 +19,14 @@ import com.kamco.cd.training.model.dto.ModelTrainDetailDto.ModelTestMetrics;
|
||||
import com.kamco.cd.training.model.dto.ModelTrainDetailDto.ModelTrainMetrics;
|
||||
import com.kamco.cd.training.model.dto.ModelTrainDetailDto.ModelValidationMetrics;
|
||||
import com.kamco.cd.training.model.dto.ModelTrainDetailDto.TransferHyperSummary;
|
||||
import com.kamco.cd.training.model.dto.ModelTrainMngDto.ModelProgressStepDto;
|
||||
import com.kamco.cd.training.postgres.entity.ModelMasterEntity;
|
||||
import com.kamco.cd.training.postgres.entity.QModelHyperParamEntity;
|
||||
import com.kamco.cd.training.postgres.entity.QModelMasterEntity;
|
||||
import com.querydsl.core.types.Projections;
|
||||
import com.querydsl.jpa.JPAExpressions;
|
||||
import com.querydsl.jpa.impl.JPAQueryFactory;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
import java.util.UUID;
|
||||
@@ -287,4 +289,70 @@ public class ModelDetailRepositoryImpl implements ModelDetailRepositoryCustom {
|
||||
.where(modelMasterEntity.uuid.eq(uuid))
|
||||
.fetchOne();
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ModelProgressStepDto> findModelTrainProgressInfo(UUID uuid) {
|
||||
ModelMasterEntity entity = findByModelByUUID(uuid);
|
||||
if (entity == null) {
|
||||
return List.of();
|
||||
}
|
||||
|
||||
List<ModelProgressStepDto> steps = new ArrayList<>();
|
||||
|
||||
// 0단계 : 대기 상태
|
||||
steps.add(
|
||||
ModelProgressStepDto.builder()
|
||||
.step(0)
|
||||
.status(TrainStatusType.READY.getId())
|
||||
.startTime(entity.getCreatedDttm())
|
||||
.endTime(null)
|
||||
.isError(false)
|
||||
.build());
|
||||
|
||||
// 1단계 : Train/Validation 실행
|
||||
boolean step1Active =
|
||||
entity.getStep1StrtDttm() != null
|
||||
&& !TrainStatusType.READY.getId().equals(entity.getStep1State());
|
||||
|
||||
if (step1Active) {
|
||||
steps.add(
|
||||
ModelProgressStepDto.builder()
|
||||
.step(1)
|
||||
.status(entity.getStep1State())
|
||||
.startTime(entity.getStep1StrtDttm())
|
||||
.endTime(entity.getStep1EndDttm())
|
||||
.isError(TrainStatusType.ERROR.getId().equals(entity.getStep1State()))
|
||||
.build());
|
||||
}
|
||||
|
||||
// 2단계 : Test 실행
|
||||
boolean step2Done = entity.getStep2State() != null;
|
||||
|
||||
if (step2Done) {
|
||||
steps.add(
|
||||
ModelProgressStepDto.builder()
|
||||
.step(2)
|
||||
.status(entity.getStep2State())
|
||||
.startTime(entity.getStep2StrtDttm())
|
||||
.endTime(entity.getStep2EndDttm())
|
||||
.isError(TrainStatusType.ERROR.getId().equals(entity.getStep2State()))
|
||||
.build());
|
||||
}
|
||||
|
||||
// 3단계 : 패키징
|
||||
boolean step3Done = entity.getPackingState() != null;
|
||||
|
||||
if (step3Done) {
|
||||
steps.add(
|
||||
ModelProgressStepDto.builder()
|
||||
.step(3)
|
||||
.status(entity.getPackingState())
|
||||
.startTime(entity.getPackingStrtDttm())
|
||||
.endTime(entity.getPackingEndDttm())
|
||||
.isError(TrainStatusType.ERROR.getId().equals(entity.getPackingState()))
|
||||
.build());
|
||||
}
|
||||
|
||||
return steps;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user