mirror of
https://github.com/langgenius/dify.git
synced 2026-02-24 03:41:21 +08:00
The HumanInput node will pause the execution of workflow if execution, while WorkflowTool works in a blocking manner. (Receiving arguments and returning results once finished). The two mode are inherently incompatible. The goal of this change is to forbid workflows containing HumanInput node being published as WorkflowTool. Please check the current implementation and propose a solution.
54 lines
996 B
Python
54 lines
996 B
Python
from libs.exception import BaseHTTPException
|
|
|
|
from core.tools.entities.tool_entities import ToolInvokeMeta
|
|
|
|
|
|
class ToolProviderNotFoundError(ValueError):
|
|
pass
|
|
|
|
|
|
class ToolNotFoundError(ValueError):
|
|
pass
|
|
|
|
|
|
class ToolParameterValidationError(ValueError):
|
|
pass
|
|
|
|
|
|
class ToolProviderCredentialValidationError(ValueError):
|
|
pass
|
|
|
|
|
|
class ToolNotSupportedError(ValueError):
|
|
pass
|
|
|
|
|
|
class ToolInvokeError(ValueError):
|
|
pass
|
|
|
|
|
|
class ToolApiSchemaError(ValueError):
|
|
pass
|
|
|
|
|
|
class ToolSSRFError(ValueError):
|
|
pass
|
|
|
|
|
|
class ToolCredentialPolicyViolationError(ValueError):
|
|
pass
|
|
|
|
|
|
class WorkflowToolHumanInputNotSupportedError(BaseHTTPException):
|
|
error_code = "workflow_tool_human_input_not_supported"
|
|
description = "Workflow with Human Input nodes cannot be published as a workflow tool."
|
|
code = 400
|
|
|
|
|
|
class ToolEngineInvokeError(Exception):
|
|
meta: ToolInvokeMeta
|
|
|
|
def __init__(self, meta, **kwargs):
|
|
self.meta = meta
|
|
super().__init__(**kwargs)
|