dify-oapi2 0.4.0__py3-none-any.whl → 1.0.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 (215) hide show
  1. dify_oapi/api/chat/v1/model/__init__.py +37 -0
  2. dify_oapi/api/chat/v1/model/agent_thought.py +69 -0
  3. dify_oapi/api/chat/v1/model/annotation_info.py +43 -0
  4. dify_oapi/api/{completion/v1/model/info → chat/v1/model}/app_info.py +6 -14
  5. dify_oapi/api/chat/v1/model/app_parameters.py +494 -0
  6. dify_oapi/api/chat/v1/model/chat_file.py +53 -0
  7. dify_oapi/api/chat/v1/model/chat_request_body.py +26 -13
  8. dify_oapi/api/chat/v1/model/chat_response.py +13 -2
  9. dify_oapi/api/chat/v1/model/chat_types.py +65 -0
  10. dify_oapi/api/chat/v1/model/configure_annotation_reply_request.py +37 -0
  11. dify_oapi/api/chat/v1/model/configure_annotation_reply_request_body.py +39 -0
  12. dify_oapi/api/chat/v1/model/configure_annotation_reply_response.py +10 -0
  13. dify_oapi/api/chat/v1/model/conversation_info.py +57 -0
  14. dify_oapi/api/chat/v1/model/conversation_variable.py +55 -0
  15. dify_oapi/api/chat/v1/model/create_annotation_request.py +30 -0
  16. dify_oapi/api/chat/v1/model/create_annotation_request_body.py +32 -0
  17. dify_oapi/api/chat/v1/model/create_annotation_response.py +9 -0
  18. dify_oapi/api/chat/v1/model/delete_annotation_request.py +26 -0
  19. dify_oapi/api/chat/v1/model/delete_annotation_response.py +7 -0
  20. dify_oapi/api/{completion/v1/model/feedback → chat/v1/model}/feedback_info.py +29 -7
  21. dify_oapi/api/{completion/v1/model/file → chat/v1/model}/file_info.py +6 -0
  22. dify_oapi/api/chat/v1/model/get_annotation_reply_status_request.py +32 -0
  23. dify_oapi/api/chat/v1/model/get_annotation_reply_status_response.py +11 -0
  24. dify_oapi/api/chat/v1/model/get_conversation_list_request.py +25 -24
  25. dify_oapi/api/chat/v1/model/get_conversation_list_response.py +4 -15
  26. dify_oapi/api/chat/v1/model/get_conversation_variables_request.py +54 -0
  27. dify_oapi/api/chat/v1/model/get_conversation_variables_response.py +10 -0
  28. dify_oapi/api/chat/v1/model/get_conversations_request.py +49 -0
  29. dify_oapi/api/chat/v1/model/get_suggested_questions_request.py +36 -0
  30. dify_oapi/api/chat/v1/model/{message_suggested_response.py → get_suggested_questions_response.py} +1 -1
  31. dify_oapi/api/chat/v1/model/list_annotations_request.py +32 -0
  32. dify_oapi/api/chat/v1/model/list_annotations_response.py +11 -0
  33. dify_oapi/api/chat/v1/model/message_file.py +46 -0
  34. dify_oapi/api/chat/v1/model/message_history_request.py +24 -24
  35. dify_oapi/api/chat/v1/model/message_history_response.py +4 -43
  36. dify_oapi/api/chat/v1/model/message_info.py +73 -0
  37. dify_oapi/api/chat/v1/model/pagination_info.py +44 -0
  38. dify_oapi/api/chat/v1/model/rename_conversation_request_body.py +1 -1
  39. dify_oapi/api/chat/v1/model/retriever_resource.py +64 -0
  40. dify_oapi/api/chat/v1/model/site_settings.py +92 -0
  41. dify_oapi/api/chat/v1/model/text_to_audio_response.py +7 -0
  42. dify_oapi/api/chat/v1/model/tool_icon.py +52 -0
  43. dify_oapi/api/chat/v1/model/update_annotation_request.py +34 -0
  44. dify_oapi/api/chat/v1/model/update_annotation_request_body.py +32 -0
  45. dify_oapi/api/chat/v1/model/update_annotation_response.py +9 -0
  46. dify_oapi/api/{completion/v1/model/file → chat/v1/model}/upload_file_request_body.py +9 -3
  47. dify_oapi/api/chat/v1/model/usage_info.py +84 -0
  48. dify_oapi/api/chat/v1/resource/__init__.py +1 -4
  49. dify_oapi/api/chat/v1/resource/annotation.py +87 -0
  50. dify_oapi/api/chat/v1/resource/chat.py +47 -25
  51. dify_oapi/api/chat/v1/resource/conversation.py +45 -33
  52. dify_oapi/api/chat/v1/resource/message.py +22 -20
  53. dify_oapi/api/chat/v1/version.py +18 -5
  54. dify_oapi/api/chatflow/__init__.py +0 -0
  55. dify_oapi/api/chatflow/service.py +8 -0
  56. dify_oapi/api/chatflow/v1/__init__.py +0 -0
  57. dify_oapi/api/chatflow/v1/model/__init__.py +0 -0
  58. dify_oapi/api/chatflow/v1/model/annotation_info.py +43 -0
  59. dify_oapi/api/chatflow/v1/model/annotation_reply_settings_request.py +37 -0
  60. dify_oapi/api/chatflow/v1/model/annotation_reply_settings_request_body.py +33 -0
  61. dify_oapi/api/chatflow/v1/model/annotation_reply_settings_response.py +10 -0
  62. dify_oapi/api/chatflow/v1/model/annotation_reply_status_request.py +36 -0
  63. dify_oapi/api/chatflow/v1/model/annotation_reply_status_response.py +11 -0
  64. dify_oapi/api/chatflow/v1/model/app_info.py +33 -0
  65. dify_oapi/api/chatflow/v1/model/app_parameters.py +276 -0
  66. dify_oapi/api/chatflow/v1/model/chat_file.py +40 -0
  67. dify_oapi/api/chatflow/v1/model/chat_message.py +88 -0
  68. dify_oapi/api/chatflow/v1/model/chatflow_types.py +210 -0
  69. dify_oapi/api/chatflow/v1/model/conversation_info.py +53 -0
  70. dify_oapi/api/chatflow/v1/model/conversation_variable.py +55 -0
  71. dify_oapi/api/chatflow/v1/model/create_annotation_request.py +30 -0
  72. dify_oapi/api/chatflow/v1/model/create_annotation_request_body.py +28 -0
  73. dify_oapi/api/chatflow/v1/model/create_annotation_response.py +9 -0
  74. dify_oapi/api/chatflow/v1/model/delete_annotation_request.py +28 -0
  75. dify_oapi/api/chatflow/v1/model/delete_annotation_response.py +7 -0
  76. dify_oapi/api/chatflow/v1/model/delete_conversation_request.py +36 -0
  77. dify_oapi/api/chatflow/v1/model/delete_conversation_request_body.py +21 -0
  78. dify_oapi/api/chatflow/v1/model/delete_conversation_response.py +17 -0
  79. dify_oapi/api/chatflow/v1/model/feedback_info.py +75 -0
  80. dify_oapi/api/chatflow/v1/model/file_info.py +53 -0
  81. dify_oapi/api/chatflow/v1/model/get_annotations_request.py +30 -0
  82. dify_oapi/api/chatflow/v1/model/get_annotations_response.py +13 -0
  83. dify_oapi/api/chatflow/v1/model/get_conversation_messages_request.py +38 -0
  84. dify_oapi/api/chatflow/v1/model/get_conversation_messages_response.py +33 -0
  85. dify_oapi/api/chatflow/v1/model/get_conversation_variables_request.py +44 -0
  86. dify_oapi/api/chatflow/v1/model/get_conversation_variables_response.py +33 -0
  87. dify_oapi/api/chatflow/v1/model/get_conversations_request.py +40 -0
  88. dify_oapi/api/chatflow/v1/model/get_conversations_response.py +33 -0
  89. dify_oapi/api/chatflow/v1/model/get_suggested_questions_request.py +32 -0
  90. dify_oapi/api/{completion/v1/model/feedback/message_feedback_response.py → chatflow/v1/model/get_suggested_questions_response.py} +2 -3
  91. dify_oapi/api/chatflow/v1/model/rename_conversation_request.py +36 -0
  92. dify_oapi/api/chatflow/v1/model/rename_conversation_request_body.py +31 -0
  93. dify_oapi/api/chatflow/v1/model/rename_conversation_response.py +53 -0
  94. dify_oapi/api/chatflow/v1/model/retriever_resource.py +58 -0
  95. dify_oapi/api/chatflow/v1/model/send_chat_message_request.py +30 -0
  96. dify_oapi/api/chatflow/v1/model/send_chat_message_request_body.py +54 -0
  97. dify_oapi/api/chatflow/v1/model/send_chat_message_response.py +7 -0
  98. dify_oapi/api/chatflow/v1/model/stop_chat_message_request.py +36 -0
  99. dify_oapi/api/chatflow/v1/model/stop_chat_message_request_body.py +21 -0
  100. dify_oapi/api/{dify/v1/model/message_feedback_response.py → chatflow/v1/model/stop_chat_message_response.py} +1 -1
  101. dify_oapi/api/chatflow/v1/model/tool_icon.py +48 -0
  102. dify_oapi/api/chatflow/v1/model/update_annotation_request.py +36 -0
  103. dify_oapi/api/chatflow/v1/model/update_annotation_request_body.py +28 -0
  104. dify_oapi/api/chatflow/v1/model/update_annotation_response.py +9 -0
  105. dify_oapi/api/chatflow/v1/model/usage_info.py +78 -0
  106. dify_oapi/api/chatflow/v1/model/user_input_form.py +141 -0
  107. dify_oapi/api/chatflow/v1/model/webapp_settings.py +88 -0
  108. dify_oapi/api/chatflow/v1/resource/__init__.py +0 -0
  109. dify_oapi/api/chatflow/v1/resource/annotation.py +87 -0
  110. dify_oapi/api/chatflow/v1/resource/chatflow.py +78 -0
  111. dify_oapi/api/chatflow/v1/resource/conversation.py +75 -0
  112. dify_oapi/api/chatflow/v1/version.py +22 -0
  113. dify_oapi/api/completion/v1/resource/__init__.py +0 -6
  114. dify_oapi/api/completion/v1/version.py +8 -6
  115. dify_oapi/api/{chat → dify}/v1/model/audio_to_text_request_body.py +2 -2
  116. dify_oapi/api/{completion/v1/model/feedback → dify/v1/model}/get_feedbacks_request.py +12 -12
  117. dify_oapi/api/dify/v1/model/get_feedbacks_response.py +26 -0
  118. dify_oapi/api/{workflow → dify}/v1/model/get_parameters_request.py +4 -0
  119. dify_oapi/api/dify/v1/model/{get_parameter_response.py → get_parameters_response.py} +6 -2
  120. dify_oapi/api/dify/v1/model/get_site_response.py +17 -0
  121. dify_oapi/api/dify/v1/model/submit_feedback_request.py +34 -0
  122. dify_oapi/api/dify/v1/model/submit_feedback_request_body.py +35 -0
  123. dify_oapi/api/dify/v1/model/submit_feedback_response.py +7 -0
  124. dify_oapi/api/dify/v1/resource/__init__.py +0 -6
  125. dify_oapi/api/dify/v1/resource/audio.py +12 -0
  126. dify_oapi/api/dify/v1/resource/feedback.py +31 -0
  127. dify_oapi/api/dify/v1/resource/info.py +34 -2
  128. dify_oapi/api/dify/v1/version.py +5 -4
  129. dify_oapi/api/knowledge/service.py +3 -3
  130. dify_oapi/api/knowledge/v1/model/create_document_by_file_request.py +1 -3
  131. dify_oapi/api/knowledge/v1/model/create_document_by_file_request_body.py +4 -46
  132. dify_oapi/api/knowledge/v1/model/create_document_by_file_request_body_data.py +73 -0
  133. dify_oapi/api/knowledge/v1/model/data_source_detail.py +23 -0
  134. dify_oapi/api/knowledge/v1/model/dataset_info.py +10 -9
  135. dify_oapi/api/knowledge/v1/model/dataset_metadata.py +14 -0
  136. dify_oapi/api/knowledge/v1/model/document_info.py +18 -6
  137. dify_oapi/api/knowledge/v1/model/external_knowledge_info.py +11 -1
  138. dify_oapi/api/knowledge/v1/model/external_retrieval_model.py +13 -0
  139. dify_oapi/api/knowledge/v1/model/knowledge_types.py +2 -2
  140. dify_oapi/api/knowledge/v1/model/process_rule.py +0 -6
  141. dify_oapi/api/knowledge/v1/model/retrieval_model.py +10 -4
  142. dify_oapi/api/knowledge/v1/model/update_document_by_file_request.py +1 -3
  143. dify_oapi/api/knowledge/v1/model/update_document_by_file_request_body.py +4 -41
  144. dify_oapi/api/knowledge/v1/model/update_document_by_file_request_body_data.py +68 -0
  145. dify_oapi/api/knowledge/v1/model/weights.py +27 -0
  146. dify_oapi/api/knowledge/v1/resource/__init__.py +0 -8
  147. dify_oapi/api/workflow/v1/model/chunk_workflow_event.py +74 -0
  148. dify_oapi/api/workflow/v1/model/input_file_object_workflow.py +76 -0
  149. dify_oapi/api/workflow/v1/model/node_finished_data.py +118 -0
  150. dify_oapi/api/workflow/v1/model/node_started_data.py +81 -0
  151. dify_oapi/api/workflow/v1/model/ping_data.py +28 -0
  152. dify_oapi/api/workflow/v1/model/run_workflow_request_body.py +1 -1
  153. dify_oapi/api/workflow/v1/model/text_chunk_data.py +39 -0
  154. dify_oapi/api/workflow/v1/model/tts_message_data.py +45 -0
  155. dify_oapi/api/workflow/v1/model/tts_message_end_data.py +45 -0
  156. dify_oapi/api/workflow/v1/model/workflow_completion_response.py +50 -0
  157. dify_oapi/api/workflow/v1/model/workflow_finished_data.py +93 -0
  158. dify_oapi/api/workflow/v1/model/workflow_started_data.py +51 -0
  159. dify_oapi/api/workflow/v1/model/workflow_types.py +27 -12
  160. dify_oapi/api/workflow/v1/resource/workflow.py +0 -34
  161. dify_oapi/api/workflow/v1/version.py +9 -0
  162. dify_oapi/client.py +49 -4
  163. dify_oapi/core/http/transport/__init__.py +2 -1
  164. dify_oapi/core/http/transport/async_transport.py +73 -50
  165. dify_oapi/core/http/transport/connection_pool.py +131 -0
  166. dify_oapi/core/http/transport/sync_transport.py +73 -50
  167. dify_oapi/core/model/config.py +10 -0
  168. dify_oapi2-1.0.0.dist-info/METADATA +365 -0
  169. {dify_oapi2-0.4.0.dist-info → dify_oapi2-1.0.0.dist-info}/RECORD +174 -98
  170. dify_oapi/api/chat/v1/model/chat_request_file.py +0 -46
  171. dify_oapi/api/chat/v1/model/message_suggested_request.py +0 -36
  172. dify_oapi/api/chat/v1/resource/audio.py +0 -17
  173. dify_oapi/api/completion/v1/model/audio/audio_info.py +0 -28
  174. dify_oapi/api/completion/v1/model/audio/text_to_audio_request.py +0 -32
  175. dify_oapi/api/completion/v1/model/audio/text_to_audio_request_body.py +0 -33
  176. dify_oapi/api/completion/v1/model/audio/text_to_audio_response.py +0 -9
  177. dify_oapi/api/completion/v1/model/feedback/get_feedbacks_response.py +0 -9
  178. dify_oapi/api/completion/v1/model/feedback/message_feedback_request.py +0 -38
  179. dify_oapi/api/completion/v1/model/feedback/message_feedback_request_body.py +0 -35
  180. dify_oapi/api/completion/v1/model/file/upload_file_request.py +0 -42
  181. dify_oapi/api/completion/v1/model/file/upload_file_response.py +0 -9
  182. dify_oapi/api/completion/v1/model/info/feature_config.py +0 -91
  183. dify_oapi/api/completion/v1/model/info/file_upload_config.py +0 -23
  184. dify_oapi/api/completion/v1/model/info/get_info_request.py +0 -24
  185. dify_oapi/api/completion/v1/model/info/get_info_response.py +0 -9
  186. dify_oapi/api/completion/v1/model/info/get_parameters_request.py +0 -24
  187. dify_oapi/api/completion/v1/model/info/get_parameters_response.py +0 -9
  188. dify_oapi/api/completion/v1/model/info/get_site_response.py +0 -9
  189. dify_oapi/api/completion/v1/model/info/parameters_info.py +0 -75
  190. dify_oapi/api/completion/v1/model/info/site_info.py +0 -90
  191. dify_oapi/api/completion/v1/model/info/system_parameters.py +0 -38
  192. dify_oapi/api/completion/v1/model/info/user_input_form.py +0 -158
  193. dify_oapi/api/completion/v1/resource/audio.py +0 -19
  194. dify_oapi/api/completion/v1/resource/feedback.py +0 -33
  195. dify_oapi/api/completion/v1/resource/file.py +0 -19
  196. dify_oapi/api/completion/v1/resource/info.py +0 -39
  197. dify_oapi/api/dify/v1/model/get_parameter_request.py +0 -30
  198. dify_oapi/api/dify/v1/model/message_feedback_request.py +0 -38
  199. dify_oapi/api/dify/v1/model/message_feedback_request_body.py +0 -30
  200. dify_oapi/api/dify/v1/resource/message.py +0 -21
  201. dify_oapi/api/dify/v1/resource/meta.py +0 -17
  202. dify_oapi/api/dify/v1/resource/parameter.py +0 -19
  203. dify_oapi/api/workflow/v1/model/get_info_request.py +0 -24
  204. dify_oapi/api/workflow/v1/model/get_info_response.py +0 -9
  205. dify_oapi/api/workflow/v1/model/get_parameters_response.py +0 -9
  206. dify_oapi/api/workflow/v1/model/get_site_request.py +0 -24
  207. dify_oapi/api/workflow/v1/model/get_site_response.py +0 -9
  208. dify_oapi/api/workflow/v1/model/upload_file_request.py +0 -42
  209. dify_oapi/api/workflow/v1/model/upload_file_response.py +0 -9
  210. dify_oapi2-0.4.0.dist-info/METADATA +0 -303
  211. /dify_oapi/api/{chat → dify}/v1/model/audio_to_text_request.py +0 -0
  212. /dify_oapi/api/{chat → dify}/v1/model/audio_to_text_response.py +0 -0
  213. /dify_oapi/api/{completion/v1/model/info → dify/v1/model}/get_site_request.py +0 -0
  214. {dify_oapi2-0.4.0.dist-info → dify_oapi2-1.0.0.dist-info}/LICENSE +0 -0
  215. {dify_oapi2-0.4.0.dist-info → dify_oapi2-1.0.0.dist-info}/WHEEL +0 -0
