dify-oapi2 0.1.1__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.
Files changed (140) hide show
  1. dify_oapi/api/completion/v1/model/annotation/annotation_info.py +43 -0
  2. dify_oapi/api/completion/v1/model/annotation/annotation_reply_settings_request.py +39 -0
  3. dify_oapi/api/completion/v1/model/annotation/annotation_reply_settings_request_body.py +33 -0
  4. dify_oapi/api/completion/v1/model/annotation/annotation_reply_settings_response.py +9 -0
  5. dify_oapi/api/completion/v1/model/annotation/create_annotation_request.py +32 -0
  6. dify_oapi/api/completion/v1/model/annotation/create_annotation_request_body.py +28 -0
  7. dify_oapi/api/completion/v1/model/annotation/create_annotation_response.py +9 -0
  8. dify_oapi/api/completion/v1/model/annotation/delete_annotation_request.py +30 -0
  9. dify_oapi/api/completion/v1/model/annotation/delete_annotation_response.py +7 -0
  10. dify_oapi/api/completion/v1/model/annotation/job_status_info.py +35 -0
  11. dify_oapi/api/completion/v1/model/annotation/list_annotations_request.py +32 -0
  12. dify_oapi/api/completion/v1/model/annotation/list_annotations_response.py +13 -0
  13. dify_oapi/api/completion/v1/model/annotation/query_annotation_reply_status_request.py +38 -0
  14. dify_oapi/api/completion/v1/model/annotation/query_annotation_reply_status_response.py +9 -0
  15. dify_oapi/api/completion/v1/model/annotation/update_annotation_request.py +38 -0
  16. dify_oapi/api/completion/v1/model/annotation/update_annotation_request_body.py +28 -0
  17. dify_oapi/api/completion/v1/model/annotation/update_annotation_response.py +9 -0
  18. dify_oapi/api/completion/v1/model/audio/audio_info.py +28 -0
  19. dify_oapi/api/completion/v1/model/audio/text_to_audio_request.py +32 -0
  20. dify_oapi/api/completion/v1/model/audio/text_to_audio_request_body.py +33 -0
  21. dify_oapi/api/completion/v1/model/audio/text_to_audio_response.py +9 -0
  22. dify_oapi/api/completion/v1/model/completion/completion_inputs.py +28 -0
  23. dify_oapi/api/completion/v1/model/completion/completion_message_info.py +46 -0
  24. dify_oapi/api/completion/v1/model/completion/completion_types.py +27 -0
  25. dify_oapi/api/completion/v1/model/completion/metadata.py +31 -0
  26. dify_oapi/api/completion/v1/model/completion/retriever_resource.py +58 -0
  27. dify_oapi/api/completion/v1/model/completion/send_message_request.py +32 -0
  28. dify_oapi/api/completion/v1/model/completion/send_message_request_body.py +76 -0
  29. dify_oapi/api/completion/v1/model/completion/send_message_response.py +9 -0
  30. dify_oapi/api/completion/v1/model/completion/stop_response_request.py +38 -0
  31. dify_oapi/api/completion/v1/model/completion/stop_response_request_body.py +23 -0
  32. dify_oapi/api/completion/v1/model/{stop_completion_response.py → completion/stop_response_response.py} +3 -1
  33. dify_oapi/api/completion/v1/model/completion/usage.py +78 -0
  34. dify_oapi/api/completion/v1/model/feedback/feedback_info.py +53 -0
  35. dify_oapi/api/completion/v1/model/feedback/get_feedbacks_request.py +32 -0
  36. dify_oapi/api/completion/v1/model/feedback/get_feedbacks_response.py +9 -0
  37. dify_oapi/api/completion/v1/model/feedback/message_feedback_request.py +38 -0
  38. dify_oapi/api/completion/v1/model/feedback/message_feedback_request_body.py +35 -0
  39. dify_oapi/api/completion/v1/model/feedback/message_feedback_response.py +7 -0
  40. dify_oapi/api/completion/v1/model/file/file_info.py +53 -0
  41. dify_oapi/api/completion/v1/model/file/upload_file_request.py +42 -0
  42. dify_oapi/api/completion/v1/model/file/upload_file_request_body.py +23 -0
  43. dify_oapi/api/completion/v1/model/file/upload_file_response.py +9 -0
  44. dify_oapi/api/completion/v1/model/info/app_info.py +43 -0
  45. dify_oapi/api/completion/v1/model/info/file_upload_config.py +23 -0
  46. dify_oapi/api/completion/v1/model/info/get_info_request.py +24 -0
  47. dify_oapi/api/completion/v1/model/info/get_info_response.py +9 -0
  48. dify_oapi/api/completion/v1/model/info/get_parameters_request.py +24 -0
  49. dify_oapi/api/completion/v1/model/info/get_parameters_response.py +9 -0
  50. dify_oapi/api/completion/v1/model/info/get_site_request.py +24 -0
  51. dify_oapi/api/completion/v1/model/info/get_site_response.py +9 -0
  52. dify_oapi/api/completion/v1/model/info/parameters_info.py +67 -0
  53. dify_oapi/api/completion/v1/model/info/site_info.py +90 -0
  54. dify_oapi/api/completion/v1/model/info/system_parameters.py +38 -0
  55. dify_oapi/api/completion/v1/model/info/user_input_form.py +43 -0
  56. dify_oapi/api/completion/v1/resource/__init__.py +5 -0
  57. dify_oapi/api/completion/v1/resource/annotation.py +99 -0
  58. dify_oapi/api/completion/v1/resource/audio.py +19 -0
  59. dify_oapi/api/completion/v1/resource/completion.py +36 -46
  60. dify_oapi/api/completion/v1/resource/feedback.py +33 -0
  61. dify_oapi/api/completion/v1/resource/file.py +19 -0
  62. dify_oapi/api/completion/v1/resource/info.py +39 -0
  63. dify_oapi/api/completion/v1/version.py +11 -1
  64. dify_oapi/api/knowledge_base/v1/model/dataset/create_request_body.py +3 -4
  65. dify_oapi/api/knowledge_base/v1/model/dataset/dataset_types.py +36 -0
  66. dify_oapi/api/knowledge_base/v1/model/dataset/retrieval_model.py +3 -6
  67. dify_oapi/api/knowledge_base/v1/model/document/create_by_text_request_body.py +7 -12
  68. dify_oapi/api/knowledge_base/v1/model/document/document_types.py +36 -0
  69. dify_oapi/api/knowledge_base/v1/model/metadata/metadata_types.py +15 -0
  70. dify_oapi/api/knowledge_base/v1/model/segment/segment_types.py +24 -0
  71. dify_oapi/api/knowledge_base/v1/model/tag/tag_types.py +12 -0
  72. dify_oapi/api/knowledge_base/v1/model/tag/update_response.py +5 -1
  73. dify_oapi/api/workflow/v1/model/file/__init__.py +1 -0
  74. dify_oapi/api/workflow/v1/model/file/file_info.py +53 -0
  75. dify_oapi/api/workflow/v1/model/file/preview_file_request.py +34 -0
  76. dify_oapi/api/workflow/v1/model/file/preview_file_response.py +9 -0
  77. dify_oapi/api/workflow/v1/model/file/upload_file_request.py +42 -0
  78. dify_oapi/api/workflow/v1/model/file/upload_file_request_body.py +23 -0
  79. dify_oapi/api/workflow/v1/model/file/upload_file_response.py +9 -0
  80. dify_oapi/api/workflow/v1/model/info/app_info.py +45 -0
  81. dify_oapi/api/workflow/v1/model/info/file_upload_config.py +45 -0
  82. dify_oapi/api/workflow/v1/model/info/get_info_request.py +24 -0
  83. dify_oapi/api/workflow/v1/model/info/get_info_response.py +9 -0
  84. dify_oapi/api/workflow/v1/model/info/get_parameters_request.py +24 -0
  85. dify_oapi/api/workflow/v1/model/info/get_parameters_response.py +9 -0
  86. dify_oapi/api/workflow/v1/model/info/get_site_request.py +24 -0
  87. dify_oapi/api/workflow/v1/model/info/get_site_response.py +9 -0
  88. dify_oapi/api/workflow/v1/model/info/parameters_info.py +37 -0
  89. dify_oapi/api/workflow/v1/model/info/site_info.py +75 -0
  90. dify_oapi/api/workflow/v1/model/info/system_parameters.py +38 -0
  91. dify_oapi/api/workflow/v1/model/info/user_input_form.py +43 -0
  92. dify_oapi/api/workflow/v1/model/log/__init__.py +0 -0
  93. dify_oapi/api/workflow/v1/model/log/end_user_info.py +38 -0
  94. dify_oapi/api/workflow/v1/model/log/get_workflow_logs_request.py +48 -0
  95. dify_oapi/api/workflow/v1/model/log/get_workflow_logs_response.py +13 -0
  96. dify_oapi/api/workflow/v1/model/log/log_info.py +57 -0
  97. dify_oapi/api/workflow/v1/model/log/workflow_run_log_info.py +65 -0
  98. dify_oapi/api/workflow/v1/model/workflow/execution_metadata.py +33 -0
  99. dify_oapi/api/workflow/v1/model/workflow/get_workflow_run_detail_request.py +30 -0
  100. dify_oapi/api/workflow/v1/model/{run_workflow_response.py → workflow/get_workflow_run_detail_response.py} +8 -11
  101. dify_oapi/api/workflow/v1/model/workflow/node_info.py +88 -0
  102. dify_oapi/api/workflow/v1/model/workflow/run_specific_workflow_request.py +38 -0
  103. dify_oapi/api/workflow/v1/model/workflow/run_specific_workflow_request_body.py +47 -0
  104. dify_oapi/api/workflow/v1/model/workflow/run_specific_workflow_response.py +9 -0
  105. dify_oapi/api/workflow/v1/model/{run_workflow_request.py → workflow/run_workflow_request.py} +4 -4
  106. dify_oapi/api/workflow/v1/model/workflow/run_workflow_request_body.py +47 -0
  107. dify_oapi/api/workflow/v1/model/workflow/run_workflow_response.py +9 -0
  108. dify_oapi/api/workflow/v1/model/{stop_workflow_request.py → workflow/stop_workflow_request.py} +9 -9
  109. dify_oapi/api/workflow/v1/model/{stop_workflow_request_body.py → workflow/stop_workflow_request_body.py} +3 -3
  110. dify_oapi/api/workflow/v1/model/{stop_workflow_response.py → workflow/stop_workflow_response.py} +2 -0
  111. dify_oapi/api/workflow/v1/model/workflow/streaming_event.py +42 -0
  112. dify_oapi/api/workflow/v1/model/workflow/workflow_file_info.py +40 -0
  113. dify_oapi/api/workflow/v1/model/workflow/workflow_inputs.py +56 -0
  114. dify_oapi/api/workflow/v1/model/workflow/workflow_run_data.py +72 -0
  115. dify_oapi/api/workflow/v1/model/workflow/workflow_run_info.py +35 -0
  116. dify_oapi/api/workflow/v1/model/workflow/workflow_types.py +54 -0
  117. dify_oapi/api/workflow/v1/resource/__init__.py +0 -1
  118. dify_oapi/api/workflow/v1/resource/file.py +63 -0
  119. dify_oapi/api/workflow/v1/resource/info.py +93 -0
  120. dify_oapi/api/workflow/v1/resource/log.py +43 -0
  121. dify_oapi/api/workflow/v1/resource/workflow.py +171 -53
  122. dify_oapi/api/workflow/v1/version.py +7 -1
  123. dify_oapi/core/http/transport/_misc.py +54 -14
  124. {dify_oapi2-0.1.1.dist-info → dify_oapi2-0.3.0.dist-info}/METADATA +10 -6
  125. {dify_oapi2-0.1.1.dist-info → dify_oapi2-0.3.0.dist-info}/RECORD +127 -34
  126. dify_oapi/api/completion/v1/model/completion_request.py +0 -34
  127. dify_oapi/api/completion/v1/model/completion_request_body.py +0 -43
  128. dify_oapi/api/completion/v1/model/completion_request_body_input.py +0 -38
  129. dify_oapi/api/completion/v1/model/completion_request_file.py +0 -49
  130. dify_oapi/api/completion/v1/model/completion_response.py +0 -18
  131. dify_oapi/api/completion/v1/model/stop_completion_request.py +0 -38
  132. dify_oapi/api/completion/v1/model/stop_completion_request_body.py +0 -23
  133. dify_oapi/api/workflow/v1/model/get_workflow_log_request.py +0 -50
  134. dify_oapi/api/workflow/v1/model/get_workflow_log_response.py +0 -42
  135. dify_oapi/api/workflow/v1/model/get_workflow_result_request.py +0 -30
  136. dify_oapi/api/workflow/v1/model/get_workflow_result_response.py +0 -17
  137. dify_oapi/api/workflow/v1/model/run_workflow_request_body.py +0 -42
  138. dify_oapi/api/workflow/v1/model/run_workflow_request_file.py +0 -50
  139. {dify_oapi2-0.1.1.dist-info → dify_oapi2-0.3.0.dist-info}/LICENSE +0 -0
  140. {dify_oapi2-0.1.1.dist-info → dify_oapi2-0.3.0.dist-info}/WHEEL +0 -0
