diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/controller/ModelController.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/controller/ModelController.java new file mode 100644 index 0000000..663b4ce --- /dev/null +++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/controller/ModelController.java @@ -0,0 +1,35 @@ +package com.bipt.intelligentapplicationorchestrationservice.controller; + +import com.bipt.intelligentapplicationorchestrationservice.pojo.ModelDTO; +import com.bipt.intelligentapplicationorchestrationservice.pojo.OptResult; +import com.bipt.intelligentapplicationorchestrationservice.service.ModelService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +@Slf4j +@RestController +@RequestMapping("/model") +@Tag(name = "模型部分相关接口") +public class ModelController { + @Autowired + private ModelService modelService; + @Operation(summary = "创建模型") + @PostMapping("/createModel") + public OptResult creatModel(@RequestBody ModelDTO dto){ + log.info("创建模型"); + modelService.createModel(dto); + return OptResult.success(); + } + + @Operation(summary = "新增模型版本") + @PostMapping("/createModelVersion") + public OptResult createModelVersion(@RequestBody ModelDTO dto){ + log.info("新增模型版本"); + modelService.createModelVersion(dto); + return OptResult.success(); + } + +} diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/mapper/ModelMapper.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/mapper/ModelMapper.java new file mode 100644 index 0000000..97616a1 --- /dev/null +++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/mapper/ModelMapper.java @@ -0,0 +1,24 @@ +package com.bipt.intelligentapplicationorchestrationservice.mapper; + +import com.bipt.intelligentapplicationorchestrationservice.pojo.ModelInfo; +import com.bipt.intelligentapplicationorchestrationservice.pojo.ModelVersion; +import org.apache.ibatis.annotations.Insert; +import org.apache.ibatis.annotations.Options; + +public interface ModelMapper { + + /** + * 插入模型基本信息 + * @param modelInfo + */ + @Options(useGeneratedKeys = true, keyProperty = "id") //能够拿到主键值,并设置给modelInfo对象 + @Insert("insert into model_info(model_name) values(#{modelName})") + void insertModelInfo(ModelInfo modelInfo); + + /** + * 插入模型版本信息 + * @param modelVersion + */ + void insertModelVersion(ModelVersion modelVersion); + +} diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/ModelDTO.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/ModelDTO.java new file mode 100644 index 0000000..bdb62b7 --- /dev/null +++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/ModelDTO.java @@ -0,0 +1,20 @@ +package com.bipt.intelligentapplicationorchestrationservice.pojo; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class ModelDTO { + private Long id; // 模型id + private String modelName; // 模型名称 + private Integer datasetId; // 数据集id + private Integer modelSize; // 模型大小 + private String dataPreHandleFile; // 数据预处理文件存储路 + + private String version; //模型版本 +} diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/ModelVersion.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/ModelVersion.java index 6297b43..b2ff94a 100644 --- a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/ModelVersion.java +++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/ModelVersion.java @@ -24,5 +24,17 @@ public class ModelVersion implements Serializable { private String modelPath; // 模型存储路径 private Integer status; // 模型状态(1代表上线,0代表不上线) private LocalDateTime createTime; // 创建时间 + //补充更新时间字段 + private LocalDateTime updateTime; // 更新时间 + //创建模型部分补充的字段 + private Integer modelSize; // 模型大小 + private String dataPreHandleFile; // 数据预处理文件存储路径 + //模型信息管理部分补充的字段 + private String modelSuperArgs; // 模型超参数 + private String modelArgsSize; // 模型参数量 + private String modelSourceCodeUrl; // 模型源代码路径 + private String modelFile; // 模型文件存储路径 + private String modelDesignDocument; // 模型设计文档存储路径 + private String lifeCycle; // 模型生命周期 } diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/Impl/ModelServiceImpl.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/Impl/ModelServiceImpl.java new file mode 100644 index 0000000..0db4030 --- /dev/null +++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/Impl/ModelServiceImpl.java @@ -0,0 +1,58 @@ +package com.bipt.intelligentapplicationorchestrationservice.service.Impl; + +import com.bipt.intelligentapplicationorchestrationservice.mapper.ModelMapper; +import com.bipt.intelligentapplicationorchestrationservice.pojo.ModelDTO; +import com.bipt.intelligentapplicationorchestrationservice.pojo.ModelInfo; +import com.bipt.intelligentapplicationorchestrationservice.pojo.ModelVersion; +import com.bipt.intelligentapplicationorchestrationservice.service.ModelService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.time.LocalDateTime; + +@Slf4j +@Service +public class ModelServiceImpl implements ModelService { + @Autowired + private ModelMapper modelMapper; + /** + * 创建模型 + * @param dto + */ + @Transactional //事务注解 + @Override + public void createModel(ModelDTO dto) { + log.info("创建模型"); + //1.插入模型基本信息 + ModelInfo modelInfo = new ModelInfo(); + BeanUtils.copyProperties(dto, modelInfo, "id"); + modelMapper.insertModelInfo(modelInfo); + log.info("模型id: {}", modelInfo.getId()); + //2.插入模型版本信息 + ModelVersion modelVersion = new ModelVersion(); + //使用工具类将dto属性复制给modelVersion + BeanUtils.copyProperties(dto, modelVersion, "id"); + modelVersion.setModelId(modelInfo.getId()); + modelVersion.setCreateTime(LocalDateTime.now()); + modelVersion.setUpdateTime(LocalDateTime.now()); + modelMapper.insertModelVersion(modelVersion); + } + + /** + * 新增模型版本 + * @param dto + */ + @Override + public void createModelVersion(ModelDTO dto) { + log.info("新增模型版本"); + ModelVersion modelVersion = new ModelVersion(); + BeanUtils.copyProperties(dto, modelVersion, "id"); + modelVersion.setModelId(dto.getId()); + modelVersion.setCreateTime(LocalDateTime.now()); + modelVersion.setUpdateTime(LocalDateTime.now()); + modelMapper.insertModelVersion(modelVersion); + } +} diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/ModelService.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/ModelService.java new file mode 100644 index 0000000..ea9f38f --- /dev/null +++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/ModelService.java @@ -0,0 +1,10 @@ +package com.bipt.intelligentapplicationorchestrationservice.service; + +import com.bipt.intelligentapplicationorchestrationservice.pojo.ModelDTO; + +public interface ModelService { + void createModel(ModelDTO dto); + + + void createModelVersion(ModelDTO dto); +} diff --git a/src/main/resources/mapper/ModelMapper.xml b/src/main/resources/mapper/ModelMapper.xml new file mode 100644 index 0000000..60de477 --- /dev/null +++ b/src/main/resources/mapper/ModelMapper.xml @@ -0,0 +1,10 @@ + + + + + + + insert into model_version (model_id, dataset_id, model_size, data_pre_handle_file, create_time, update_time, version) + values (#{modelId}, #{datasetId}, #{modelSize}, #{dataPreHandleFile}, #{createTime}, #{updateTime}, #{version}) + + \ No newline at end of file