@@ -0,0 +1,34 @@
1
+ from dify_oapi.core.enum import HttpMethod
2
+ from dify_oapi.core.model.base_request import BaseRequest
3
+
4
+ from .submit_feedback_request_body import SubmitFeedbackRequestBody
5
+
6
+
7
+ class SubmitFeedbackRequest(BaseRequest):
8
+ def __init__(self) -> None:
9
+ super().__init__()
10
+ self.request_body: SubmitFeedbackRequestBody | None = None
11
+
12
+ @staticmethod
13
+ def builder() -> "SubmitFeedbackRequestBuilder":
14
+ return SubmitFeedbackRequestBuilder()
15
+
16
+
17
+ class SubmitFeedbackRequestBuilder:
18
+ def __init__(self) -> None:
19
+ submit_feedback_request = SubmitFeedbackRequest()
20
+ submit_feedback_request.http_method = HttpMethod.POST
21
+ submit_feedback_request.uri = "/v1/messages/:message_id/feedbacks"
22
+ self._submit_feedback_request = submit_feedback_request
23
+
24
+ def message_id(self, message_id: str) -> "SubmitFeedbackRequestBuilder":
25
+ self._submit_feedback_request.paths["message_id"] = message_id
26
+ return self
27
+
28
+ def request_body(self, request_body: SubmitFeedbackRequestBody) -> "SubmitFeedbackRequestBuilder":
29
+ self._submit_feedback_request.request_body = request_body
30
+ self._submit_feedback_request.body = request_body.model_dump(exclude_none=True, mode="json")
31
+ return self
32
+
33
+ def build(self) -> SubmitFeedbackRequest:
34
+ return self._submit_feedback_request
@@ -0,0 +1,35 @@
1
+ from typing import Literal
2
+
3
+ from pydantic import BaseModel
4
+
5
+ Rating = Literal["like", "dislike"]
6
+
7
+
8
+ class SubmitFeedbackRequestBody(BaseModel):
9
+ rating: Rating | None = None
10
+ user: str
11
+ content: str | None = None
12
+
13
+ @staticmethod
14
+ def builder() -> "SubmitFeedbackRequestBodyBuilder":
15
+ return SubmitFeedbackRequestBodyBuilder()
16
+
17
+
18
+ class SubmitFeedbackRequestBodyBuilder:
19
+ def __init__(self) -> None:
20
+ self._submit_feedback_request_body = SubmitFeedbackRequestBody(user="")
21
+
22
+ def rating(self, rating: Rating | None) -> "SubmitFeedbackRequestBodyBuilder":
23
+ self._submit_feedback_request_body.rating = rating
24
+ return self
25
+
26
+ def user(self, user: str) -> "SubmitFeedbackRequestBodyBuilder":
27
+ self._submit_feedback_request_body.user = user
28
+ return self
29
+
30
+ def content(self, content: str | None) -> "SubmitFeedbackRequestBodyBuilder":
31
+ self._submit_feedback_request_body.content = content
32
+ return self
33
+
34
+ def build(self) -> SubmitFeedbackRequestBody:
35
+ return self._submit_feedback_request_body
@@ -0,0 +1,7 @@
1
+ from dify_oapi.core.model.base_response import BaseResponse
2
+
3
+
4
+ class SubmitFeedbackResponse(BaseResponse):
5
+ """Response for submit feedback API."""
6
+
7
+ result: str | None = None
@@ -1,6 +0,0 @@
1
- from .meta import * # noqa 403
2
- from .file import * # noqa 403
3
- from .audio import * # noqa 403
4
- from .parameter import * # noqa 403
5
- from .message import * # noqa 403
6
- from .info import * # noqa 403
@@ -2,6 +2,8 @@ from dify_oapi.core.http.transport import ATransport, Transport
2
2
  from dify_oapi.core.model.config import Config
