From 024468adbdcc3ba59ca8bb4bfbb5fcc67ab71feb Mon Sep 17 00:00:00 2001 From: CGD <3030332422@qq.com> Date: Tue, 8 Apr 2025 09:38:31 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E4=BA=86=E2=80=9C=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E6=A8=A1=E5=9E=8B=E2=80=9D=E9=A1=B5=E9=9D=A2=EF=BC=8C?= =?UTF-8?q?=E4=BC=98=E5=8C=96=E4=BA=86=E2=80=9C=E6=96=B0=E5=A2=9E=E6=A8=A1?= =?UTF-8?q?=E5=9E=8B=E9=85=8D=E7=BD=AE=E2=80=9D=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/components/AddModelDialog.vue | 149 ++++++++++++++---- 1 file changed, 115 insertions(+), 34 deletions(-) diff --git a/main/manager-web/src/components/AddModelDialog.vue b/main/manager-web/src/components/AddModelDialog.vue index 3e6022cd..32bc9c4c 100644 --- a/main/manager-web/src/components/AddModelDialog.vue +++ b/main/manager-web/src/components/AddModelDialog.vue @@ -5,8 +5,7 @@
添加模型
- - + @@ -61,23 +60,28 @@
调用信息
-
+
- -
- - - - - - -
- - - - + + @@ -110,14 +114,62 @@ export default { remark: '', isEnabled: true, isDefault: true, - configJson: { - param1: '', - param2: '', - apiKey: '' - } + configJson: {} } } }, + watch: { + visible(val) { + if(val) { + this.initConfigJson(); + } + } + }, + computed: { + callInfoFields() { + const fieldsMap = { + llm: [ + { label: '模型名称', prop: 'model_name', placeholder: '请输入model_name' }, + { label: '接口地址', prop: 'base_url', placeholder: '请输入base_url' }, + { label: '秘钥信息', prop: 'api_key', placeholder: '请输入api_key', type: 'password' } + ], + vad: [ + { label: '模型目录', prop: 'model_dir', placeholder: '请输入model_dir' }, + { label: '阈值', prop: 'threshold', placeholder: '请输入threshold' }, + { label: '静音时长', prop: 'min_silence_duration_ms', placeholder: '请输入min_silence_duration_ms' } + ], + asr: [ + { label: 'App ID', prop: 'appid', placeholder: '请输入appid' }, + { label: '集群', prop: 'cluster', placeholder: '请输入cluster' }, + { label: '访问令牌', prop: 'access_token', placeholder: '请输入access_token', type: 'password' }, + { label: '输出目录', prop: 'output_dir', placeholder: '请输入output_dir' } + ], + intent: [ + { label: '模型', prop: 'llm', placeholder: '请输入model' }, + { label: '类型', prop: 'type', placeholder: '请输入类型' } + ], + tts: [ + { label: '模型', prop: 'model', placeholder: '请输入model' }, + { label: '语音ID', prop: 'voice_id', placeholder: '请输入voice_id' }, + { label: 'Group ID', prop: 'group_id', placeholder: '请输入group_id' }, + { label: 'API Key', prop: 'api_key', placeholder: '请输入api_key', type: 'password' }, + ], + memory: [ + { label: 'API Key', prop: 'api_key', placeholder: '请输入api_key', type: 'password' }, + { label: '类型', prop: 'type', placeholder: '请输入类型' } + ] + }; + return fieldsMap[this.modelType] || []; + }, + chunkedCallInfoFields() { + const chunkSize = 2; + const result = []; + for (let i = 0; i < this.callInfoFields.length; i += chunkSize) { + result.push(this.callInfoFields.slice(i, i + chunkSize)); + } + return result; + } + }, methods: { loadProviders() { if (this.providersLoaded) @@ -131,18 +183,51 @@ export default { this.providersLoaded = true }) }, + // 初始化配置 + initConfigJson() { + const defaultConfig = {}; + this.callInfoFields.forEach(field => { + defaultConfig[field.prop] = ''; + }); + this.formData.configJson = { ...defaultConfig }; + }, confirm() { - if (!this.formData.modelName || !this.formData.modelCode || !this.formData.supplier || - !this.formData.configJson.param1 || !this.formData.configJson.param2 || !this.formData.configJson.apiKey) { + + const baseRequiredFields = [ + this.formData.modelName, + this.formData.modelCode, + this.formData.supplier + ]; + + const callInfoRequiredFields = this.callInfoFields.map( + field => this.formData.configJson[field.prop] + ); + + const allRequiredFields = [...baseRequiredFields, ...callInfoRequiredFields]; + + if (allRequiredFields.some(field => !field)) { this.$message.error('请填写所有必填字段'); return; } - this.$emit('confirm', { - ...this.formData, + const submitData = { + modelName: this.formData.modelName, + modelCode: this.formData.modelCode, + supplier: this.formData.supplier, + sort: this.formData.sort, + docLink: this.formData.docLink, + remark: this.formData.remark, + isEnabled: this.formData.isEnabled ? 1 : 0, + isDefault: this.formData.isDefault ? 1 : 0, provideCode: this.formData.supplier, - configJson: this.formData.configJson - }); + configJson: { + ...this.formData.configJson, + type: this.formData.supplier + } + }; + + this.$emit('confirm', submitData); + this.$emit('update:visible', false); this.resetForm(); }, @@ -156,11 +241,7 @@ export default { remark: '', isEnabled: true, isDefault: true, - configJson: { - param1: '', - param2: '', - apiKey: '' - } + configJson: {} }; // 重置加载状态 this.providers = [];