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