| @@ -4,6 +4,7 @@ import com.ruoyi.common.core.web.domain.AjaxResult; | |||||
| import com.ruoyi.platform.domain.ModelDependency1; | import com.ruoyi.platform.domain.ModelDependency1; | ||||
| import com.ruoyi.platform.service.ModelsService; | import com.ruoyi.platform.service.ModelsService; | ||||
| import com.ruoyi.platform.vo.ModelsVo; | import com.ruoyi.platform.vo.ModelsVo; | ||||
| import com.ruoyi.platform.vo.QueryModelMetricsVo; | |||||
| import io.swagger.annotations.Api; | import io.swagger.annotations.Api; | ||||
| import io.swagger.annotations.ApiOperation; | import io.swagger.annotations.ApiOperation; | ||||
| import org.springframework.core.io.InputStreamResource; | import org.springframework.core.io.InputStreamResource; | ||||
| @@ -88,8 +89,8 @@ public class NewModelFromGitController { | |||||
| @PostMapping("/queryVersionsMetrics") | @PostMapping("/queryVersionsMetrics") | ||||
| @ApiOperation("查询版本指标") | @ApiOperation("查询版本指标") | ||||
| public AjaxResult queryVersionsMetrics(@RequestBody List<ModelDependency1> params, @RequestParam("type") String type) throws Exception { | |||||
| return AjaxResult.success(this.modelsService.queryVersionsMetrics(params, type)); | |||||
| public AjaxResult queryVersionsMetrics(@RequestBody QueryModelMetricsVo queryModelMetricsVo) throws Exception { | |||||
| return AjaxResult.success(this.modelsService.queryVersionsMetrics(queryModelMetricsVo)); | |||||
| } | } | ||||
| @@ -28,7 +28,4 @@ public class ModelDependency1 implements Serializable { | |||||
| private Integer state; | private Integer state; | ||||
| private String meta; | private String meta; | ||||
| @TableField(exist = false) | |||||
| private List<String> metrics; | |||||
| } | } | ||||
| @@ -6,6 +6,7 @@ import com.ruoyi.platform.domain.Models; | |||||
| import com.ruoyi.platform.domain.ModelsVersion; | import com.ruoyi.platform.domain.ModelsVersion; | ||||
| import com.ruoyi.platform.vo.ModelDependency1TreeVo; | import com.ruoyi.platform.vo.ModelDependency1TreeVo; | ||||
| import com.ruoyi.platform.vo.ModelsVo; | import com.ruoyi.platform.vo.ModelsVo; | ||||
| import com.ruoyi.platform.vo.QueryModelMetricsVo; | |||||
| import org.springframework.core.io.InputStreamResource; | import org.springframework.core.io.InputStreamResource; | ||||
| import org.springframework.data.domain.Page; | import org.springframework.data.domain.Page; | ||||
| import org.springframework.data.domain.PageRequest; | import org.springframework.data.domain.PageRequest; | ||||
| @@ -102,7 +103,7 @@ public interface ModelsService { | |||||
| Page<Map<String, Object>> queryVersions(PageRequest pageRequest, String identifier, String owner, String type) throws Exception; | Page<Map<String, Object>> queryVersions(PageRequest pageRequest, String identifier, String owner, String type) throws Exception; | ||||
| List<Object> queryVersionsMetrics(List<ModelDependency1> params, String type) throws Exception; | |||||
| List<Object> queryVersionsMetrics(QueryModelMetricsVo queryModelMetricsVo) throws Exception; | |||||
| List<Map<String, Object>> getVersionList(String identifier, String owner) throws Exception; | List<Map<String, Object>> getVersionList(String identifier, String owner) throws Exception; | ||||
| @@ -1030,35 +1030,38 @@ public class ModelsServiceImpl implements ModelsService { | |||||
| } | } | ||||
| @Override | @Override | ||||
| public List<Object> queryVersionsMetrics(List<ModelDependency1> params, String type) { | |||||
| public List<Object> queryVersionsMetrics(QueryModelMetricsVo queryModelMetricsVo) { | |||||
| List<Object> batchMetrics = new ArrayList<>(); | List<Object> batchMetrics = new ArrayList<>(); | ||||
| for (ModelDependency1 model : params) { | |||||
| ModelDependency1 modelDependency1 = modelDependency1Dao.queryByRepoAndVersion(model.getRepoId(), model.getIdentifier(), model.getVersion()); | |||||
| for (String version : queryModelMetricsVo.getVersions()) { | |||||
| ModelDependency1 modelDependency1 = modelDependency1Dao.queryByRepoAndVersion(queryModelMetricsVo.getRepoId(), queryModelMetricsVo.getIdentifier(), version); | |||||
| ModelMetaVo modelMetaVo = JSON.parseObject(modelDependency1.getMeta(), ModelMetaVo.class); | ModelMetaVo modelMetaVo = JSON.parseObject(modelDependency1.getMeta(), ModelMetaVo.class); | ||||
| HashMap<String, Object> metrics = modelMetaVo.getMetricsParams(); | HashMap<String, Object> metrics = modelMetaVo.getMetricsParams(); | ||||
| List<String> needMetrics = model.getMetrics(); | |||||
| List<String> needMetrics = queryModelMetricsVo.getMetrics(); | |||||
| ArrayList<Map<String, Object>> result = new ArrayList<>(); | ArrayList<Map<String, Object>> result = new ArrayList<>(); | ||||
| if (Constant.Type_Train.equals(type)) { | |||||
| if (Constant.Type_Train.equals(queryModelMetricsVo.getType())) { | |||||
| List<List<Map<String, Object>>> tarinDetail = (List<List<Map<String, Object>>>) metrics.get("tarinDetail"); | List<List<Map<String, Object>>> tarinDetail = (List<List<Map<String, Object>>>) metrics.get("tarinDetail"); | ||||
| List<Map<String, Object>> trainMetrics = tarinDetail.get(0); | |||||
| for (Map<String, Object> trainMetric : trainMetrics) { | |||||
| if (needMetrics.contains((String) trainMetric.get("name"))) { | |||||
| result.add(trainMetric); | |||||
| if (tarinDetail != null && tarinDetail.size() > 0) { | |||||
| List<Map<String, Object>> trainMetrics = tarinDetail.get(0); | |||||
| for (Map<String, Object> trainMetric : trainMetrics) { | |||||
| if (needMetrics.contains((String) trainMetric.get("name"))) { | |||||
| result.add(trainMetric); | |||||
| } | |||||
| } | } | ||||
| batchMetrics.add(result); | |||||
| } | } | ||||
| batchMetrics.add(result); | |||||
| } else { | } else { | ||||
| List<List<Map<String, Object>>> evaluateDetail = (List<List<Map<String, Object>>>) metrics.get("evaluateDetail"); | List<List<Map<String, Object>>> evaluateDetail = (List<List<Map<String, Object>>>) metrics.get("evaluateDetail"); | ||||
| List<Map<String, Object>> evaluateMetrics = evaluateDetail.get(0); | |||||
| if (evaluateDetail != null && evaluateDetail.size() > 0) { | |||||
| List<Map<String, Object>> evaluateMetrics = evaluateDetail.get(0); | |||||
| for (Map<String, Object> trainMetric : evaluateMetrics) { | |||||
| if (needMetrics.contains((String) trainMetric.get("name"))) { | |||||
| result.add(trainMetric); | |||||
| for (Map<String, Object> trainMetric : evaluateMetrics) { | |||||
| if (needMetrics.contains((String) trainMetric.get("name"))) { | |||||
| result.add(trainMetric); | |||||
| } | |||||
| } | } | ||||
| batchMetrics.add(result); | |||||
| } | } | ||||
| batchMetrics.add(result); | |||||
| } | } | ||||
| } | } | ||||
| return batchMetrics; | return batchMetrics; | ||||
| @@ -0,0 +1,22 @@ | |||||
| package com.ruoyi.platform.vo; | |||||
| import com.fasterxml.jackson.databind.PropertyNamingStrategy; | |||||
| import com.fasterxml.jackson.databind.annotation.JsonNaming; | |||||
| import lombok.Data; | |||||
| import java.util.List; | |||||
| @Data | |||||
| @JsonNaming(PropertyNamingStrategy.SnakeCaseStrategy.class) | |||||
| public class QueryModelMetricsVo { | |||||
| private Integer repoId; | |||||
| private String identifier; | |||||
| private List<String> versions; | |||||
| private List<String> metrics; | |||||
| private String type; | |||||
| } | |||||