122122 </el-form-item >
123123 <el-form-item
124124 :label =" $t('workflow.nodes.rerankerNode.reranker_model.label')"
125- prop =" reranker_model_id"
125+ :prop ="
126+ form_data.reranker_model_id_type === 'reference'
127+ ? 'reranker_model_id_reference'
128+ : 'reranker_model_id'
129+ "
126130 :rules =" {
127131 required: true,
128- message: $t('workflow.nodes.rerankerNode.reranker_model.placeholder'),
132+ message:
133+ form_data.reranker_model_id_type === 'reference'
134+ ? $t('workflow.variable.placeholder')
135+ : $t('workflow.nodes.rerankerNode.reranker_model.placeholder'),
129136 trigger: 'change',
130137 }"
131138 >
132139 <template #label >
133- <div class =" flex-between" >
134- <span
135- >{{ $t('workflow.nodes.rerankerNode.reranker_model.label')
136- }}<span class =" color-danger" >*</span ></span
140+ <div class =" flex-between w-full" >
141+ <div >
142+ <span
143+ >{{ $t('workflow.nodes.rerankerNode.reranker_model.label')
144+ }}<span class =" color-danger" >*</span ></span
145+ >
146+ </div >
147+ <el-select
148+ v-model =" form_data.reranker_model_id_type"
149+ :teleported =" false"
150+ size =" small"
151+ style =" width : 85px "
152+ @change =" form_data.reranker_model_id_reference = []"
137153 >
154+ <el-option :label =" $t('workflow.variable.Referencing')" value =" reference" />
155+ <el-option :label =" $t('common.custom')" value =" custom" />
156+ </el-select >
138157 </div >
139158 </template >
140- <ModelSelect
141- @wheel =" wheel"
142- :teleported =" false"
143- v-model =" form_data.reranker_model_id"
144- :placeholder =" $t('workflow.nodes.rerankerNode.reranker_model.placeholder')"
145- :options =" modelOptions"
146- @submitModel =" getSelectModel"
147- showFooter
148- :model-type =" 'RERANKER'"
149- ></ModelSelect >
159+ <div class =" flex-between w-full" v-if =" form_data.reranker_model_id_type !== 'reference'" >
160+ <ModelSelect
161+ @wheel =" wheel"
162+ :teleported =" false"
163+ v-model =" form_data.reranker_model_id"
164+ :placeholder =" $t('workflow.nodes.rerankerNode.reranker_model.placeholder')"
165+ :options =" modelOptions"
166+ @submitModel =" getSelectModel"
167+ showFooter
168+ :model-type =" 'RERANKER'"
169+ ></ModelSelect >
170+ </div >
171+ <NodeCascader
172+ v-else
173+ ref =" modelCascaderRef"
174+ :nodeModel =" nodeModel"
175+ class =" w-full"
176+ :placeholder =" $t('workflow.variable.placeholder')"
177+ v-model =" form_data.reranker_model_id_reference"
178+ />
150179 </el-form-item >
180+
151181 <el-form-item
152182 :label =" $t('workflow.nodes.searchKnowledgeNode.showKnowledge.label')"
153183 prop =" show_knowledge"
@@ -192,6 +222,8 @@ const ParamSettingDialogRef = ref<InstanceType<typeof ParamSettingDialog>>()
192222const form = {
193223 reranker_reference_list: [[]],
194224 reranker_model_id: ' ' ,
225+ reranker_model_id_type: ' custom' ,
226+ reranker_model_id_reference: [],
195227 question_reference_address: [],
196228 reranker_setting: {
197229 top_n: 3 ,
@@ -222,6 +254,12 @@ const wheel = (e: any) => {
222254const form_data = computed ({
223255 get : () => {
224256 if (props .nodeModel .properties .node_data ) {
257+ if (! props .nodeModel .properties .node_data .reranker_model_id_type ) {
258+ set (props .nodeModel .properties .node_data , ' reranker_model_id_type' , ' custom' )
259+ }
260+ if (! props .nodeModel .properties .node_data .reranker_model_id_reference ) {
261+ set (props .nodeModel .properties .node_data , ' reranker_model_id_reference' , [])
262+ }
225263 return props .nodeModel .properties .node_data
226264 } else {
227265 set (props .nodeModel .properties , ' node_data' , form )
@@ -232,10 +270,13 @@ const form_data = computed({
232270 set (props .nodeModel .properties , ' node_data' , value )
233271 },
234272})
273+
235274function refreshParam(data : any ) {
236275 set (props .nodeModel .properties .node_data , ' reranker_setting' , data )
237276}
238277
278+ const modelCascaderRef = ref ()
279+
239280const resource = getResourceDetail ()
240281function getSelectModel() {
241282 const obj =
@@ -264,6 +305,7 @@ const nodeCascaderRef = ref()
264305const validate = () => {
265306 return Promise .all ([
266307 nodeCascaderRef .value ? nodeCascaderRef .value .validate () : Promise .resolve (' ' ),
308+ modelCascaderRef .value ? modelCascaderRef .value .validate () : Promise .resolve (' ' ),
267309 rerankerNodeFormRef .value ?.validate (),
268310 ]).catch ((err : any ) => {
269311 return Promise .reject ({ node: props .nodeModel , errMessage: err })
0 commit comments