Browse Source

优化查询模型版本指标对比

dev-czh
chenzhihang 1 year ago
parent
commit
9d9c1eff48
5 changed files with 46 additions and 22 deletions
  1. +3
    -2
      ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/model/NewModelFromGitController.java
  2. +0
    -3
      ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/domain/ModelDependency1.java
  3. +2
    -1
      ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/ModelsService.java
  4. +19
    -16
      ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ModelsServiceImpl.java
  5. +22
    -0
      ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/vo/QueryModelMetricsVo.java

+ 3
- 2
ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/model/NewModelFromGitController.java View File

@@ -4,6 +4,7 @@ import com.ruoyi.common.core.web.domain.AjaxResult;
import com.ruoyi.platform.domain.ModelDependency1;
import com.ruoyi.platform.service.ModelsService;
import com.ruoyi.platform.vo.ModelsVo;
import com.ruoyi.platform.vo.QueryModelMetricsVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.core.io.InputStreamResource;
@@ -88,8 +89,8 @@ public class NewModelFromGitController {

@PostMapping("/queryVersionsMetrics")
@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));
}




+ 0
- 3
ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/domain/ModelDependency1.java View File

@@ -28,7 +28,4 @@ public class ModelDependency1 implements Serializable {
private Integer state;

private String meta;

@TableField(exist = false)
private List<String> metrics;
}

+ 2
- 1
ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/ModelsService.java View File

@@ -6,6 +6,7 @@ import com.ruoyi.platform.domain.Models;
import com.ruoyi.platform.domain.ModelsVersion;
import com.ruoyi.platform.vo.ModelDependency1TreeVo;
import com.ruoyi.platform.vo.ModelsVo;
import com.ruoyi.platform.vo.QueryModelMetricsVo;
import org.springframework.core.io.InputStreamResource;
import org.springframework.data.domain.Page;
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;

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;



+ 19
- 16
ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ModelsServiceImpl.java View File

@@ -1030,35 +1030,38 @@ public class ModelsServiceImpl implements ModelsService {
}

@Override
public List<Object> queryVersionsMetrics(List<ModelDependency1> params, String type) {
public List<Object> queryVersionsMetrics(QueryModelMetricsVo queryModelMetricsVo) {
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);
HashMap<String, Object> metrics = modelMetaVo.getMetricsParams();
List<String> needMetrics = model.getMetrics();
List<String> needMetrics = queryModelMetricsVo.getMetrics();

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<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 {
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;


+ 22
- 0
ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/vo/QueryModelMetricsVo.java View File

@@ -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;
}

Loading…
Cancel
Save