feat(llm): 添加删除基座模型功能并优化模型服务相关逻辑

- 在 BaseModelController 中添加删除基座模型的接口
- 在 BaseModelService 中实现删除基座模型的方法
- 更新 ModelServiceTaskService 中的模型状态刷新逻辑
- 在 ModelServiceRespVO 中添加基座模型的 API 地址和密钥字段
- 更新 ModelServiceServiceImpl 中的模型服务创建和状态更新逻辑
This commit is contained in:
sunxiqing 2025-03-14 17:43:37 +08:00
parent 7b99cc41a5
commit 5700df8687
9 changed files with 60 additions and 14 deletions

View File

@ -82,6 +82,13 @@ public class BaseModelController {
return success(BeanUtils.toBean(pageResult, BaseModelRespVO.class));
}
@DeleteMapping("/deleteTheModel")
@Operation(summary = "删除基座模型")
public CommonResult<Boolean> deleteTheModel(@Valid BaseModelPageReqVO pageReqVO) {
baseModelService.deleteTheModel(pageReqVO);
return success(true);
}
@DeleteMapping("/delete")
@Operation(summary = "删除基座模型")
@Parameter(name = "id", description = "编号", required = true)

View File

@ -72,4 +72,10 @@ public class ModelServiceRespVO {
@Schema(description = "模型版本号", example = "1.0.0")
@ExcelProperty("版本号")
private String version;
@Schema(description = "api地址")
private String BaseApiUrl;
@Schema(description = "api秘钥")
private String BaseApiKey;
}

View File

