refactor(llm): 重构模型删除功能并添加完整 URL 配置
- 修改了 BaseModelServiceImpl 中的 deleteTheModel 方法,使用 OkHttpClient 发送 HTTP DELETE 请求 - 在 LLMBackendProperties 中添加了 deleteTheModelFull 字段,用于配置完整的删除模型 URL - 更新了 FineTuningTaskHttpService 中的删除模型逻辑,使用新的完整 URL 配置 - 修改了 Docker Compose 配置,增加了8123 和 5123 端口的映射 - 更新了 application-ymx.yaml 配置,修改了删除模型的 API 路径
This commit is contained in:
parent
b426e158d0
commit
ba26af27cc
@ -123,6 +123,7 @@ public class LLMBackendProperties {
|
||||
|
||||
private String deleteTheModel;
|
||||
|
||||
private String deleteTheModelFull;
|
||||
/**
|
||||
* 知识库向量嵌入
|
||||
*/
|
||||
|
@ -8,7 +8,10 @@ import cn.iocoder.yudao.module.llm.controller.admin.basemodel.vo.BaseModelPageRe
|
||||
import cn.iocoder.yudao.module.llm.controller.admin.basemodel.vo.BaseModelSaveReqVO;
|
||||
import cn.iocoder.yudao.module.llm.dal.dataobject.basemodel.BaseModelDO;
|
||||
import cn.iocoder.yudao.module.llm.dal.dataobject.finetuningtask.FineTuningTaskDO;
|
||||
import cn.iocoder.yudao.module.llm.dal.dataobject.servername.ServerNameDO;
|
||||
import cn.iocoder.yudao.module.llm.dal.mysql.basemodel.BaseModelMapper;
|
||||
import cn.iocoder.yudao.module.llm.dal.mysql.servername.ServerNameMapper;
|
||||
import cn.iocoder.yudao.module.llm.enums.FinetuningTaskStatusEnum;
|
||||
import cn.iocoder.yudao.module.llm.framework.backend.config.LLMBackendProperties;
|
||||
import cn.iocoder.yudao.module.llm.service.application.ApplicationService;
|
||||
import cn.iocoder.yudao.module.llm.service.finetuningtask.FineTuningTaskService;
|
||||
@ -19,14 +22,23 @@ import com.alibaba.fastjson.JSON;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import okhttp3.HttpUrl;
|
||||
import okhttp3.MediaType;
|
||||
import okhttp3.OkHttpClient;
|
||||
import okhttp3.Request;
|
||||
import okhttp3.RequestBody;
|
||||
import okhttp3.Response;
|
||||
import org.springframework.context.annotation.Lazy;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.io.IOException;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||
import static cn.iocoder.yudao.module.llm.enums.ErrorCodeConstants.*;
|
||||
@ -40,7 +52,8 @@ import static cn.iocoder.yudao.module.llm.enums.ErrorCodeConstants.*;
|
||||
@Validated
|
||||
@Slf4j
|
||||
public class BaseModelServiceImpl implements BaseModelService {
|
||||
|
||||
@Resource
|
||||
private ServerNameMapper serverNameMapper;
|
||||
@Resource
|
||||
private BaseModelMapper baseModelMapper;
|
||||
|
||||
@ -218,13 +231,59 @@ public class BaseModelServiceImpl implements BaseModelService {
|
||||
@Override
|
||||
public void deleteTheModel(BaseModelPageReqVO pageReqVO) {
|
||||
try {
|
||||
String resStr = HttpUtils.del(llmBackendProperties.getDeleteTheModel()+"/"+pageReqVO.getModelName(), null);
|
||||
log.info(" unActive:{}", resStr);
|
||||
Map<String,String> map = new HashMap<>();
|
||||
map.put("model_name",pageReqVO.getModelName());
|
||||
// String resStr = HttpUtils.del(llmBackendProperties.getDeleteTheModel()+"/"+pageReqVO.getModelName(), null);
|
||||
|
||||
|
||||
log.info(" ===== 删除微调任务 ===== stopFinetuning");
|
||||
|
||||
// 创建 OkHttpClient 实例
|
||||
log.info("创建 OkHttpClient 实例,设置超时时间为 2 分钟");
|
||||
OkHttpClient client = new OkHttpClient.Builder()
|
||||
.connectTimeout(2, TimeUnit.MINUTES)
|
||||
.readTimeout(2, TimeUnit.MINUTES)
|
||||
.writeTimeout(2, TimeUnit.MINUTES)
|
||||
.build();
|
||||
|
||||
// 1. 获取删除微调任务的URL
|
||||
String baseUrl =llmBackendProperties.getDeleteTheModelFull();
|
||||
log.info("获取删除微调任务的URL: {}", baseUrl);
|
||||
HttpUrl url = Objects.requireNonNull(HttpUrl.parse(baseUrl))
|
||||
.newBuilder()
|
||||
.addQueryParameter("fine_tuned_model",pageReqVO.getModelName())
|
||||
.build();
|
||||
|
||||
// 2. 构建请求体(空请求体)
|
||||
RequestBody requestBody = RequestBody.create("", MediaType.parse("application/json"));
|
||||
|
||||
// 3. 构建请求
|
||||
Request request = new Request.Builder()
|
||||
.url(url)
|
||||
.delete(requestBody)
|
||||
.addHeader("accept", "application/json")
|
||||
.build();
|
||||
|
||||
// 4. 发送请求
|
||||
log.info("开始发送HTTP DELETE请求,删除微调任务,任务模型名称: {}", pageReqVO.getModelName());
|
||||
try (Response response = client.newCall(request).execute()) {
|
||||
if (response.body()!=null) {
|
||||
String body = response.body().string();
|
||||
log.info("HTTP删除请求完成,响应内容: {}", body);
|
||||
} else {
|
||||
log.error("HTTP请求失败: " + "响应为空");
|
||||
throw new RuntimeException("HTTP请求失败: " + "响应为空");
|
||||
}
|
||||
} catch (IOException e) {
|
||||
log.error("发送HTTP请求删除微调任务时发生异常,任务模型名称: {}",pageReqVO.getModelName(), e);
|
||||
throw new RuntimeException("HTTP请求失败", e);
|
||||
}
|
||||
}catch (Exception e){
|
||||
log.error("禁用基础模型状态时发生异常: {}", e.getMessage(), e);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 校验模型使用情况
|
||||
*
|
||||
|
@ -181,7 +181,7 @@ public class FineTuningTaskHttpService {
|
||||
.build();
|
||||
|
||||
// 1. 获取删除微调任务的URL
|
||||
String baseUrl = host + llmBackendProperties.getStopFinetuning();
|
||||
String baseUrl = host + llmBackendProperties.getDeleteTheModel();
|
||||
log.info("获取删除微调任务的URL: {}", baseUrl);
|
||||
HttpUrl url = Objects.requireNonNull(HttpUrl.parse(baseUrl))
|
||||
.newBuilder()
|
||||
|
@ -337,8 +337,8 @@ llm:
|
||||
# 模型列表 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
|
||||
|
||||
delete_the_model: /delete-model
|
||||
delete_the_model_full: http://127.0.0.1:5123/delete-model
|
||||
#################### 30000: 大模型对话相关API。 ###################
|
||||
#### 大模型对话
|
||||
# 模型列表 GET
|
||||
|
Loading…
x
Reference in New Issue
Block a user