From 507ea2551cb5a1f0756fc6111c488b1c9e30d383 Mon Sep 17 00:00:00 2001 From: sunxiqing <2240398334@qq.com> Date: Fri, 14 Mar 2025 18:12:09 +0800 Subject: [PATCH] =?UTF-8?q?refactor(llm):=20=E8=B0=83=E6=95=B4=E6=A8=A1?= =?UTF-8?q?=E5=9E=8B=E6=9C=8D=E5=8A=A1=E7=8A=B6=E6=80=81=E5=92=8C=E5=88=B7?= =?UTF-8?q?=E6=96=B0=E9=80=BB=E8=BE=91-=20=E4=BF=AE=E6=94=B9=20refreshTheM?= =?UTF-8?q?odelService=20=E6=96=B9=E6=B3=95=E7=9A=84=E5=AE=9A=E6=97=B6?= =?UTF-8?q?=E8=B0=83=E5=BA=A6=E6=97=B6=E9=97=B4=EF=BC=8C=E4=BB=8E=E6=AF=8F?= =?UTF-8?q?=E5=88=86=E9=92=9F=E6=89=A7=E8=A1=8C=E6=94=B9=E4=B8=BA=E6=AF=8F?= =?UTF-8?q?=205=20=E5=88=86=E9=92=9F=E6=89=A7=E8=A1=8C-=20=E6=9B=B4?= =?UTF-8?q?=E6=96=B0=E6=A8=A1=E5=9E=8B=E6=9C=8D=E5=8A=A1=E7=8A=B6=E6=80=81?= =?UTF-8?q?=E5=88=A4=E6=96=AD=E9=80=BB=E8=BE=91=EF=BC=8C=E6=9C=AC=E5=9C=B0?= =?UTF-8?q?=E6=A8=A1=E5=9E=8B=E7=8A=B6=E6=80=81=EF=BC=8C=E4=BB=8E"?= =?UTF-8?q?=E5=90=AF=E5=8A=A8=E4=B8=AD"=E6=94=B9=E4=B8=BA"=E8=BF=90?= =?UTF-8?q?=E8=A1=8C=E4=B8=AD"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../basemodel/BaseModelTaskService.java | 88 ++++++++++--------- 1 file changed, 45 insertions(+), 43 deletions(-) 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 0af1f2f5a..c434a8b57 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 @@ -15,7 +15,9 @@ 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.http.FineTuningTaskHttpService; import cn.iocoder.yudao.module.llm.service.http.TrainHttpService; +import cn.iocoder.yudao.module.llm.service.http.vo.AigcModelDeploySaveReq; import cn.iocoder.yudao.module.llm.service.http.vo.AigcModelDeployVO; +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; @@ -109,33 +111,33 @@ public class BaseModelTaskService { String status = latestRecord.getStatus(); log.info("最新模型部署记录状态: {}", status); - // // 如果模型状态为 "stop",则重新部署 - // if ("stop".equals(status)) { - // log.info("模型状态为 'stop',正在重新部署模型..."); - // - // // 构建模型部署请求 - // AigcModelDeploySaveReq aigcModelDeploySaveReq = new AigcModelDeploySaveReq( - // baseModelDO.getAigcModelName(), "gpu"); - // log.info("模型部署请求参数: {}", JSON.toJSONString(aigcModelDeploySaveReq)); - // - // // 发起模型部署请求 - // ModelDeployRespVO modelDeployRespVO = trainHttpService.modelDeploy( - // new HashMap<>(), serverName.getHost(), aigcModelDeploySaveReq); - // log.info("模型部署请求完成。响应内容: {}", JSON.toJSONString(modelDeployRespVO)); - // - // // 更新基础模型信息 - // if (!"error".equals(modelDeployRespVO.getMessage())) { - // log.info("模型部署成功。正在更新基础模型信息..."); - // BaseModelSaveReqVO baseModelSaveReqVO = new BaseModelSaveReqVO(); - // baseModelSaveReqVO.setId(baseModelDO.getId()); - // baseModelSaveReqVO.setModelId(modelDeployRespVO.getId()); - // baseModelSaveReqVO.setChatUrl(modelDeployRespVO.getPort() + DEFAULT_MODEL_URL_SUFFIX); - // baseModelService.updateBaseModel(baseModelSaveReqVO); - // log.info("基础模型信息更新完成。模型ID: {}", baseModelDO.getId()); - // } else { - // log.error("模型部署失败。模型ID: {}", baseModelDO.getId()); - // } - // } +// // 如果模型状态为 "stop",则重新部署 +// if ("stop".equals(status)) { +// log.info("模型状态为 'stop',正在重新部署模型..."); +// +// // 构建模型部署请求 +// AigcModelDeploySaveReq aigcModelDeploySaveReq = new AigcModelDeploySaveReq( +// baseModelDO.getAigcModelName(), "gpu"); +// log.info("模型部署请求参数: {}", JSON.toJSONString(aigcModelDeploySaveReq)); +// +// // 发起模型部署请求 +// ModelDeployRespVO modelDeployRespVO = trainHttpService.modelDeploy( +// new HashMap<>(), serverName.getHost(), aigcModelDeploySaveReq); +// log.info("模型部署请求完成。响应内容: {}", JSON.toJSONString(modelDeployRespVO)); +// +// // 更新基础模型信息 +// if (!"error".equals(modelDeployRespVO.getMessage())) { +// log.info("模型部署成功。正在更新基础模型信息..."); +// BaseModelSaveReqVO baseModelSaveReqVO = new BaseModelSaveReqVO(); +// baseModelSaveReqVO.setId(baseModelDO.getId()); +// baseModelSaveReqVO.setModelId(modelDeployRespVO.getId()); +// baseModelSaveReqVO.setChatUrl(modelDeployRespVO.getPort() + DEFAULT_MODEL_URL_SUFFIX); +// baseModelService.updateBaseModel(baseModelSaveReqVO); +// log.info("基础模型信息更新完成。模型ID: {}", baseModelDO.getId()); +// } else { +// log.error("模型部署失败。模型ID: {}", baseModelDO.getId()); +// } +// } } else { log.warn("未找到模型部署记录。模型ID: {}", modelId); } @@ -150,7 +152,7 @@ public class BaseModelTaskService { // @Scheduled(cron ="0 0/1 * * * ?") - public void updateBaseModel () { + public void updateBaseModel() { Log.info("定时任务启动"); String resStr = trainHttpService.modelsList(""); Log.info("获取aicg模型列表返回数据内容{}", resStr); @@ -252,7 +254,7 @@ public class BaseModelTaskService { } - // @Scheduled(cron = "0 0/1 * * * ?") + @Scheduled(cron = "0 0/5 * * * ?") public void refreshTheModelService () { try { // 获取所有基础模型列表 @@ -273,7 +275,7 @@ public class BaseModelTaskService { .collect(Collectors.toList()); //如果状态启动中没起来将状态变为停止 List differentModels = modelServiceDOS.stream() - .filter(baseModel -> !remoteModelNames.contains(baseModel.getBaseModelName()) && (baseModel.getStatus() == 4 || baseModel.getStatus() == 2)) + .filter(baseModel -> !remoteModelNames.contains(baseModel.getBaseModelName()) && (baseModel.getStatus() == 2 || baseModel.getStatus() == 1)) .collect(Collectors.toList()); for (ModelServiceDO baseModel : differentModels) { baseModel.setStatus(3); @@ -307,25 +309,25 @@ public class BaseModelTaskService { modelServiceMapper.updateById(localModel); } else { String string1 = pedestalModelVo.getHost() + "/v1/chat/completions"; - localModel.setStatus(4); + localModel.setStatus(2); localModel.setModelUrl(string1); - // localModel.setApiUrl(string1); +// localModel.setApiUrl(string1); localModel.setJobId((long) pedestalModelVo.getId()); modelServiceMapper.updateById(localModel); log.info("模型 {} 状态为 running,无需更新", pedestalModelVo.getDeploymentName()); } } - // else { - // //新增基座模型 - // if ("running".equals(pedestalModelVo.getStatus())){ - // BaseModelSaveReqVO baseModelSaveReqVO = new BaseModelSaveReqVO(); - // baseModelSaveReqVO.setModelName(pedestalModelVo.getDeploymentName()); - // baseModelSaveReqVO.setIsActive(1); - // baseModelSaveReqVO.setAigcModelName(pedestalModelVo.getDeploymentName()); - // baseModelSaveReqVO.setChatUrl(pedestalModelVo.getHost() + "/v1/chat/completions"); - // baseModelService.createBaseModel(baseModelSaveReqVO); - // } - // } +// else { +// //新增基座模型 +// if ("running".equals(pedestalModelVo.getStatus())){ +// BaseModelSaveReqVO baseModelSaveReqVO = new BaseModelSaveReqVO(); +// baseModelSaveReqVO.setModelName(pedestalModelVo.getDeploymentName()); +// baseModelSaveReqVO.setIsActive(1); +// baseModelSaveReqVO.setAigcModelName(pedestalModelVo.getDeploymentName()); +// baseModelSaveReqVO.setChatUrl(pedestalModelVo.getHost() + "/v1/chat/completions"); +// baseModelService.createBaseModel(baseModelSaveReqVO); +// } +// } } else { List localModels = modelServiceDOS.stream() .filter(baseModel -> name.equals(baseModel.getBaseModelName()))