From 8d11b47241e523321408f8f83b06e0dba5a405b9 Mon Sep 17 00:00:00 2001 From: JianYu Zheng <2375294554@qq.com> Date: Thu, 24 Jul 2025 16:17:27 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=BA=86=E6=96=B0=E8=AF=B7?= =?UTF-8?q?=E6=B1=82=E6=8E=A5=E5=8F=A3=EF=BC=8C=E5=A4=A7=E8=AF=AD=E8=A8=80?= =?UTF-8?q?=E6=A8=A1=E5=9E=8B=E5=92=8C=E6=84=8F=E5=9B=BE=E5=8F=82=E6=95=B0?= =?UTF-8?q?=E5=85=B3=E7=B3=BB=E7=9A=84=E9=80=89=E6=8B=A9=E5=88=A4=E6=96=AD?= =?UTF-8?q?=20--model.js=20=E6=B7=BB=E5=8A=A0=E6=96=B0=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E6=96=B9=E6=B3=95=20--roleConfig.vue=20=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E6=99=BA=E8=83=BD=E4=BD=93=E9=85=8D=E7=BD=AE,=E5=BD=93?= =?UTF-8?q?=E9=80=89=E6=8B=A9=E7=9A=84LLM=E4=B8=8D=E6=98=AFopenai=E3=80=81?= =?UTF-8?q?ollama=E7=B1=BB=E5=9E=8B=E6=97=B6,=E6=84=8F=E5=9B=BE=E6=A8=A1?= =?UTF-8?q?=E5=9E=8B=E4=B8=8D=E8=83=BD=E9=80=89=E6=8B=A9=E2=80=9C=E6=97=A0?= =?UTF-8?q?=E6=84=8F=E5=9B=BE=E8=AF=86=E5=88=AB=E2=80=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main/manager-web/src/apis/module/model.js | 16 ++++++ main/manager-web/src/views/roleConfig.vue | 64 ++++++++++++++++++----- 2 files changed, 67 insertions(+), 13 deletions(-) diff --git a/main/manager-web/src/apis/module/model.js b/main/manager-web/src/apis/module/model.js index 7db2b288..d103ee79 100644 --- a/main/manager-web/src/apis/module/model.js +++ b/main/manager-web/src/apis/module/model.js @@ -106,6 +106,22 @@ export default { }); }).send(); }, + // 获取LLM模型名称列表 + getLlmModelCodeList(modelName, callback) { + RequestService.sendRequest() + .url(`${getServiceUrl()}/models/llm/names`) + .method('GET') + .data({ modelName }) + .success((res) => { + RequestService.clearRequestTime(); + callback(res); + }) + .networkFail(() => { + RequestService.reAjaxFun(() => { + this.getLlmModelCodeList(modelName, callback); + }); + }).send(); + }, // 获取模型音色列表 getModelVoices(modelId, voiceName, callback) { const queryParams = new URLSearchParams({ diff --git a/main/manager-web/src/views/roleConfig.vue b/main/manager-web/src/views/roleConfig.vue index ccd96e1b..ff9ac6d2 100644 --- a/main/manager-web/src/views/roleConfig.vue +++ b/main/manager-web/src/views/roleConfig.vue @@ -89,7 +89,7 @@
-
@@ -130,7 +130,6 @@
- @@ -173,8 +172,9 @@ export default { { label: '视觉大模型(VLLM)', key: 'vllmModelId', type: 'VLLM' }, { label: '意图识别(Intent)', key: 'intentModelId', type: 'Intent' }, { label: '记忆(Memory)', key: 'memModelId', type: 'Memory' }, - { label: '语音合成(TTS)', key: 'ttsModelId', type: 'TTS' }, + { label: '语音合成(TTS)', key: 'ttsModelId', type: 'TTS' } ], + llmModeTypeMap: new Map(), modelOptions: {}, templates: [], loadingTemplate: false, @@ -364,16 +364,36 @@ export default { }, fetchModelOptions() { this.models.forEach(model => { - Api.model.getModelNames(model.type, '', ({ data }) => { - if (data.code === 0) { - this.$set(this.modelOptions, model.type, data.data.map(item => ({ - value: item.id, - label: item.modelName - }))); - } else { - this.$message.error(data.msg || '获取模型列表失败'); - } - }); + if (model.type != "LLM") { + Api.model.getModelNames(model.type, '', ({ data }) => { + if (data.code === 0) { + this.$set(this.modelOptions, model.type, data.data.map(item => ({ + value: item.id, + label: item.modelName, + isHidden: false + }))); + } else { + this.$message.error(data.msg || '获取模型列表失败'); + } + }); + } else { + Api.model.getLlmModelCodeList('', ({ data }) => { + if (data.code === 0) { + let LLMdata = [] + data.data.forEach(item => { + LLMdata.push({ + value: item.id, + label: item.modelName, + isHidden: false + }) + this.llmModeTypeMap.set(item.id, item.type) + }) + this.$set(this.modelOptions, model.type, LLMdata); + } else { + this.$message.error(data.msg || '获取LLM模型列表失败'); + } + }); + } }); }, fetchVoiceOptions(modelId) { @@ -410,6 +430,24 @@ export default { if (type === 'Memory' && value !== 'Memory_nomem' && (this.form.chatHistoryConf === 0 || this.form.chatHistoryConf === null)) { this.form.chatHistoryConf = 2; } + if (type === 'LLM') { + let llmType = this.llmModeTypeMap.get(value) + let memory + for (let item of this.modelOptions['Intent']) { + if(item.value == "Intent_nointent" ) { + memory = item + break + } + } + if (llmType == "openai" || llmType == "ollama") { + memory.isHidden = false + }else{ + memory.isHidden = true + } + if(this.form.model.intentModelId == "Intent_nointent"){ + this.form.model.intentModelId = ''; + } + } }, fetchAllFunctions() { return new Promise((resolve, reject) => {