From 9bbe8fa8ffd9f2c270fd4da31d50c21cef4f78ad Mon Sep 17 00:00:00 2001 From: Liuyang <2746366019@qq.com> Date: Tue, 18 Feb 2025 11:22:04 +0800 Subject: [PATCH] =?UTF-8?q?feat(module-llm):=E5=A2=9E=E5=8A=A0=E6=A0=B9?= =?UTF-8?q?=E6=8D=AE=20GPU=20=E7=B1=BB=E5=9E=8B=E8=8E=B7=E5=8F=96=E6=A8=A1?= =?UTF-8?q?=E5=9E=8B=E4=B8=8B=E8=BD=BD=E5=88=97=E8=A1=A8=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增 getHostByType 方法,通过 GPU 类型获取对应的主机地址 - 修改 getFileList 方法,增加 GPU 类型参数,使用 getHostByType 获取主机地址 - 更新 getDownLoadList 方法,传入 GPU 类型到 getFileList 方法 --- .../modelservice/ModelServiceController.java | 4 +- .../modelservice/ModelServiceDO.java | 5 +- .../module/llm/service/http/ModelService.java | 46 +++++++++++++------ .../modelservice/ModelServiceServiceImpl.java | 7 ++- 4 files changed, 39 insertions(+), 23 deletions(-) diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/modelservice/ModelServiceController.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/modelservice/ModelServiceController.java index 2fadff433..439d1085d 100644 --- a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/modelservice/ModelServiceController.java +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/modelservice/ModelServiceController.java @@ -4,20 +4,18 @@ import cn.iocoder.yudao.module.llm.controller.admin.conversation.vo.ChatApiReqVO import cn.iocoder.yudao.module.llm.controller.admin.conversation.vo.ChatReqVO; import cn.iocoder.yudao.module.llm.controller.admin.conversation.vo.ChatRespVO; import cn.iocoder.yudao.module.llm.controller.admin.finetuningtask.vo.FineTuningTaskRespVO; -import cn.iocoder.yudao.module.llm.dal.dataobject.application.ApplicationDO; import cn.iocoder.yudao.module.llm.service.conversation.ConversationService; import cn.iocoder.yudao.module.llm.service.finetuningtask.FineTuningTaskService; +import cn.iocoder.yudao.module.llm.service.http.ModelService; import org.springframework.context.annotation.Lazy; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import org.springframework.validation.annotation.Validated; -import org.springframework.security.access.prepost.PreAuthorize; import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.Operation; import javax.annotation.security.PermitAll; -import javax.validation.constraints.*; import javax.validation.*; import javax.servlet.http.*; import java.util.*; diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/dataobject/modelservice/ModelServiceDO.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/dataobject/modelservice/ModelServiceDO.java index 95d6adac8..62cfb079d 100644 --- a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/dataobject/modelservice/ModelServiceDO.java +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/dataobject/modelservice/ModelServiceDO.java @@ -42,9 +42,8 @@ public class ModelServiceDO extends BaseDO { */ private Long checkPoint; /** - * GPU,使用字典(llm_gpu_type) - * - * 枚举 {@link TODO llm_gpu_type 对应的类} + * GPU + *
*/ private Long gpuType; /** diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/http/ModelService.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/http/ModelService.java index 7117339f0..51d67a396 100644 --- a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/http/ModelService.java +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/http/ModelService.java @@ -4,11 +4,10 @@ import cn.iocoder.yudao.framework.common.util.http.HttpUtils; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.module.llm.framework.backend.config.LLMBackendProperties; import cn.iocoder.yudao.module.llm.service.http.vo.*; +import cn.iocoder.yudao.module.llm.service.servername.ServerNameService; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; -import com.fasterxml.jackson.core.type.TypeReference; -import com.fasterxml.jackson.databind.ObjectMapper; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; @@ -33,10 +32,13 @@ public class ModelService { @Resource private TrainHttpService trainHttpService; + @Resource + private ServerNameService serverNameService; + /** * 获取模型列表 */ - public ModelListRespVO modelList(){ + public ModelListRespVO modelList () { String result = HttpUtils.get(llmBackendProperties.getModelCompletions(), null); if (StringUtils.isBlank(result)) { return null; @@ -57,20 +59,21 @@ public class ModelService { /** * 对话聊天 + * * @param req * @return */ - public ModelCompletionsRespVO modelCompletions(String url,ModelCompletionsReqVO req) { + public ModelCompletionsRespVO modelCompletions (String url, ModelCompletionsReqVO req) { if (StringUtils.isBlank(req.getModel())) { req.setModel(DEFAULT_MODEL_ID); } log.info("request: {}", req); String result; - if (StringUtils.isBlank(url)){ + if (StringUtils.isBlank(url)) { log.info("url: {}", llmBackendProperties.getModelCompletions()); result = HttpUtils.post(llmBackendProperties.getModelCompletions(), null, JSON.toJSONString(req)); - }else { + } else { log.info("url: {}", url); result = HttpUtils.post(url, null, JSON.toJSONString(req)); } @@ -90,15 +93,28 @@ public class ModelService { } return null; } catch (Exception e) { - throw new RuntimeException(e); + throw new RuntimeException(e); } } + /** + * 通过 GPU 类型获取对应的主机地址 + *
ModelService GpuType 是 ServerName 表ID
+ *
+ * @param gpuType gpuType
+ * @return host
+ */
+ public String getHostByType (Long gpuType) {
+ return serverNameService.getServerName(gpuType).getHost();
+ }
+
/**
* 获取模型下载列表
*/
- public List