fix(llm): 修复模型状态刷新逻辑并优化定时任务执行频率
- 修复模型状态刷新逻辑,增加对 "stop" 状态的处理 - 将定时任务执行频率从每 5 分钟调整为每分钟 - 优化代码格式,去除多余的空格和换行
This commit is contained in:
parent
3a919f884a
commit
04dd579d8b
@ -218,7 +218,7 @@ public class BaseModelServiceImpl implements BaseModelService {
|
||||
@Override
|
||||
public void deleteTheModel(BaseModelPageReqVO pageReqVO) {
|
||||
try {
|
||||
String resStr = HttpUtils.post(llmBackendProperties.getDeleteTheModel()+"?model_name ="+pageReqVO.getModelName(), null, "");
|
||||
String resStr = HttpUtils.post(llmBackendProperties.getDeleteTheModel()+"?model_name="+pageReqVO.getModelName(), null, "");
|
||||
log.info(" unActive:{}", resStr);
|
||||
}catch (Exception e){
|
||||
log.error("禁用基础模型状态时发生异常: {}", e.getMessage(), e);
|
||||
|
@ -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/1 * * * ?")
|
||||
public void refreshTheModelService () {
|
||||
try {
|
||||
// 获取所有基础模型列表
|
||||
@ -273,7 +275,7 @@ public class BaseModelTaskService {
|
||||
.collect(Collectors.toList());
|
||||
//如果状态启动中没起来将状态变为停止
|
||||
List<ModelServiceDO> 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);
|
||||
@ -286,9 +288,8 @@ public class BaseModelTaskService {
|
||||
// String string = JSON.toJSONString(jsonObject);
|
||||
// PedestalModelVO pedestalModelVo = JSON.parseObject(string, PedestalModelVO.class);
|
||||
List<PedestalModelVO> collect = modelListRes.stream()
|
||||
.filter(pedestalModelVO -> pedestalModelVO.getDeploymentName()
|
||||
.equals(name) && "running"
|
||||
.equals(pedestalModelVO.getStatus()))
|
||||
.filter(pedestalModelVO -> pedestalModelVO.getDeploymentName().equals(name)
|
||||
&& "running".equals(pedestalModelVO.getStatus()))
|
||||
.collect(Collectors.toList());
|
||||
if (collect.size() > 0) {
|
||||
PedestalModelVO pedestalModelVo = collect.get(0);
|
||||
@ -307,34 +308,40 @@ 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<ModelServiceDO> localModels = modelServiceDOS.stream()
|
||||
.filter(baseModel -> name.equals(baseModel.getBaseModelName()))
|
||||
List<PedestalModelVO> collect1 = modelListRes.stream()
|
||||
.filter(pedestalModelVO -> pedestalModelVO.getDeploymentName().equals(name)
|
||||
&& "stop".equals(pedestalModelVO.getStatus()))
|
||||
.collect(Collectors.toList());
|
||||
if (localModels != null && localModels.size() > 0) {
|
||||
ModelServiceDO localModel = localModels.get(0);
|
||||
// 如果状态不是 "running",更新本地状态
|
||||
localModel.setStatus(3);
|
||||
modelServiceMapper.updateById(localModel);
|
||||
if (collect1.size() > 0){
|
||||
List<ModelServiceDO> localModels = modelServiceDOS.stream()
|
||||
.filter(baseModel -> name.equals(baseModel.getBaseModelName()))
|
||||
.collect(Collectors.toList());
|
||||
if (localModels != null && localModels.size() > 0) {
|
||||
ModelServiceDO localModel = localModels.get(0);
|
||||
// 如果状态不是 "running",更新本地状态
|
||||
localModel.setStatus(3);
|
||||
modelServiceMapper.updateById(localModel);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user