3
3
  from dify_oapi.core.model.request_option import RequestOption
4
4
 
5
+ from ..model.audio_to_text_request import AudioToTextRequest
6
+ from ..model.audio_to_text_response import AudioToTextResponse
5
7
  from ..model.text_to_audio_request import TextToAudioRequest
6
8
  from ..model.text_to_audio_response import TextToAudioResponse
7
9
 
@@ -10,8 +12,18 @@ class Audio:
10
12
  def __init__(self, config: Config) -> None:
11
13
  self.config: Config = config
12
14
 
15
+ def to_text(self, request: AudioToTextRequest, option: RequestOption | None = None) -> AudioToTextResponse:
16
+ """Convert audio to text (speech-to-text)"""
17
+ return Transport.execute(self.config, request, unmarshal_as=AudioToTextResponse, option=option)
18
+
19
+ async def ato_text(self, request: AudioToTextRequest, option: RequestOption | None = None) -> AudioToTextResponse:
20
+ """Convert audio to text (speech-to-text) - async version"""
21
+ return await ATransport.aexecute(self.config, request, unmarshal_as=AudioToTextResponse, option=option)
22
+
13
23
  def from_text(self, request: TextToAudioRequest, option: RequestOption | None = None) -> TextToAudioResponse:
24
+ """Convert text to audio (text-to-speech)"""
14
25
  return Transport.execute(self.config, request, unmarshal_as=TextToAudioResponse, option=option)
