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 org.springframework.web.bind.annotation.*;


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


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


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


@@ -129,7 +130,7 @@ public class ModelsVersionController extends BaseController {
@DeleteMapping("/deleteVersion") @DeleteMapping("/deleteVersion")
@ApiOperation(value = "逻辑删除模型版本", notes = "根据模型ID和版本逻辑删除模型版本记录。") @ApiOperation(value = "逻辑删除模型版本", notes = "根据模型ID和版本逻辑删除模型版本记录。")
public GenericsAjaxResult<Map<Integer, String>> deleteModelsVersion(@RequestParam("models_id") Integer modelsId, 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)); 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.PropertyNamingStrategy;
import com.fasterxml.jackson.databind.annotation.JsonNaming; import com.fasterxml.jackson.databind.annotation.JsonNaming;
import io.swagger.annotations.ApiModelProperty;


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


private Long workflowId;
private int availableRange;

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


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


@@ -223,5 +227,21 @@ public class ModelDependency implements Serializable {
public void setState(Integer state) { public void setState(Integer state) {
this.state = 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.Page;
import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.PageRequest;


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


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


String removeById(Integer id); String removeById(Integer id);


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


ModelDependcyTreeVo getModelDependencyTree(ModelDependency modelDependency) throws Exception; 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.Page;
import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.PageRequest;


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


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


Map<String,Object> queryByModelsIdAndVersion(Integer modelsId, String version); 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; 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; package com.ruoyi.platform.service.impl;


import com.ruoyi.common.security.utils.SecurityUtils; 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.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.ModelDependencyService;
import com.ruoyi.platform.service.ModelsService; import com.ruoyi.platform.service.ModelsService;
import com.ruoyi.platform.utils.JacksonUtil; import com.ruoyi.platform.utils.JacksonUtil;
import com.ruoyi.platform.vo.ModelDependcyTreeVo; import com.ruoyi.platform.vo.ModelDependcyTreeVo;
import com.ruoyi.system.api.model.LoginUser; import com.ruoyi.system.api.model.LoginUser;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.data.domain.Page; import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageImpl; import org.springframework.data.domain.PageImpl;
import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.PageRequest;


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


@Resource @Resource
private ModelsService modelsService; private ModelsService modelsService;

@Lazy
@Resource
private ExperimentService experimentService;
@Lazy
@Resource
private ExperimentInsService experimentInsService;
/** /**
* 通过ID查询单条数据 * 通过ID查询单条数据
* *
@@ -68,15 +75,31 @@ public class ModelDependencyServiceImpl implements ModelDependencyService {
* @return 查询结果 * @return 查询结果
*/ */
@Override @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 @Override
public ModelDependcyTreeVo getModelDependencyTree(ModelDependency modelDependencyQuery) throws Exception { public ModelDependcyTreeVo getModelDependencyTree(ModelDependency modelDependencyQuery) throws Exception {
//查询当前模型 //查询当前模型
modelDependencyQuery.setState(1); modelDependencyQuery.setState(1);
List<ModelDependency> modelDependencyList = modelDependencyDao.queryByModelDependency(modelDependencyQuery);
List<ModelDependency> modelDependencyList = this.queryByModelDependency(modelDependencyQuery);
if (modelDependencyList==null || modelDependencyList.size()==0){ if (modelDependencyList==null || modelDependencyList.size()==0){
throw new Exception("当前模型依赖关系不存在"); throw new Exception("当前模型依赖关系不存在");
} }
@@ -93,7 +116,7 @@ public class ModelDependencyServiceImpl implements ModelDependencyService {
* 递归父模型 * 递归父模型
* @param modelDependcyTreeVo * @param modelDependcyTreeVo
*/ */
private void processParentModel(ModelDependcyTreeVo modelDependcyTreeVo){
private void processParentModel(ModelDependcyTreeVo modelDependcyTreeVo) throws IOException {
if (modelDependcyTreeVo.getParentModelsMap() != null) { if (modelDependcyTreeVo.getParentModelsMap() != null) {
List<Map<String, Object>> parentMaps = modelDependcyTreeVo.getParentModelsMap(); List<Map<String, Object>> parentMaps = modelDependcyTreeVo.getParentModelsMap();
List<ModelDependcyTreeVo> ps = new ArrayList<ModelDependcyTreeVo>(); List<ModelDependcyTreeVo> ps = new ArrayList<ModelDependcyTreeVo>();
@@ -103,7 +126,7 @@ public class ModelDependencyServiceImpl implements ModelDependencyService {
ModelDependency modelDependencyQuery = new ModelDependency(); ModelDependency modelDependencyQuery = new ModelDependency();
modelDependencyQuery.setVersion(version); modelDependencyQuery.setVersion(version);
modelDependencyQuery.setCurrentModelId(model_id); modelDependencyQuery.setCurrentModelId(model_id);
List<ModelDependency> modelDependencyList = modelDependencyDao.queryByModelDependency(modelDependencyQuery);
List<ModelDependency> modelDependencyList = this.queryByModelDependency(modelDependencyQuery);
if (modelDependencyList!=null&&modelDependencyList.size()>=0){ if (modelDependencyList!=null&&modelDependencyList.size()>=0){
for (ModelDependency modelDependency:modelDependencyList){ for (ModelDependency modelDependency:modelDependencyList){
ModelDependcyTreeVo modelDependencyTreeVoIn = ModelDependencyConvertToTree(modelDependency); ModelDependcyTreeVo modelDependencyTreeVoIn = ModelDependencyConvertToTree(modelDependency);
@@ -144,9 +167,13 @@ public class ModelDependencyServiceImpl implements ModelDependencyService {
modelDependcyTreeVo.setRefItem(modelDependency.getRefItem()); modelDependcyTreeVo.setRefItem(modelDependency.getRefItem());
modelDependcyTreeVo.setTrainTask(JacksonUtil.parseJSONStr2Map(modelDependency.getTrainTask())); modelDependcyTreeVo.setTrainTask(JacksonUtil.parseJSONStr2Map(modelDependency.getTrainTask()));
modelDependcyTreeVo.setTrainDataset(JacksonUtil.parseJSONStr2MapList(modelDependency.getTrainDataset())); 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.setTestDataset(JacksonUtil.parseJSONStr2MapList(modelDependency.getTestDataset()));
modelDependcyTreeVo.setProjectDependency(JacksonUtil.parseJSONStr2Map(modelDependency.getProjectDependency())); modelDependcyTreeVo.setProjectDependency(JacksonUtil.parseJSONStr2Map(modelDependency.getProjectDependency()));
modelDependcyTreeVo.setParentModelsMap(JacksonUtil.parseJSONStr2MapList(modelDependency.getParentModels())); modelDependcyTreeVo.setParentModelsMap(JacksonUtil.parseJSONStr2MapList(modelDependency.getParentModels()));
modelDependcyTreeVo.setWorkflowId(modelDependency.getWorkflowId());
modelDependcyTreeVo.setAvailableRange(modelDependcyTreeVo.getAvailableRange());
Models models = modelsService.queryById(modelDependency.getCurrentModelId()); Models models = modelsService.queryById(modelDependency.getCurrentModelId());
if (models!=null) { if (models!=null) {
modelDependcyTreeVo.setCurrentModelName(models.getName()); 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表的主键 * @param id models_version表的主键
* @return 文件内容 * @return 文件内容
*
*/ */


@Override @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 org.springframework.stereotype.Service;


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


@Override @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>(); Map<Integer, String> results = new HashMap<Integer,String>();
// 根据模型ID和版本查询所有模型版本 // 根据模型ID和版本查询所有模型版本
List<ModelsVersion> versions = this.modelsVersionDao.queryAllByModelsVersion(modelsId, version); 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<Map<String, Object>> trainDataset;

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


private String currentModelName; private String currentModelName;

private Long workflowId;
private int availableRange;
} }

Loading…
Cancel
Save