fix(llm): 修复删除模型时可能存在的空指针异常- 在 FineTuningTaskServiceImpl 中添加删除微调任务时删除基模型的逻辑

- 在 ModelServiceServiceImpl 中移除删除模型服务时删除基模型的代码
This commit is contained in:
sunxiqing 2025-03-21 15:56:32 +08:00
parent d5c2fc3c24
commit 8f18b119ae
2 changed files with 11 additions and 10 deletions

View File

@ -3,6 +3,7 @@ package cn.iocoder.yudao.module.llm.service.finetuningtask;
import cn.iocoder.yudao.framework.common.exception.ErrorCode;
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.basemodel.BaseModelController;
import cn.iocoder.yudao.module.llm.controller.admin.finetuningtask.vo.FineTuningTaskPageReqVO;
import cn.iocoder.yudao.module.llm.controller.admin.finetuningtask.vo.FineTuningTaskRespVO;
import cn.iocoder.yudao.module.llm.controller.admin.finetuningtask.vo.FineTuningTaskSaveReqVO;
@ -26,6 +27,7 @@ import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated;
@ -67,6 +69,10 @@ public class FineTuningTaskServiceImpl implements FineTuningTaskService {
@Resource
private ModelServiceService modelServiceService;
@Resource
@Lazy
private BaseModelController baseModelController;
@Override
public Long createFineTuningTask (FineTuningTaskSaveReqVO createReqVO) {
@ -115,6 +121,11 @@ public class FineTuningTaskServiceImpl implements FineTuningTaskService {
// validateFineTuningTaskUse(id);
FineTuningTaskDO fineTuningTaskDO = fineTuningTaskMapper.selectById(id);
// 删除
LambdaQueryWrapper<BaseModelDO> eq = new LambdaQueryWrapper<BaseModelDO>().eq(BaseModelDO::getModelName, fineTuningTaskDO.getJobModelName());
List<BaseModelDO> baseModelDOS = baseModelMapper.selectList(eq);
if (baseModelDOS != null && baseModelDOS.size() > 0) {
baseModelController.deleteTheModel(baseModelDOS.get(0).getId());
}
LambdaUpdateWrapper<FineTuningTaskDO> wrapper = new LambdaUpdateWrapper<>();
wrapper.eq(FineTuningTaskDO::getId, id)
.set(FineTuningTaskDO::getDeleted, true);

View File

@ -94,10 +94,6 @@ public class ModelServiceServiceImpl implements ModelServiceService {
@Resource
@Lazy
private BaseModelService baseModelService;
@Resource
private BaseModelController baseModelController;
@Resource
private BaseModelMapper baseModelMapper;
@Override
@ -186,12 +182,6 @@ public class ModelServiceServiceImpl implements ModelServiceService {
ModelServiceDO modelServiceDO = modelServiceMapper.selectById(id);
ServerNameDO serverNameDO = serverNameService.getServerName(modelServiceDO.getGpuType());
LambdaQueryWrapper<BaseModelDO> wrapper = new LambdaQueryWrapper<BaseModelDO>().eq(BaseModelDO::getModelName, modelServiceDO.getBaseModelName());
List<BaseModelDO> baseModelDOS = baseModelMapper.selectList(wrapper);
if (baseModelDOS != null && baseModelDOS.size() > 0) {
baseModelController.deleteTheModel(baseModelDOS.get(0).getId());
}
// 发起模型卸载请求
log.info("正在发起模型卸载请求服务ID: {}", id);
trainHttpService.modelUndeploy(new HashMap<>(), serverNameDO.getHost(), modelServiceDO.getJobId());