diff --git a/apps/application/flow/knowledge_workflow_manage.py b/apps/application/flow/knowledge_workflow_manage.py index 3b69ac0b6..3667b61c7 100644 --- a/apps/application/flow/knowledge_workflow_manage.py +++ b/apps/application/flow/knowledge_workflow_manage.py @@ -101,19 +101,3 @@ class KnowledgeWorkflowManage(WorkflowManage): current_node.node_chunk.end() QuerySet(KnowledgeAction).filter(id=self.params.get('knowledge_action_id')).update( details=self.get_runtime_details()) - - def get_reference_field(self, node_id: str, fields: List[str]): - """ - @param node_id: 节点id - @param fields: 字段 - @return: - """ - if node_id == 'knowledge-base-node': - return INode.get_field(self.context, fields) - elif node_id == 'chat': - return INode.get_field(self.chat_context, fields) - else: - node = self.get_node_by_id(node_id) - if node: - return node.get_reference_field(fields) - return None diff --git a/ui/src/workflow/common/app-node.ts b/ui/src/workflow/common/app-node.ts index 813531106..d2b42de89 100644 --- a/ui/src/workflow/common/app-node.ts +++ b/ui/src/workflow/common/app-node.ts @@ -77,6 +77,22 @@ class AppNode extends HtmlResize.view { children: this.props.model.properties?.config?.chatFields || [], }) } + if (this.props.model.type === 'knowledge-base-node') { + let globalFields = [] + if (this.props.model.properties.user_input_field_list) { + globalFields = this.props.model.properties.user_input_field_list.map((item: any) => ({ + label: item.label.label, + value: item.field, + })) + } + + result.push({ + value: 'global', + label: t('views.workflow.variable.global'), + type: 'global', + children: globalFields, + }) + } result.push({ value: this.props.model.id, icon: this.props.model.properties.node_data?.icon, diff --git a/ui/src/workflow/nodes/knowledge-base-node/component/UserInputFieldTable.vue b/ui/src/workflow/nodes/knowledge-base-node/component/UserInputFieldTable.vue index f61b5269a..455e92c64 100644 --- a/ui/src/workflow/nodes/knowledge-base-node/component/UserInputFieldTable.vue +++ b/ui/src/workflow/nodes/knowledge-base-node/component/UserInputFieldTable.vue @@ -155,13 +155,7 @@ function refreshFieldList(data: any, index: any) { inputFieldList.value.push(data) } UserFieldFormDialogRef.value.close() - const fields = inputFieldList.value.map((item) => ({ - label: item.label.label, - value: item.field, - })) - set(props.nodeModel.properties, 'user_input_field_list', cloneDeep(inputFieldList.value)) - set(props.nodeModel.properties.config, 'fields', fields) onDragHandle() } @@ -217,12 +211,6 @@ onMounted(() => { inputFieldList.value = cloneDeep(props.nodeModel.properties.user_input_field_list) } - const fields = inputFieldList.value.map((item) => ({ - label: item.label.label, - value: item.field, - })) - set(props.nodeModel.properties.config, 'fields', fields) - onDragHandle() }) diff --git a/ui/src/workflow/nodes/knowledge-base-node/index.vue b/ui/src/workflow/nodes/knowledge-base-node/index.vue index 8f986440b..16ebd572b 100644 --- a/ui/src/workflow/nodes/knowledge-base-node/index.vue +++ b/ui/src/workflow/nodes/knowledge-base-node/index.vue @@ -1,24 +1,60 @@