15
26
 
16
27
  async def afrom_text(self, request: TextToAudioRequest, option: RequestOption | None = None) -> TextToAudioResponse:
28
+ """Convert text to audio (text-to-speech) - async version"""
17
29
  return await ATransport.aexecute(self.config, request, unmarshal_as=TextToAudioResponse, option=option)
@@ -0,0 +1,31 @@
1
+ from dify_oapi.core.http.transport import ATransport, Transport
2
+ from dify_oapi.core.model.config import Config
3
+ from dify_oapi.core.model.request_option import RequestOption
4
+
5
+ from ..model.get_feedbacks_request import GetFeedbacksRequest
6
+ from ..model.get_feedbacks_response import GetFeedbacksResponse
7
+ from ..model.submit_feedback_request import SubmitFeedbackRequest
8
+ from ..model.submit_feedback_response import SubmitFeedbackResponse
9
+
10
+
11
+ class Feedback:
12
+ def __init__(self, config: Config) -> None:
13
+ self.config: Config = config
14
+
15
+ def submit(self, request: SubmitFeedbackRequest, option: RequestOption | None = None) -> SubmitFeedbackResponse:
16
+ """Submit feedback for a message"""
17
+ return Transport.execute(self.config, request, unmarshal_as=SubmitFeedbackResponse, option=option)
18
+
19
+ async def asubmit(
20
+ self, request: SubmitFeedbackRequest, option: RequestOption | None = None
21
+ ) -> SubmitFeedbackResponse:
22
+ """Submit feedback for a message - async version"""
23
+ return await ATransport.aexecute(self.config, request, unmarshal_as=SubmitFeedbackResponse, option=option)
24
+
25
+ def list(self, request: GetFeedbacksRequest, option: RequestOption | None = None) -> GetFeedbacksResponse:
26
+ """Get list of feedbacks"""
27
+ return Transport.execute(self.config, request, unmarshal_as=GetFeedbacksResponse, option=option)
28
+
29
+ async def alist(self, request: GetFeedbacksRequest, option: RequestOption | None = None) -> GetFeedbacksResponse:
30
+ """Get list of feedbacks - async version"""
31
+ return await ATransport.aexecute(self.config, request, unmarshal_as=GetFeedbacksResponse, option=option)
@@ -4,6 +4,12 @@ from dify_oapi.core.model.request_option import RequestOption
4
4
 
