diff --git a/yudao-module-llm/yudao-module-llm-api/src/main/java/cn/iocoder/yudao/module/llm/enums/ErrorCodeConstants.java b/yudao-module-llm/yudao-module-llm-api/src/main/java/cn/iocoder/yudao/module/llm/enums/ErrorCodeConstants.java index cfcb7451a..7a3fd27f3 100644 --- a/yudao-module-llm/yudao-module-llm-api/src/main/java/cn/iocoder/yudao/module/llm/enums/ErrorCodeConstants.java +++ b/yudao-module-llm/yudao-module-llm-api/src/main/java/cn/iocoder/yudao/module/llm/enums/ErrorCodeConstants.java @@ -83,5 +83,7 @@ public interface ErrorCodeConstants { ErrorCode MODEL_ASSESS_TASK_MANUAL_BACKUP_EXISTS = new ErrorCode(100_1002, "人工评估已备份"); ErrorCode DATASET_NAME_EXISTS = new ErrorCode(10034, "数据集名称重复"); + ErrorCode MODEL_ASSESS_TASK_MANUAL_NAME_EXISTS = new ErrorCode(10035, "模型评估任务人工评估名称重复"); + } diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/modelassesstaskmanual/vo/ModelAssessTaskManualRespVO.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/modelassesstaskmanual/vo/ModelAssessTaskManualRespVO.java index ce0b7f0cf..9d156b4e4 100644 --- a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/modelassesstaskmanual/vo/ModelAssessTaskManualRespVO.java +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/modelassesstaskmanual/vo/ModelAssessTaskManualRespVO.java @@ -58,6 +58,11 @@ public class ModelAssessTaskManualRespVO { @Schema(description = "数据集名称") private String datasetName; + /** + * 模型类型 + */ + @Schema(description = "模型类型(0普通,1官方)") + private Integer modelType; diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/modelassesstaskmanual/vo/ModelAssessTaskManualSaveReqVO.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/modelassesstaskmanual/vo/ModelAssessTaskManualSaveReqVO.java index 12e7c0349..6363c7942 100644 --- a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/modelassesstaskmanual/vo/ModelAssessTaskManualSaveReqVO.java +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/modelassesstaskmanual/vo/ModelAssessTaskManualSaveReqVO.java @@ -37,4 +37,7 @@ public class ModelAssessTaskManualSaveReqVO { @Schema(description = "任务进度") private Integer progress; + @Schema(description ="模型类型(0普通,1官方)") + private Integer modelType; + } \ No newline at end of file diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/dataobject/modelassesstaskmanual/ModelAssessTaskManualDO.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/dataobject/modelassesstaskmanual/ModelAssessTaskManualDO.java index b1d686e3a..201e0a20e 100644 --- a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/dataobject/modelassesstaskmanual/ModelAssessTaskManualDO.java +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/dataobject/modelassesstaskmanual/ModelAssessTaskManualDO.java @@ -61,4 +61,9 @@ public class ModelAssessTaskManualDO extends BaseDO { */ private Integer progress; + /** + * 模型类型 + */ + private Integer modelType; + } \ No newline at end of file diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/dataset/DatasetServiceImpl.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/dataset/DatasetServiceImpl.java index 90e43e4da..3e97799a2 100644 --- a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/dataset/DatasetServiceImpl.java +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/dataset/DatasetServiceImpl.java @@ -138,8 +138,13 @@ public class DatasetServiceImpl implements DatasetService { } } private void validateDatasetNameExists(DatasetSaveReqVO dateReqVO){ - List datasetDOS = datasetMapper.selectList(new LambdaQueryWrapper() - .eq(DatasetDO::getDatasetName, dateReqVO.getDatasetName())); + LambdaQueryWrapper wrapper = new LambdaQueryWrapper() + .eq(DatasetDO::getDatasetName, dateReqVO.getDatasetName()); + + if (dateReqVO.getId() != null){ + wrapper.ne(DatasetDO::getId, dateReqVO.getId()); + } + List datasetDOS = datasetMapper.selectList(wrapper); if (CollectionUtils.isNotEmpty(datasetDOS)){ throw exception(DATASET_NAME_EXISTS); } diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/modelassesstaskmanual/ModelAssessTaskManualServiceImpl.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/modelassesstaskmanual/ModelAssessTaskManualServiceImpl.java index caa66f225..60c359511 100644 --- a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/modelassesstaskmanual/ModelAssessTaskManualServiceImpl.java +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/modelassesstaskmanual/ModelAssessTaskManualServiceImpl.java @@ -3,12 +3,14 @@ package cn.iocoder.yudao.module.llm.service.modelassesstaskmanual; import cn.iocoder.yudao.module.llm.controller.admin.dataset.vo.DatasetQuestionPageReqVO; import cn.iocoder.yudao.module.llm.controller.admin.dataset.vo.DatasetQuestionRespVO; import cn.iocoder.yudao.module.llm.controller.admin.modelassesstaskmanualbackup.vo.ModelAssessTaskManualBackupSaveReqVO; +import cn.iocoder.yudao.module.llm.dal.dataobject.basemodel.BaseModelDO; import cn.iocoder.yudao.module.llm.dal.dataobject.dataset.DatasetDO; import cn.iocoder.yudao.module.llm.dal.dataobject.modelassessstoplist.ModelAssessStoplistDO; import cn.iocoder.yudao.module.llm.dal.dataobject.modelassesstaskmanual.ManualModelAnnoDO; import cn.iocoder.yudao.module.llm.dal.dataobject.modelassesstaskmanual.ModelAssessDimensionDO; import cn.iocoder.yudao.module.llm.dal.dataobject.modelassesstaskmanual.ModelAssessTaskDimensionDO; import cn.iocoder.yudao.module.llm.dal.dataobject.modelservice.ModelServiceDO; +import cn.iocoder.yudao.module.llm.dal.mysql.basemodel.BaseModelMapper; import cn.iocoder.yudao.module.llm.dal.mysql.dataset.DatasetMapper; import cn.iocoder.yudao.module.llm.dal.mysql.modelassesstaskmanual.ManualModelAnnoMapper; import cn.iocoder.yudao.module.llm.dal.mysql.modelassesstaskmanual.ModelAssessDimensionMapper; @@ -69,9 +71,12 @@ public class ModelAssessTaskManualServiceImpl implements ModelAssessTaskManualSe private ModelAssessTaskManualBackupService modelAssessTaskManualBackupService; @Resource private ManualModelAnnoMapper manualModelAnnoMapper; + @Resource + private BaseModelMapper baseModelMapper; @Override public Long createModelAssessTaskManual(ModelAssessTaskManualSaveReqVO createReqVO) { + validateModelAssessTaskManualNameExists(createReqVO); // 插入 ModelAssessTaskManualDO modelAssessTaskManual = BeanUtils.toBean(createReqVO, ModelAssessTaskManualDO.class); modelAssessTaskManual.setStatus(3); @@ -92,6 +97,7 @@ public class ModelAssessTaskManualServiceImpl implements ModelAssessTaskManualSe @Override public void updateModelAssessTaskManual(ModelAssessTaskManualSaveReqVO updateReqVO) { // 校验存在 + validateModelAssessTaskManualNameExists(updateReqVO); validateModelAssessTaskManualExists(updateReqVO.getId()); // 更新 ModelAssessTaskManualDO updateObj = BeanUtils.toBean(updateReqVO, ModelAssessTaskManualDO.class); @@ -131,6 +137,17 @@ public class ModelAssessTaskManualServiceImpl implements ModelAssessTaskManualSe throw exception(MODEL_ASSESS_TASK_MANUAL_NOT_EXISTS); } } + private void validateModelAssessTaskManualNameExists(ModelAssessTaskManualSaveReqVO reqVO) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper() + .eq(ModelAssessTaskManualDO::getTaskName, reqVO.getTaskName()); + if (reqVO.getId() != null){ + wrapper.ne(ModelAssessTaskManualDO::getId, reqVO.getId()); + } + List modelAssessTaskManualDOS = modelAssessTaskManualMapper.selectList(wrapper); + if (!CollectionUtils.isEmpty(modelAssessTaskManualDOS)){ + throw exception(MODEL_ASSESS_TASK_MANUAL_NAME_EXISTS); + } + } @Override public ModelAssessTaskManualRespVO getModelAssessTaskManual(Long id) { @@ -158,9 +175,16 @@ public class ModelAssessTaskManualServiceImpl implements ModelAssessTaskManualSe ); } result.setDimensions(modelAssessTaskDimensionRespVOS); - ModelServiceDO modelServiceDO = modelServiceMapper.selectById(modelAssessTaskManual.getModelService()); - if (modelServiceDO != null){ - result.setModelServiceName(modelServiceDO.getServiceName()); + if (modelAssessTaskManual.getModelType() == 0){ + ModelServiceDO modelServiceDO = modelServiceMapper.selectById(modelAssessTaskManual.getModelService()); + if (modelServiceDO != null){ + result.setModelServiceName(modelServiceDO.getServiceName()); + } + }else { + BaseModelDO baseModelDO = baseModelMapper.selectById(modelAssessTaskManual.getModelService()); + if (baseModelDO != null){ + result.setModelServiceName(baseModelDO.getModelName()); + } } DatasetDO datasetDO = datasetMapper.selectById(modelAssessTaskManual.getDataset()); if (datasetDO != null){ @@ -174,17 +198,35 @@ public class ModelAssessTaskManualServiceImpl implements ModelAssessTaskManualSe PageResult modelAssessTaskManualDOPageResult = modelAssessTaskManualMapper.selectPage(pageReqVO); PageResult result = BeanUtils.toBean(modelAssessTaskManualDOPageResult, ModelAssessTaskManualRespVO.class); if (CollectionUtils.isNotEmpty(result.getList())){ - List serviceIds = modelAssessTaskManualDOPageResult.getList().stream().map(ModelAssessTaskManualDO::getModelService).collect(Collectors.toList()); - LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); - wrapper.in(ModelServiceDO::getId,serviceIds); - List modelServiceDOS = modelServiceMapper.selectList(wrapper); - Map longModelServiceDOMap = cn.iocoder.yudao.framework.common.util.collection. + // 我的模型获取校验 + List serviceMyIds = modelAssessTaskManualDOPageResult.getList().stream(). + filter(modelAssessTaskManualDO -> modelAssessTaskManualDO.getModelType() == 0) + .map(ModelAssessTaskManualDO::getModelService).collect(Collectors.toList()); + List modelServiceDOS = modelServiceMapper.selectList(new LambdaQueryWrapper() + .in(ModelServiceDO::getId,serviceMyIds)); + Map serviceMyMaps = cn.iocoder.yudao.framework.common.util.collection. CollectionUtils.convertMap(modelServiceDOS, ModelServiceDO::getId); + // 人工模型获取校验 + List serviceForeseeIds = modelAssessTaskManualDOPageResult.getList().stream(). + filter(modelAssessTaskManualDO -> modelAssessTaskManualDO.getModelType() == 1) + .map(ModelAssessTaskManualDO::getModelService).collect(Collectors.toList()); + List baseModelDOS = baseModelMapper.selectList(new LambdaQueryWrapper() + .in(BaseModelDO::getId, serviceForeseeIds)); + Map serviceForeseeMaps = cn.iocoder.yudao.framework.common.util.collection. + CollectionUtils.convertMap(baseModelDOS, BaseModelDO::getId); result.getList().stream().forEach(modelAssessTaskManualRespVO -> { - ModelServiceDO modelServiceDO = longModelServiceDOMap.get(modelAssessTaskManualRespVO.getModelService()); - if(modelServiceDO != null){ - modelAssessTaskManualRespVO.setModelServiceName(modelServiceDO.getServiceName()); + if (modelAssessTaskManualRespVO.getModelType() == 0){ + ModelServiceDO modelServiceDO = serviceMyMaps.get(modelAssessTaskManualRespVO.getModelService()); + if(modelServiceDO != null){ + modelAssessTaskManualRespVO.setModelServiceName(modelServiceDO.getServiceName()); + } + }else { + BaseModelDO baseModelDO = serviceForeseeMaps.get(modelAssessTaskManualRespVO.getModelService()); + if(baseModelDO != null){ + modelAssessTaskManualRespVO.setModelServiceName(baseModelDO.getModelName()); + } } + }); } return result;