Browse Source

模型演化改造

pull/56/head
fanshuai 1 year ago
parent
commit
257c4d704c
9 changed files with 80 additions and 15 deletions
  1. +2
    -1
      ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/model/ModelDependencyController.java
  2. +2
    -1
      ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/model/ModelsVersionController.java
  3. +21
    -1
      ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/domain/ModelDependency.java
  4. +2
    -1
      ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/ModelDependencyService.java
  5. +2
    -1
      ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/ModelsVersionService.java
  6. +36
    -9
      ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ModelDependencyServiceImpl.java
  7. +1
    -0
      ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ModelsServiceImpl.java
  8. +2
    -1
      ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ModelsVersionServiceImpl.java
  9. +12
    -0
      ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/vo/ModelDependcyTreeVo.java

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

@@ -13,6 +13,7 @@ import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import java.io.IOException;
import java.util.List;

/**
@@ -53,7 +54,7 @@ public class ModelDependencyController extends BaseController {
*/
@GetMapping("/queryModelDependency")
@ApiOperation("根据对象查询")
public GenericsAjaxResult<List<ModelDependency>> queryByModelDependency(@RequestBody ModelDependency modelDependency) {
public GenericsAjaxResult<List<ModelDependency>> queryByModelDependency(@RequestBody ModelDependency modelDependency) throws IOException {
modelDependency.setState(1);
return genericsSuccess(this.modelDependencyService.queryByModelDependency(modelDependency));
}


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

@@ -11,6 +11,7 @@ import org.springframework.data.domain.PageRequest;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import java.io.IOException;
import java.util.List;
import java.util.Map;

@@ -129,7 +130,7 @@ public class ModelsVersionController extends BaseController {
@DeleteMapping("/deleteVersion")
@ApiOperation(value = "逻辑删除模型版本", notes = "根据模型ID和版本逻辑删除模型版本记录。")
public GenericsAjaxResult<Map<Integer, String>> deleteModelsVersion(@RequestParam("models_id") Integer modelsId,
@RequestParam("version") String version) {
@RequestParam("version") String version) throws IOException {
return genericsSuccess(this.modelsVersionService.deleteModelsVersion(modelsId, version));
}



+ 21
- 1
ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/domain/ModelDependency.java View File

@@ -2,6 +2,7 @@ package com.ruoyi.platform.domain;

import com.fasterxml.jackson.databind.PropertyNamingStrategy;
import com.fasterxml.jackson.databind.annotation.JsonNaming;
import io.swagger.annotations.ApiModelProperty;

import java.util.Date;
import java.io.Serializable;
@@ -88,6 +89,9 @@ public class ModelDependency implements Serializable {
*/
private Integer state;

private Long workflowId;
private int availableRange;

public Integer getId() {
return id;
}
@@ -152,7 +156,7 @@ public class ModelDependency implements Serializable {
this.trainParams = trainParams;
}

public String getTrainImage(String name) {
public String getTrainImage() {
return trainImage;
}

@@ -223,5 +227,21 @@ public class ModelDependency implements Serializable {
public void setState(Integer state) {
this.state = state;
}

public Long getWorkflowId() {
return workflowId;
}

public void setWorkflowId(Long workflowId) {
this.workflowId = workflowId;
}

public int getAvailableRange() {
return availableRange;
}

public void setAvailableRange(int availableRange) {
this.availableRange = availableRange;
}
}


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

@@ -5,6 +5,7 @@ import com.ruoyi.platform.vo.ModelDependcyTreeVo;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;

import java.io.IOException;
import java.util.List;

/**
@@ -58,7 +59,7 @@ public interface ModelDependencyService {

String removeById(Integer id);

List<ModelDependency> queryByModelDependency(ModelDependency modelDependency);
List<ModelDependency> queryByModelDependency(ModelDependency modelDependency) throws IOException;

ModelDependcyTreeVo getModelDependencyTree(ModelDependency modelDependency) throws Exception;
}

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

@@ -6,6 +6,7 @@ import com.ruoyi.platform.domain.ModelsVersion;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;

import java.io.IOException;
import java.util.List;
import java.util.Map;

@@ -68,7 +69,7 @@ public interface ModelsVersionService {

Map<String,Object> queryByModelsIdAndVersion(Integer modelsId, String version);

Map<Integer, String> deleteModelsVersion(Integer modelsId, String version);
Map<Integer, String> deleteModelsVersion(Integer modelsId, String version) throws IOException;

String addModelVersions(List<ModelsVersion> modelsVersions) throws Exception;



+ 36
- 9
ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ModelDependencyServiceImpl.java View File

@@ -1,22 +1,24 @@
package com.ruoyi.platform.service.impl;

import com.ruoyi.common.security.utils.SecurityUtils;
import com.ruoyi.platform.domain.ModelDependency;
import com.ruoyi.platform.domain.Models;
import com.ruoyi.platform.domain.ModelsVersion;
import com.ruoyi.platform.domain.*;
import com.ruoyi.platform.mapper.ModelDependencyDao;
import com.ruoyi.platform.service.ExperimentInsService;
import com.ruoyi.platform.service.ExperimentService;
import com.ruoyi.platform.service.ModelDependencyService;
import com.ruoyi.platform.service.ModelsService;
import com.ruoyi.platform.utils.JacksonUtil;
import com.ruoyi.platform.vo.ModelDependcyTreeVo;
import com.ruoyi.system.api.model.LoginUser;
import org.apache.commons.lang3.StringUtils;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageImpl;
import org.springframework.data.domain.PageRequest;

import javax.annotation.Resource;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@@ -36,7 +38,12 @@ public class ModelDependencyServiceImpl implements ModelDependencyService {

@Resource
private ModelsService modelsService;

@Lazy
@Resource
private ExperimentService experimentService;
@Lazy
@Resource
private ExperimentInsService experimentInsService;
/**
* 通过ID查询单条数据
*
@@ -68,15 +75,31 @@ public class ModelDependencyServiceImpl implements ModelDependencyService {
* @return 查询结果
*/
@Override
public List<ModelDependency> queryByModelDependency(ModelDependency modelDependency) {
return this.modelDependencyDao.queryByModelDependency(modelDependency);
public List<ModelDependency> queryByModelDependency(ModelDependency modelDependency) throws IOException {
List<ModelDependency> modelDependencyList = this.modelDependencyDao.queryByModelDependency(modelDependency);
/**
* 补充workFlow_id + 是否共有
*/
if (modelDependencyList == null || modelDependencyList.size()==0){
return new ArrayList<>();
}
for (ModelDependency md : modelDependencyList){
Integer currentModelId = md.getCurrentModelId();
Integer expInsId = md.getExpInsId();
Models models = modelsService.queryById(currentModelId);
ExperimentIns experimentIns = experimentInsService.queryById(expInsId);
Experiment experiment = experimentService.queryById(experimentIns.getExperimentId());
md.setWorkflowId(experiment.getWorkflowId());
md.setAvailableRange(models.getAvailableRange());
}
return modelDependencyList;
}

@Override
public ModelDependcyTreeVo getModelDependencyTree(ModelDependency modelDependencyQuery) throws Exception {
//查询当前模型
modelDependencyQuery.setState(1);
List<ModelDependency> modelDependencyList = modelDependencyDao.queryByModelDependency(modelDependencyQuery);
List<ModelDependency> modelDependencyList = this.queryByModelDependency(modelDependencyQuery);
if (modelDependencyList==null || modelDependencyList.size()==0){
throw new Exception("当前模型依赖关系不存在");
}
@@ -93,7 +116,7 @@ public class ModelDependencyServiceImpl implements ModelDependencyService {
* 递归父模型
* @param modelDependcyTreeVo
*/
private void processParentModel(ModelDependcyTreeVo modelDependcyTreeVo){
private void processParentModel(ModelDependcyTreeVo modelDependcyTreeVo) throws IOException {
if (modelDependcyTreeVo.getParentModelsMap() != null) {
List<Map<String, Object>> parentMaps = modelDependcyTreeVo.getParentModelsMap();
List<ModelDependcyTreeVo> ps = new ArrayList<ModelDependcyTreeVo>();
@@ -103,7 +126,7 @@ public class ModelDependencyServiceImpl implements ModelDependencyService {
ModelDependency modelDependencyQuery = new ModelDependency();
modelDependencyQuery.setVersion(version);
modelDependencyQuery.setCurrentModelId(model_id);
List<ModelDependency> modelDependencyList = modelDependencyDao.queryByModelDependency(modelDependencyQuery);
List<ModelDependency> modelDependencyList = this.queryByModelDependency(modelDependencyQuery);
if (modelDependencyList!=null&&modelDependencyList.size()>=0){
for (ModelDependency modelDependency:modelDependencyList){
ModelDependcyTreeVo modelDependencyTreeVoIn = ModelDependencyConvertToTree(modelDependency);
@@ -144,9 +167,13 @@ public class ModelDependencyServiceImpl implements ModelDependencyService {
modelDependcyTreeVo.setRefItem(modelDependency.getRefItem());
modelDependcyTreeVo.setTrainTask(JacksonUtil.parseJSONStr2Map(modelDependency.getTrainTask()));
modelDependcyTreeVo.setTrainDataset(JacksonUtil.parseJSONStr2MapList(modelDependency.getTrainDataset()));
modelDependcyTreeVo.setTrainImage(modelDependency.getTrainImage());
modelDependcyTreeVo.setTrainParams(JacksonUtil.parseJSONStr2TList(modelDependency.getTrainParams(),Object.class,null));
modelDependcyTreeVo.setTestDataset(JacksonUtil.parseJSONStr2MapList(modelDependency.getTestDataset()));
modelDependcyTreeVo.setProjectDependency(JacksonUtil.parseJSONStr2Map(modelDependency.getProjectDependency()));
modelDependcyTreeVo.setParentModelsMap(JacksonUtil.parseJSONStr2MapList(modelDependency.getParentModels()));
modelDependcyTreeVo.setWorkflowId(modelDependency.getWorkflowId());
modelDependcyTreeVo.setAvailableRange(modelDependcyTreeVo.getAvailableRange());
Models models = modelsService.queryById(modelDependency.getCurrentModelId());
if (models!=null) {
modelDependcyTreeVo.setCurrentModelName(models.getName());


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

@@ -192,6 +192,7 @@ public class ModelsServiceImpl implements ModelsService {
*
* @param id models_version表的主键
* @return 文件内容
*
*/

@Override


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

@@ -20,6 +20,7 @@ import org.springframework.data.domain.PageRequest;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.io.IOException;
import java.lang.reflect.Field;
import java.util.Date;
import java.util.HashMap;
@@ -197,7 +198,7 @@ public class ModelsVersionServiceImpl implements ModelsVersionService {
}

@Override
public Map<Integer, String> deleteModelsVersion(Integer modelsId, String version) {
public Map<Integer, String> deleteModelsVersion(Integer modelsId, String version) throws IOException {
Map<Integer, String> results = new HashMap<Integer,String>();
// 根据模型ID和版本查询所有模型版本
List<ModelsVersion> versions = this.modelsVersionDao.queryAllByModelsVersion(modelsId, version);


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

@@ -37,6 +37,15 @@ public class ModelDependcyTreeVo {
* 训练数据集
*/
private List<Map<String, Object>> trainDataset;

/**
* 训练参数
*/
private List trainParams;
/**
* 训练镜像
*/
private String trainImage;
/**
* 测试数据集
*/
@@ -58,4 +67,7 @@ public class ModelDependcyTreeVo {
private List<ModelDependcyTreeVo> childrenModels;

private String currentModelName;

private Long workflowId;
private int availableRange;
}

Loading…
Cancel
Save