|
|
|
|
@ -6,7 +6,7 @@ from sqlalchemy.orm import Session
|
|
|
|
|
|
|
|
|
|
from core.callback_handler.workflow_tool_callback_handler import DifyWorkflowCallbackHandler
|
|
|
|
|
from core.file import File, FileTransferMethod
|
|
|
|
|
from core.plugin.impl.exc import PluginDaemonClientSideError, PluginInvokeError
|
|
|
|
|
from core.plugin.impl.exc import PluginDaemonClientSideError
|
|
|
|
|
from core.plugin.impl.plugin import PluginInstaller
|
|
|
|
|
from core.tools.entities.tool_entities import ToolInvokeMessage, ToolParameter
|
|
|
|
|
from core.tools.errors import ToolInvokeError
|
|
|
|
|
@ -141,36 +141,13 @@ class ToolNode(BaseNode):
|
|
|
|
|
tenant_id=self.tenant_id,
|
|
|
|
|
node_id=self.node_id,
|
|
|
|
|
)
|
|
|
|
|
except ToolInvokeError as e:
|
|
|
|
|
except (PluginDaemonClientSideError, ToolInvokeError) as e:
|
|
|
|
|
yield RunCompletedEvent(
|
|
|
|
|
run_result=NodeRunResult(
|
|
|
|
|
status=WorkflowNodeExecutionStatus.FAILED,
|
|
|
|
|
inputs=parameters_for_log,
|
|
|
|
|
metadata={WorkflowNodeExecutionMetadataKey.TOOL_INFO: tool_info},
|
|
|
|
|
error=f"Failed to invoke tool {node_data.provider_name}: {str(e)}",
|
|
|
|
|
error_type=type(e).__name__,
|
|
|
|
|
)
|
|
|
|
|
)
|
|
|
|
|
except PluginInvokeError as e:
|
|
|
|
|
yield RunCompletedEvent(
|
|
|
|
|
run_result=NodeRunResult(
|
|
|
|
|
status=WorkflowNodeExecutionStatus.FAILED,
|
|
|
|
|
inputs=parameters_for_log,
|
|
|
|
|
metadata={WorkflowNodeExecutionMetadataKey.TOOL_INFO: tool_info},
|
|
|
|
|
error="An error occurred in the plugin, "
|
|
|
|
|
f"please contact the author of {node_data.provider_name} for help, "
|
|
|
|
|
f"error type: {e.get_error_type()}, "
|
|
|
|
|
f"error details: {e.get_error_message()}",
|
|
|
|
|
error_type=type(e).__name__,
|
|
|
|
|
)
|
|
|
|
|
)
|
|
|
|
|
except PluginDaemonClientSideError as e:
|
|
|
|
|
yield RunCompletedEvent(
|
|
|
|
|
run_result=NodeRunResult(
|
|
|
|
|
status=WorkflowNodeExecutionStatus.FAILED,
|
|
|
|
|
inputs=parameters_for_log,
|
|
|
|
|
metadata={WorkflowNodeExecutionMetadataKey.TOOL_INFO: tool_info},
|
|
|
|
|
error=f"Failed to invoke tool, error: {e.description}",
|
|
|
|
|
error=f"Failed to transform tool message: {str(e)}",
|
|
|
|
|
error_type=type(e).__name__,
|
|
|
|
|
)
|
|
|
|
|
)
|
|
|
|
|
|