From b426e158d0ef37530c23d819244b58820f51c4d2 Mon Sep 17 00:00:00 2001 From: Liuyang <2746366019@qq.com> Date: Fri, 14 Mar 2025 19:28:05 +0800 Subject: [PATCH] =?UTF-8?q?feat(llm):=20=E6=B7=BB=E5=8A=A0=E5=88=A0?= =?UTF-8?q?=E9=99=A4=E5=BE=AE=E8=B0=83=E4=BB=BB=E5=8A=A1=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在 AsyncFineTuningTaskService 中添加 deleteFinetuning 方法 - 在 FineTuningTaskHttpService 中实现 deletedFinetuning 方法 - 在 FineTuningTaskServiceImpl 中调用 deleteFinetuning 方法 - 在 LLMBackendProperties 中添加删除微调任务的 API 路径 --- .../backend/config/LLMBackendProperties.java | 1 + .../async/AsyncFineTuningTaskService.java | 11 +++++ .../FineTuningTaskServiceImpl.java | 2 + .../http/FineTuningTaskHttpService.java | 45 +++++++++++++++++++ 4 files changed, 59 insertions(+) diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/framework/backend/config/LLMBackendProperties.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/framework/backend/config/LLMBackendProperties.java index bcbfae6e5..d90d86a0e 100644 --- a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/framework/backend/config/LLMBackendProperties.java +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/framework/backend/config/LLMBackendProperties.java @@ -74,6 +74,7 @@ public class LLMBackendProperties { @NotNull(message = "停止微调任务 POST") private String stopFinetuning; + private String finetuningLog; private String finetuningDetail; diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/async/AsyncFineTuningTaskService.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/async/AsyncFineTuningTaskService.java index a951c0ea2..116405476 100644 --- a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/async/AsyncFineTuningTaskService.java +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/async/AsyncFineTuningTaskService.java @@ -244,4 +244,15 @@ public class AsyncFineTuningTaskService { throw new RuntimeException("停止微调任务失败", e); } } + + public void deleteFinetuning (FineTuningTaskDO fineTuningTaskDO) { + ServerNameDO serverNameDO = getServerNameDO(fineTuningTaskDO); + if (serverNameDO == null) { + return; + } + + log.info("开始调用HTTP服务删除微调任务,任务模型名称: {}", fineTuningTaskDO.getJobModelName()); + fineTuningTaskHttpService.deletedFinetuning(serverNameDO.getHost(), fineTuningTaskDO); + log.info("HTTP服务调用成功,任务模型名称: {}", fineTuningTaskDO.getJobModelName()); + } } diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/finetuningtask/FineTuningTaskServiceImpl.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/finetuningtask/FineTuningTaskServiceImpl.java index b9eafb0d9..5114b5554 100644 --- a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/finetuningtask/FineTuningTaskServiceImpl.java +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/finetuningtask/FineTuningTaskServiceImpl.java @@ -394,6 +394,8 @@ public class FineTuningTaskServiceImpl implements FineTuningTaskService { asyncFineTuningTaskService.stopFinetuning(fineTuningTaskDO); log.info("异步调用模型服务完成,任务ID: {}", id); + log.info("开始异步调用模型服务,删除微调任务,任务ID: {},模型名称:{}", id,fineTuningTaskDO.getJobModelName()); + asyncFineTuningTaskService.deleteFinetuning(fineTuningTaskDO); } @Override diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/http/FineTuningTaskHttpService.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/http/FineTuningTaskHttpService.java index 215cc52bf..71540003f 100644 --- a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/http/FineTuningTaskHttpService.java +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/http/FineTuningTaskHttpService.java @@ -168,4 +168,49 @@ public class FineTuningTaskHttpService { throw new RuntimeException("HTTP 请求发生未知异常", e); } } + + public void deletedFinetuning (String host, FineTuningTaskDO fineTuningTaskDO) { + 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 = host + llmBackendProperties.getStopFinetuning(); + log.info("获取删除微调任务的URL: {}", baseUrl); + HttpUrl url = Objects.requireNonNull(HttpUrl.parse(baseUrl)) + .newBuilder() + .addQueryParameter("fine_tuned_model", fineTuningTaskDO.getJobModelName()) + .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请求,删除微调任务,任务模型名称: {}", fineTuningTaskDO.getJobModelName()); + 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请求删除微调任务时发生异常,任务模型名称: {}", fineTuningTaskDO.getJobModelName(), e); + throw new RuntimeException("HTTP请求失败", e); + } + } }