diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/autoML/AutoMlInsController.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/autoML/AutoMlInsController.java index 125fd668..874ec59c 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/autoML/AutoMlInsController.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/autoML/AutoMlInsController.java @@ -52,4 +52,10 @@ public class AutoMlInsController extends BaseController { public GenericsAjaxResult terminateAutoMlIns(@PathVariable("id") Long id) { return genericsSuccess(this.autoMLInsService.terminateAutoMlIns(id)); } + + @GetMapping("{id}") + @ApiOperation("查看实验实例详情") + public GenericsAjaxResult getDetailById(@PathVariable("id") Long id) { + return genericsSuccess(this.autoMLInsService.getDetailById(id)); + } } diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/AutoMlInsService.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/AutoMlInsService.java index d4956a22..bb417ed2 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/AutoMlInsService.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/AutoMlInsService.java @@ -21,4 +21,6 @@ public interface AutoMlInsService { AutoMlIns queryStatusFromArgo(AutoMlIns autoMlIns); boolean terminateAutoMlIns(Long id); + + AutoMlIns getDetailById(Long id); } diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/AutoMlInsServiceImpl.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/AutoMlInsServiceImpl.java index 3d11123e..cd01b672 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/AutoMlInsServiceImpl.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/AutoMlInsServiceImpl.java @@ -87,7 +87,6 @@ public class AutoMlInsServiceImpl implements AutoMlInsService { public AutoMlIns queryStatusFromArgo(AutoMlIns ins) { String namespace = ins.getArgoInsNs(); String name = ins.getArgoInsName(); - Long id = ins.getId(); // 创建请求数据map Map requestData = new HashMap<>(); @@ -140,11 +139,11 @@ public class AutoMlInsServiceImpl implements AutoMlInsService { ins.setNodeStatus(nodeStatusJson); //终止态为终止不改 - if (!StringUtils.equals(ins.getStatus(), "Terminated")) { - ins.setStatus(StringUtils.isNotEmpty((String) status.get("phase")) ? (String) status.get("phase") : "Pending"); + if (!StringUtils.equals(ins.getStatus(), Constant.Terminated)) { + ins.setStatus(StringUtils.isNotEmpty((String) status.get("phase")) ? (String) status.get("phase") : Constant.Pending); } if (StringUtils.equals(ins.getStatus(), "Error")) { - ins.setStatus("Failed"); + ins.setStatus(Constant.Failed); } return ins; } catch (Exception e) { @@ -223,4 +222,9 @@ public class AutoMlInsServiceImpl implements AutoMlInsService { throw new RuntimeException("终止实例错误: " + e.getMessage(), e); } } + + @Override + public AutoMlIns getDetailById(Long id) { + return null; + } } diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/AutoMlServiceImpl.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/AutoMlServiceImpl.java index 4b7e58e9..97aea010 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/AutoMlServiceImpl.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/AutoMlServiceImpl.java @@ -27,6 +27,7 @@ import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import java.io.File; import java.io.IOException; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -43,6 +44,9 @@ public class AutoMlServiceImpl implements AutoMlService { @Value("${argo.workflowRun}") private String argoWorkflowRun; + @Value("${minio.endpoint}") + private String minioEndpoint; + @Resource private AutoMlDao autoMlDao; @@ -81,8 +85,7 @@ public class AutoMlServiceImpl implements AutoMlService { } AutoMl autoMl = new AutoMl(); BeanUtils.copyProperties(autoMlVo, autoMl); -// String username = SecurityUtils.getLoginUser().getUsername(); - String username = "admin"; + String username = SecurityUtils.getLoginUser().getUsername(); autoMl.setUpdateBy(username); String datasetJson = JacksonUtil.toJSONString(autoMlVo.getDataset()); autoMl.setDataset(datasetJson); @@ -123,8 +126,7 @@ public class AutoMlServiceImpl implements AutoMlService { public Map upload(MultipartFile file, String uuid) throws Exception { Map result = new HashMap<>(); -// String username = SecurityUtils.getLoginUser().getUsername(); - String username = "admin"; + String username = SecurityUtils.getLoginUser().getUsername(); String fileName = file.getOriginalFilename(); String path = localPath + "temp/" + username + "/automl_data/" + uuid; long sizeInBytes = file.getSize(); @@ -186,6 +188,18 @@ public class AutoMlServiceImpl implements AutoMlService { //替换argoInsName String outputString = JsonUtils.mapToJson(output); autoMlIns.setNodeResult(outputString.replace("{{workflow.name}}", (String) metadata.get("name"))); + + Map param_output = (Map) output.get("param_output"); + List output1 = (ArrayList) param_output.values().toArray()[0]; + Map output2 = (Map) output1.get(0); + String outputPath = minioEndpoint + "/" + output2.get("path").replace("{{workflow.name}}", (String) metadata.get("name")) + "/"; + autoMlIns.setModelPath(outputPath + "save_model.joblib"); + if (Constant.AutoMl_Classification.equals(autoMl.getTaskType())) { + autoMlIns.setImgPath(outputPath + "Auto-sklearn_accuracy_over_time.png" + "," + outputPath + "Train_Confusion_Matrix.png" + "," + outputPath + "Test_Confusion_Matrix.png"); + } else { + autoMlIns.setImgPath(outputPath + "Auto-sklearn_accuracy_over_time.png" + "," + outputPath + "regression.png"); + } + autoMlInsDao.insert(autoMlIns); } catch (Exception e) {