5
5
  from ..model.get_info_request import GetInfoRequest
6
6
  from ..model.get_info_response import GetInfoResponse
7
+ from ..model.get_meta_request import GetMetaRequest
8
+ from ..model.get_meta_response import GetMetaResponse
9
+ from ..model.get_parameters_request import GetParametersRequest
10
+ from ..model.get_parameters_response import GetParametersResponse
11
+ from ..model.get_site_request import GetSiteRequest
12
+ from ..model.get_site_response import GetSiteResponse
7
13
 
8
14
 
9
15
  class Info:
@@ -11,9 +17,35 @@ class Info:
11
17
  self.config: Config = config
12
18
 
13
19
  def get(self, request: GetInfoRequest, option: RequestOption | None = None) -> GetInfoResponse:
14
- # Send request
20
+ """Get application information"""
15
21
  return Transport.execute(self.config, request, unmarshal_as=GetInfoResponse, option=option)
16
22
 
17
23
  async def aget(self, request: GetInfoRequest, option: RequestOption | None = None) -> GetInfoResponse:
18
- # Send request
24
+ """Get application information - async version"""
19
25
  return await ATransport.aexecute(self.config, request, unmarshal_as=GetInfoResponse, option=option)
26
+
27
+ def parameters(self, request: GetParametersRequest, option: RequestOption | None = None) -> GetParametersResponse:
28
+ """Get application parameters"""
29
+ return Transport.execute(self.config, request, unmarshal_as=GetParametersResponse, option=option)
30
+
31
+ async def aparameters(
32
+ self, request: GetParametersRequest, option: RequestOption | None = None
33
+ ) -> GetParametersResponse:
34
+ """Get application parameters - async version"""
35
+ return await ATransport.aexecute(self.config, request, unmarshal_as=GetParametersResponse, option=option)
36
+
37
+ def meta(self, request: GetMetaRequest, option: RequestOption | None = None) -> GetMetaResponse:
38
+ """Get application metadata"""
39
+ return Transport.execute(self.config, request, unmarshal_as=GetMetaResponse, option=option)
40
+
41
+ async def ameta(self, request: GetMetaRequest, option: RequestOption | None = None) -> GetMetaResponse:
42
+ """Get application metadata - async version"""
43
+ return await ATransport.aexecute(self.config, request, unmarshal_as=GetMetaResponse, option=option)
44
+
45
+ def site(self, request: GetSiteRequest, option: RequestOption | None = None) -> GetSiteResponse:
46
+ """Get site settings"""
47
+ return Transport.execute(self.config, request, unmarshal_as=GetSiteResponse, option=option)
48
+
49
+ async def asite(self, request: GetSiteRequest, option: RequestOption | None = None) -> GetSiteResponse:
50
+ """Get site settings - async version"""
51
+ return await ATransport.aexecute(self.config, request, unmarshal_as=GetSiteResponse, option=option)
@@ -1,13 +1,14 @@
1
1
  from dify_oapi.core.model.config import Config
2
2
 
3
- from .resource import Audio, File, Info, Message, Meta, Parameter
3
+ from .resource.audio import Audio
4
+ from .resource.feedback import Feedback
5
+ from .resource.file import File
6
+ from .resource.info import Info
4
7
 
5
8
 
6
9
  class V1:
7
10
  def __init__(self, config: Config):
8
- self.meta: Meta = Meta(config)
9
11
  self.file: File = File(config)
10
12
  self.audio: Audio = Audio(config)
11
- self.parameter: Parameter = Parameter(config)
12
- self.message: Message = Message(config)
13
13
  self.info: Info = Info(config)
14
+ self.feedback: Feedback = Feedback(config)
@@ -3,6 +3,6 @@ from dify_oapi.core.model.config import Config
3
3
  from .v1.version import V1
4
4
 
5
5
 
6
- class Knowledge:
7
- def __init__(self, config: Config):
8
- self.v1 = V1(config)
6
+ class KnowledgeService:
7
+ def __init__(self, config: Config) -> None:
8
+ self.v1: V1 = V1(config)
@@ -2,7 +2,6 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
- import json
6
5
  from io import BytesIO
7
6
 
8
7
  from dify_oapi.core.enum import HttpMethod
@@ -44,8 +43,7 @@ class CreateDocumentByFileRequestBuilder:
44
43
 
45
44
  def request_body(self, request_body: CreateDocumentByFileRequestBody) -> CreateDocumentByFileRequestBuilder:
46
45
  self._create_document_by_file_request.request_body = request_body
47
- data_dict = request_body.model_dump(exclude_none=True, mode="json")
48
- self._create_document_by_file_request.body = {"data": json.dumps(data_dict)}
46
+ self._create_document_by_file_request.body = request_body.model_dump(exclude_none=True, mode="json")
49
47
  return self
50
48
 
51
49
  def file(self, file: BytesIO, file_name: str | None = None) -> CreateDocumentByFileRequestBuilder:
@@ -4,23 +4,13 @@ from __future__ import annotations
4
4
 
