diff --git a/api/core/datasource/utils/parser.py b/api/core/datasource/utils/parser.py index 33682159c8..57ee15d7f2 100644 --- a/api/core/datasource/utils/parser.py +++ b/api/core/datasource/utils/parser.py @@ -101,7 +101,7 @@ class ApiBasedToolSchemaParser: # parse body parameters if "schema" in interface["operation"]["requestBody"]["content"][content_type]: # pyright: ignore[reportIndexIssue, reportPossiblyUnboundVariable] - body_schema = interface["operation"]["requestBody"]["content"][content_type]["schema"] + body_schema = interface["operation"]["requestBody"]["content"][content_type]["schema"] # pyright: ignore[reportIndexIssue, reportPossiblyUnboundVariable] required = body_schema.get("required", []) properties = body_schema.get("properties", {}) for name, property in properties.items(): diff --git a/api/core/workflow/errors.py b/api/core/workflow/errors.py index 61bd3817ad..14e0315846 100644 --- a/api/core/workflow/errors.py +++ b/api/core/workflow/errors.py @@ -6,3 +6,11 @@ class WorkflowNodeRunFailedError(Exception): self._node = node self._error = err_msg super().__init__(f"Node {node.title} run failed: {err_msg}") + + @property + def node(self) -> Node: + return self._node + + @property + def error(self) -> str: + return self._error \ No newline at end of file diff --git a/api/services/rag_pipeline/rag_pipeline.py b/api/services/rag_pipeline/rag_pipeline.py index bbe102f5ee..e27d78b980 100644 --- a/api/services/rag_pipeline/rag_pipeline.py +++ b/api/services/rag_pipeline/rag_pipeline.py @@ -387,7 +387,9 @@ class RagPipelineService: return default_block_configs - def get_default_block_config(self, node_type: str, filters: Optional[dict] = None) -> Optional[dict]: + def get_default_block_config( + self, node_type: str, filters: Optional[dict] = None + ) -> Optional[Mapping[str, object]]: """ Get default config of node. :param node_type: node type diff --git a/api/services/workflow_service.py b/api/services/workflow_service.py index 5b43f9d46c..2eb54dade3 100644 --- a/api/services/workflow_service.py +++ b/api/services/workflow_service.py @@ -811,10 +811,10 @@ class WorkflowService: error = node_run_result.error if not run_succeeded else None return node, node_run_result, run_succeeded, error except WorkflowNodeRunFailedError as e: - node = e._node + node = e.node run_succeeded = False node_run_result = None - error = e._error + error = e.error return node, node_run_result, run_succeeded, error def _apply_error_strategy(self, node: Node, node_run_result: NodeRunResult) -> NodeRunResult: