diff --git a/yudao-module-llm/yudao-module-llm-api/src/main/java/cn/iocoder/yudao/module/llm/enums/ModelDeployConstantEnum.java b/yudao-module-llm/yudao-module-llm-api/src/main/java/cn/iocoder/yudao/module/llm/enums/ModelDeployConstantEnum.java index 9ee87e84a..b0a50835a 100644 --- a/yudao-module-llm/yudao-module-llm-api/src/main/java/cn/iocoder/yudao/module/llm/enums/ModelDeployConstantEnum.java +++ b/yudao-module-llm/yudao-module-llm-api/src/main/java/cn/iocoder/yudao/module/llm/enums/ModelDeployConstantEnum.java @@ -13,7 +13,8 @@ public enum ModelDeployConstantEnum implements IntArrayValuable { MODEL_DEPLOY_PENDING(1,"pending"), MODEL_DEPLOY_RUNNING(2,"running"), MODEL_DEPLOY_SUCCESS(2,"success"), - MODEL_DEPLOY_FAILED(3,"failed"); + MODEL_DEPLOY_FAILED(3,"failed"), + MODEL_DEPLOY_STOP(1,"stop"); public static final int[] ARRAYS = Arrays.stream(values()).mapToInt(ModelDeployConstantEnum::getStatus).toArray(); /** diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/async/AsyncModelServiceService.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/async/AsyncModelServiceService.java index 1d0a42cc2..66ad0065a 100644 --- a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/async/AsyncModelServiceService.java +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/async/AsyncModelServiceService.java @@ -77,30 +77,10 @@ public class AsyncModelServiceService { @Async public void startModelService(ModelServiceDO updateObj) { try { - /** - * cpu:1, - * gpu:0 - * inferredType:"cpu" - * label:"cpu-aigc-model" - * maxGpuMemory:0 - * modelWorker:"" - * quantization:"float16" - * replicas:1 - */ - /** - * { - * "model": "string", - * "inferredType": "gpu", - * "cpu": 0, - * "gpu": 1, - * "replicas": 1, - * "label": "cpu-aigc-model", - * "quantization": "float16", - * "maxGpuMemory": 0, - * "modelWorker": "" - * } - */ ModelServiceDO modelServiceDO = modelServiceMapper.selectById(updateObj.getId()); + if (modelServiceDO.getJobId() != null){ + AigcModelDeployVO modelDeployVO = trainHttpService.modelUndeploy(new HashMap<>(), modelServiceDO.getJobId()); + } AigcModelDeploySaveReq aigcModelDeploySaveReq = new AigcModelDeploySaveReq(modelServiceDO.getBaseModelName(), "gpu"); ModelDeployRespVO modelDeployRespVO = trainHttpService.modelDeploy(new HashMap<>(), aigcModelDeploySaveReq); @@ -120,11 +100,9 @@ public class AsyncModelServiceService { try { ModelServiceDO modelServiceDO = modelServiceMapper.selectById(updateObj.getId()); // Thread.sleep(30000); - AigcRespVO aigcRespVO = trainHttpService.modelUndeploy(new HashMap<>(), modelServiceDO.getJobId()); - if (aigcRespVO.isSuccess()){ + AigcModelDeployVO modelDeployRespVO = trainHttpService.modelUndeploy(new HashMap<>(), modelServiceDO.getJobId()); + if (modelDeployRespVO.getStatus().equals("stop")){ updateObj.setStatus(0); - }else { -// updateObj.setStatus(3); } modelServiceMapper.updateById(updateObj); }catch(Exception e){ 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 a22c522ba..f7227ed16 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 @@ -246,14 +246,14 @@ public class TrainHttpService { ModelDeployRespVO modelDeployRespVO = JSON.parseObject(res.getBytes(), ModelDeployRespVO.class); return modelDeployRespVO; } - public AigcRespVO modelUndeploy(Map headers, Long deployId) { + public AigcModelDeployVO modelUndeploy(Map headers, Long deployId) { login(headers); String modelDeploy = llmBackendProperties.getModelUndeploy(); String res = HttpUtils.post(modelDeploy + deployId, headers,""); log.info(" modelDeploy:{}", res); - AigcRespVO aigcRespVO = JSON.parseObject(res, AigcRespVO.class); - log.info(" modelDeploy:{}", aigcRespVO); - return aigcRespVO; + AigcModelDeployVO modelDeployRespVO = JSON.parseObject(res, AigcModelDeployVO.class); + log.info(" modelDeploy:{}", modelDeployRespVO); + return modelDeployRespVO; } /** diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/http/vo/AigcModelDeployVO.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/http/vo/AigcModelDeployVO.java index eb7d17a3e..f7e79dda0 100644 --- a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/http/vo/AigcModelDeployVO.java +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/http/vo/AigcModelDeployVO.java @@ -37,12 +37,12 @@ public class AigcModelDeployVO { }*/ @JsonProperty("updated_at") // @JsonDeserialize(using = AigcCustomDateTimeDeserializer.class) - private LocalDateTime updatedAt; + private String updatedAt; @JsonProperty("model_id") private Integer modeId; @JsonProperty("created_at") // @JsonDeserialize(using = AigcCustomDateTimeDeserializer.class) - private LocalDateTime createdAt; + private String createdAt; private String status; @JsonProperty("inferred_type") private String inferredType; @@ -52,7 +52,7 @@ public class AigcModelDeployVO { private String deploymentName; @JsonProperty("deleted_at") // @JsonDeserialize(using = AigcCustomDateTimeDeserializer.class) - private LocalDateTime deletedAt; + private String deletedAt; private Integer id; @JsonProperty("model_path") private String modelPath; diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/modelservice/ModelServiceTaskSyncService.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/modelservice/ModelServiceTaskSyncService.java index 8d700f699..01e197628 100644 --- a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/modelservice/ModelServiceTaskSyncService.java +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/modelservice/ModelServiceTaskSyncService.java @@ -71,7 +71,6 @@ public class ModelServiceTaskSyncService { module.addDeserializer(LocalDateTime.class, new AigcCustomDateTimeDeserializer()); mapper.registerModule(module); List aigcModelDeployVOS = mapper.readValue(res,new TypeReference>() {}); - Collections.sort(aigcModelDeployVOS, Comparator.comparing(AigcModelDeployVO::getUpdatedAt).reversed()); // 获取最新的一条记录 if (!aigcModelDeployVOS.isEmpty()) { AigcModelDeployVO latestRecord = aigcModelDeployVOS.get(0);