From 9e2de3c3e049734519d1218b6e9cd41302c1e81f Mon Sep 17 00:00:00 2001 From: ire <931903008@qq.com> Date: Thu, 23 Jan 2025 19:14:18 +0800 Subject: [PATCH] =?UTF-8?q?=E6=A8=A1=E5=9E=8B=E8=B0=83=E4=BC=98=EF=BC=8C?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0aigc=E6=A8=A1=E5=9E=8B=E5=90=8D=E7=A7=B0?= =?UTF-8?q?=E5=92=8C=E5=88=97=E8=A1=A8id?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../finetuningtask/FineTuningTaskDO.java | 8 +++++- .../async/AsyncFineTuningTaskService.java | 1 + .../basemodel/BaseModelTaskService.java | 2 +- .../FineTuningTaskSyncService.java | 26 +++++++++++++++++-- .../llm/service/http/TrainHttpService.java | 4 +-- 5 files changed, 35 insertions(+), 6 deletions(-) diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/dataobject/finetuningtask/FineTuningTaskDO.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/dataobject/finetuningtask/FineTuningTaskDO.java index 90af82c77..d1725b3f8 100644 --- a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/dataobject/finetuningtask/FineTuningTaskDO.java +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/dataobject/finetuningtask/FineTuningTaskDO.java @@ -142,4 +142,10 @@ public class FineTuningTaskDO extends BaseDO { private Long baseModelId; private String jobId; -} \ No newline at end of file + + //AIGC模型名称 + private String jobModelName; + + //AIGC模型列表主键id + private Long jobModelListId; +} diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/async/AsyncFineTuningTaskService.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/async/AsyncFineTuningTaskService.java index b51765d79..2c640392e 100644 --- a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/async/AsyncFineTuningTaskService.java +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/async/AsyncFineTuningTaskService.java @@ -45,6 +45,7 @@ public class AsyncFineTuningTaskService { if (resp != null) { updateObj.setJobId(resp.getJobId()); updateObj.setStatus(FinetuningTaskStatusEnum.WAITING.getStatus()); + updateObj.setJobModelName(resp.getFineTunedModel()); } else { updateObj.setStatus(FinetuningTaskStatusEnum.CANCELLED.getStatus()); } 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 70295340a..7637e1920 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 @@ -27,7 +27,7 @@ public class BaseModelTaskService { // @Scheduled(cron ="0 0/1 * * * ?") public void updateBaseModel() { Log.info("定时任务启动"); - String resStr = trainHttpService.modelsList(); + String resStr = trainHttpService.modelsList(""); Log.info("获取aicg模型列表返回数据内容{}",resStr); JSONObject jsonObject = JSONObject.parseObject(resStr); JSONObject data = jsonObject.getJSONObject("data"); diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/finetuningtask/FineTuningTaskSyncService.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/finetuningtask/FineTuningTaskSyncService.java index e0cb94b7c..bfa428602 100644 --- a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/finetuningtask/FineTuningTaskSyncService.java +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/finetuningtask/FineTuningTaskSyncService.java @@ -4,8 +4,11 @@ import cn.iocoder.yudao.module.llm.dal.dataobject.finetuningtask.FineTuningTaskD import cn.iocoder.yudao.module.llm.dal.mysql.finetuningtask.FineTuningTaskMapper; import cn.iocoder.yudao.module.llm.enums.FineTuningTaskStatusConstants; import cn.iocoder.yudao.module.llm.enums.FinetuningTaskStatusEnum; +import cn.iocoder.yudao.module.llm.service.basemodel.vo.ModelListRes; import cn.iocoder.yudao.module.llm.service.http.TrainHttpService; import cn.iocoder.yudao.module.llm.service.http.vo.AigcFineTuningDetailRespVO; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.esotericsoftware.minlog.Log; import org.springframework.scheduling.annotation.Scheduled; @@ -33,16 +36,35 @@ public class FineTuningTaskSyncService { if(Objects.equals(fineTuningTaskDO.getStatus(), FinetuningTaskStatusEnum.TRAINING.getStatus()) || Objects.equals(fineTuningTaskDO.getStatus(), FinetuningTaskStatusEnum.WAITING.getStatus())){ AigcFineTuningDetailRespVO resp = trainHttpService.finetuningDetail(new HashMap<>(), fineTuningTaskDO.getJobId()); - String modelName = resp.getFineTunedModel(); + + FineTuningTaskDO updateObj = new FineTuningTaskDO(); Integer status = FineTuningTaskStatusConstants.getStatus(resp.getTrainStatus()); if(status != null){ - FineTuningTaskDO updateObj = new FineTuningTaskDO(); updateObj.setId(fineTuningTaskDO.getId()); updateObj.setStatus(status); updateObj.setTrainDuration(StringUtils.isNotBlank(resp.getTrainDuration())?resp.getTrainDuration():""); + } + //如果微调任务由训练中变为已完成,则取模型列表中获取该任务生成的模型id + if(fineTuningTaskDO.getStatus() == 1 && status == 2){ + String jobModelName = fineTuningTaskDO.getJobModelName(); + String resStr = trainHttpService.modelsList(""); + Log.info("获取aicg模型列表返回数据内容{}",resStr); + JSONObject jsonObject = JSONObject.parseObject(resStr); + JSONObject data = jsonObject.getJSONObject("data"); + JSONArray list = data.getJSONArray("list"); + String s = list.toJSONString(); + List modelListRess = JSONObject.parseArray(s, ModelListRes.class); + if(modelListRess != null){ + ModelListRes modelListRes = modelListRess.get(0); + updateObj.setJobModelListId(modelListRes.getId()); + }else{ + //todo 已训练完成的微调任务,没有在模型列表找对对应模型的处理方式 + } fineTuningTaskMapper.updateById(updateObj); + } } + } } } diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/http/TrainHttpService.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/http/TrainHttpService.java index 3878e5179..c0c90f409 100644 --- a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/http/TrainHttpService.java +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/http/TrainHttpService.java @@ -89,11 +89,11 @@ public class TrainHttpService { /** * 大模型列表 GET */ - public String modelsList(){ + public String modelsList(String modelName){ Map headers = new HashMap<>(); login(headers); String modelsList = llmBackendProperties.getModelsList(); - String res = HttpUtils.get(modelsList, headers); + String res = HttpUtils.get(modelsList + "?modelName=" + modelName, headers); return res; }