From 9f66f93c068e9aaf1e4e75aaec5cb7fc99eb6b8e Mon Sep 17 00:00:00 2001 From: Liuyang <2746366019@qq.com> Date: Tue, 18 Feb 2025 13:19:17 +0800 Subject: [PATCH] =?UTF-8?q?refactor(module-llm):=E9=87=8D=E6=9E=84?= =?UTF-8?q?=E6=A8=A1=E5=9E=8B=E6=96=87=E4=BB=B6=E4=B8=8B=E8=BD=BD=20URL=20?= =?UTF-8?q?=E6=8B=BC=E6=8E=A5=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增通过 GPU 类型获取主机地址的方法 - 修改文件下载 URL 拼接逻辑,加入主机地址 --- .../backend/config/LLMBackendProperties.java | 6 ++++ .../modelservice/ModelServiceServiceImpl.java | 35 +++++++++++++++++-- 2 files changed, 39 insertions(+), 2 deletions(-) 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 34ea69565..fe6f4b2ce 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 @@ -90,8 +90,14 @@ public class LLMBackendProperties { private String tableDataQuery; + /** + * 5123 - 模型文件列表 + */ private String modelFileList; + /** + * 5123 - 模型文件下载 + */ private String modelFileDownload; private String optimizePrompt; diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/modelservice/ModelServiceServiceImpl.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/modelservice/ModelServiceServiceImpl.java index e274685d0..1eb3c497b 100644 --- a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/modelservice/ModelServiceServiceImpl.java +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/modelservice/ModelServiceServiceImpl.java @@ -9,6 +9,7 @@ import cn.iocoder.yudao.module.llm.controller.admin.modelservice.vo.ModelService import cn.iocoder.yudao.module.llm.controller.admin.modelservice.vo.ModelServiceSaveReqVO; import cn.iocoder.yudao.module.llm.dal.dataobject.finetuningtask.FineTuningTaskDO; import cn.iocoder.yudao.module.llm.dal.dataobject.modelservice.ModelServiceDO; +import cn.iocoder.yudao.module.llm.dal.dataobject.servername.ServerNameDO; import cn.iocoder.yudao.module.llm.dal.mysql.finetuningtask.FineTuningTaskMapper; import cn.iocoder.yudao.module.llm.dal.mysql.modelservice.ModelServiceMapper; import cn.iocoder.yudao.module.llm.framework.backend.config.LLMBackendProperties; @@ -18,7 +19,9 @@ import cn.iocoder.yudao.module.llm.service.http.ModelService; import cn.iocoder.yudao.module.llm.service.modelassesstaskauto.ModelAssessTaskAutoService; import cn.iocoder.yudao.module.llm.service.modelassesstaskmanual.ModelAssessTaskManualService; import cn.iocoder.yudao.module.llm.service.modelassesstaskmanualbackup.ModelAssessTaskManualBackupService; +import cn.iocoder.yudao.module.llm.service.servername.ServerNameService; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import lombok.extern.slf4j.Slf4j; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; @@ -39,6 +42,7 @@ import static cn.iocoder.yudao.module.llm.enums.ErrorCodeConstants.MODEL_SERVIC_ */ @Service @Validated +@Slf4j public class ModelServiceServiceImpl implements ModelServiceService { @Resource @@ -69,6 +73,8 @@ public class ModelServiceServiceImpl implements ModelServiceService { @Resource private ModelAssessTaskManualBackupService modelAssessTaskManualBackupService; + @Resource + private ServerNameService serverNameService; @Override public Long createModelService (ModelServiceSaveReqVO createReqVO) { @@ -311,8 +317,22 @@ public class ModelServiceServiceImpl implements ModelServiceService { String baseModelName = modelServiceDO.getBaseModelName(); Long type = modelServiceDO.getGpuType(); + // 1. 获取文件列表 List fileList = modelService.getFileList(type, baseModelName); - String modelFileDownload = llmBackendProperties.getModelFileDownload(); + + // 2. 根据 GPU 类型获取主机地址 + ServerNameDO server = getServerByType(type); + String baseUrl = server.getHost(); + + if (baseUrl == null || baseUrl.trim().isEmpty()) { + log.warn("GPU: Type: {} , Name: {} , Host: {}", type, server.getCardServerName(), baseUrl); + return Collections.emptyList(); + } + + // 3. 拼接完整的请求 URL + String url = baseUrl + llmBackendProperties.getModelFileDownload(); + log.info("modelFileDownload Request URL: {}", url); + List res = new ArrayList<>(); if (fileList != null) { for (String fileName : fileList) { @@ -320,7 +340,7 @@ public class ModelServiceServiceImpl implements ModelServiceService { if (!extensionPattern.matcher(fileName).find()) { continue; } - res.add(modelFileDownload + baseModelName + "/" + fileName); + res.add(url + baseModelName + "/" + fileName); } } @@ -338,6 +358,17 @@ public class ModelServiceServiceImpl implements ModelServiceService { return modelServiceDO.getGpuType(); } + /** + * 通过 GPU 类型获取对应的主机 + *

ModelService GpuType 是 ServerName 表ID + * + * @param gpuType gpuType + * @return host + */ + public ServerNameDO getServerByType (Long gpuType) { + return serverNameService.getServerName(gpuType); + } + /** * 获取模型服务管理数量 *