feat(llm): 添加删除基座模型功能并优化模型服务相关逻辑
- 在 BaseModelController 中添加删除基座模型的接口 - 在 BaseModelService 中实现删除基座模型的方法 - 更新 ModelServiceTaskService 中的模型状态刷新逻辑 - 在 ModelServiceRespVO 中添加基座模型的 API 地址和密钥字段 - 更新 ModelServiceServiceImpl 中的模型服务创建和状态更新逻辑
This commit is contained in:
parent
7b99cc41a5
commit
5700df8687
@ -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)
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -120,6 +120,8 @@ public class LLMBackendProperties {
|
||||
|
||||
private String aListOfAvailableModels;
|
||||
|
||||
private String deleteTheModel;
|
||||
|
||||
/**
|
||||
* 知识库向量嵌入
|
||||
*/
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 校验模型使用情况
|
||||
*
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
@ -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);
|
||||
|
@ -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。 ###################
|
||||
#### 大模型对话
|
||||
|
@ -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。 ###################
|
||||
#### 大模型对话
|
||||
|
Loading…
x
Reference in New Issue
Block a user