From 162842f46ebb5462f3446d4855ed204f5c988bf4 Mon Sep 17 00:00:00 2001 From: shaohuzhang1 Date: Tue, 3 Feb 2026 19:29:41 +0800 Subject: [PATCH] fix: Add global knowledge base information to the knowledge base workflow --- .../serializers/knowledge_workflow.py | 10 ++++++++++ ui/src/workflow/common/app-node.ts | 6 +++--- .../nodes/knowledge-base-node/index.vue | 18 ++++++++++++------ 3 files changed, 25 insertions(+), 9 deletions(-) diff --git a/apps/knowledge/serializers/knowledge_workflow.py b/apps/knowledge/serializers/knowledge_workflow.py index b5bcb7037aa..c9ffc608a99 100644 --- a/apps/knowledge/serializers/knowledge_workflow.py +++ b/apps/knowledge/serializers/knowledge_workflow.py @@ -142,6 +142,11 @@ def action(self, instance: Dict, user, with_valid=True): knowledge_id=self.data.get("knowledge_id"), state=State.STARTED, meta=meta).save() + knowledge = QuerySet(Knowledge).filter(id=self.data.get('knowledge_id')).first() + instance['knowledge_base'] = {**(instance.get('knowledge_base') or {}), + 'knowledge': {'id': str(knowledge.id), 'name': knowledge.name, + 'desc': knowledge.desc, + 'workspace_id': knowledge.workspace_id}} work_flow_manage = KnowledgeWorkflowManage( Workflow.new_instance(knowledge_workflow.work_flow, WorkflowMode.KNOWLEDGE), {'knowledge_id': self.data.get("knowledge_id"), 'knowledge_action_id': knowledge_action_id, 'stream': True, @@ -169,6 +174,11 @@ def upload_document(self, instance: Dict, user, with_valid=True): 'user_name': user.username} KnowledgeAction(id=knowledge_action_id, knowledge_id=self.data.get("knowledge_id"), state=State.STARTED, meta=meta).save() + knowledge = QuerySet(Knowledge).filter(id=self.data.get('knowledge_id')).first() + instance['knowledge_base'] = {**(instance.get('knowledge_base') or {}), + 'knowledge': {'id': str(knowledge.id), 'name': knowledge.name, + 'desc': knowledge.desc, + 'workspace_id': knowledge.workspace_id}} work_flow_manage = KnowledgeWorkflowManage( Workflow.new_instance(knowledge_workflow_version.work_flow, WorkflowMode.KNOWLEDGE), {'knowledge_id': self.data.get("knowledge_id"), 'knowledge_action_id': knowledge_action_id, 'stream': True, diff --git a/ui/src/workflow/common/app-node.ts b/ui/src/workflow/common/app-node.ts index ccbd7897fd7..810047323e9 100644 --- a/ui/src/workflow/common/app-node.ts +++ b/ui/src/workflow/common/app-node.ts @@ -79,10 +79,10 @@ class AppNode extends HtmlResize.view { } 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) => ({ + if (this.props.model.properties.config?.globalFields) { + globalFields = this.props.model.properties.config.globalFields.map((item: any) => ({ label: typeof item.label == 'string' ? item.label : item.label.label, - value: item.field, + value: item.value, })) } diff --git a/ui/src/workflow/nodes/knowledge-base-node/index.vue b/ui/src/workflow/nodes/knowledge-base-node/index.vue index 5e4ff71e4a4..07e09a5c031 100644 --- a/ui/src/workflow/nodes/knowledge-base-node/index.vue +++ b/ui/src/workflow/nodes/knowledge-base-node/index.vue @@ -45,7 +45,14 @@ const getResourceDetail = inject('getResourceDetail') as any const props = defineProps<{ nodeModel: any }>() const UserInputFieldTableFef = ref() - +const default_fields = [ + { + label: '知识库', + value: 'knowledge', + globeLabel: `{{global.knowledge}}`, + globeValue: `{{context['global'].knowledge}}`, + }, +] const nodeFields = computed(() => { if (props.nodeModel.properties.user_input_field_list) { const fields = props.nodeModel.properties.user_input_field_list.map((item: any) => ({ @@ -54,15 +61,14 @@ const nodeFields = computed(() => { globeLabel: `{{global.${item.field}}}`, globeValue: `{{context['global'].${item.field}}}`, })) - set(props.nodeModel.properties.config, 'globalFields', fields) - return fields + set(props.nodeModel.properties.config, 'globalFields', [...fields, ...default_fields]) + return [...fields, ...default_fields] } - set(props.nodeModel.properties.config, 'globalFields', []) + set(props.nodeModel.properties.config, 'globalFields', [default_fields]) return [] }) const resource = getResourceDetail() onMounted(() => {}) - +