fix: Optimize the creation of models

--bug=1053742 --user=王孝刚 【模型管理】- 创建模型时,若在选择供应商列表选择了模型类型,进入供应商表单时,携带模型类型 https://www.tapd.cn/57709429/s/1674767
This commit is contained in:
wxg0103 2025-03-24 11:43:08 +08:00 committed by wxg
parent 259d1c872b
commit 0ce6dd0795
15 changed files with 49 additions and 18 deletions

View File

@ -35,6 +35,8 @@
v-model="form.model_id"
:placeholder="$t('views.application.applicationForm.form.aiModel.placeholder')"
:options="modelOptions"
showFooter
:model-type="'LLM'"
></ModelSelect>
</el-form-item>
<el-form-item

View File

@ -51,7 +51,7 @@
</el-option-group>
<template #footer v-if="showFooter">
<slot name="footer">
<div class="w-full text-left cursor" @click="openCreateModel()">
<div class="w-full text-left cursor" @click="openCreateModel(undefined, props.modelType)">
<el-button type="primary" link>
<el-icon class="mr-4">
<Plus />
@ -72,7 +72,7 @@
<SelectProviderDialog
v-if="showFooter"
ref="selectProviderRef"
@change="openCreateModel($event)"
@change="(provider, modelType) => openCreateModel(provider, modelType)"
/>
</div>
</template>
@ -85,11 +85,13 @@ import SelectProviderDialog from '@/views/template/component/SelectProviderDialo
import { t } from '@/locales'
import useStore from '@/stores'
defineOptions({ name: 'ModelSelect' })
const props = defineProps<{
modelValue: any
options: any
showFooter?: false
modelType?: ''
}>()
const emit = defineEmits(['update:modelValue', 'change', 'submitModel'])
@ -121,11 +123,12 @@ function getProvider() {
})
}
const openCreateModel = (provider?: Provider) => {
const openCreateModel = (provider?: Provider, model_type?: string) => {
if (provider && provider.provider) {
createModelRef.value?.open(provider)
createModelRef.value?.open(provider, model_type)
} else {
selectProviderRef.value?.open()
console.log(model_type)
selectProviderRef.value?.open(model_type)
}
}
@ -145,9 +148,11 @@ onMounted(() => {
background-color: var(--el-fill-color-light);
}
}
.model-icon {
width: 18px;
}
.check-icon {
position: absolute;
right: 10px;

View File

@ -83,6 +83,7 @@
@change="model_change"
@submitModel="getModel"
showFooter
:model-type="'LLM'"
></ModelSelect>
</el-form-item>
<el-form-item
@ -336,6 +337,7 @@
v-model="applicationForm.stt_model_id"
:placeholder="$t('views.application.applicationForm.form.voiceInput.placeholder')"
:options="sttModelOptions"
:model-type="'STT'"
></ModelSelect>
</el-form-item>
<el-form-item
@ -398,6 +400,7 @@
"
:options="ttsModelOptions"
@change="ttsModelChange()"
:model-type="'TTS'"
></ModelSelect>
<el-button
@ -551,7 +554,7 @@ const applicationForm = ref<ApplicationFormType>({
prompt: defaultPrompt,
system: t('views.application.applicationForm.form.roleSettings.placeholder'),
no_references_prompt: '{question}',
reasoning_content_enable: false,
reasoning_content_enable: false
},
model_params_setting: {},
problem_optimization: false,

View File

@ -38,6 +38,8 @@
v-model="form.embedding_mode_id"
:placeholder="$t('views.dataset.datasetForm.form.EmbeddingModel.placeholder')"
:options="modelOptions"
:model-type="'EMBEDDING'"
showFooter
></ModelSelect>
</el-form-item>
</el-form>

View File

@ -369,12 +369,13 @@ const getModelForm = (model_name: string) => {
}
}
const open = (provider: Provider) => {
const open = (provider: Provider, model_type?: string) => {
ModelApi.listModelType(provider.provider, model_type_loading).then((ok) => {
model_type_list.value = ok.data
})
providerValue.value = provider
dialogVisible.value = true
base_form_data.value.model_type = model_type || ''
activeName.value = 'base-info'
}

View File

@ -56,13 +56,13 @@ const loading = ref<boolean>(false)
const dialogVisible = ref<boolean>(false)
const list_provider = ref<Array<Provider>>([])
const currentModelType = ref('')
const selectModelType = ref('')
const modelTypeOptions = [{ text: t('views.template.model.allModel'), value: '' }, ...modelTypeList]
const open = () => {
const open = (model_type?: string) => {
dialogVisible.value = true
const option = modelTypeOptions.find((item) => item.text === currentModelType.value)
checkModelType(option ? option.value : '')
checkModelType(model_type ? model_type : option ? option.value : '')
}
const close = () => {
@ -70,9 +70,8 @@ const close = () => {
}
const checkModelType = (model_type: string) => {
currentModelType.value = modelTypeOptions.filter(
(item) => item.value === model_type
)[0].text
selectModelType.value = model_type
currentModelType.value = modelTypeOptions.filter((item) => item.value === model_type)[0].text
ModelApi.getProviderByModelType(model_type, loading).then((ok) => {
list_provider.value = ok.data
list_provider.value.sort((a, b) => a.provider.localeCompare(b.provider))
@ -82,7 +81,7 @@ const checkModelType = (model_type: string) => {
const emit = defineEmits(['change'])
const go_create = (provider: Provider) => {
close()
emit('change', provider)
emit('change', provider, selectModelType.value)
}
defineExpose({ open, close })
</script>

View File

@ -189,7 +189,7 @@
<SelectProviderDialog
ref="selectProviderRef"
@change="openCreateModel($event)"
@change="(provider, modelType) => openCreateModel(provider, modelType)"
></SelectProviderDialog>
</LayoutContainer>
</template>
@ -259,9 +259,11 @@ const clickListHandle = (item: Provider) => {
}
}
const openCreateModel = (provider?: Provider) => {
const openCreateModel = (provider?: Provider, model_type?: string) => {
console.log(provider)
console.log(model_type)
if (provider && provider.provider) {
createModelRef.value?.open(provider)
createModelRef.value?.open(provider, model_type)
} else {
selectProviderRef.value?.open()
}

View File

@ -49,6 +49,7 @@
:options="modelOptions"
@submitModel="getModel"
showFooter
:model-type="'LLM'"
></ModelSelect>
</el-form-item>

View File

@ -108,6 +108,8 @@
v-model="form_data.stt_model_id"
:placeholder="$t('views.application.applicationForm.form.voiceInput.placeholder')"
:options="sttModelOptions"
showFooter
:model-type="'STT'"
></ModelSelect>
</el-form-item>
<el-form-item>
@ -149,6 +151,8 @@
:placeholder="$t('views.application.applicationForm.form.voicePlay.placeholder')"
:options="ttsModelOptions"
@change="ttsModelChange()"
showFooter
:model-type="'TTS'"
></ModelSelect>
<el-button

View File

@ -49,6 +49,8 @@
$t('views.applicationWorkflow.nodes.imageGenerateNode.model.requiredMessage')
"
:options="modelOptions"
showFooter
:model-type="'TTI'"
></ModelSelect>
</el-form-item>

View File

@ -50,6 +50,8 @@
$t('views.applicationWorkflow.nodes.imageUnderstandNode.model.requiredMessage')
"
:options="modelOptions"
showFooter
:model-type="'IMAGE'"
></ModelSelect>
</el-form-item>

View File

@ -49,6 +49,7 @@
:options="modelOptions"
@submitModel="getModel"
showFooter
:model-type="'LLM'"
></ModelSelect>
</el-form-item>
<el-form-item :label="$t('views.application.applicationForm.form.roleSettings.label')">

View File

@ -152,10 +152,13 @@
@wheel="wheel"
:teleported="false"
v-model="form_data.reranker_model_id"
:placeholder="$t('views.applicationWorkflow.nodes.rerankerNode.reranker_model.placeholder')"
:placeholder="
$t('views.applicationWorkflow.nodes.rerankerNode.reranker_model.placeholder')
"
:options="modelOptions"
@submitModel="getModel"
showFooter
:model-type="'RERANKER'"
></ModelSelect>
</el-form-item>
</el-form>

View File

@ -36,6 +36,8 @@
v-model="form_data.stt_model_id"
:placeholder="$t('views.application.applicationForm.form.voiceInput.placeholder')"
:options="modelOptions"
showFooter
:model-type="'STT'"
></ModelSelect>
</el-form-item>
<el-form-item

View File

@ -45,6 +45,8 @@
v-model="form_data.tts_model_id"
:placeholder="$t('views.application.applicationForm.form.voicePlay.placeholder')"
:options="modelOptions"
showFooter
:model-type="'TTS'"
></ModelSelect>
</el-form-item>
<el-form-item