[update] 删除模型服务校验人工评估

This commit is contained in:
Liuyang 2025-01-21 10:32:27 +08:00
parent 545551bec7
commit b04430cf09
3 changed files with 119 additions and 79 deletions

View File

@ -67,4 +67,12 @@ public interface ModelAssessTaskManualService {
* @return 人工评估
*/
Map<Long, String> getModelAssessmentTaskByModelId (Long baseModelId);
/**
* 根据 模型服务id 获取 人工评估
*
* @param modelServiceId 模型服务id
* @return 人工评估
*/
Map<Long, String> getModelAssessmentTaskByModelServiceId (Long modelServiceId);
}

View File

@ -1,53 +1,44 @@
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.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.module.llm.controller.admin.modelassesstaskmanual.vo.*;
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.finetuningtask.FineTuningTaskDO;
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.ManualModelAnswerDO;
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.modelassesstaskmanual.ModelAssessTaskManualDO;
import cn.iocoder.yudao.module.llm.dal.dataobject.modelassesstaskmanualbackup.ModelAssessTaskManualBackupDO;
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.ManualModelAnswerMapper;
import cn.iocoder.yudao.module.llm.dal.mysql.modelassesstaskmanual.ModelAssessDimensionMapper;
import cn.iocoder.yudao.module.llm.dal.mysql.modelassesstaskmanual.ModelAssessTaskDimensionMapper;
import cn.iocoder.yudao.module.llm.dal.mysql.modelassesstaskmanual.*;
import cn.iocoder.yudao.module.llm.dal.mysql.modelservice.ModelServiceMapper;
import cn.iocoder.yudao.module.llm.enums.FinetuningTaskStatusEnum;
import cn.iocoder.yudao.module.llm.service.async.AsyncModelAccessManualService;
import cn.iocoder.yudao.module.llm.service.dataset.DatasetQuestionService;
import cn.iocoder.yudao.module.llm.service.modelassesstaskmanualbackup.ModelAssessTaskManualBackupService;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.*;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.function.BiFunction;
import java.util.function.Function;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import cn.iocoder.yudao.module.llm.controller.admin.modelassesstaskmanual.vo.*;
import cn.iocoder.yudao.module.llm.dal.dataobject.modelassesstaskmanual.ModelAssessTaskManualDO;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.module.llm.dal.mysql.modelassesstaskmanual.ModelAssessTaskManualMapper;
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
import static cn.iocoder.yudao.module.llm.enums.ErrorCodeConstants.*;
import static cn.iocoder.yudao.module.llm.enums.ErrorCodeConstants.MODEL_ASSESS_TASK_MANUAL_NAME_EXISTS;
import static cn.iocoder.yudao.module.llm.enums.ErrorCodeConstants.MODEL_ASSESS_TASK_MANUAL_NOT_EXISTS;
/**
* 模型评估任务 人工评估 Service 实现类
@ -83,17 +74,17 @@ public class ModelAssessTaskManualServiceImpl implements ModelAssessTaskManualSe
private ManualModelAnswerMapper manualModelAnswerMapper;
@Override
public Long createModelAssessTaskManual(ModelAssessTaskManualSaveReqVO createReqVO) {
public Long createModelAssessTaskManual (ModelAssessTaskManualSaveReqVO createReqVO) {
validateModelAssessTaskManualNameExists(createReqVO);
// 插入
ModelAssessTaskManualDO modelAssessTaskManual = BeanUtils.toBean(createReqVO, ModelAssessTaskManualDO.class);
modelAssessTaskManual.setStatus(3);
modelAssessTaskManualMapper.insert(modelAssessTaskManual);
List<ModelAssessTaskDimensionSaveReqVO> dimensions = createReqVO.getDimensions();
if (!CollectionUtils.isEmpty(dimensions)){
if (!CollectionUtils.isEmpty(dimensions)) {
dimensions.stream().forEach(dimension -> {
dimension.setTaskId(modelAssessTaskManual.getId());
ModelAssessTaskDimensionDO modelAssessTaskDimensionDO = BeanUtils.toBean(dimension,ModelAssessTaskDimensionDO.class);
ModelAssessTaskDimensionDO modelAssessTaskDimensionDO = BeanUtils.toBean(dimension, ModelAssessTaskDimensionDO.class);
modelAssessTaskDimensionMapper.insert(modelAssessTaskDimensionDO);
});
}
@ -103,7 +94,7 @@ public class ModelAssessTaskManualServiceImpl implements ModelAssessTaskManualSe
}
@Override
public void updateModelAssessTaskManual(ModelAssessTaskManualSaveReqVO updateReqVO) {
public void updateModelAssessTaskManual (ModelAssessTaskManualSaveReqVO updateReqVO) {
// 校验存在
validateModelAssessTaskManualNameExists(updateReqVO);
validateModelAssessTaskManualExists(updateReqVO.getId());
@ -130,35 +121,36 @@ public class ModelAssessTaskManualServiceImpl implements ModelAssessTaskManualSe
}
@Override
public void deleteModelAssessTaskManual(Long id) {
public void deleteModelAssessTaskManual (Long id) {
// 校验存在
validateModelAssessTaskManualExists(id);
LambdaUpdateWrapper<ModelAssessTaskManualDO> wrapper = new LambdaUpdateWrapper<>();
wrapper.eq(ModelAssessTaskManualDO::getId, id);
wrapper.set(ModelAssessTaskManualDO::getDeleted,true);
wrapper.set(ModelAssessTaskManualDO::getDeleted, true);
// 删除
modelAssessTaskManualMapper.update(null, wrapper);
}
private void validateModelAssessTaskManualExists(Long id) {
private void validateModelAssessTaskManualExists (Long id) {
if (modelAssessTaskManualMapper.selectById(id) == null) {
throw exception(MODEL_ASSESS_TASK_MANUAL_NOT_EXISTS);
}
}
private void validateModelAssessTaskManualNameExists(ModelAssessTaskManualSaveReqVO reqVO) {
private void validateModelAssessTaskManualNameExists (ModelAssessTaskManualSaveReqVO reqVO) {
LambdaQueryWrapper<ModelAssessTaskManualDO> wrapper = new LambdaQueryWrapper<ModelAssessTaskManualDO>()
.eq(ModelAssessTaskManualDO::getTaskName, reqVO.getTaskName());
if (reqVO.getId() != null){
if (reqVO.getId() != null) {
wrapper.ne(ModelAssessTaskManualDO::getId, reqVO.getId());
}
List<ModelAssessTaskManualDO> modelAssessTaskManualDOS = modelAssessTaskManualMapper.selectList(wrapper);
if (!CollectionUtils.isEmpty(modelAssessTaskManualDOS)){
if (!CollectionUtils.isEmpty(modelAssessTaskManualDOS)) {
throw exception(MODEL_ASSESS_TASK_MANUAL_NAME_EXISTS);
}
}
@Override
public ModelAssessTaskManualRespVO getModelAssessTaskManual(Long id) {
public ModelAssessTaskManualRespVO getModelAssessTaskManual (Long id) {
ModelAssessTaskManualDO modelAssessTaskManual = modelAssessTaskManualMapper.selectById(id);
ModelAssessTaskManualRespVO result = BeanUtils.toBean(modelAssessTaskManual, ModelAssessTaskManualRespVO.class);
List<ModelAssessTaskDimensionDO> modelAssessTaskDimensionDOS = modelAssessTaskDimensionMapper.selectList(new LambdaQueryWrapper<ModelAssessTaskDimensionDO>()
@ -168,7 +160,7 @@ public class ModelAssessTaskManualServiceImpl implements ModelAssessTaskManualSe
// 提取id
List<Long> dimensionIds = modelAssessTaskDimensionDOS.stream().map(ModelAssessTaskDimensionDO::getDimensionId).collect(Collectors.toList());
// 查询模型评估维度 将维度名称返回
if (!CollectionUtils.isEmpty(dimensionIds)){
if (!CollectionUtils.isEmpty(dimensionIds)) {
List<ModelAssessDimensionDO> modelAssessDimensionDOS = modelAssessDimensionMapper.selectList(new LambdaQueryWrapper<ModelAssessDimensionDO>()
.in(ModelAssessDimensionDO::getId, dimensionIds));
Map<Long, ModelAssessDimensionDO> longModelDimesionDOMap = cn.iocoder.yudao.framework.common.util.collection.
@ -176,38 +168,38 @@ public class ModelAssessTaskManualServiceImpl implements ModelAssessTaskManualSe
modelAssessTaskDimensionRespVOS.stream().forEach(
modelAssessTaskDimensionRespVO -> {
ModelAssessDimensionDO modelAssessDimensionDO = longModelDimesionDOMap.get(modelAssessTaskDimensionRespVO.getDimensionId());
if (modelAssessDimensionDO != null){
if (modelAssessDimensionDO != null) {
modelAssessTaskDimensionRespVO.setDimensionName(modelAssessDimensionDO.getDimension());
}
}
);
}
result.setDimensions(modelAssessTaskDimensionRespVOS);
if (modelAssessTaskManual.getModelType() == 0){
if (modelAssessTaskManual.getModelType() == 0) {
ModelServiceDO modelServiceDO = modelServiceMapper.selectById(modelAssessTaskManual.getModelService());
if (modelServiceDO != null){
if (modelServiceDO != null) {
result.setModelServiceName(modelServiceDO.getServiceName());
}
}else {
} else {
BaseModelDO baseModelDO = baseModelMapper.selectById(modelAssessTaskManual.getModelService());
if (baseModelDO != null){
if (baseModelDO != null) {
result.setModelServiceName(baseModelDO.getModelName());
}
}
DatasetDO datasetDO = datasetMapper.selectById(modelAssessTaskManual.getDataset());
if (datasetDO != null){
if (datasetDO != null) {
result.setDatasetName(datasetDO.getDatasetName());
}
return result;
}
@Override
public PageResult<ModelAssessTaskManualRespVO> getModelAssessTaskManualPage1(ModelAssessTaskManualPageReqVO pageReqVO) {
public PageResult<ModelAssessTaskManualRespVO> getModelAssessTaskManualPage1 (ModelAssessTaskManualPageReqVO pageReqVO) {
PageResult<ModelAssessTaskManualDO> modelAssessTaskManualDOPageResult = modelAssessTaskManualMapper.selectPage(pageReqVO);
PageResult<ModelAssessTaskManualRespVO> result = BeanUtils.toBean(modelAssessTaskManualDOPageResult, ModelAssessTaskManualRespVO.class);
if (CollectionUtils.isNotEmpty(result.getList())){
if (CollectionUtils.isNotEmpty(result.getList())) {
// 我的模型获取校验
List<Long> serviceMyIds = modelAssessTaskManualDOPageResult.getList().stream().
List<Long> serviceMyIds = modelAssessTaskManualDOPageResult.getList().stream().
filter(modelAssessTaskManualDO -> modelAssessTaskManualDO.getModelType() == 0)
.map(ModelAssessTaskManualDO::getModelService).collect(Collectors.toList());
List<ModelServiceDO> modelServiceDOS = new ArrayList<>();
@ -218,7 +210,7 @@ public class ModelAssessTaskManualServiceImpl implements ModelAssessTaskManualSe
Map<Long, ModelServiceDO> serviceMyMaps = cn.iocoder.yudao.framework.common.util.collection.
CollectionUtils.convertMap(modelServiceDOS, ModelServiceDO::getId);
// 人工模型获取校验
List<Long> serviceForeseeIds = modelAssessTaskManualDOPageResult.getList().stream().
List<Long> serviceForeseeIds = modelAssessTaskManualDOPageResult.getList().stream().
filter(modelAssessTaskManualDO -> modelAssessTaskManualDO.getModelType() == 1)
.map(ModelAssessTaskManualDO::getModelService).collect(Collectors.toList());
List<BaseModelDO> baseModelDOS = new ArrayList<>();
@ -229,14 +221,14 @@ public class ModelAssessTaskManualServiceImpl implements ModelAssessTaskManualSe
Map<Long, BaseModelDO> serviceForeseeMaps = cn.iocoder.yudao.framework.common.util.collection.
CollectionUtils.convertMap(baseModelDOS, BaseModelDO::getId);
result.getList().stream().forEach(modelAssessTaskManualRespVO -> {
if (modelAssessTaskManualRespVO.getModelType() == 0){
if (modelAssessTaskManualRespVO.getModelType() == 0) {
ModelServiceDO modelServiceDO = serviceMyMaps.get(modelAssessTaskManualRespVO.getModelService());
if(modelServiceDO != null){
if (modelServiceDO != null) {
modelAssessTaskManualRespVO.setModelServiceName(modelServiceDO.getServiceName());
}
}else {
} else {
BaseModelDO baseModelDO = serviceForeseeMaps.get(modelAssessTaskManualRespVO.getModelService());
if(baseModelDO != null){
if (baseModelDO != null) {
modelAssessTaskManualRespVO.setModelServiceName(baseModelDO.getModelName());
}
}
@ -245,16 +237,17 @@ public class ModelAssessTaskManualServiceImpl implements ModelAssessTaskManualSe
}
return result;
}
@Override
public PageResult<ModelAssessTaskManualDO> getModelAssessTaskManualPage(ModelAssessTaskManualPageReqVO pageReqVO) {
public PageResult<ModelAssessTaskManualDO> getModelAssessTaskManualPage (ModelAssessTaskManualPageReqVO pageReqVO) {
return modelAssessTaskManualMapper.selectPage(pageReqVO);
}
@Override
public void backupModelAssessTaskManual(Long id) {
public void backupModelAssessTaskManual (Long id) {
ModelAssessTaskManualDO modelDo = modelAssessTaskManualMapper.selectById(id);
if(modelDo == null) {
if (modelDo == null) {
throw exception(MODEL_ASSESS_TASK_MANUAL_NOT_EXISTS);
}
this.modelAssessTaskManualBackupService.isBackup(id);
@ -270,7 +263,7 @@ public class ModelAssessTaskManualServiceImpl implements ModelAssessTaskManualSe
}
@Override
public void unBackup(Long id) {
public void unBackup (Long id) {
ModelAssessTaskManualDO modelAssessTaskManualDO = modelAssessTaskManualMapper.selectById(id);
this.modelAssessTaskManualBackupService.unBackup(modelAssessTaskManualDO.getBackupId());
modelAssessTaskManualDO.setBackupId(0L);
@ -278,51 +271,76 @@ public class ModelAssessTaskManualServiceImpl implements ModelAssessTaskManualSe
}
/**
* 根据 基础模型id 获取 人工评估
* 通用的根据条件查询 ModelAssessTaskManualDO 列表并转换为 Map 的方法
*
* @param baseModelId 基础模型id
* @return 人工评估
* @param condition 条件使用 BiFunction 接收 LambdaQueryWrapper 和参数并设置条件
* @param keyMapper ApplicationDO 对象映射为 Map 的键
* @param valueMapper ApplicationDO 对象映射为 Map 的值
* @param param 查询参数数组
* @return 人工评估的 Map 集合
*/
@Override
public Map<Long, String> getModelAssessmentTaskByModelId (Long baseModelId) {
if (baseModelId == null){
private Map<Long, String> getModelAssessmentTaskMap(BiFunction<LambdaQueryWrapper<ModelAssessTaskManualDO>, Long, LambdaQueryWrapper<ModelAssessTaskManualDO>> condition, Function<ModelAssessTaskManualDO, Long> keyMapper, Function<ModelAssessTaskManualDO, String> valueMapper, Long param) {
if (param == null) {
return Collections.emptyMap();
}
List<ModelAssessTaskManualDO> modelAssessTaskManualDOS = modelAssessTaskManualMapper.selectList(new LambdaQueryWrapper<ModelAssessTaskManualDO>()
.eq(ModelAssessTaskManualDO::getModelService, baseModelId)
// 2:进行中3推理中
.in(ModelAssessTaskManualDO::getStatus, 2, 3));
LambdaQueryWrapper<ModelAssessTaskManualDO> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper = condition.apply(queryWrapper, param);
queryWrapper.in(ModelAssessTaskManualDO::getStatus, 2, 3);
System.out.println(JSON.toJSON(modelAssessTaskManualDOS));
if (CollectionUtils.isNotEmpty(modelAssessTaskManualDOS)){
return modelAssessTaskManualDOS.stream().collect(Collectors.toMap(ModelAssessTaskManualDO::getId, ModelAssessTaskManualDO::getTaskName));
List<ModelAssessTaskManualDO> modelAssessTaskManualDOS = modelAssessTaskManualMapper.selectList(queryWrapper);
if (CollectionUtils.isEmpty(modelAssessTaskManualDOS)) {
return Collections.emptyMap();
}
return Collections.emptyMap();
return modelAssessTaskManualDOS.stream().collect(Collectors.toMap(keyMapper, valueMapper));
}
/**
* 根据基础模型 id 获取人工评估
*
* @param baseModelId 基础模型 id
* @return 人工评估的 Map 集合
*/
@Override
public Map<Long, String> getModelAssessmentTaskByModelId(Long baseModelId) {
return getModelAssessmentTaskMap((wrapper, id) -> wrapper.eq(ModelAssessTaskManualDO::getModelService, id).eq(ModelAssessTaskManualDO::getModelType, 1),
ModelAssessTaskManualDO::getId, ModelAssessTaskManualDO::getTaskName, baseModelId);
}
/**
* 根据模型服务 id 获取人工评估
*
* @param modelServiceId 模型服务 id
* @return 人工评估的 Map 集合
*/
@Override
public Map<Long, String> getModelAssessmentTaskByModelServiceId(Long modelServiceId) {
return getModelAssessmentTaskMap((wrapper, id) -> wrapper.eq(ModelAssessTaskManualDO::getModelService, id).eq(ModelAssessTaskManualDO::getModelType, 0),
ModelAssessTaskManualDO::getId, ModelAssessTaskManualDO::getTaskName, modelServiceId);
}
@Override
public List<ManualEvaluationReportRespVO> gitViewTheReportDetails(Long id) {
public List<ManualEvaluationReportRespVO> gitViewTheReportDetails (Long id) {
List<ManualEvaluationReportRespVO> manualEvaluationReportRespVOS = new ArrayList<>();
LambdaQueryWrapper<ManualModelAnswerDO> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(ManualModelAnswerDO::getManalTaskId,id)
.eq(ManualModelAnswerDO::getStatus,2)
wrapper.eq(ManualModelAnswerDO::getManalTaskId, id)
.eq(ManualModelAnswerDO::getStatus, 2)
.isNotNull(ManualModelAnswerDO::getReqRespVos);
List<ManualModelAnswerDO> manualModelAnswerDOS = manualModelAnswerMapper.selectList(wrapper);
// 获取维度
List<String> collect =new ArrayList<>();
if (CollectionUtils.isNotEmpty(manualModelAnswerDOS)){
List<String> collect = new ArrayList<>();
if (CollectionUtils.isNotEmpty(manualModelAnswerDOS)) {
List<LabelInformationVO> bean = BeanUtils.toBean(manualModelAnswerDOS.get(0).getReqRespVos(), LabelInformationVO.class);
collect = bean.stream().map(LabelInformationVO::getLabel).collect(Collectors.toList());
}
List<LabelInformationVO> labelInformationVOS = new ArrayList<>();
for (ManualModelAnswerDO manualModelAnswerDO : manualModelAnswerDOS){
for (ManualModelAnswerDO manualModelAnswerDO : manualModelAnswerDOS) {
List<LabelInformationVO> bean = BeanUtils.toBean(manualModelAnswerDO.getReqRespVos(), LabelInformationVO.class);
labelInformationVOS.addAll(bean);
}
if (CollectionUtils.isNotEmpty(labelInformationVOS)){
if (CollectionUtils.isNotEmpty(labelInformationVOS)) {
// 计算平均分
double average = labelInformationVOS.stream().mapToDouble(LabelInformationVO::getScore).average().getAsDouble();
double score = average * 50.0;
@ -333,7 +351,7 @@ public class ModelAssessTaskManualServiceImpl implements ModelAssessTaskManualSe
reportRespVO.setScore(bd);
reportRespVO.setPercent(v);
manualEvaluationReportRespVOS.add(reportRespVO);
for (String collect1 : collect){
for (String collect1 : collect) {
List<LabelInformationVO> voList = labelInformationVOS.stream().filter(manualModelAnswerDO -> manualModelAnswerDO.getLabel().equals(collect1)).collect(Collectors.toList());
ManualEvaluationReportRespVO reportRespVO1 = new ManualEvaluationReportRespVO();
reportRespVO1.setDimension(collect1);
@ -345,9 +363,9 @@ public class ModelAssessTaskManualServiceImpl implements ModelAssessTaskManualSe
reportRespVO1.setZeroPercent(new BigDecimal(zeroPercent).setScale(2, RoundingMode.HALF_UP).doubleValue());
long count1 = voList.stream().filter(manualModelAnswerDO -> manualModelAnswerDO.getScore() == 1).count();
long count2 = voList.stream().filter(manualModelAnswerDO -> manualModelAnswerDO.getScore() == 2).count();
double onePercent = (double)count1 / voList.size() * 100.0;
double onePercent = (double) count1 / voList.size() * 100.0;
reportRespVO1.setOnePercent(new BigDecimal(onePercent).setScale(2, RoundingMode.HALF_UP).doubleValue());
double twoPercent = (double)count2 / voList.size() * 100.0;
double twoPercent = (double) count2 / voList.size() * 100.0;
reportRespVO1.setTwoPercent(new BigDecimal(twoPercent).setScale(2, RoundingMode.HALF_UP).doubleValue());
manualEvaluationReportRespVOS.add(reportRespVO1);
}

View File

@ -142,7 +142,8 @@ public class ModelServiceServiceImpl implements ModelServiceService {
// 校验 基座模型 是否在 应用中心 有使用
validateModelUsesInApplicationCenter(id, modelName);
// 校验 基座模型 是否在 模型评估任务-人工 有使用 是否为进行中
validateModelUsesInModelAssessTaskManual(id, modelName);
}
/**
@ -159,7 +160,20 @@ public class ModelServiceServiceImpl implements ModelServiceService {
}
}
/**
* 校验模型是否在 模型评估任务-人工 有使用
*
* @param id 模型ID
* @param modelName 模型名称
*/
private void validateModelUsesInModelAssessTaskManual (Long id, String modelName) {
Map<Long, String> modelAssessmentTask = modelAssessTaskManualService.getModelAssessmentTaskByModelServiceId(id);
if (com.baomidou.mybatisplus.core.toolkit.CollectionUtils.isNotEmpty(modelAssessmentTask)) {
String msg = String.format("模型【%s】在模型评估-人工评估 %s 有正在进行的任务,请先结束任务", modelName, modelAssessmentTask.values());
throw exception(new ErrorCode(10003_002, msg));
}
}
private void validateModelServiceExists(Long id) {
if (modelServiceMapper.selectById(id) == null) {
throw exception(MODEL_SERVICE_NOT_EXISTS);