[KC-108] ai api batch 작업중
This commit is contained in:
@@ -391,4 +391,17 @@ public class InferenceDetailDto {
|
|||||||
return PageRequest.of(page, size);
|
return PageRequest.of(page, size);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
@AllArgsConstructor
|
||||||
|
@NoArgsConstructor
|
||||||
|
public static class InferenceBatchSheet {
|
||||||
|
|
||||||
|
private Long m1BatchId;
|
||||||
|
private Long m2BatchId;
|
||||||
|
private Long m3BatchId;
|
||||||
|
private String status;
|
||||||
|
private String runningModelType;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -297,4 +297,17 @@ public class InferenceResultDto {
|
|||||||
return desc;
|
return desc;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
@AllArgsConstructor
|
||||||
|
@NoArgsConstructor
|
||||||
|
public static class SaveInferenceAiDto {
|
||||||
|
|
||||||
|
private UUID uuid;
|
||||||
|
private Long batchId;
|
||||||
|
private String status;
|
||||||
|
private String type;
|
||||||
|
private ZonedDateTime inferStartDttm;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ import com.kamco.cd.kamcoback.inference.dto.InferenceResultDto.InferenceServerSt
|
|||||||
import com.kamco.cd.kamcoback.inference.dto.InferenceResultDto.MapSheetNumDto;
|
import com.kamco.cd.kamcoback.inference.dto.InferenceResultDto.MapSheetNumDto;
|
||||||
import com.kamco.cd.kamcoback.inference.dto.InferenceResultDto.MapSheetScope;
|
import com.kamco.cd.kamcoback.inference.dto.InferenceResultDto.MapSheetScope;
|
||||||
import com.kamco.cd.kamcoback.inference.dto.InferenceResultDto.ResultList;
|
import com.kamco.cd.kamcoback.inference.dto.InferenceResultDto.ResultList;
|
||||||
|
import com.kamco.cd.kamcoback.inference.dto.InferenceResultDto.SaveInferenceAiDto;
|
||||||
import com.kamco.cd.kamcoback.inference.dto.InferenceResultDto.Status;
|
import com.kamco.cd.kamcoback.inference.dto.InferenceResultDto.Status;
|
||||||
import com.kamco.cd.kamcoback.inference.dto.InferenceSendDto;
|
import com.kamco.cd.kamcoback.inference.dto.InferenceSendDto;
|
||||||
import com.kamco.cd.kamcoback.inference.dto.InferenceSendDto.pred_requests_areas;
|
import com.kamco.cd.kamcoback.inference.dto.InferenceSendDto.pred_requests_areas;
|
||||||
@@ -25,6 +26,7 @@ import com.kamco.cd.kamcoback.postgres.core.InferenceResultCoreService;
|
|||||||
import com.kamco.cd.kamcoback.postgres.core.MapSheetMngCoreService;
|
import com.kamco.cd.kamcoback.postgres.core.MapSheetMngCoreService;
|
||||||
import com.kamco.cd.kamcoback.postgres.core.ModelMngCoreService;
|
import com.kamco.cd.kamcoback.postgres.core.ModelMngCoreService;
|
||||||
import jakarta.validation.constraints.NotNull;
|
import jakarta.validation.constraints.NotNull;
|
||||||
|
import java.time.ZonedDateTime;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
@@ -200,7 +202,14 @@ public class InferenceResultService {
|
|||||||
m3.setPred_requests_areas(predRequestsAreas);
|
m3.setPred_requests_areas(predRequestsAreas);
|
||||||
|
|
||||||
Long batchId = this.ensureAccepted(m1);
|
Long batchId = this.ensureAccepted(m1);
|
||||||
inferenceResultCoreService.update(uuid, batchId, Status.IN_PROGRESS.getId());
|
|
||||||
|
SaveInferenceAiDto saveInferenceAiDto = new SaveInferenceAiDto();
|
||||||
|
saveInferenceAiDto.setUuid(uuid);
|
||||||
|
saveInferenceAiDto.setBatchId(batchId);
|
||||||
|
saveInferenceAiDto.setStatus(Status.IN_PROGRESS.getId());
|
||||||
|
saveInferenceAiDto.setType("M1");
|
||||||
|
saveInferenceAiDto.setInferStartDttm(ZonedDateTime.now());
|
||||||
|
inferenceResultCoreService.update(saveInferenceAiDto);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -4,11 +4,13 @@ import com.kamco.cd.kamcoback.common.enums.CommonUseStatus;
|
|||||||
import com.kamco.cd.kamcoback.common.utils.UserUtil;
|
import com.kamco.cd.kamcoback.common.utils.UserUtil;
|
||||||
import com.kamco.cd.kamcoback.inference.dto.InferenceDetailDto;
|
import com.kamco.cd.kamcoback.inference.dto.InferenceDetailDto;
|
||||||
import com.kamco.cd.kamcoback.inference.dto.InferenceDetailDto.Dashboard;
|
import com.kamco.cd.kamcoback.inference.dto.InferenceDetailDto.Dashboard;
|
||||||
|
import com.kamco.cd.kamcoback.inference.dto.InferenceDetailDto.InferenceBatchSheet;
|
||||||
import com.kamco.cd.kamcoback.inference.dto.InferenceDetailDto.MapSheet;
|
import com.kamco.cd.kamcoback.inference.dto.InferenceDetailDto.MapSheet;
|
||||||
import com.kamco.cd.kamcoback.inference.dto.InferenceResultDto;
|
import com.kamco.cd.kamcoback.inference.dto.InferenceResultDto;
|
||||||
import com.kamco.cd.kamcoback.inference.dto.InferenceResultDto.InferenceServerStatusDto;
|
import com.kamco.cd.kamcoback.inference.dto.InferenceResultDto.InferenceServerStatusDto;
|
||||||
import com.kamco.cd.kamcoback.inference.dto.InferenceResultDto.MapSheetNumDto;
|
import com.kamco.cd.kamcoback.inference.dto.InferenceResultDto.MapSheetNumDto;
|
||||||
import com.kamco.cd.kamcoback.inference.dto.InferenceResultDto.ResultList;
|
import com.kamco.cd.kamcoback.inference.dto.InferenceResultDto.ResultList;
|
||||||
|
import com.kamco.cd.kamcoback.inference.dto.InferenceResultDto.SaveInferenceAiDto;
|
||||||
import com.kamco.cd.kamcoback.postgres.entity.MapInkx5kEntity;
|
import com.kamco.cd.kamcoback.postgres.entity.MapInkx5kEntity;
|
||||||
import com.kamco.cd.kamcoback.postgres.entity.MapSheetAnalDataInferenceEntity;
|
import com.kamco.cd.kamcoback.postgres.entity.MapSheetAnalDataInferenceEntity;
|
||||||
import com.kamco.cd.kamcoback.postgres.entity.MapSheetAnalDataInferenceGeomEntity;
|
import com.kamco.cd.kamcoback.postgres.entity.MapSheetAnalDataInferenceGeomEntity;
|
||||||
@@ -218,25 +220,42 @@ public class InferenceResultCoreService {
|
|||||||
.toList();
|
.toList();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void update(UUID uuid, Long batchId, String status) {
|
public void update(SaveInferenceAiDto request) {
|
||||||
MapSheetLearnEntity entity =
|
MapSheetLearnEntity entity =
|
||||||
mapSheetLearnRepository
|
mapSheetLearnRepository
|
||||||
.getInferenceResultByUuid(uuid)
|
.getInferenceResultByUuid(request.getUuid())
|
||||||
.orElseThrow(() -> new EntityNotFoundException(uuid.toString()));
|
.orElseThrow(() -> new EntityNotFoundException());
|
||||||
|
|
||||||
entity.setBatchId(batchId);
|
if (request.getType().equals("M1")) {
|
||||||
entity.setStatus(status);
|
entity.setM1ModelBatchId(request.getBatchId());
|
||||||
|
} else if (request.getType().equals("M2")) {
|
||||||
|
entity.setM2ModelBatchId(request.getBatchId());
|
||||||
|
} else if (request.getType().equals("M3")) {
|
||||||
|
entity.setM3ModelBatchId(request.getBatchId());
|
||||||
|
}
|
||||||
|
|
||||||
|
entity.setStatus(request.getStatus());
|
||||||
|
if (request.getInferStartDttm() != null) {
|
||||||
|
entity.setInferStartDttm(request.getInferStartDttm());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<InferenceServerStatusDto> getInferenceServerStatusList() {
|
public List<InferenceServerStatusDto> getInferenceServerStatusList() {
|
||||||
return mapSheetLearnRepository.getInferenceServerStatusList();
|
return mapSheetLearnRepository.getInferenceServerStatusList();
|
||||||
}
|
}
|
||||||
|
|
||||||
public Long getInferenceResultByStatus(String status) {
|
public InferenceBatchSheet getInferenceResultByStatus(String status) {
|
||||||
MapSheetLearnEntity entity =
|
MapSheetLearnEntity entity =
|
||||||
mapSheetLearnRepository
|
mapSheetLearnRepository
|
||||||
.getInferenceResultByStatus(status)
|
.getInferenceResultByStatus(status)
|
||||||
.orElseThrow(() -> new EntityNotFoundException(status));
|
.orElseThrow(() -> new EntityNotFoundException(status));
|
||||||
return entity.getBatchId();
|
|
||||||
|
InferenceBatchSheet inferenceBatchSheet = new InferenceBatchSheet();
|
||||||
|
inferenceBatchSheet.setM1BatchId(entity.getM1ModelBatchId());
|
||||||
|
inferenceBatchSheet.setM2BatchId(entity.getM2ModelBatchId());
|
||||||
|
inferenceBatchSheet.setM3BatchId(entity.getM3ModelBatchId());
|
||||||
|
inferenceBatchSheet.setStatus(entity.getStatus());
|
||||||
|
inferenceBatchSheet.setRunningModelType(entity.getRunningModelType());
|
||||||
|
return inferenceBatchSheet;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -103,8 +103,20 @@ public class MapSheetLearnEntity {
|
|||||||
@Column(name = "updated_uid")
|
@Column(name = "updated_uid")
|
||||||
private Long updatedUid;
|
private Long updatedUid;
|
||||||
|
|
||||||
@Column(name = "batch_id")
|
@Column(name = "running_model_type")
|
||||||
private Long batchId;
|
private String runningModelType;
|
||||||
|
|
||||||
|
@Column(name = "m1_model_batch_id")
|
||||||
|
private Long m1ModelBatchId;
|
||||||
|
|
||||||
|
@Column(name = "m2_model_batch_id")
|
||||||
|
private Long m2ModelBatchId;
|
||||||
|
|
||||||
|
@Column(name = "m3_model_batch_id")
|
||||||
|
private Long m3ModelBatchId;
|
||||||
|
|
||||||
|
@Column(name = "detect_end_cnt")
|
||||||
|
private Long detectEndCnt;
|
||||||
|
|
||||||
public InferenceResultDto.ResultList toDto() {
|
public InferenceResultDto.ResultList toDto() {
|
||||||
return new InferenceResultDto.ResultList(
|
return new InferenceResultDto.ResultList(
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import com.fasterxml.jackson.core.JsonProcessingException;
|
|||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
import com.kamco.cd.kamcoback.config.resttemplate.ExternalHttpClient;
|
import com.kamco.cd.kamcoback.config.resttemplate.ExternalHttpClient;
|
||||||
import com.kamco.cd.kamcoback.config.resttemplate.ExternalHttpClient.ExternalCallResult;
|
import com.kamco.cd.kamcoback.config.resttemplate.ExternalHttpClient.ExternalCallResult;
|
||||||
|
import com.kamco.cd.kamcoback.inference.dto.InferenceDetailDto.InferenceBatchSheet;
|
||||||
import com.kamco.cd.kamcoback.inference.dto.InferenceResultDto.Status;
|
import com.kamco.cd.kamcoback.inference.dto.InferenceResultDto.Status;
|
||||||
import com.kamco.cd.kamcoback.postgres.core.InferenceResultCoreService;
|
import com.kamco.cd.kamcoback.postgres.core.InferenceResultCoreService;
|
||||||
import com.kamco.cd.kamcoback.scheduler.dto.JobStatusDto;
|
import com.kamco.cd.kamcoback.scheduler.dto.JobStatusDto;
|
||||||
@@ -37,10 +38,10 @@ public class MapSheetInferenceJobService {
|
|||||||
try {
|
try {
|
||||||
// TODO: 배치 로직 작성
|
// TODO: 배치 로직 작성
|
||||||
|
|
||||||
Long batchId =
|
InferenceBatchSheet batchSheet =
|
||||||
inferenceResultCoreService.getInferenceResultByStatus(Status.IN_PROGRESS.getId());
|
inferenceResultCoreService.getInferenceResultByStatus(Status.IN_PROGRESS.getId());
|
||||||
|
|
||||||
if (batchId == null) {
|
if (batchSheet == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -48,6 +49,16 @@ public class MapSheetInferenceJobService {
|
|||||||
headers.setContentType(MediaType.APPLICATION_JSON);
|
headers.setContentType(MediaType.APPLICATION_JSON);
|
||||||
headers.setAccept(List.of(MediaType.APPLICATION_JSON));
|
headers.setAccept(List.of(MediaType.APPLICATION_JSON));
|
||||||
|
|
||||||
|
Long batchId = 0L;
|
||||||
|
|
||||||
|
if (batchSheet.getM3BatchId() != null) {
|
||||||
|
batchId = batchSheet.getM3BatchId();
|
||||||
|
} else if (batchSheet.getM2BatchId() != null) {
|
||||||
|
batchId = batchSheet.getM2BatchId();
|
||||||
|
} else if (batchSheet.getM1BatchId() != null) {
|
||||||
|
batchId = batchSheet.getM1BatchId();
|
||||||
|
}
|
||||||
|
|
||||||
String url = batchUrl + "/" + batchId;
|
String url = batchUrl + "/" + batchId;
|
||||||
|
|
||||||
ExternalCallResult<String> result =
|
ExternalCallResult<String> result =
|
||||||
@@ -61,6 +72,12 @@ public class MapSheetInferenceJobService {
|
|||||||
String json = result.body();
|
String json = result.body();
|
||||||
JobStatusDto dto = objectMapper.readValue(json, JobStatusDto.class);
|
JobStatusDto dto = objectMapper.readValue(json, JobStatusDto.class);
|
||||||
|
|
||||||
|
if ("COMPLETED".equals(dto.getStatus())) {
|
||||||
|
String type = batchSheet.getRunningModelType();
|
||||||
|
|
||||||
|
// if(type.equals("M3"))
|
||||||
|
}
|
||||||
|
|
||||||
System.out.println(dto);
|
System.out.println(dto);
|
||||||
|
|
||||||
Thread.sleep(3000); // 예시: 처리 시간 3초
|
Thread.sleep(3000); // 예시: 처리 시간 3초
|
||||||
|
|||||||
Reference in New Issue
Block a user