From 34a6ed74b6c46dc92fa9cd0f492f6672a2c108f3 Mon Sep 17 00:00:00 2001 From: jyong <718720800@qq.com> Date: Fri, 18 Jul 2025 19:22:31 +0800 Subject: [PATCH] r2 transform --- .../nodes/datasource/datasource_node.py | 27 +++++++++++++++++-- .../knowledge_index/knowledge_index_node.py | 26 ++++++++++++++++-- 2 files changed, 49 insertions(+), 4 deletions(-) diff --git a/api/core/workflow/nodes/datasource/datasource_node.py b/api/core/workflow/nodes/datasource/datasource_node.py index 3fff1025fa..9e271b8c16 100644 --- a/api/core/workflow/nodes/datasource/datasource_node.py +++ b/api/core/workflow/nodes/datasource/datasource_node.py @@ -1,5 +1,5 @@ from collections.abc import Generator, Mapping, Sequence -from typing import Any, cast +from typing import Any, Optional, cast from sqlalchemy import select from sqlalchemy.orm import Session @@ -24,7 +24,8 @@ from core.workflow.entities.variable_pool import VariablePool, VariableValue from core.workflow.entities.workflow_node_execution import WorkflowNodeExecutionStatus from core.workflow.enums import SystemVariableKey from core.workflow.nodes.base import BaseNode -from core.workflow.nodes.enums import NodeType +from core.workflow.nodes.base.entities import BaseNodeData, RetryConfig +from core.workflow.nodes.enums import ErrorStrategy, NodeType from core.workflow.nodes.event.event import RunCompletedEvent, RunStreamChunkEvent from core.workflow.nodes.tool.exc import ToolFileError from core.workflow.utils.variable_template_parser import VariableTemplateParser @@ -46,6 +47,28 @@ class DatasourceNode(BaseNode): _node_data: DatasourceNodeData _node_type = NodeType.DATASOURCE + + def init_node_data(self, data: Mapping[str, Any]) -> None: + self._node_data = DatasourceNodeData.model_validate(data) + + def _get_error_strategy(self) -> Optional[ErrorStrategy]: + return self._node_data.error_strategy + + def _get_retry_config(self) -> RetryConfig: + return self._node_data.retry_config + + def _get_title(self) -> str: + return self._node_data.title + + def _get_description(self) -> Optional[str]: + return self._node_data.desc + + def _get_default_value_dict(self) -> dict[str, Any]: + return self._node_data.default_value_dict + + def get_base_node_data(self) -> BaseNodeData: + return self._node_data + def _run(self) -> Generator: """ Run the datasource node diff --git a/api/core/workflow/nodes/knowledge_index/knowledge_index_node.py b/api/core/workflow/nodes/knowledge_index/knowledge_index_node.py index 20f074b48f..0acbc513fe 100644 --- a/api/core/workflow/nodes/knowledge_index/knowledge_index_node.py +++ b/api/core/workflow/nodes/knowledge_index/knowledge_index_node.py @@ -2,7 +2,7 @@ import datetime import logging import time from collections.abc import Mapping -from typing import Any, cast +from typing import Any, Optional, cast from sqlalchemy import func @@ -13,7 +13,8 @@ from core.workflow.entities.node_entities import NodeRunResult from core.workflow.entities.variable_pool import VariablePool from core.workflow.entities.workflow_node_execution import WorkflowNodeExecutionStatus from core.workflow.enums import SystemVariableKey -from core.workflow.nodes.enums import NodeType +from core.workflow.nodes.base.entities import BaseNodeData, RetryConfig +from core.workflow.nodes.enums import ErrorStrategy, NodeType from extensions.ext_database import db from models.dataset import Dataset, Document, DocumentSegment @@ -38,6 +39,27 @@ class KnowledgeIndexNode(BaseNode): _node_data: KnowledgeIndexNodeData _node_type = NodeType.KNOWLEDGE_INDEX + def init_node_data(self, data: Mapping[str, Any]) -> None: + self._node_data = KnowledgeIndexNodeData.model_validate(data) + + def _get_error_strategy(self) -> Optional[ErrorStrategy]: + return self._node_data.error_strategy + + def _get_retry_config(self) -> RetryConfig: + return self._node_data.retry_config + + def _get_title(self) -> str: + return self._node_data.title + + def _get_description(self) -> Optional[str]: + return self._node_data.desc + + def _get_default_value_dict(self) -> dict[str, Any]: + return self._node_data.default_value_dict + + def get_base_node_data(self) -> BaseNodeData: + return self._node_data + def _run(self) -> NodeRunResult: # type: ignore node_data = cast(KnowledgeIndexNodeData, self._node_data) variable_pool = self.graph_runtime_state.variable_pool