@ -120,6 +120,8 @@ public class LLMBackendProperties {
private String aListOfAvailableModels;
private String deleteTheModel;
/**
* 知识库向量嵌入
*/

View File

@ -82,4 +82,8 @@ public interface BaseModelService {
List<BaseModelDO> selectList(LambdaQueryWrapper<BaseModelDO> select);
List<BaseModelDO> selectBatchIds(List<Long> ids);
BaseModelDO getById(Long fineTuningTask);
void deleteTheModel(BaseModelPageReqVO pageReqVO);
}

View File

@ -210,6 +210,21 @@ public class BaseModelServiceImpl implements BaseModelService {
return baseModelMapper.selectBatchIds(ids);
}
@Override
public BaseModelDO getById(Long fineTuningTask) {
return baseModelMapper.selectById(fineTuningTask);
}
@Override
public void deleteTheModel(BaseModelPageReqVO pageReqVO) {
try {
String resStr = HttpUtils.post(llmBackendProperties.getDeleteTheModel()+"?model_name ="+pageReqVO.getModelName(), null, "");
log.info(" unActive:{}", resStr);
}catch (Exception e){
log.error("禁用基础模型状态时发生异常: {}", e.getMessage(), e);
}
}
/**
* 校验模型使用情况
*

View File

@ -249,7 +249,7 @@ public class BaseModelTaskService {
}
// @Scheduled(cron = "0 0/5 * * * ?")
@Scheduled(cron = "0 0/1 * * * ?")
public void refreshTheModelService() {
try {
// 获取所有基础模型列表
@ -268,11 +268,12 @@ public class BaseModelTaskService {
.collect(Collectors.toCollection(HashSet::new))
.stream()
.collect(Collectors.toList());
//如果状态启动中没起来将状态变为停止
List<ModelServiceDO> differentModels = modelServiceDOS.stream()
.filter(baseModel -> !remoteModelNames.contains(baseModel.getBaseModelName()) && baseModel.getStatus() == 2)
.filter(baseModel -> !remoteModelNames.contains(baseModel.getBaseModelName()) && (baseModel.getStatus() == 4 || baseModel.getStatus() == 2))
.collect(Collectors.toList());
for (ModelServiceDO baseModel : differentModels){
baseModel.setStatus(1);
baseModel.setStatus(3);
}
if (differentModels.size()>0) {
modelServiceMapper.updateById(differentModels);
@ -298,12 +299,12 @@ public class BaseModelTaskService {
// 如果状态不是 "running"更新本地状态
if (!"running".equals(pedestalModelVo.getStatus())) {
log.info("更新模型状态,模型名称: {}, 状态: {}", pedestalModelVo.getDeploymentName(), pedestalModelVo.getStatus());
localModel.setStatus(1);
localModel.setStatus(3);
localModel.setJobId((long) pedestalModelVo.getId());
modelServiceMapper.updateById(localModel);
} else {
String string1 = pedestalModelVo.getHost() + "/v1/chat/completions";
localModel.setStatus(2);
localModel.setStatus(4);
localModel.setModelUrl(string1);
// localModel.setApiUrl(string1);
localModel.setJobId((long) pedestalModelVo.getId());
@ -329,7 +330,7 @@ public class BaseModelTaskService {
if (localModels != null && localModels.size() > 0) {
ModelServiceDO localModel = localModels.get(0);
// 如果状态不是 "running"更新本地状态
localModel.setStatus(1);
localModel.setStatus(3);
modelServiceMapper.updateById(localModel);
}
}

View File

@ -96,7 +96,7 @@ public class ModelServiceServiceImpl implements ModelServiceService {
queryWrapper.eq(ModelServiceDO::getFineTuningTask, createReqVO.getFineTuningTask());
List<ModelServiceDO> modelServiceDOS = modelServiceMapper.selectList(queryWrapper);
if (modelServiceDOS.size() > 0) {
throw exception(new ErrorCode(10003_001, "微调任务已生成过模型服务,不可再生成"));
throw exception(new ErrorCode(10003_001, "基座模型已生成过模型服务,不可再生成"));
}
// 插入
@ -119,10 +119,10 @@ public class ModelServiceServiceImpl implements ModelServiceService {
modelService.setApiUrl(replace);
modelService.setStatus(0);
// BaseModelDO byAigcId = baseModelService.getByAigcId(modelService.getFineTuningTask());
// if (byAigcId != null){
// modelService.setBaseModelName(byAigcId.getModelName());
// }
BaseModelDO byAigcId = baseModelService.getById(modelService.getFineTuningTask());
if (byAigcId != null){
modelService.setBaseModelName(byAigcId.getModelName());
}
modelServiceMapper.insert(modelService);
// asyncModelServiceService.createModelService(modelService);
// 返回
@ -327,6 +327,8 @@ public class ModelServiceServiceImpl implements ModelServiceService {
BaseModelDO fineTuningTaskDO = fineTuningTaskMap.get(item.getFineTuningTask());
if (fineTuningTaskDO != null) {
item.setFineTuningTaskName(fineTuningTaskDO.getModelName());
item.setBaseApiUrl(fineTuningTaskDO.getApiUrl());
item.setBaseApiKey(fineTuningTaskDO.getApiKey());
}
});
}
@ -443,11 +445,13 @@ public class ModelServiceServiceImpl implements ModelServiceService {
public void startTheModel(ModelServiceSaveReqVO updateReqVO) {
try {
Long fineTuningTask = updateReqVO.getFineTuningTask();
BaseModelDO byAigcId = baseModelService.getByAigcId(fineTuningTask);
BaseModelDO byAigcId = baseModelService.getById(fineTuningTask);
Map<String,String> map = new HashMap<>();
map.put("model",byAigcId.getModelName());
String resStr = HttpUtils.post(llmBackendProperties.getDeployModel(), null,JSON.toJSONString(map));
ModelServiceDO updateObj = BeanUtils.toBean(updateReqVO, ModelServiceDO.class);
updateObj.setStatus(2);
modelServiceMapper.updateById(updateObj);
}catch (Exception e){
log.error("启动基础模型状态时发生异常: {}", e.getMessage(), e);
}
@ -457,9 +461,12 @@ public class ModelServiceServiceImpl implements ModelServiceService {
public void disableTheModel(ModelServiceSaveReqVO updateReqVO) {
try {
Long fineTuningTask = updateReqVO.getFineTuningTask();
BaseModelDO byAigcId = baseModelService.getByAigcId(fineTuningTask);
BaseModelDO byAigcId = baseModelService.getById(fineTuningTask);
String resStr = HttpUtils.post(llmBackendProperties.getDeleteModel()+"?deploy_id="+byAigcId.getModelId(), null, "");
log.info(" unActive:{}", resStr);
ModelServiceDO updateObj = BeanUtils.toBean(updateReqVO, ModelServiceDO.class);
updateObj.setStatus(3);
modelServiceMapper.updateById(updateObj);
// 禁用模型
}catch (Exception e){
log.error("禁用基础模型状态时发生异常: {}", e.getMessage(), e);

View File

@ -336,6 +336,8 @@ llm:
delete_model: http://36.103.199.248:5123/llm/deploy/stop
# 模型列表 get
a_list_of_available_models: http://36.103.199.248:5123/llm/list
#删除模型
delete_the_model: http://36.103.199.248:5123/delete-model
#################### 30000: 大模型对话相关API。 ###################
#### 大模型对话

View File

@ -336,6 +336,8 @@ llm:
delete_model: http://127.0.0.1:5123/llm/deploy/stop
# 模型列表 get
a_list_of_available_models: http://127.0.0.1:5123/llm/list
#删除模型
delete_the_model: http://127.0.0.1:5123/delete-model
#################### 30000: 大模型对话相关API。 ###################
#### 大模型对话