5
5
  from pydantic import BaseModel
6
6
 
7
- from .knowledge_types import DocumentForm, IndexingTechnique
8
- from .process_rule import ProcessRule
9
- from .retrieval_model import RetrievalModel
7
+ from .create_document_by_file_request_body_data import CreateDocumentByFileRequestBodyData
10
8
 
11
9
 
12
10
  class CreateDocumentByFileRequestBody(BaseModel):
13
11
  """Request body model for create document by file API."""
14
12
 
15
- name: str | None = None
16
- original_document_id: str | None = None # UUID for re-upload/modify
17
- indexing_technique: IndexingTechnique | None = None
18
- doc_form: DocumentForm | None = None
19
- doc_language: str | None = None
20
- process_rule: ProcessRule | None = None
21
- retrieval_model: RetrievalModel | None = None
22
- embedding_model: str | None = None
23
- embedding_model_provider: str | None = None
13
+ data: str | None = None
24
14
 
25
15
  @staticmethod
26
16
  def builder() -> CreateDocumentByFileRequestBodyBuilder:
@@ -36,38 +26,6 @@ class CreateDocumentByFileRequestBodyBuilder:
36
26
  def build(self) -> CreateDocumentByFileRequestBody:
37
27
  return self._create_document_by_file_request_body
38
28
 
39
- def name(self, name: str) -> CreateDocumentByFileRequestBodyBuilder:
40
- self._create_document_by_file_request_body.name = name
41
- return self
42
-
43
- def indexing_technique(self, indexing_technique: IndexingTechnique) -> CreateDocumentByFileRequestBodyBuilder:
44
- self._create_document_by_file_request_body.indexing_technique = indexing_technique
45
- return self
46
-
47
- def process_rule(self, process_rule: ProcessRule) -> CreateDocumentByFileRequestBodyBuilder:
48
- self._create_document_by_file_request_body.process_rule = process_rule
49
- return self
50
-
51
- def original_document_id(self, original_document_id: str) -> CreateDocumentByFileRequestBodyBuilder:
52
- self._create_document_by_file_request_body.original_document_id = original_document_id
53
- return self
54
-
55
- def doc_form(self, doc_form: DocumentForm) -> CreateDocumentByFileRequestBodyBuilder:
56
- self._create_document_by_file_request_body.doc_form = doc_form
57
- return self
58
-
59
- def doc_language(self, doc_language: str) -> CreateDocumentByFileRequestBodyBuilder:
60
- self._create_document_by_file_request_body.doc_language = doc_language
61
- return self
62
-
63
- def retrieval_model(self, retrieval_model: RetrievalModel) -> CreateDocumentByFileRequestBodyBuilder:
64
- self._create_document_by_file_request_body.retrieval_model = retrieval_model
65
- return self
66
-
67
- def embedding_model(self, embedding_model: str) -> CreateDocumentByFileRequestBodyBuilder:
68
- self._create_document_by_file_request_body.embedding_model = embedding_model
69
- return self
70
-
71
- def embedding_model_provider(self, embedding_model_provider: str) -> CreateDocumentByFileRequestBodyBuilder:
72
- self._create_document_by_file_request_body.embedding_model_provider = embedding_model_provider
29
+ def data(self, data: CreateDocumentByFileRequestBodyData) -> CreateDocumentByFileRequestBodyBuilder:
30
+ self._create_document_by_file_request_body.data = data.model_dump_json(exclude_none=True)
73
31
  return self
