|
|
@@ -136,7 +136,16 @@
|
|
|
class="col-span-1 overflow-y-auto rounded-lg bg-[#ffffff] p-4"
|
|
|
>
|
|
|
<template v-if="state.detail.type === 0">
|
|
|
- <div class="__czr-title_2">模型选择</div>
|
|
|
+ <div class="__czr-title_2">
|
|
|
+ 模型选择
|
|
|
+ <div
|
|
|
+ v-if="state.form.modelId"
|
|
|
+ class="__hover ml-4 text-sm font-normal text-[var(--czr-main-color)]"
|
|
|
+ @click="onModelConfig"
|
|
|
+ >
|
|
|
+ 参数配置
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
<div class="mt-4">
|
|
|
<CzrFormColumn
|
|
|
class="__czr-table-form-column"
|
|
|
@@ -491,19 +500,30 @@
|
|
|
v-if="state.form.advise.types.includes(AdviseType.Open)"
|
|
|
>
|
|
|
<div class="mt-4">
|
|
|
- <CzrFormColumn
|
|
|
- class="__czr-table-form-column"
|
|
|
- required
|
|
|
- label="模型选择"
|
|
|
- :span="24"
|
|
|
- v-model:param="state.form.advise.modelId"
|
|
|
- link="select"
|
|
|
- :options="DictionaryStore.models.list"
|
|
|
- placeholder="点击选择模型"
|
|
|
- @click.capture.stop="onAdviseModel"
|
|
|
- default-error-msg="请选择问题建议模型"
|
|
|
- :clearable="false"
|
|
|
- />
|
|
|
+ <div class="flex items-center">
|
|
|
+ <div class="flex-1">
|
|
|
+ <CzrFormColumn
|
|
|
+ class="__czr-table-form-column"
|
|
|
+ required
|
|
|
+ label="模型选择"
|
|
|
+ :span="24"
|
|
|
+ v-model:param="state.form.advise.modelId"
|
|
|
+ link="select"
|
|
|
+ :options="DictionaryStore.models.list"
|
|
|
+ placeholder="点击选择模型"
|
|
|
+ @click.capture.stop="onAdviseModel"
|
|
|
+ default-error-msg="请选择问题建议模型"
|
|
|
+ :clearable="false"
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ <div
|
|
|
+ v-if="state.form.advise.modelId"
|
|
|
+ class="__hover ml-4 text-sm font-normal text-[var(--czr-main-color)]"
|
|
|
+ @click="onAdviseModelConfig"
|
|
|
+ >
|
|
|
+ 参数配置
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
<div
|
|
|
class="mt-2 flex h-10 items-center gap-1 rounded-sm bg-[#FFFAEA] px-3.5 text-sm text-[#6F7889]"
|
|
|
>
|
|
|
@@ -663,6 +683,11 @@
|
|
|
:transfer="state.modelSelect.transfer"
|
|
|
@refresh="getModel"
|
|
|
/>
|
|
|
+ <modelConfig
|
|
|
+ v-model:show="state.modelConfig.show"
|
|
|
+ :transfer="state.modelConfig.transfer"
|
|
|
+ @refresh="getModelConfig"
|
|
|
+ />
|
|
|
<workflowSelect
|
|
|
v-model:show="state.workflowSelect.show"
|
|
|
:transfer="state.workflowSelect.transfer"
|
|
|
@@ -741,7 +766,6 @@ import CzrDialog from '@/components/czr-ui/CzrDialog.vue'
|
|
|
import toBackCom from '@/views/manage/components/to-back.vue'
|
|
|
import {
|
|
|
appHistory,
|
|
|
- appTemporarily,
|
|
|
appModelConfigSave,
|
|
|
appPublish,
|
|
|
appValidatePublish,
|
|
|
@@ -750,6 +774,7 @@ import {
|
|
|
import { appDetail } from '@/api/modules/app'
|
|
|
import { appTextToAudio } from '@/api/modules/app/chat'
|
|
|
import recallConfig from '@/views/manage/knowledge/recall-config.vue'
|
|
|
+import modelConfig from './model-config.vue'
|
|
|
|
|
|
const DictionaryStore = useDictionaryStore()
|
|
|
const AppStore = useAppStore()
|
|
|
@@ -826,6 +851,10 @@ const state: any = reactive({
|
|
|
show: false,
|
|
|
transfer: {},
|
|
|
},
|
|
|
+ modelConfig: {
|
|
|
+ show: false,
|
|
|
+ transfer: {},
|
|
|
+ },
|
|
|
})
|
|
|
const ref_form = ref()
|
|
|
const ref_formPublish = ref()
|
|
|
@@ -876,11 +905,13 @@ const autoSave = debounce((v) => {
|
|
|
voice: state.form.voicePackage,
|
|
|
qsType: state.form.advise.types,
|
|
|
qsModelId: state.form.advise.modelId,
|
|
|
+ qsModelConfigs: state.form.advise.modelConfigs,
|
|
|
qsPrePrompt: state.form.advise.tips,
|
|
|
qsDatasetIds: state.form.advise.datasetIds,
|
|
|
}
|
|
|
if (state.detail.type === 0) {
|
|
|
params.modelId = state.form.modelId
|
|
|
+ params.modelConfigs = state.form.modelConfigs
|
|
|
params.datasetIds = state.form.datasetIds
|
|
|
if (!state.form.datasetConfigs) {
|
|
|
state.form.datasetConfigs = ref_recalConfig.value.getData()
|
|
|
@@ -933,10 +964,12 @@ const initDetail = () => {
|
|
|
state.form.advise.types =
|
|
|
configData.qsType?.map((v) => Number(v)) || []
|
|
|
state.form.advise.modelId = configData.qsModelId || ''
|
|
|
+ state.form.advise.modelConfigs = configData.qsModelConfigs || ''
|
|
|
state.form.advise.tips = configData.qsPrePrompt || ''
|
|
|
state.form.advise.datasetIds = configData.qsDatasetIds || []
|
|
|
if (state.detail.type === 0) {
|
|
|
state.form.modelId = configData.modelId || ''
|
|
|
+ state.form.modelConfigs = configData.modelConfigs || ''
|
|
|
state.form.datasetIds = configData.datasetIds || []
|
|
|
state.form.datasetConfigs = configData.datasetConfigs
|
|
|
} else {
|
|
|
@@ -1059,11 +1092,39 @@ const getModel = (val) => {
|
|
|
case 'model':
|
|
|
{
|
|
|
state.form.modelId = val.id
|
|
|
+ state.form.modelConfigs = {
|
|
|
+ paramConfigs: val.paramConfigs,
|
|
|
+ bizConfigs: val.bizConfigs,
|
|
|
+ }
|
|
|
}
|
|
|
break
|
|
|
case 'advise':
|
|
|
{
|
|
|
state.form.advise.modelId = val.id
|
|
|
+ state.form.advise.modelConfigs = {
|
|
|
+ paramConfigs: val.paramConfigs,
|
|
|
+ bizConfigs: val.bizConfigs,
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break
|
|
|
+ }
|
|
|
+}
|
|
|
+const getModelConfig = (val) => {
|
|
|
+ switch (state.modelConfig.transfer.type) {
|
|
|
+ case 'model':
|
|
|
+ {
|
|
|
+ state.form.modelConfigs = {
|
|
|
+ paramConfigs: val.paramConfigs,
|
|
|
+ bizConfigs: val.bizConfigs,
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break
|
|
|
+ case 'advise':
|
|
|
+ {
|
|
|
+ state.form.advise.modelConfigs = {
|
|
|
+ paramConfigs: val.paramConfigs,
|
|
|
+ bizConfigs: val.bizConfigs,
|
|
|
+ }
|
|
|
}
|
|
|
break
|
|
|
}
|
|
|
@@ -1082,6 +1143,20 @@ const onAdviseModel = () => {
|
|
|
}
|
|
|
state.modelSelect.show = true
|
|
|
}
|
|
|
+const onModelConfig = () => {
|
|
|
+ state.modelConfig.transfer = {
|
|
|
+ type: 'model',
|
|
|
+ id: state.form.modelId,
|
|
|
+ }
|
|
|
+ state.modelConfig.show = true
|
|
|
+}
|
|
|
+const onAdviseModelConfig = () => {
|
|
|
+ state.modelConfig.transfer = {
|
|
|
+ type: 'advise',
|
|
|
+ id: state.form.advise.modelId,
|
|
|
+ }
|
|
|
+ state.modelConfig.show = true
|
|
|
+}
|
|
|
const onPublish = () => {
|
|
|
ref_form.value
|
|
|
.submit()
|