From 5cff4c2c04de44d6a2bd2ebb264a1e12b83a35c6 Mon Sep 17 00:00:00 2001 From: sunxiqing <2240398334@qq.com> Date: Mon, 17 Mar 2025 16:11:59 +0800 Subject: [PATCH] =?UTF-8?q?feat(llm):=20=E5=A2=9E=E5=8A=A0=E6=A8=A1?= =?UTF-8?q?=E5=9E=8B=E8=B0=83=E4=BC=98=E5=90=8D=E7=A7=B0=E5=AD=97=E6=AE=B5?= =?UTF-8?q?=E5=B9=B6=E5=AE=9E=E7=8E=B0=E7=9B=B8=E5=85=B3=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在 BaseModelDO、BaseModelRespVO 中添加 theTuningName 字段 - 在 BaseModelTaskService 中实现获取模型调优名称的方法 - 在 FineTuningTaskService 中新增 selectName 方法 - 优化 BaseModelController 中的模型创建逻辑 --- .../admin/basemodel/BaseModelController.java | 5 +++++ .../admin/basemodel/vo/BaseModelRespVO.java | 3 +++ .../llm/dal/dataobject/basemodel/BaseModelDO.java | 4 ++++ .../llm/service/basemodel/BaseModelTaskService.java | 13 ++++++++++++- .../finetuningtask/FineTuningTaskService.java | 3 +++ .../finetuningtask/FineTuningTaskServiceImpl.java | 11 ++++++++++- 6 files changed, 37 insertions(+), 2 deletions(-) diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/basemodel/BaseModelController.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/basemodel/BaseModelController.java index 09fd06928..2ed72e120 100644 --- a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/basemodel/BaseModelController.java +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/basemodel/BaseModelController.java @@ -1,7 +1,10 @@ package cn.iocoder.yudao.module.llm.controller.admin.basemodel; +import cn.iocoder.yudao.module.llm.dal.dataobject.finetuningtask.FineTuningTaskDO; import cn.iocoder.yudao.module.llm.service.basemodel.BaseModelTaskService; +import cn.iocoder.yudao.module.llm.service.finetuningtask.FineTuningTaskService; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import org.springframework.validation.annotation.Validated; @@ -41,6 +44,8 @@ public class BaseModelController { private BaseModelService baseModelService; @Resource private BaseModelTaskService baseModelTaskService; + @Resource + private FineTuningTaskService fineTuningTaskService; @PostMapping("/create") @Operation(summary = "创建基座模型") diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/basemodel/vo/BaseModelRespVO.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/basemodel/vo/BaseModelRespVO.java index 8b590f4af..d5b1ff00c 100644 --- a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/basemodel/vo/BaseModelRespVO.java +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/basemodel/vo/BaseModelRespVO.java @@ -20,6 +20,9 @@ public class BaseModelRespVO { @ExcelProperty("基座模型名称") private String modelName; + @Schema(description = "模型调优名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三") + private String theTuningName; + @Schema(description = "参数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "12388") @ExcelProperty("参数量") private Integer parameterCount; diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/dataobject/basemodel/BaseModelDO.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/dataobject/basemodel/BaseModelDO.java index 464794c94..d2ce20112 100644 --- a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/dataobject/basemodel/BaseModelDO.java +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/dataobject/basemodel/BaseModelDO.java @@ -52,6 +52,10 @@ public class BaseModelDO extends BaseDO { * 是否微调 */ private Boolean isFinetuned; + /** + * 模型调优名称 + */ + private String theTuningName; /** * 备注 */ diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/basemodel/BaseModelTaskService.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/basemodel/BaseModelTaskService.java index 262afe08c..f279ca409 100644 --- a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/basemodel/BaseModelTaskService.java +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/basemodel/BaseModelTaskService.java @@ -3,6 +3,7 @@ package cn.iocoder.yudao.module.llm.service.basemodel; import cn.iocoder.yudao.framework.common.util.http.HttpUtils; import cn.iocoder.yudao.module.llm.controller.admin.basemodel.vo.BaseModelSaveReqVO; import cn.iocoder.yudao.module.llm.dal.dataobject.basemodel.BaseModelDO; +import cn.iocoder.yudao.module.llm.dal.dataobject.finetuningtask.FineTuningTaskDO; import cn.iocoder.yudao.module.llm.dal.dataobject.modelservice.ModelServiceDO; import cn.iocoder.yudao.module.llm.dal.dataobject.servername.ServerNameDO; import cn.iocoder.yudao.module.llm.dal.mysql.basemodel.BaseModelMapper; @@ -13,6 +14,7 @@ import cn.iocoder.yudao.module.llm.handler.AigcCustomDateTimeDeserializer; import cn.iocoder.yudao.module.llm.service.basemodel.vo.AListOfPedestalModelsVO; import cn.iocoder.yudao.module.llm.service.basemodel.vo.ModelListRes; import cn.iocoder.yudao.module.llm.service.basemodel.vo.PedestalModelVO; +import cn.iocoder.yudao.module.llm.service.finetuningtask.FineTuningTaskService; import cn.iocoder.yudao.module.llm.service.http.FineTuningTaskHttpService; import cn.iocoder.yudao.module.llm.service.http.TrainHttpService; import cn.iocoder.yudao.module.llm.service.http.vo.AigcModelDeploySaveReq; @@ -21,6 +23,7 @@ import cn.iocoder.yudao.module.llm.service.http.vo.ModelDeployRespVO; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.esotericsoftware.minlog.Log; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.core.type.TypeReference; @@ -34,6 +37,7 @@ import org.springframework.stereotype.Component; import javax.annotation.Resource; import java.time.LocalDateTime; +import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; import java.util.List; @@ -63,6 +67,8 @@ public class BaseModelTaskService { @Value("${spring.profiles.active}") private String active; + @Resource + private FineTuningTaskService fineTuningTaskService; // 减少维护 先注释掉 @Scheduled(cron = "0 0/1 * * * ?") public void synchronous () throws JsonProcessingException { @@ -239,15 +245,20 @@ public class BaseModelTaskService { .filter(remoteModelName -> !differentModelNames.contains(remoteModelName)) .collect(Collectors.toList()); if (uniqueRemoteModelNames.size() > 0) { + List baseModelDOList = new ArrayList<>(); for (String remoteModelName : uniqueRemoteModelNames) { BaseModelDO baseModelDO = new BaseModelDO(); baseModelDO.setModelName(remoteModelName); baseModelDO.setAigcModelName(remoteModelName); + LambdaQueryWrapper eq = new LambdaQueryWrapper().eq(FineTuningTaskDO::getJobModelName, remoteModelName); + FineTuningTaskDO fineTuningTaskDO = fineTuningTaskService.selectName(eq); + baseModelDO.setTheTuningName(fineTuningTaskDO.getTaskName()); // 模型类型 // 微调状态 baseModelDO.setIsFinetuned(replaceActiveGroups(remoteModelName, active)); - baseModelMapper.insert(baseModelDO); + baseModelDOList.add(baseModelDO); } + baseModelMapper.insert(baseModelDOList); } } catch (Exception e) { log.error("更新基础模型状态时发生异常: {}", e.getMessage(), e); diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/finetuningtask/FineTuningTaskService.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/finetuningtask/FineTuningTaskService.java index 5fa0369aa..c36badadd 100644 --- a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/finetuningtask/FineTuningTaskService.java +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/finetuningtask/FineTuningTaskService.java @@ -5,6 +5,7 @@ import cn.iocoder.yudao.module.llm.controller.admin.finetuningtask.vo.FineTuning import cn.iocoder.yudao.module.llm.controller.admin.finetuningtask.vo.FineTuningTaskRespVO; import cn.iocoder.yudao.module.llm.controller.admin.finetuningtask.vo.FineTuningTaskSaveReqVO; import cn.iocoder.yudao.module.llm.dal.dataobject.finetuningtask.FineTuningTaskDO; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import javax.validation.Valid; import java.util.List; @@ -103,4 +104,6 @@ public interface FineTuningTaskService { Map getModelTuningByDatasetId (Long datasetId); String getFineTuningLog(Long id); + + FineTuningTaskDO selectName(LambdaQueryWrapper eq); } diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/finetuningtask/FineTuningTaskServiceImpl.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/finetuningtask/FineTuningTaskServiceImpl.java index 7f885ae6e..1f2b7be21 100644 --- a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/finetuningtask/FineTuningTaskServiceImpl.java +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/finetuningtask/FineTuningTaskServiceImpl.java @@ -70,7 +70,7 @@ public class FineTuningTaskServiceImpl implements FineTuningTaskService { @Override public Long createFineTuningTask (FineTuningTaskSaveReqVO createReqVO) { - + // 记录开始创建任务的日志 log.info("开始创建微调任务,请求参数: {}", createReqVO); @@ -365,6 +365,15 @@ public class FineTuningTaskServiceImpl implements FineTuningTaskService { return null; } + @Override + public FineTuningTaskDO selectName(LambdaQueryWrapper eq) { + List fineTuningTaskDOS = fineTuningTaskMapper.selectList(eq); + if (fineTuningTaskDOS.size()>0) { + return fineTuningTaskDOS.get(0); + } + return null; + } + // @Override // public void stopFineTuningTask (Long id) { // FineTuningTaskDO fineTuningTaskDO = validateFineTuningTaskExists(id);