@@ -0,0 +1,73 @@
1
+ """Create document by file request body model."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from pydantic import BaseModel
6
+
7
+ from .knowledge_types import DocumentForm, IndexingTechnique
8
+ from .process_rule import ProcessRule
9
+ from .retrieval_model import RetrievalModel
10
+
11
+
12
+ class CreateDocumentByFileRequestBodyData(BaseModel):
13
+ """Request body model for create document by file API."""
14
+
15
+ name: str | None = None
16
+ original_document_id: str | None = None # UUID for re-upload/modify
17
+ indexing_technique: IndexingTechnique | None = None
18
+ doc_form: DocumentForm | None = None
19
+ doc_language: str | None = None
20
+ process_rule: ProcessRule | None = None
21
+ retrieval_model: RetrievalModel | None = None
22
+ embedding_model: str | None = None
23
+ embedding_model_provider: str | None = None
24
+
25
+ @staticmethod
26
+ def builder() -> CreateDocumentByFileRequestBodyDataBuilder:
27
+ return CreateDocumentByFileRequestBodyDataBuilder()
28
+
29
+
30
+ class CreateDocumentByFileRequestBodyDataBuilder:
31
+ """Builder for CreateDocumentByFileRequestBodyData."""
32
+
33
+ def __init__(self) -> None:
34
+ self._create_document_by_file_request_body = CreateDocumentByFileRequestBodyData()
35
+
36
+ def build(self) -> CreateDocumentByFileRequestBodyData:
37
+ return self._create_document_by_file_request_body
38
+
39
+ def name(self, name: str) -> CreateDocumentByFileRequestBodyDataBuilder:
40
+ self._create_document_by_file_request_body.name = name
41
+ return self
42
+
43
+ def indexing_technique(self, indexing_technique: IndexingTechnique) -> CreateDocumentByFileRequestBodyDataBuilder:
44
+ self._create_document_by_file_request_body.indexing_technique = indexing_technique
45
+ return self
46
+
47
+ def process_rule(self, process_rule: ProcessRule) -> CreateDocumentByFileRequestBodyDataBuilder:
48
+ self._create_document_by_file_request_body.process_rule = process_rule
49
+ return self
50
+
51
+ def original_document_id(self, original_document_id: str) -> CreateDocumentByFileRequestBodyDataBuilder:
52
+ self._create_document_by_file_request_body.original_document_id = original_document_id
53
+ return self
54
+
55
+ def doc_form(self, doc_form: DocumentForm) -> CreateDocumentByFileRequestBodyDataBuilder:
56
+ self._create_document_by_file_request_body.doc_form = doc_form
57
+ return self
58
+
59
+ def doc_language(self, doc_language: str) -> CreateDocumentByFileRequestBodyDataBuilder:
60
+ self._create_document_by_file_request_body.doc_language = doc_language
61
+ return self
62
+
63
+ def retrieval_model(self, retrieval_model: RetrievalModel) -> CreateDocumentByFileRequestBodyDataBuilder:
64
+ self._create_document_by_file_request_body.retrieval_model = retrieval_model
65
+ return self
66
+
67
+ def embedding_model(self, embedding_model: str) -> CreateDocumentByFileRequestBodyDataBuilder:
68
+ self._create_document_by_file_request_body.embedding_model = embedding_model
69
+ return self
70
+
71
+ def embedding_model_provider(self, embedding_model_provider: str) -> CreateDocumentByFileRequestBodyDataBuilder:
72
+ self._create_document_by_file_request_body.embedding_model_provider = embedding_model_provider
73
+ return self
@@ -0,0 +1,23 @@
1
+ """Data source detail models."""
2
+
3
+ from typing import Optional
4
+
5
+ from pydantic import BaseModel
6
+
7
+
8
+ class UploadFileDetail(BaseModel):
9
+ """Upload file detail information."""
10
+
11
+ id: Optional[str] = None
12
+ name: Optional[str] = None
13
+ size: Optional[int] = None
14
+ extension: Optional[str] = None
15
+ mime_type: Optional[str] = None
16
+ created_by: Optional[str] = None
17
+ created_at: Optional[float] = None
18
+
19
+
20
+ class DataSourceDetailDict(BaseModel):
21
+ """Data source detail dictionary."""
22
+
23
+ upload_file: Optional[UploadFileDetail] = None
@@ -4,9 +4,10 @@ from typing import Optional
4
4
 
5
5
  from pydantic import BaseModel
6
6
 
7
- from .document_metadata import DocumentMetadata
7
+ from .dataset_metadata import DatasetMetadata
8
8
  from .external_knowledge_info import ExternalKnowledgeInfo
9
- from .knowledge_types import DataSourceType, IndexingTechnique, Permission
9
+ from .external_retrieval_model import ExternalRetrievalModel
10
+ from .knowledge_types import DataSourceType, DocumentForm, IndexingTechnique, Permission
10
11
  from .retrieval_model import RetrievalModel
11
12
  from .tag_info import TagInfo
12
13
 
@@ -25,18 +26,18 @@ class DatasetInfo(BaseModel):
25
26
  document_count: Optional[int] = None
26
27
  word_count: Optional[int] = None
27
28
  created_by: Optional[str] = None
28
- created_at: Optional[float] = None
29
+ created_at: Optional[int] = None
29
30
  updated_by: Optional[str] = None
30
- updated_at: Optional[float] = None
31
+ updated_at: Optional[int] = None
31
32
  embedding_model: Optional[str] = None
32
33
  embedding_model_provider: Optional[str] = None
33
34
  embedding_available: Optional[bool] = None
34
35
  retrieval_model_dict: Optional[RetrievalModel] = None
35
36
  tags: Optional[list[TagInfo]] = None
36
- doc_form: Optional[str] = None
37
+ doc_form: Optional[DocumentForm] = None
37
38
  external_knowledge_info: Optional[ExternalKnowledgeInfo] = None
38
- external_retrieval_model: Optional[RetrievalModel] = None
39
- doc_metadata: Optional[list[DocumentMetadata]] = None
39
+ external_retrieval_model: Optional[ExternalRetrievalModel] = None
40
+ doc_metadata: Optional[list[DatasetMetadata]] = None
40
41
  built_in_field_enabled: Optional[bool] = None
41
42
 
42
43
  @staticmethod
@@ -89,7 +90,7 @@ class DatasetInfoBuilder:
89
90
  self._dataset_info.created_by = created_by
90
91
  return self
91
92
 
92
- def created_at(self, created_at: float) -> "DatasetInfoBuilder":
93
+ def created_at(self, created_at: int) -> "DatasetInfoBuilder":
93
94
  self._dataset_info.created_at = created_at
94
95
  return self
95
96
 
@@ -97,7 +98,7 @@ class DatasetInfoBuilder:
97
98
  self._dataset_info.updated_by = updated_by
98
99
  return self
99
100
 
100
- def updated_at(self, updated_at: float) -> "DatasetInfoBuilder":
101
+ def updated_at(self, updated_at: int) -> "DatasetInfoBuilder":
101
102
  self._dataset_info.updated_at = updated_at
102
103
  return self
103
104
 
@@ -0,0 +1,14 @@
1
+ """Dataset metadata model."""
2
+
3
+ from typing import Optional
4
+
5
+ from pydantic import BaseModel
6
+
7
+
8
+ class DatasetMetadata(BaseModel):
9
+ """Dataset metadata information."""
10
+
11
+ # Based on API response, this is typically an empty array
12
+ # Can be extended when actual metadata structure is known
13
+ key: Optional[str] = None
14
+ value: Optional[str] = None
@@ -4,7 +4,9 @@ from typing import Optional
4
4
 
5
5
  from pydantic import BaseModel
6
6
 
7
+ from .data_source_detail import DataSourceDetailDict
7
8
  from .data_source_info import DataSourceInfo
9
+ from .document_metadata import DocumentMetadata
8
10
  from .knowledge_types import DataSourceType, DocumentDisplayStatus, DocumentForm, IndexingStatus
9
11
 
10
12
 
@@ -15,23 +17,25 @@ class DocumentInfo(BaseModel):
15
17
  position: Optional[int] = None
16
18
  data_source_type: Optional[DataSourceType] = None
17
19
  data_source_info: Optional["DataSourceInfo"] = None
20
+ data_source_detail_dict: Optional[DataSourceDetailDict] = None
18
21
  dataset_process_rule_id: Optional[str] = None
19
22
  name: Optional[str] = None
20
23
  created_from: Optional[str] = None
21
24
  created_by: Optional[str] = None
22
- created_at: Optional[float] = None
25
+ created_at: Optional[int] = None
23
26
  tokens: Optional[int] = None
24
27
  indexing_status: Optional[IndexingStatus] = None
25
28
  error: Optional[str] = None
26
29
  enabled: Optional[bool] = None
27
- disabled_at: Optional[float] = None
30
+ disabled_at: Optional[int] = None
28
31
  disabled_by: Optional[str] = None
29
32
  archived: Optional[bool] = None
30
33
  display_status: Optional[DocumentDisplayStatus] = None
31
34
  word_count: Optional[int] = None
32
35
  hit_count: Optional[int] = None
33
36
  doc_form: Optional[DocumentForm] = None
34
- updated_at: Optional[float] = None
37
+ doc_metadata: Optional[DocumentMetadata] = None
38
+ updated_at: Optional[int] = None
35
39
 
36
40
  @staticmethod
37
41
  def builder() -> "DocumentInfoBuilder":
@@ -63,6 +67,10 @@ class DocumentInfoBuilder:
63
67
  self._document_info.data_source_info = data_source_info
64
68
  return self
65
69
 
70
+ def data_source_detail_dict(self, data_source_detail_dict: DataSourceDetailDict) -> "DocumentInfoBuilder":
71
+ self._document_info.data_source_detail_dict = data_source_detail_dict
72
+ return self
73
+
66
74
  def dataset_process_rule_id(self, dataset_process_rule_id: str) -> "DocumentInfoBuilder":
67
75
  self._document_info.dataset_process_rule_id = dataset_process_rule_id
68
76
  return self
@@ -79,7 +87,7 @@ class DocumentInfoBuilder:
79
87
  self._document_info.created_by = created_by
80
88
  return self
81
89
 
82
- def created_at(self, created_at: float) -> "DocumentInfoBuilder":
90
+ def created_at(self, created_at: int) -> "DocumentInfoBuilder":
83
91
  self._document_info.created_at = created_at
84
92
  return self
85
93
 
@@ -99,7 +107,7 @@ class DocumentInfoBuilder:
99
107
  self._document_info.enabled = enabled
100
108
  return self
101
109
 
102
- def disabled_at(self, disabled_at: float) -> "DocumentInfoBuilder":
110
+ def disabled_at(self, disabled_at: int) -> "DocumentInfoBuilder":
103
111
  self._document_info.disabled_at = disabled_at
104
112
  return self
105
113
 
@@ -127,6 +135,10 @@ class DocumentInfoBuilder:
127
135
  self._document_info.doc_form = doc_form
128
136
  return self
129
137
 
130
- def updated_at(self, updated_at: float) -> "DocumentInfoBuilder":
138
+ def doc_metadata(self, doc_metadata: DocumentMetadata) -> "DocumentInfoBuilder":
139
+ self._document_info.doc_metadata = doc_metadata
140
+ return self
141
+
142
+ def updated_at(self, updated_at: int) -> "DocumentInfoBuilder":
131
143
  self._document_info.updated_at = updated_at
132
144
  return self
@@ -8,8 +8,10 @@ from pydantic import BaseModel
8
8
  class ExternalKnowledgeInfo(BaseModel):
9
9
  """External knowledge info model with builder pattern."""
10
10
 
11
- external_knowledge_api_id: Optional[str] = None
12
11
  external_knowledge_id: Optional[str] = None
12
+ external_knowledge_api_id: Optional[str] = None
13
+ external_knowledge_api_name: Optional[str] = None
14
+ external_knowledge_api_endpoint: Optional[str] = None
13
15
 
14
16
  @staticmethod
15
17
  def builder() -> "ExternalKnowledgeInfoBuilder":
@@ -32,3 +34,11 @@ class ExternalKnowledgeInfoBuilder:
32
34
  def external_knowledge_id(self, external_knowledge_id: str) -> "ExternalKnowledgeInfoBuilder":
33
35
  self._external_knowledge_info.external_knowledge_id = external_knowledge_id
34
36
  return self
37
+
38
+ def external_knowledge_api_name(self, external_knowledge_api_name: str) -> "ExternalKnowledgeInfoBuilder":
39
+ self._external_knowledge_info.external_knowledge_api_name = external_knowledge_api_name
40
+ return self
41
+
42
+ def external_knowledge_api_endpoint(self, external_knowledge_api_endpoint: str) -> "ExternalKnowledgeInfoBuilder":
43
+ self._external_knowledge_info.external_knowledge_api_endpoint = external_knowledge_api_endpoint
44
+ return self
@@ -0,0 +1,13 @@
1
+ """External retrieval model for Knowledge Base API."""
2
+
3
+ from typing import Optional
4
+
5
+ from pydantic import BaseModel
6
+
7
+
8
+ class ExternalRetrievalModel(BaseModel):
9
+ """External retrieval model configuration."""
10
+
11
+ top_k: Optional[int] = None
12
+ score_threshold: Optional[float] = None
13
+ score_threshold_enabled: Optional[bool] = None
@@ -15,7 +15,7 @@ SearchMethod = Literal["hybrid_search", "semantic_search", "full_text_search", "
15
15
  DocumentStatus = Literal["indexing", "completed", "error", "paused"]
16
16
 
17
17
  # Processing mode types
18
- ProcessingMode = Literal["automatic", "custom"]
18
+ ProcessingMode = Literal["automatic", "custom", "hierarchical"]
19
19
 
20
20
  # File types
21
21
  FileType = Literal["document", "image", "audio", "video", "custom"]
@@ -79,7 +79,7 @@ ExternalKnowledgeProvider = Literal["external_api", "notion", "web_crawler"]
79
79
  DocumentCreatedFrom = Literal["api", "web", "upload"]
80
80
 
81
81
  # Document display status types
82
- DocumentDisplayStatus = Literal["available", "indexing", "error", "paused", "archived"]
82
+ DocumentDisplayStatus = Literal["available", "indexing", "error", "paused", "archived", "queuing"]
83
83
 
84
84
  # Batch processing status types
85
85
  BatchProcessingStatus = Literal["processing", "completed", "failed", "cancelled"]
@@ -6,7 +6,6 @@ from pydantic import BaseModel
6
6
 
7
7
  from .knowledge_types import ProcessingMode
8
8
  from .process_rules import ProcessRules
9
- from .segmentation_rule import SegmentationRule
10
9
 
11
10
 
12
11
  class ProcessRule(BaseModel):
@@ -14,7 +13,6 @@ class ProcessRule(BaseModel):
14
13
 
15
14
  mode: Optional[ProcessingMode] = None
16
15
  rules: Optional[ProcessRules] = None
17
- segmentation: Optional[SegmentationRule] = None
18
16
 
19
17
  @staticmethod
20
18
  def builder() -> "ProcessRuleBuilder":
@@ -37,7 +35,3 @@ class ProcessRuleBuilder:
37
35
  def rules(self, rules: ProcessRules) -> "ProcessRuleBuilder":
38
36
  self._process_rule.rules = rules
39
37
  return self
40
-
41
- def segmentation(self, segmentation: SegmentationRule) -> "ProcessRuleBuilder":
42
- self._process_rule.segmentation = segmentation
43
- return self