@@ -0,0 +1,24 @@
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 GetParametersRequest(BaseRequest):
8
+ def __init__(self):
9
+ super().__init__()
10
+
11
+ @staticmethod
12
+ def builder() -> GetParametersRequestBuilder:
13
+ return GetParametersRequestBuilder()
14
+
15
+
16
+ class GetParametersRequestBuilder:
17
+ def __init__(self):
18
+ get_parameters_request = GetParametersRequest()
19
+ get_parameters_request.http_method = HttpMethod.GET
20
+ get_parameters_request.uri = "/v1/parameters"
21
+ self._get_parameters_request = get_parameters_request
22
+
23
+ def build(self) -> GetParametersRequest:
24
+ return self._get_parameters_request
@@ -0,0 +1,9 @@
1
+ from __future__ import annotations
2
+
3
+ from dify_oapi.core.model.base_response import BaseResponse
4
+
5
+ from .parameters_info import ParametersInfo
6
+
7
+
8
+ class GetParametersResponse(ParametersInfo, BaseResponse):
9
+ pass
@@ -0,0 +1,24 @@
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 GetSiteRequest(BaseRequest):
8
+ def __init__(self):
9
+ super().__init__()
10
+
11
+ @staticmethod
12
+ def builder() -> GetSiteRequestBuilder:
13
+ return GetSiteRequestBuilder()
14
+
15
+
16
+ class GetSiteRequestBuilder:
17
+ def __init__(self):
18
+ get_site_request = GetSiteRequest()
19
+ get_site_request.http_method = HttpMethod.GET
20
+ get_site_request.uri = "/v1/site"
21
+ self._get_site_request = get_site_request
22
+
23
+ def build(self) -> GetSiteRequest:
24
+ return self._get_site_request
@@ -0,0 +1,9 @@
1
+ from __future__ import annotations
2
+
3
+ from dify_oapi.core.model.base_response import BaseResponse
4
+
5
+ from .site_info import SiteInfo
6
+
7
+
8
+ class GetSiteResponse(SiteInfo, BaseResponse):
9
+ pass
@@ -0,0 +1,37 @@
1
+ from __future__ import annotations
2
+
3
+ from pydantic import BaseModel
4
+
5
+ from .file_upload_config import FileUploadConfig
6
+ from .system_parameters import SystemParameters
7
+ from .user_input_form import UserInputForm
8
+
9
+
10
+ class ParametersInfo(BaseModel):
11
+ user_input_form: list[UserInputForm] | None = None
12
+ file_upload: FileUploadConfig | None = None
13
+ system_parameters: SystemParameters | None = None
14
+
15
+ @staticmethod
16
+ def builder() -> ParametersInfoBuilder:
17
+ return ParametersInfoBuilder()
18
+
19
+
20
+ class ParametersInfoBuilder:
21
+ def __init__(self):
22
+ self._parameters_info = ParametersInfo()
23
+
24
+ def build(self) -> ParametersInfo:
25
+ return self._parameters_info
26
+
27
+ def user_input_form(self, user_input_form: list[UserInputForm]) -> ParametersInfoBuilder:
28
+ self._parameters_info.user_input_form = user_input_form
29
+ return self
30
+
31
+ def file_upload(self, file_upload: FileUploadConfig) -> ParametersInfoBuilder:
32
+ self._parameters_info.file_upload = file_upload
33
+ return self
34
+
35
+ def system_parameters(self, system_parameters: SystemParameters) -> ParametersInfoBuilder:
36
+ self._parameters_info.system_parameters = system_parameters
37
+ return self
@@ -0,0 +1,75 @@
1
+ from __future__ import annotations
2
+
3
+ from pydantic import BaseModel
4
+
5
+ from ..workflow.workflow_types import IconType
6
+
7
+
8
+ class SiteInfo(BaseModel):
9
+ title: str | None = None
10
+ icon_type: IconType | None = None
11
+ icon: str | None = None
12
+ icon_background: str | None = None
13
+ icon_url: str | None = None
14
+ description: str | None = None
15
+ copyright: str | None = None
16
+ privacy_policy: str | None = None
17
+ custom_disclaimer: str | None = None
18
+ default_language: str | None = None
19
+ show_workflow_steps: bool | None = None
20
+
21
+ @staticmethod
22
+ def builder() -> SiteInfoBuilder:
23
+ return SiteInfoBuilder()
24
+
25
+
26
+ class SiteInfoBuilder:
27
+ def __init__(self):
28
+ self._site_info = SiteInfo()
29
+
30
+ def build(self) -> SiteInfo:
31
+ return self._site_info
32
+
33
+ def title(self, title: str) -> SiteInfoBuilder:
34
+ self._site_info.title = title
35
+ return self
36
+
37
+ def icon_type(self, icon_type: IconType) -> SiteInfoBuilder:
38
+ self._site_info.icon_type = icon_type
39
+ return self
40
+
41
+ def icon(self, icon: str) -> SiteInfoBuilder:
42
+ self._site_info.icon = icon
43
+ return self
44
+
45
+ def icon_background(self, icon_background: str) -> SiteInfoBuilder:
46
+ self._site_info.icon_background = icon_background
47
+ return self
48
+
49
+ def icon_url(self, icon_url: str) -> SiteInfoBuilder:
50
+ self._site_info.icon_url = icon_url
51
+ return self
52
+
53
+ def description(self, description: str) -> SiteInfoBuilder:
54
+ self._site_info.description = description
55
+ return self
56
+
57
+ def copyright(self, copyright: str) -> SiteInfoBuilder:
58
+ self._site_info.copyright = copyright
59
+ return self
60
+
61
+ def privacy_policy(self, privacy_policy: str) -> SiteInfoBuilder:
62
+ self._site_info.privacy_policy = privacy_policy
63
+ return self
64
+
65
+ def custom_disclaimer(self, custom_disclaimer: str) -> SiteInfoBuilder:
66
+ self._site_info.custom_disclaimer = custom_disclaimer
67
+ return self
68
+
69
+ def default_language(self, default_language: str) -> SiteInfoBuilder:
70
+ self._site_info.default_language = default_language
71
+ return self
72
+
73
+ def show_workflow_steps(self, show_workflow_steps: bool) -> SiteInfoBuilder:
74
+ self._site_info.show_workflow_steps = show_workflow_steps
75
+ return self
@@ -0,0 +1,38 @@
1
+ from __future__ import annotations
2
+
3
+ from pydantic import BaseModel
4
+
5
+
6
+ class SystemParameters(BaseModel):
7
+ file_size_limit: int | None = None
8
+ image_file_size_limit: int | None = None
9
+ audio_file_size_limit: int | None = None
10
+ video_file_size_limit: int | None = None
11
+
12
+ @staticmethod
13
+ def builder() -> SystemParametersBuilder:
14
+ return SystemParametersBuilder()
15
+
16
+
17
+ class SystemParametersBuilder:
18
+ def __init__(self):
19
+ self._system_parameters = SystemParameters()
20
+
21
+ def build(self) -> SystemParameters:
22
+ return self._system_parameters
23
+
24
+ def file_size_limit(self, file_size_limit: int) -> SystemParametersBuilder:
25
+ self._system_parameters.file_size_limit = file_size_limit
26
+ return self
27
+
28
+ def image_file_size_limit(self, image_file_size_limit: int) -> SystemParametersBuilder:
29
+ self._system_parameters.image_file_size_limit = image_file_size_limit
30
+ return self
31
+
32
+ def audio_file_size_limit(self, audio_file_size_limit: int) -> SystemParametersBuilder:
33
+ self._system_parameters.audio_file_size_limit = audio_file_size_limit
34
+ return self
35
+
36
+ def video_file_size_limit(self, video_file_size_limit: int) -> SystemParametersBuilder:
37
+ self._system_parameters.video_file_size_limit = video_file_size_limit
38
+ return self
@@ -0,0 +1,43 @@
1
+ from __future__ import annotations
2
+
3
+ from pydantic import BaseModel
4
+
5
+
6
+ class UserInputForm(BaseModel):
7
+ label: str | None = None
8
+ variable: str | None = None
9
+ required: bool | None = None
10
+ default: str | None = None
11
+ options: list[str] | None = None
12
+
13
+ @staticmethod
14
+ def builder() -> UserInputFormBuilder:
15
+ return UserInputFormBuilder()
16
+
17
+
18
+ class UserInputFormBuilder:
19
+ def __init__(self):
20
+ self._user_input_form = UserInputForm()
21
+
22
+ def build(self) -> UserInputForm:
23
+ return self._user_input_form
24
+
25
+ def label(self, label: str) -> UserInputFormBuilder:
26
+ self._user_input_form.label = label
27
+ return self
28
+
29
+ def variable(self, variable: str) -> UserInputFormBuilder:
30
+ self._user_input_form.variable = variable
31
+ return self
32
+
33
+ def required(self, required: bool) -> UserInputFormBuilder:
34
+ self._user_input_form.required = required
35
+ return self
36
+
37
+ def default(self, default: str) -> UserInputFormBuilder:
38
+ self._user_input_form.default = default
39
+ return self
40
+
41
+ def options(self, options: list[str]) -> UserInputFormBuilder:
42
+ self._user_input_form.options = options
43
+ return self
File without changes
@@ -0,0 +1,38 @@
1
+ from __future__ import annotations
2
+
3
+ from pydantic import BaseModel
4
+
5
+
6
+ class EndUserInfo(BaseModel):
7
+ id: str | None = None
8
+ type: str | None = None
9
+ is_anonymous: bool | None = None
10
+ session_id: str | None = None
11
+
12
+ @staticmethod
13
+ def builder() -> EndUserInfoBuilder:
14
+ return EndUserInfoBuilder()
15
+
16
+
17
+ class EndUserInfoBuilder:
18
+ def __init__(self):
19
+ self._end_user_info = EndUserInfo()
20
+
21
+ def build(self) -> EndUserInfo:
22
+ return self._end_user_info
23
+
24
+ def id(self, id: str) -> EndUserInfoBuilder:
25
+ self._end_user_info.id = id
26
+ return self
27
+
28
+ def type(self, type: str) -> EndUserInfoBuilder:
29
+ self._end_user_info.type = type
30
+ return self
31
+
32
+ def is_anonymous(self, is_anonymous: bool) -> EndUserInfoBuilder:
33
+ self._end_user_info.is_anonymous = is_anonymous
34
+ return self
35
+
36
+ def session_id(self, session_id: str) -> EndUserInfoBuilder:
37
+ self._end_user_info.session_id = session_id
38
+ return self
@@ -0,0 +1,48 @@
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 GetWorkflowLogsRequest(BaseRequest):
8
+ def __init__(self):
9
+ super().__init__()
10
+
11
+ @staticmethod
12
+ def builder() -> GetWorkflowLogsRequestBuilder:
13
+ return GetWorkflowLogsRequestBuilder()
14
+
15
+
16
+ class GetWorkflowLogsRequestBuilder:
17
+ def __init__(self):
18
+ get_workflow_logs_request = GetWorkflowLogsRequest()
19
+ get_workflow_logs_request.http_method = HttpMethod.GET
20
+ get_workflow_logs_request.uri = "/v1/workflows/logs"
21
+ self._get_workflow_logs_request = get_workflow_logs_request
22
+
23
+ def build(self) -> GetWorkflowLogsRequest:
24
+ return self._get_workflow_logs_request
25
+
26
+ def keyword(self, keyword: str) -> GetWorkflowLogsRequestBuilder:
27
+ self._get_workflow_logs_request.add_query("keyword", keyword)
28
+ return self
29
+
30
+ def status(self, status: str) -> GetWorkflowLogsRequestBuilder:
31
+ self._get_workflow_logs_request.add_query("status", status)
32
+ return self
33
+
34
+ def page(self, page: int) -> GetWorkflowLogsRequestBuilder:
35
+ self._get_workflow_logs_request.add_query("page", str(page))
36
+ return self
37
+
38
+ def limit(self, limit: int) -> GetWorkflowLogsRequestBuilder:
39
+ self._get_workflow_logs_request.add_query("limit", str(limit))
40
+ return self
41
+
42
+ def created_by_end_user_session_id(self, session_id: str) -> GetWorkflowLogsRequestBuilder:
43
+ self._get_workflow_logs_request.add_query("created_by_end_user_session_id", session_id)
44
+ return self
45
+
46
+ def created_by_account(self, account: str) -> GetWorkflowLogsRequestBuilder:
47
+ self._get_workflow_logs_request.add_query("created_by_account", account)
48
+ return self
@@ -0,0 +1,13 @@
1
+ from __future__ import annotations
2
+
3
+ from dify_oapi.core.model.base_response import BaseResponse
4
+
5
+ from .log_info import LogInfo
6
+
7
+
8
+ class GetWorkflowLogsResponse(BaseResponse):
9
+ page: int | None = None
10
+ limit: int | None = None
11
+ total: int | None = None
12
+ has_more: bool | None = None
13
+ data: list[LogInfo] | None = None
@@ -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 pydantic import BaseModel
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: str | None = None
18
- outputs: dict | None = None
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