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 3ae0cc52c..926a4f30f 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 @@ -18,6 +18,7 @@ import cn.iocoder.yudao.module.llm.service.http.TrainHttpService; import cn.iocoder.yudao.module.llm.service.http.vo.AigcFineTuningCreateReqVO; import cn.iocoder.yudao.module.llm.service.http.vo.AigcFineTuningCreateRespVO; import lombok.extern.slf4j.Slf4j; +import org.jetbrains.annotations.Nullable; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Lazy; import org.springframework.scheduling.annotation.Async; @@ -65,18 +66,10 @@ public class AsyncFineTuningTaskService { try { log.info("开始创建微调任务,任务ID: {}", fineTuningTask.getId()); - // 查询 GPU 类型对应的服务器信息 - log.debug("正在查询 GPU 类型对应的服务器信息,GPU 类型: {}", fineTuningTask.getGpuType()); - ServerNameDO serverNameDO = serverNameMapper.selectById(fineTuningTask.getGpuType()); + ServerNameDO serverNameDO = getServerNameDO(fineTuningTask); if (serverNameDO == null) { - log.error("未找到 GPU 类型对应的服务器信息,任务将被取消。GPU 类型: {}", fineTuningTask.getGpuType()); - FineTuningTaskDO updateObj = new FineTuningTaskDO(); - updateObj.setId(fineTuningTask.getId()); - updateObj.setStatus(FinetuningTaskStatusEnum.CANCELLED.getStatus()); - fineTuningTaskMapper.updateById(updateObj); return; } - log.debug("服务器信息查询成功。服务器主机: {}", serverNameDO.getHost()); // 构建微调任务请求对象 log.debug("正在构建微调任务请求对象..."); @@ -150,6 +143,29 @@ public class AsyncFineTuningTaskService { } } + /** + * 获取微调任务服务器信息 + * + * @param fineTuningTask 微调任务 + * @return 微调任务服务器信息 + */ + @Nullable + private ServerNameDO getServerNameDO (FineTuningTaskDO fineTuningTask) { + // 查询 GPU 类型对应的服务器信息 + log.debug("正在查询 GPU 类型对应的服务器信息,GPU 类型: {}", fineTuningTask.getGpuType()); + ServerNameDO serverNameDO = serverNameMapper.selectById(fineTuningTask.getGpuType()); + if (serverNameDO == null) { + log.error("未找到 GPU 类型对应的服务器信息,任务将被取消。GPU 类型: {}", fineTuningTask.getGpuType()); + FineTuningTaskDO updateObj = new FineTuningTaskDO(); + updateObj.setId(fineTuningTask.getId()); + updateObj.setStatus(FinetuningTaskStatusEnum.CANCELLED.getStatus()); + fineTuningTaskMapper.updateById(updateObj); + return null; + } + log.debug("服务器信息查询成功。服务器主机: {}", serverNameDO.getHost()); + return serverNameDO; + } + private static AigcFineTuningCreateReqVO getAigcFineTuningCreateReqVO (FineTuningTaskDO fineTuningTask) { AigcFineTuningCreateReqVO req = new AigcFineTuningCreateReqVO(); req.setModel(fineTuningTask.getBaseModel()); @@ -203,8 +219,14 @@ public class AsyncFineTuningTaskService { public void stopFinetuning (FineTuningTaskDO fineTuningTaskDO) { log.info(" ===== 停止微调任务 ===== stopFinetuning"); try { + + ServerNameDO serverNameDO = getServerNameDO(fineTuningTaskDO); + if (serverNameDO == null) { + return; + } + log.info("开始调用HTTP服务停止微调任务,任务模型名称: {}", fineTuningTaskDO.getJobModelName()); - fineTuningTaskHttpService.stopFinetuning(fineTuningTaskDO); + fineTuningTaskHttpService.stopFinetuning(serverNameDO.getHost(), fineTuningTaskDO); log.info("HTTP服务调用成功,任务模型名称: {}", fineTuningTaskDO.getJobModelName()); } catch (Exception e) { log.error("调用HTTP服务停止微调任务时发生异常,任务模型名称: {}", fineTuningTaskDO.getJobModelName(), e); diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/http/FineTuningTaskHttpService.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/http/FineTuningTaskHttpService.java index 3d0f18ff9..72af2d12d 100644 --- a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/http/FineTuningTaskHttpService.java +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/http/FineTuningTaskHttpService.java @@ -13,7 +13,6 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import javax.annotation.Resource; -import java.util.HashMap; import java.util.Map; /** @@ -31,11 +30,11 @@ public class FineTuningTaskHttpService { * * @param fineTuningTaskDO 微调任务数据对象,包含任务的相关信息 */ - public void stopFinetuning(FineTuningTaskDO fineTuningTaskDO) { + public void stopFinetuning (String host, FineTuningTaskDO fineTuningTaskDO) { log.info(" ===== 停止微调任务 ===== stopFinetuning"); // 1. 获取停止微调任务的URL - String url = llmBackendProperties.getStopFinetuning(); + String url = host + llmBackendProperties.getStopFinetuning(); log.info("获取停止微调任务的URL: {}", url); // 2. 发送HTTP POST请求,停止微调任务