dify-oapi2 0.2.0__py3-none-any.whl → 0.3.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- dify_oapi/api/workflow/v1/model/file/__init__.py +1 -0
- dify_oapi/api/workflow/v1/model/file/file_info.py +53 -0
- dify_oapi/api/workflow/v1/model/file/preview_file_request.py +34 -0
- dify_oapi/api/workflow/v1/model/file/preview_file_response.py +9 -0
- dify_oapi/api/workflow/v1/model/file/upload_file_request.py +42 -0
- dify_oapi/api/workflow/v1/model/file/upload_file_request_body.py +23 -0
- dify_oapi/api/workflow/v1/model/file/upload_file_response.py +9 -0
- dify_oapi/api/workflow/v1/model/info/app_info.py +45 -0
- dify_oapi/api/workflow/v1/model/info/file_upload_config.py +45 -0
- dify_oapi/api/workflow/v1/model/info/get_info_request.py +24 -0
- dify_oapi/api/workflow/v1/model/info/get_info_response.py +9 -0
- dify_oapi/api/workflow/v1/model/info/get_parameters_request.py +24 -0
- dify_oapi/api/workflow/v1/model/info/get_parameters_response.py +9 -0
- dify_oapi/api/workflow/v1/model/info/get_site_request.py +24 -0
- dify_oapi/api/workflow/v1/model/info/get_site_response.py +9 -0
- dify_oapi/api/workflow/v1/model/info/parameters_info.py +37 -0
- dify_oapi/api/workflow/v1/model/info/site_info.py +75 -0
- dify_oapi/api/workflow/v1/model/info/system_parameters.py +38 -0
- dify_oapi/api/workflow/v1/model/info/user_input_form.py +43 -0
- dify_oapi/api/workflow/v1/model/log/__init__.py +0 -0
- dify_oapi/api/workflow/v1/model/log/end_user_info.py +38 -0
- dify_oapi/api/workflow/v1/model/log/get_workflow_logs_request.py +48 -0
- dify_oapi/api/workflow/v1/model/log/get_workflow_logs_response.py +13 -0
- dify_oapi/api/workflow/v1/model/log/log_info.py +57 -0
- dify_oapi/api/workflow/v1/model/log/workflow_run_log_info.py +65 -0
- dify_oapi/api/workflow/v1/model/workflow/execution_metadata.py +33 -0
- dify_oapi/api/workflow/v1/model/workflow/get_workflow_run_detail_request.py +30 -0
- dify_oapi/api/workflow/v1/model/{run_workflow_response.py → workflow/get_workflow_run_detail_response.py} +8 -11
- dify_oapi/api/workflow/v1/model/workflow/node_info.py +88 -0
- dify_oapi/api/workflow/v1/model/workflow/run_specific_workflow_request.py +38 -0
- dify_oapi/api/workflow/v1/model/workflow/run_specific_workflow_request_body.py +47 -0
- dify_oapi/api/workflow/v1/model/workflow/run_specific_workflow_response.py +9 -0
- dify_oapi/api/workflow/v1/model/{run_workflow_request.py → workflow/run_workflow_request.py} +4 -4
- dify_oapi/api/workflow/v1/model/workflow/run_workflow_request_body.py +47 -0
- dify_oapi/api/workflow/v1/model/workflow/run_workflow_response.py +9 -0
- dify_oapi/api/workflow/v1/model/{stop_workflow_request.py → workflow/stop_workflow_request.py} +9 -9
- dify_oapi/api/workflow/v1/model/{stop_workflow_request_body.py → workflow/stop_workflow_request_body.py} +3 -3
- dify_oapi/api/workflow/v1/model/{stop_workflow_response.py → workflow/stop_workflow_response.py} +2 -0
- dify_oapi/api/workflow/v1/model/workflow/streaming_event.py +42 -0
- dify_oapi/api/workflow/v1/model/workflow/workflow_file_info.py +40 -0
- dify_oapi/api/workflow/v1/model/workflow/workflow_inputs.py +56 -0
- dify_oapi/api/workflow/v1/model/workflow/workflow_run_data.py +72 -0
- dify_oapi/api/workflow/v1/model/workflow/workflow_run_info.py +35 -0
- dify_oapi/api/workflow/v1/model/workflow/workflow_types.py +54 -0
- dify_oapi/api/workflow/v1/resource/__init__.py +0 -1
- dify_oapi/api/workflow/v1/resource/file.py +63 -0
- dify_oapi/api/workflow/v1/resource/info.py +93 -0
- dify_oapi/api/workflow/v1/resource/log.py +43 -0
- dify_oapi/api/workflow/v1/resource/workflow.py +171 -53
- dify_oapi/api/workflow/v1/version.py +7 -1
- {dify_oapi2-0.2.0.dist-info → dify_oapi2-0.3.0.dist-info}/METADATA +2 -2
- {dify_oapi2-0.2.0.dist-info → dify_oapi2-0.3.0.dist-info}/RECORD +54 -18
- dify_oapi/api/workflow/v1/model/get_workflow_log_request.py +0 -50
- dify_oapi/api/workflow/v1/model/get_workflow_log_response.py +0 -42
- dify_oapi/api/workflow/v1/model/get_workflow_result_request.py +0 -30
- dify_oapi/api/workflow/v1/model/get_workflow_result_response.py +0 -17
- dify_oapi/api/workflow/v1/model/run_workflow_request_body.py +0 -42
- dify_oapi/api/workflow/v1/model/run_workflow_request_file.py +0 -50
- {dify_oapi2-0.2.0.dist-info → dify_oapi2-0.3.0.dist-info}/LICENSE +0 -0
- {dify_oapi2-0.2.0.dist-info → dify_oapi2-0.3.0.dist-info}/WHEEL +0 -0
@@ -0,0 +1,57 @@
|
|
1
|
+
from __future__ import annotations
|
2
|
+
|
3
|
+
from pydantic import BaseModel
|
4
|
+
|
5
|
+
from ..workflow.workflow_types import CreatedByRole, CreatedFrom
|
6
|
+
from .end_user_info import EndUserInfo
|
7
|
+
from .workflow_run_log_info import WorkflowRunLogInfo
|
8
|
+
|
9
|
+
|
10
|
+
class LogInfo(BaseModel):
|
11
|
+
id: str | None = None
|
12
|
+
workflow_run: WorkflowRunLogInfo | None = None
|
13
|
+
created_from: CreatedFrom | None = None
|
14
|
+
created_by_role: CreatedByRole | None = None
|
15
|
+
created_by_account: str | None = None
|
16
|
+
created_by_end_user: EndUserInfo | None = None
|
17
|
+
created_at: int | None = None
|
18
|
+
|
19
|
+
@staticmethod
|
20
|
+
def builder() -> LogInfoBuilder:
|
21
|
+
return LogInfoBuilder()
|
22
|
+
|
23
|
+
|
24
|
+
class LogInfoBuilder:
|
25
|
+
def __init__(self):
|
26
|
+
self._log_info = LogInfo()
|
27
|
+
|
28
|
+
def build(self) -> LogInfo:
|
29
|
+
return self._log_info
|
30
|
+
|
31
|
+
def id(self, id: str) -> LogInfoBuilder:
|
32
|
+
self._log_info.id = id
|
33
|
+
return self
|
34
|
+
|
35
|
+
def workflow_run(self, workflow_run: WorkflowRunLogInfo) -> LogInfoBuilder:
|
36
|
+
self._log_info.workflow_run = workflow_run
|
37
|
+
return self
|
38
|
+
|
39
|
+
def created_from(self, created_from: CreatedFrom) -> LogInfoBuilder:
|
40
|
+
self._log_info.created_from = created_from
|
41
|
+
return self
|
42
|
+
|
43
|
+
def created_by_role(self, created_by_role: CreatedByRole) -> LogInfoBuilder:
|
44
|
+
self._log_info.created_by_role = created_by_role
|
45
|
+
return self
|
46
|
+
|
47
|
+
def created_by_account(self, created_by_account: str) -> LogInfoBuilder:
|
48
|
+
self._log_info.created_by_account = created_by_account
|
49
|
+
return self
|
50
|
+
|
51
|
+
def created_by_end_user(self, created_by_end_user: EndUserInfo) -> LogInfoBuilder:
|
52
|
+
self._log_info.created_by_end_user = created_by_end_user
|
53
|
+
return self
|
54
|
+
|
55
|
+
def created_at(self, created_at: int) -> LogInfoBuilder:
|
56
|
+
self._log_info.created_at = created_at
|
57
|
+
return self
|
@@ -0,0 +1,65 @@
|
|
1
|
+
from __future__ import annotations
|
2
|
+
|
3
|
+
from pydantic import BaseModel
|
4
|
+
|
5
|
+
from ..workflow.workflow_types import LogStatus
|
6
|
+
|
7
|
+
|
8
|
+
class WorkflowRunLogInfo(BaseModel):
|
9
|
+
id: str | None = None
|
10
|
+
version: str | None = None
|
11
|
+
status: LogStatus | None = None
|
12
|
+
error: str | None = None
|
13
|
+
elapsed_time: float | None = None
|
14
|
+
total_tokens: int | None = None
|
15
|
+
total_steps: int | None = None
|
16
|
+
created_at: int | None = None
|
17
|
+
finished_at: int | None = None
|
18
|
+
|
19
|
+
@staticmethod
|
20
|
+
def builder() -> WorkflowRunLogInfoBuilder:
|
21
|
+
return WorkflowRunLogInfoBuilder()
|
22
|
+
|
23
|
+
|
24
|
+
class WorkflowRunLogInfoBuilder:
|
25
|
+
def __init__(self):
|
26
|
+
self._workflow_run_log_info = WorkflowRunLogInfo()
|
27
|
+
|
28
|
+
def build(self) -> WorkflowRunLogInfo:
|
29
|
+
return self._workflow_run_log_info
|
30
|
+
|
31
|
+
def id(self, id: str) -> WorkflowRunLogInfoBuilder:
|
32
|
+
self._workflow_run_log_info.id = id
|
33
|
+
return self
|
34
|
+
|
35
|
+
def version(self, version: str) -> WorkflowRunLogInfoBuilder:
|
36
|
+
self._workflow_run_log_info.version = version
|
37
|
+
return self
|
38
|
+
|
39
|
+
def status(self, status: LogStatus) -> WorkflowRunLogInfoBuilder:
|
40
|
+
self._workflow_run_log_info.status = status
|
41
|
+
return self
|
42
|
+
|
43
|
+
def error(self, error: str) -> WorkflowRunLogInfoBuilder:
|
44
|
+
self._workflow_run_log_info.error = error
|
45
|
+
return self
|
46
|
+
|
47
|
+
def elapsed_time(self, elapsed_time: float) -> WorkflowRunLogInfoBuilder:
|
48
|
+
self._workflow_run_log_info.elapsed_time = elapsed_time
|
49
|
+
return self
|
50
|
+
|
51
|
+
def total_tokens(self, total_tokens: int) -> WorkflowRunLogInfoBuilder:
|
52
|
+
self._workflow_run_log_info.total_tokens = total_tokens
|
53
|
+
return self
|
54
|
+
|
55
|
+
def total_steps(self, total_steps: int) -> WorkflowRunLogInfoBuilder:
|
56
|
+
self._workflow_run_log_info.total_steps = total_steps
|
57
|
+
return self
|
58
|
+
|
59
|
+
def created_at(self, created_at: int) -> WorkflowRunLogInfoBuilder:
|
60
|
+
self._workflow_run_log_info.created_at = created_at
|
61
|
+
return self
|
62
|
+
|
63
|
+
def finished_at(self, finished_at: int) -> WorkflowRunLogInfoBuilder:
|
64
|
+
self._workflow_run_log_info.finished_at = finished_at
|
65
|
+
return self
|
@@ -0,0 +1,33 @@
|
|
1
|
+
from __future__ import annotations
|
2
|
+
|
3
|
+
from pydantic import BaseModel
|
4
|
+
|
5
|
+
|
6
|
+
class ExecutionMetadata(BaseModel):
|
7
|
+
total_tokens: int | None = None
|
8
|
+
total_price: float | None = None
|
9
|
+
currency: str | None = None
|
10
|
+
|
11
|
+
@staticmethod
|
12
|
+
def builder() -> ExecutionMetadataBuilder:
|
13
|
+
return ExecutionMetadataBuilder()
|
14
|
+
|
15
|
+
|
16
|
+
class ExecutionMetadataBuilder:
|
17
|
+
def __init__(self):
|
18
|
+
self._execution_metadata = ExecutionMetadata()
|
19
|
+
|
20
|
+
def build(self) -> ExecutionMetadata:
|
21
|
+
return self._execution_metadata
|
22
|
+
|
23
|
+
def total_tokens(self, total_tokens: int) -> ExecutionMetadataBuilder:
|
24
|
+
self._execution_metadata.total_tokens = total_tokens
|
25
|
+
return self
|
26
|
+
|
27
|
+
def total_price(self, total_price: float) -> ExecutionMetadataBuilder:
|
28
|
+
self._execution_metadata.total_price = total_price
|
29
|
+
return self
|
30
|
+
|
31
|
+
def currency(self, currency: str) -> ExecutionMetadataBuilder:
|
32
|
+
self._execution_metadata.currency = currency
|
33
|
+
return self
|
@@ -0,0 +1,30 @@
|
|
1
|
+
from __future__ import annotations
|
2
|
+
|
3
|
+
from dify_oapi.core.enum import HttpMethod
|
4
|
+
from dify_oapi.core.model.base_request import BaseRequest
|
5
|
+
|
6
|
+
|
7
|
+
class GetWorkflowRunDetailRequest(BaseRequest):
|
8
|
+
def __init__(self) -> None:
|
9
|
+
super().__init__()
|
10
|
+
self.workflow_run_id: str | None = None
|
11
|
+
|
12
|
+
@staticmethod
|
13
|
+
def builder() -> GetWorkflowRunDetailRequestBuilder:
|
14
|
+
return GetWorkflowRunDetailRequestBuilder()
|
15
|
+
|
16
|
+
|
17
|
+
class GetWorkflowRunDetailRequestBuilder:
|
18
|
+
def __init__(self):
|
19
|
+
get_workflow_run_detail_request = GetWorkflowRunDetailRequest()
|
20
|
+
get_workflow_run_detail_request.http_method = HttpMethod.GET
|
21
|
+
get_workflow_run_detail_request.uri = "/v1/workflows/run/:workflow_run_id"
|
22
|
+
self._get_workflow_run_detail_request = get_workflow_run_detail_request
|
23
|
+
|
24
|
+
def build(self) -> GetWorkflowRunDetailRequest:
|
25
|
+
return self._get_workflow_run_detail_request
|
26
|
+
|
27
|
+
def workflow_run_id(self, workflow_run_id: str) -> GetWorkflowRunDetailRequestBuilder:
|
28
|
+
self._get_workflow_run_detail_request.workflow_run_id = workflow_run_id
|
29
|
+
self._get_workflow_run_detail_request.paths["workflow_run_id"] = workflow_run_id
|
30
|
+
return self
|
@@ -1,24 +1,21 @@
|
|
1
1
|
from __future__ import annotations
|
2
2
|
|
3
|
-
from
|
3
|
+
from typing import Any
|
4
4
|
|
5
5
|
from dify_oapi.core.model.base_response import BaseResponse
|
6
6
|
|
7
|
+
from .workflow_types import WorkflowStatus
|
7
8
|
|
8
|
-
class RunWorkflowResponse(BaseResponse):
|
9
|
-
workflow_run_id: str | None = None
|
10
|
-
task_id: str | None = None
|
11
|
-
data: RunWorkflowResponseData | None = None
|
12
9
|
|
13
|
-
|
14
|
-
class RunWorkflowResponseData(BaseModel):
|
10
|
+
class GetWorkflowRunDetailResponse(BaseResponse):
|
15
11
|
id: str | None = None
|
16
12
|
workflow_id: str | None = None
|
17
|
-
status:
|
18
|
-
|
13
|
+
status: WorkflowStatus | None = None
|
14
|
+
inputs: dict[str, Any] | None = None
|
15
|
+
outputs: dict[str, Any] | None = None
|
19
16
|
error: str | None = None
|
20
|
-
elapsed_time: float | None = None
|
21
|
-
total_tokens: int | None = None
|
22
17
|
total_steps: int | None = None
|
18
|
+
total_tokens: int | None = None
|
23
19
|
created_at: int | None = None
|
24
20
|
finished_at: int | None = None
|
21
|
+
elapsed_time: float | None = None
|
@@ -0,0 +1,88 @@
|
|
1
|
+
from __future__ import annotations
|
2
|
+
|
3
|
+
from typing import Any
|
4
|
+
|
5
|
+
from pydantic import BaseModel
|
6
|
+
|
7
|
+
from .execution_metadata import ExecutionMetadata
|
8
|
+
from .workflow_types import NodeType, WorkflowStatus
|
9
|
+
|
10
|
+
|
11
|
+
class NodeInfo(BaseModel):
|
12
|
+
id: str | None = None
|
13
|
+
node_id: str | None = None
|
14
|
+
node_type: NodeType | None = None
|
15
|
+
title: str | None = None
|
16
|
+
index: int | None = None
|
17
|
+
predecessor_node_id: str | None = None
|
18
|
+
inputs: dict[str, Any] | None = None
|
19
|
+
outputs: dict[str, Any] | None = None
|
20
|
+
status: WorkflowStatus | None = None
|
21
|
+
error: str | None = None
|
22
|
+
elapsed_time: float | None = None
|
23
|
+
execution_metadata: ExecutionMetadata | None = None
|
24
|
+
created_at: int | None = None
|
25
|
+
|
26
|
+
@staticmethod
|
27
|
+
def builder() -> NodeInfoBuilder:
|
28
|
+
return NodeInfoBuilder()
|
29
|
+
|
30
|
+
|
31
|
+
class NodeInfoBuilder:
|
32
|
+
def __init__(self):
|
33
|
+
self._node_info = NodeInfo()
|
34
|
+
|
35
|
+
def build(self) -> NodeInfo:
|
36
|
+
return self._node_info
|
37
|
+
|
38
|
+
def id(self, id: str) -> NodeInfoBuilder:
|
39
|
+
self._node_info.id = id
|
40
|
+
return self
|
41
|
+
|
42
|
+
def node_id(self, node_id: str) -> NodeInfoBuilder:
|
43
|
+
self._node_info.node_id = node_id
|
44
|
+
return self
|
45
|
+
|
46
|
+
def node_type(self, node_type: NodeType) -> NodeInfoBuilder:
|
47
|
+
self._node_info.node_type = node_type
|
48
|
+
return self
|
49
|
+
|
50
|
+
def title(self, title: str) -> NodeInfoBuilder:
|
51
|
+
self._node_info.title = title
|
52
|
+
return self
|
53
|
+
|
54
|
+
def index(self, index: int) -> NodeInfoBuilder:
|
55
|
+
self._node_info.index = index
|
56
|
+
return self
|
57
|
+
|
58
|
+
def predecessor_node_id(self, predecessor_node_id: str) -> NodeInfoBuilder:
|
59
|
+
self._node_info.predecessor_node_id = predecessor_node_id
|
60
|
+
return self
|
61
|
+
|
62
|
+
def inputs(self, inputs: dict[str, Any]) -> NodeInfoBuilder:
|
63
|
+
self._node_info.inputs = inputs
|
64
|
+
return self
|
65
|
+
|
66
|
+
def outputs(self, outputs: dict[str, Any]) -> NodeInfoBuilder:
|
67
|
+
self._node_info.outputs = outputs
|
68
|
+
return self
|
69
|
+
|
70
|
+
def status(self, status: WorkflowStatus) -> NodeInfoBuilder:
|
71
|
+
self._node_info.status = status
|
72
|
+
return self
|
73
|
+
|
74
|
+
def error(self, error: str) -> NodeInfoBuilder:
|
75
|
+
self._node_info.error = error
|
76
|
+
return self
|
77
|
+
|
78
|
+
def elapsed_time(self, elapsed_time: float) -> NodeInfoBuilder:
|
79
|
+
self._node_info.elapsed_time = elapsed_time
|
80
|
+
return self
|
81
|
+
|
82
|
+
def execution_metadata(self, execution_metadata: ExecutionMetadata) -> NodeInfoBuilder:
|
83
|
+
self._node_info.execution_metadata = execution_metadata
|
84
|
+
return self
|
85
|
+
|
86
|
+
def created_at(self, created_at: int) -> NodeInfoBuilder:
|
87
|
+
self._node_info.created_at = created_at
|
88
|
+
return self
|
@@ -0,0 +1,38 @@
|
|
1
|
+
from __future__ import annotations
|
2
|
+
|
3
|
+
from dify_oapi.core.enum import HttpMethod
|
4
|
+
from dify_oapi.core.model.base_request import BaseRequest
|
5
|
+
|
6
|
+
from .run_specific_workflow_request_body import RunSpecificWorkflowRequestBody
|
7
|
+
|
8
|
+
|
9
|
+
class RunSpecificWorkflowRequest(BaseRequest):
|
10
|
+
def __init__(self) -> None:
|
11
|
+
super().__init__()
|
12
|
+
self.workflow_id: str | None = None
|
13
|
+
self.request_body: RunSpecificWorkflowRequestBody | None = None
|
14
|
+
|
15
|
+
@staticmethod
|
16
|
+
def builder() -> RunSpecificWorkflowRequestBuilder:
|
17
|
+
return RunSpecificWorkflowRequestBuilder()
|
18
|
+
|
19
|
+
|
20
|
+
class RunSpecificWorkflowRequestBuilder:
|
21
|
+
def __init__(self):
|
22
|
+
run_specific_workflow_request = RunSpecificWorkflowRequest()
|
23
|
+
run_specific_workflow_request.http_method = HttpMethod.POST
|
24
|
+
run_specific_workflow_request.uri = "/v1/workflows/:workflow_id/run"
|
25
|
+
self._run_specific_workflow_request = run_specific_workflow_request
|
26
|
+
|
27
|
+
def build(self) -> RunSpecificWorkflowRequest:
|
28
|
+
return self._run_specific_workflow_request
|
29
|
+
|
30
|
+
def workflow_id(self, workflow_id: str) -> RunSpecificWorkflowRequestBuilder:
|
31
|
+
self._run_specific_workflow_request.workflow_id = workflow_id
|
32
|
+
self._run_specific_workflow_request.paths["workflow_id"] = workflow_id
|
33
|
+
return self
|
34
|
+
|
35
|
+
def request_body(self, request_body: RunSpecificWorkflowRequestBody) -> RunSpecificWorkflowRequestBuilder:
|
36
|
+
self._run_specific_workflow_request.request_body = request_body
|
37
|
+
self._run_specific_workflow_request.body = request_body.model_dump(exclude_none=True, mode="json")
|
38
|
+
return self
|
@@ -0,0 +1,47 @@
|
|
1
|
+
from __future__ import annotations
|
2
|
+
|
3
|
+
from pydantic import BaseModel
|
4
|
+
|
5
|
+
from .workflow_file_info import WorkflowFileInfo
|
6
|
+
from .workflow_inputs import WorkflowInputs
|
7
|
+
from .workflow_types import ResponseMode
|
8
|
+
|
9
|
+
|
10
|
+
class RunSpecificWorkflowRequestBody(BaseModel):
|
11
|
+
inputs: WorkflowInputs | None = None
|
12
|
+
response_mode: ResponseMode | None = None
|
13
|
+
user: str | None = None
|
14
|
+
files: list[WorkflowFileInfo] | None = None
|
15
|
+
trace_id: str | None = None
|
16
|
+
|
17
|
+
@staticmethod
|
18
|
+
def builder() -> RunSpecificWorkflowRequestBodyBuilder:
|
19
|
+
return RunSpecificWorkflowRequestBodyBuilder()
|
20
|
+
|
21
|
+
|
22
|
+
class RunSpecificWorkflowRequestBodyBuilder:
|
23
|
+
def __init__(self):
|
24
|
+
self._run_specific_workflow_request_body = RunSpecificWorkflowRequestBody()
|
25
|
+
|
26
|
+
def build(self) -> RunSpecificWorkflowRequestBody:
|
27
|
+
return self._run_specific_workflow_request_body
|
28
|
+
|
29
|
+
def inputs(self, inputs: WorkflowInputs) -> RunSpecificWorkflowRequestBodyBuilder:
|
30
|
+
self._run_specific_workflow_request_body.inputs = inputs
|
31
|
+
return self
|
32
|
+
|
33
|
+
def response_mode(self, response_mode: ResponseMode) -> RunSpecificWorkflowRequestBodyBuilder:
|
34
|
+
self._run_specific_workflow_request_body.response_mode = response_mode
|
35
|
+
return self
|
36
|
+
|
37
|
+
def user(self, user: str) -> RunSpecificWorkflowRequestBodyBuilder:
|
38
|
+
self._run_specific_workflow_request_body.user = user
|
39
|
+
return self
|
40
|
+
|
41
|
+
def files(self, files: list[WorkflowFileInfo]) -> RunSpecificWorkflowRequestBodyBuilder:
|
42
|
+
self._run_specific_workflow_request_body.files = files
|
43
|
+
return self
|
44
|
+
|
45
|
+
def trace_id(self, trace_id: str) -> RunSpecificWorkflowRequestBodyBuilder:
|
46
|
+
self._run_specific_workflow_request_body.trace_id = trace_id
|
47
|
+
return self
|
dify_oapi/api/workflow/v1/model/{run_workflow_request.py → workflow/run_workflow_request.py}
RENAMED
@@ -21,12 +21,12 @@ class RunWorkflowRequestBuilder:
|
|
21
21
|
run_workflow_request = RunWorkflowRequest()
|
22
22
|
run_workflow_request.http_method = HttpMethod.POST
|
23
23
|
run_workflow_request.uri = "/v1/workflows/run"
|
24
|
-
self._run_workflow_request
|
24
|
+
self._run_workflow_request = run_workflow_request
|
25
|
+
|
26
|
+
def build(self) -> RunWorkflowRequest:
|
27
|
+
return self._run_workflow_request
|
25
28
|
|
26
29
|
def request_body(self, request_body: RunWorkflowRequestBody) -> RunWorkflowRequestBuilder:
|
27
30
|
self._run_workflow_request.request_body = request_body
|
28
31
|
self._run_workflow_request.body = request_body.model_dump(exclude_none=True, mode="json")
|
29
32
|
return self
|
30
|
-
|
31
|
-
def build(self) -> RunWorkflowRequest:
|
32
|
-
return self._run_workflow_request
|
@@ -0,0 +1,47 @@
|
|
1
|
+
from __future__ import annotations
|
2
|
+
|
3
|
+
from pydantic import BaseModel
|
4
|
+
|
5
|
+
from .workflow_file_info import WorkflowFileInfo
|
6
|
+
from .workflow_inputs import WorkflowInputs
|
7
|
+
from .workflow_types import ResponseMode
|
8
|
+
|
9
|
+
|
10
|
+
class RunWorkflowRequestBody(BaseModel):
|
11
|
+
inputs: WorkflowInputs | None = None
|
12
|
+
response_mode: ResponseMode | None = None
|
13
|
+
user: str | None = None
|
14
|
+
files: list[WorkflowFileInfo] | None = None
|
15
|
+
trace_id: str | None = None
|
16
|
+
|
17
|
+
@staticmethod
|
18
|
+
def builder() -> RunWorkflowRequestBodyBuilder:
|
19
|
+
return RunWorkflowRequestBodyBuilder()
|
20
|
+
|
21
|
+
|
22
|
+
class RunWorkflowRequestBodyBuilder:
|
23
|
+
def __init__(self) -> None:
|
24
|
+
self._run_workflow_request_body = RunWorkflowRequestBody()
|
25
|
+
|
26
|
+
def build(self) -> RunWorkflowRequestBody:
|
27
|
+
return self._run_workflow_request_body
|
28
|
+
|
29
|
+
def inputs(self, inputs: WorkflowInputs) -> RunWorkflowRequestBodyBuilder:
|
30
|
+
self._run_workflow_request_body.inputs = inputs
|
31
|
+
return self
|
32
|
+
|
33
|
+
def response_mode(self, response_mode: ResponseMode) -> RunWorkflowRequestBodyBuilder:
|
34
|
+
self._run_workflow_request_body.response_mode = response_mode
|
35
|
+
return self
|
36
|
+
|
37
|
+
def user(self, user: str) -> RunWorkflowRequestBodyBuilder:
|
38
|
+
self._run_workflow_request_body.user = user
|
39
|
+
return self
|
40
|
+
|
41
|
+
def files(self, files: list[WorkflowFileInfo]) -> RunWorkflowRequestBodyBuilder:
|
42
|
+
self._run_workflow_request_body.files = files
|
43
|
+
return self
|
44
|
+
|
45
|
+
def trace_id(self, trace_id: str) -> RunWorkflowRequestBodyBuilder:
|
46
|
+
self._run_workflow_request_body.trace_id = trace_id
|
47
|
+
return self
|
dify_oapi/api/workflow/v1/model/{stop_workflow_request.py → workflow/stop_workflow_request.py}
RENAMED
@@ -18,21 +18,21 @@ class StopWorkflowRequest(BaseRequest):
|
|
18
18
|
|
19
19
|
|
20
20
|
class StopWorkflowRequestBuilder:
|
21
|
-
def __init__(self)
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
self._stop_workflow_request
|
21
|
+
def __init__(self):
|
22
|
+
stop_workflow_request = StopWorkflowRequest()
|
23
|
+
stop_workflow_request.http_method = HttpMethod.POST
|
24
|
+
stop_workflow_request.uri = "/v1/workflows/tasks/:task_id/stop"
|
25
|
+
self._stop_workflow_request = stop_workflow_request
|
26
|
+
|
27
|
+
def build(self) -> StopWorkflowRequest:
|
28
|
+
return self._stop_workflow_request
|
26
29
|
|
27
30
|
def task_id(self, task_id: str) -> StopWorkflowRequestBuilder:
|
28
31
|
self._stop_workflow_request.task_id = task_id
|
29
|
-
self._stop_workflow_request.paths["task_id"] =
|
32
|
+
self._stop_workflow_request.paths["task_id"] = task_id
|
30
33
|
return self
|
31
34
|
|
32
35
|
def request_body(self, request_body: StopWorkflowRequestBody) -> StopWorkflowRequestBuilder:
|
33
36
|
self._stop_workflow_request.request_body = request_body
|
34
37
|
self._stop_workflow_request.body = request_body.model_dump(exclude_none=True, mode="json")
|
35
38
|
return self
|
36
|
-
|
37
|
-
def build(self) -> StopWorkflowRequest:
|
38
|
-
return self._stop_workflow_request
|
@@ -15,9 +15,9 @@ class StopWorkflowRequestBodyBuilder:
|
|
15
15
|
def __init__(self):
|
16
16
|
self._stop_workflow_request_body = StopWorkflowRequestBody()
|
17
17
|
|
18
|
+
def build(self) -> StopWorkflowRequestBody:
|
19
|
+
return self._stop_workflow_request_body
|
20
|
+
|
18
21
|
def user(self, user: str) -> StopWorkflowRequestBodyBuilder:
|
19
22
|
self._stop_workflow_request_body.user = user
|
20
23
|
return self
|
21
|
-
|
22
|
-
def build(self) -> StopWorkflowRequestBody:
|
23
|
-
return self._stop_workflow_request_body
|
@@ -0,0 +1,42 @@
|
|
1
|
+
from __future__ import annotations
|
2
|
+
|
3
|
+
from typing import Any
|
4
|
+
|
5
|
+
from pydantic import BaseModel
|
6
|
+
|
7
|
+
from .workflow_types import EventType
|
8
|
+
|
9
|
+
|
10
|
+
class StreamingEvent(BaseModel):
|
11
|
+
event: EventType | None = None
|
12
|
+
task_id: str | None = None
|
13
|
+
workflow_run_id: str | None = None
|
14
|
+
data: dict[str, Any] | None = None
|
15
|
+
|
16
|
+
@staticmethod
|
17
|
+
def builder() -> StreamingEventBuilder:
|
18
|
+
return StreamingEventBuilder()
|
19
|
+
|
20
|
+
|
21
|
+
class StreamingEventBuilder:
|
22
|
+
def __init__(self):
|
23
|
+
self._streaming_event = StreamingEvent()
|
24
|
+
|
25
|
+
def build(self) -> StreamingEvent:
|
26
|
+
return self._streaming_event
|
27
|
+
|
28
|
+
def event(self, event: EventType) -> StreamingEventBuilder:
|
29
|
+
self._streaming_event.event = event
|
30
|
+
return self
|
31
|
+
|
32
|
+
def task_id(self, task_id: str) -> StreamingEventBuilder:
|
33
|
+
self._streaming_event.task_id = task_id
|
34
|
+
return self
|
35
|
+
|
36
|
+
def workflow_run_id(self, workflow_run_id: str) -> StreamingEventBuilder:
|
37
|
+
self._streaming_event.workflow_run_id = workflow_run_id
|
38
|
+
return self
|
39
|
+
|
40
|
+
def data(self, data: dict[str, Any]) -> StreamingEventBuilder:
|
41
|
+
self._streaming_event.data = data
|
42
|
+
return self
|
@@ -0,0 +1,40 @@
|
|
1
|
+
from __future__ import annotations
|
2
|
+
|
3
|
+
from pydantic import BaseModel
|
4
|
+
|
5
|
+
from .workflow_types import FileType, TransferMethod
|
6
|
+
|
7
|
+
|
8
|
+
class WorkflowFileInfo(BaseModel):
|
9
|
+
type: FileType | None = None
|
10
|
+
transfer_method: TransferMethod | None = None
|
11
|
+
url: str | None = None
|
12
|
+
upload_file_id: str | None = None
|
13
|
+
|
14
|
+
@staticmethod
|
15
|
+
def builder() -> WorkflowFileInfoBuilder:
|
16
|
+
return WorkflowFileInfoBuilder()
|
17
|
+
|
18
|
+
|
19
|
+
class WorkflowFileInfoBuilder:
|
20
|
+
def __init__(self):
|
21
|
+
self._workflow_file_info = WorkflowFileInfo()
|
22
|
+
|
23
|
+
def build(self) -> WorkflowFileInfo:
|
24
|
+
return self._workflow_file_info
|
25
|
+
|
26
|
+
def type(self, type: FileType) -> WorkflowFileInfoBuilder:
|
27
|
+
self._workflow_file_info.type = type
|
28
|
+
return self
|
29
|
+
|
30
|
+
def transfer_method(self, transfer_method: TransferMethod) -> WorkflowFileInfoBuilder:
|
31
|
+
self._workflow_file_info.transfer_method = transfer_method
|
32
|
+
return self
|
33
|
+
|
34
|
+
def url(self, url: str) -> WorkflowFileInfoBuilder:
|
35
|
+
self._workflow_file_info.url = url
|
36
|
+
return self
|
37
|
+
|
38
|
+
def upload_file_id(self, upload_file_id: str) -> WorkflowFileInfoBuilder:
|
39
|
+
self._workflow_file_info.upload_file_id = upload_file_id
|
40
|
+
return self
|
@@ -0,0 +1,56 @@
|
|
1
|
+
from __future__ import annotations
|
2
|
+
|
3
|
+
from typing import Union
|
4
|
+
|
5
|
+
from pydantic import BaseModel
|
6
|
+
|
7
|
+
from .workflow_file_info import WorkflowFileInfo
|
8
|
+
|
9
|
+
# Define specific types for workflow input values
|
10
|
+
WorkflowInputValue = Union[
|
11
|
+
str, # Text values
|
12
|
+
int, # Integer values
|
13
|
+
float, # Float values
|
14
|
+
bool, # Boolean values
|
15
|
+
list[WorkflowFileInfo], # File list type variables
|
16
|
+
list[str], # String arrays
|
17
|
+
dict[str, Union[str, int, float, bool]], # Object values
|
18
|
+
]
|
19
|
+
|
20
|
+
|
21
|
+
class WorkflowInputs(BaseModel):
|
22
|
+
# Dynamic inputs based on workflow configuration
|
23
|
+
# Can contain any key-value pairs defined by the workflow
|
24
|
+
inputs: dict[str, WorkflowInputValue] | None = None
|
25
|
+
|
26
|
+
@staticmethod
|
27
|
+
def builder() -> WorkflowInputsBuilder:
|
28
|
+
return WorkflowInputsBuilder()
|
29
|
+
|
30
|
+
def add_input(self, key: str, value: WorkflowInputValue) -> None:
|
31
|
+
if self.inputs is None:
|
32
|
+
self.inputs = {}
|
33
|
+
self.inputs[key] = value
|
34
|
+
|
35
|
+
def get_input(self, key: str) -> WorkflowInputValue | None:
|
36
|
+
if self.inputs is None:
|
37
|
+
return None
|
38
|
+
return self.inputs.get(key)
|
39
|
+
|
40
|
+
|
41
|
+
class WorkflowInputsBuilder:
|
42
|
+
def __init__(self):
|
43
|
+
self._workflow_inputs = WorkflowInputs()
|
44
|
+
|
45
|
+
def build(self) -> WorkflowInputs:
|
46
|
+
return self._workflow_inputs
|
47
|
+
|
48
|
+
def inputs(self, inputs: dict[str, WorkflowInputValue]) -> WorkflowInputsBuilder:
|
49
|
+
self._workflow_inputs.inputs = inputs
|
50
|
+
return self
|
51
|
+
|
52
|
+
def add_input(self, key: str, value: WorkflowInputValue) -> WorkflowInputsBuilder:
|
53
|
+
if self._workflow_inputs.inputs is None:
|
54
|
+
self._workflow_inputs.inputs = {}
|
55
|
+
self._workflow_inputs.inputs[key] = value
|
56
|
+
return self
|