dify-oapi2 0.4.0__py3-none-any.whl → 0.5.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 (191) 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/chat/v1/model/app_info.py +35 -0
  5. dify_oapi/api/chat/v1/model/app_parameters.py +494 -0
  6. dify_oapi/api/chat/v1/model/audio_to_text_request_body.py +2 -2
  7. dify_oapi/api/chat/v1/model/chat_file.py +53 -0
  8. dify_oapi/api/chat/v1/model/chat_request_body.py +26 -13
  9. dify_oapi/api/chat/v1/model/chat_response.py +12 -2
  10. dify_oapi/api/chat/v1/model/chat_types.py +65 -0
  11. dify_oapi/api/chat/v1/model/configure_annotation_reply_request.py +36 -0
  12. dify_oapi/api/chat/v1/model/configure_annotation_reply_request_body.py +39 -0
  13. dify_oapi/api/chat/v1/model/configure_annotation_reply_response.py +10 -0
  14. dify_oapi/api/chat/v1/model/conversation_info.py +57 -0
  15. dify_oapi/api/chat/v1/model/conversation_variable.py +55 -0
  16. dify_oapi/api/chat/v1/model/create_annotation_request.py +29 -0
  17. dify_oapi/api/chat/v1/model/create_annotation_request_body.py +32 -0
  18. dify_oapi/api/chat/v1/model/create_annotation_response.py +9 -0
  19. dify_oapi/api/chat/v1/model/delete_annotation_request.py +26 -0
  20. dify_oapi/api/chat/v1/model/delete_annotation_response.py +7 -0
  21. dify_oapi/api/chat/v1/model/feedback_info.py +75 -0
  22. dify_oapi/api/chat/v1/model/file_info.py +59 -0
  23. dify_oapi/api/chat/v1/model/get_annotation_reply_status_request.py +32 -0
  24. dify_oapi/api/chat/v1/model/get_annotation_reply_status_response.py +11 -0
  25. dify_oapi/api/chat/v1/model/get_app_info_request.py +24 -0
  26. dify_oapi/api/chat/v1/model/get_app_info_response.py +9 -0
  27. dify_oapi/api/chat/v1/model/get_app_meta_request.py +24 -0
  28. dify_oapi/api/chat/v1/model/get_app_meta_response.py +9 -0
  29. dify_oapi/api/chat/v1/model/get_app_parameters_request.py +28 -0
  30. dify_oapi/api/chat/v1/model/get_app_parameters_response.py +9 -0
  31. dify_oapi/api/chat/v1/model/get_conversation_list_request.py +25 -24
  32. dify_oapi/api/chat/v1/model/get_conversation_list_response.py +4 -15
  33. dify_oapi/api/chat/v1/model/get_conversation_variables_request.py +54 -0
  34. dify_oapi/api/chat/v1/model/get_conversation_variables_response.py +10 -0
  35. dify_oapi/api/chat/v1/model/get_feedbacks_request.py +32 -0
  36. dify_oapi/api/chat/v1/model/get_feedbacks_response.py +7 -0
  37. dify_oapi/api/chat/v1/model/get_site_settings_request.py +24 -0
  38. dify_oapi/api/chat/v1/model/get_site_settings_response.py +9 -0
  39. dify_oapi/api/chat/v1/model/get_suggested_questions_request.py +36 -0
  40. dify_oapi/api/chat/v1/model/{message_suggested_response.py → get_suggested_questions_response.py} +1 -1
  41. dify_oapi/api/chat/v1/model/list_annotations_request.py +32 -0
  42. dify_oapi/api/chat/v1/model/list_annotations_response.py +11 -0
  43. dify_oapi/api/chat/v1/model/message_file.py +46 -0
  44. dify_oapi/api/chat/v1/model/message_history_request.py +24 -24
  45. dify_oapi/api/chat/v1/model/message_history_response.py +4 -43
  46. dify_oapi/api/chat/v1/model/message_info.py +73 -0
  47. dify_oapi/api/chat/v1/model/pagination_info.py +44 -0
  48. dify_oapi/api/chat/v1/model/rename_conversation_request_body.py +1 -1
  49. dify_oapi/api/chat/v1/model/retriever_resource.py +64 -0
  50. dify_oapi/api/chat/v1/model/site_settings.py +92 -0
  51. dify_oapi/api/chat/v1/model/submit_feedback_request.py +34 -0
  52. dify_oapi/api/chat/v1/model/submit_feedback_request_body.py +33 -0
  53. dify_oapi/api/chat/v1/model/submit_feedback_response.py +5 -0
  54. dify_oapi/api/chat/v1/model/text_to_audio_request.py +32 -0
  55. dify_oapi/api/chat/v1/model/text_to_audio_request_body.py +33 -0
  56. dify_oapi/api/chat/v1/model/text_to_audio_response.py +7 -0
  57. dify_oapi/api/chat/v1/model/tool_icon.py +52 -0
  58. dify_oapi/api/chat/v1/model/update_annotation_request.py +33 -0
  59. dify_oapi/api/chat/v1/model/update_annotation_request_body.py +32 -0
  60. dify_oapi/api/chat/v1/model/update_annotation_response.py +9 -0
  61. dify_oapi/api/chat/v1/model/upload_file_request.py +54 -0
  62. dify_oapi/api/chat/v1/model/upload_file_request_body.py +29 -0
  63. dify_oapi/api/chat/v1/model/upload_file_response.py +10 -0
  64. dify_oapi/api/chat/v1/model/usage_info.py +84 -0
  65. dify_oapi/api/chat/v1/resource/__init__.py +7 -3
  66. dify_oapi/api/chat/v1/resource/annotation.py +77 -0
  67. dify_oapi/api/chat/v1/resource/app.py +47 -0
  68. dify_oapi/api/chat/v1/resource/audio.py +13 -0
  69. dify_oapi/api/chat/v1/resource/chat.py +14 -0
  70. dify_oapi/api/chat/v1/resource/conversation.py +55 -9
  71. dify_oapi/api/chat/v1/resource/feedback.py +31 -0
  72. dify_oapi/api/chat/v1/resource/file.py +25 -0
  73. dify_oapi/api/chat/v1/resource/message.py +19 -15
  74. dify_oapi/api/chat/v1/version.py +8 -2
  75. dify_oapi/api/chatflow/__init__.py +0 -0
  76. dify_oapi/api/chatflow/service.py +25 -0
  77. dify_oapi/api/chatflow/v1/__init__.py +0 -0
  78. dify_oapi/api/chatflow/v1/model/__init__.py +0 -0
  79. dify_oapi/api/chatflow/v1/model/annotation_info.py +43 -0
  80. dify_oapi/api/chatflow/v1/model/annotation_reply_settings_request.py +37 -0
  81. dify_oapi/api/chatflow/v1/model/annotation_reply_settings_request_body.py +33 -0
  82. dify_oapi/api/chatflow/v1/model/annotation_reply_settings_response.py +10 -0
  83. dify_oapi/api/chatflow/v1/model/annotation_reply_status_request.py +36 -0
  84. dify_oapi/api/chatflow/v1/model/annotation_reply_status_response.py +11 -0
  85. dify_oapi/api/chatflow/v1/model/app_info.py +33 -0
  86. dify_oapi/api/chatflow/v1/model/app_parameters.py +276 -0
  87. dify_oapi/api/chatflow/v1/model/audio_to_text_request.py +37 -0
  88. dify_oapi/api/chatflow/v1/model/audio_to_text_response.py +21 -0
  89. dify_oapi/api/chatflow/v1/model/chat_file.py +40 -0
  90. dify_oapi/api/chatflow/v1/model/chat_message.py +88 -0
  91. dify_oapi/api/chatflow/v1/model/chatflow_types.py +210 -0
  92. dify_oapi/api/chatflow/v1/model/conversation_info.py +53 -0
  93. dify_oapi/api/chatflow/v1/model/conversation_variable.py +55 -0
  94. dify_oapi/api/chatflow/v1/model/create_annotation_request.py +30 -0
  95. dify_oapi/api/chatflow/v1/model/create_annotation_request_body.py +28 -0
  96. dify_oapi/api/chatflow/v1/model/create_annotation_response.py +9 -0
  97. dify_oapi/api/chatflow/v1/model/delete_annotation_request.py +28 -0
  98. dify_oapi/api/chatflow/v1/model/delete_annotation_response.py +7 -0
  99. dify_oapi/api/chatflow/v1/model/delete_conversation_request.py +36 -0
  100. dify_oapi/api/chatflow/v1/model/delete_conversation_request_body.py +21 -0
  101. dify_oapi/api/chatflow/v1/model/delete_conversation_response.py +17 -0
  102. dify_oapi/api/chatflow/v1/model/feedback_info.py +75 -0
  103. dify_oapi/api/chatflow/v1/model/file_info.py +53 -0
  104. dify_oapi/api/chatflow/v1/model/get_annotations_request.py +30 -0
  105. dify_oapi/api/chatflow/v1/model/get_annotations_response.py +13 -0
  106. dify_oapi/api/chatflow/v1/model/get_app_feedbacks_request.py +30 -0
  107. dify_oapi/api/chatflow/v1/model/get_app_feedbacks_response.py +23 -0
  108. dify_oapi/api/chatflow/v1/model/get_conversation_messages_request.py +38 -0
  109. dify_oapi/api/chatflow/v1/model/get_conversation_messages_response.py +33 -0
  110. dify_oapi/api/chatflow/v1/model/get_conversation_variables_request.py +44 -0
  111. dify_oapi/api/chatflow/v1/model/get_conversation_variables_response.py +33 -0
  112. dify_oapi/api/chatflow/v1/model/get_conversations_request.py +40 -0
  113. dify_oapi/api/chatflow/v1/model/get_conversations_response.py +33 -0
  114. dify_oapi/api/chatflow/v1/model/get_info_request.py +22 -0
  115. dify_oapi/api/chatflow/v1/model/get_info_response.py +7 -0
  116. dify_oapi/api/chatflow/v1/model/get_meta_request.py +22 -0
  117. dify_oapi/api/chatflow/v1/model/get_meta_response.py +7 -0
  118. dify_oapi/api/chatflow/v1/model/get_parameters_request.py +22 -0
  119. dify_oapi/api/chatflow/v1/model/get_parameters_response.py +7 -0
  120. dify_oapi/api/chatflow/v1/model/get_site_request.py +22 -0
  121. dify_oapi/api/chatflow/v1/model/get_site_response.py +7 -0
  122. dify_oapi/api/chatflow/v1/model/get_suggested_questions_request.py +32 -0
  123. dify_oapi/api/chatflow/v1/model/get_suggested_questions_response.py +6 -0
  124. dify_oapi/api/chatflow/v1/model/message_feedback_request.py +36 -0
  125. dify_oapi/api/chatflow/v1/model/message_feedback_request_body.py +33 -0
  126. dify_oapi/api/chatflow/v1/model/message_feedback_response.py +21 -0
  127. dify_oapi/api/chatflow/v1/model/rename_conversation_request.py +36 -0
  128. dify_oapi/api/chatflow/v1/model/rename_conversation_request_body.py +31 -0
  129. dify_oapi/api/chatflow/v1/model/rename_conversation_response.py +53 -0
  130. dify_oapi/api/chatflow/v1/model/retriever_resource.py +58 -0
  131. dify_oapi/api/chatflow/v1/model/send_chat_message_request.py +30 -0
  132. dify_oapi/api/chatflow/v1/model/send_chat_message_request_body.py +54 -0
  133. dify_oapi/api/chatflow/v1/model/send_chat_message_response.py +7 -0
  134. dify_oapi/api/chatflow/v1/model/stop_chat_message_request.py +36 -0
  135. dify_oapi/api/chatflow/v1/model/stop_chat_message_request_body.py +21 -0
  136. dify_oapi/api/chatflow/v1/model/stop_chat_message_response.py +5 -0
  137. dify_oapi/api/chatflow/v1/model/text_to_audio_request.py +30 -0
  138. dify_oapi/api/chatflow/v1/model/text_to_audio_request_body.py +36 -0
  139. dify_oapi/api/chatflow/v1/model/text_to_audio_response.py +19 -0
  140. dify_oapi/api/chatflow/v1/model/tool_icon.py +48 -0
  141. dify_oapi/api/chatflow/v1/model/update_annotation_request.py +36 -0
  142. dify_oapi/api/chatflow/v1/model/update_annotation_request_body.py +28 -0
  143. dify_oapi/api/chatflow/v1/model/update_annotation_response.py +9 -0
  144. dify_oapi/api/chatflow/v1/model/upload_file_request.py +41 -0
  145. dify_oapi/api/chatflow/v1/model/upload_file_response.py +11 -0
  146. dify_oapi/api/chatflow/v1/model/usage_info.py +78 -0
  147. dify_oapi/api/chatflow/v1/model/user_input_form.py +141 -0
  148. dify_oapi/api/chatflow/v1/model/webapp_settings.py +88 -0
  149. dify_oapi/api/chatflow/v1/resource/__init__.py +0 -0
  150. dify_oapi/api/chatflow/v1/resource/annotation.py +122 -0
  151. dify_oapi/api/chatflow/v1/resource/application.py +76 -0
  152. dify_oapi/api/chatflow/v1/resource/chatflow.py +91 -0
  153. dify_oapi/api/chatflow/v1/resource/conversation.py +104 -0
  154. dify_oapi/api/chatflow/v1/resource/feedback.py +69 -0
  155. dify_oapi/api/chatflow/v1/resource/file.py +39 -0
  156. dify_oapi/api/chatflow/v1/resource/tts.py +29 -0
  157. dify_oapi/api/chatflow/v1/version.py +29 -0
  158. dify_oapi/api/knowledge/v1/model/data_source_detail.py +23 -0
  159. dify_oapi/api/knowledge/v1/model/dataset_info.py +10 -9
  160. dify_oapi/api/knowledge/v1/model/dataset_metadata.py +14 -0
  161. dify_oapi/api/knowledge/v1/model/document_info.py +18 -6
  162. dify_oapi/api/knowledge/v1/model/external_knowledge_info.py +11 -1
  163. dify_oapi/api/knowledge/v1/model/external_retrieval_model.py +13 -0
  164. dify_oapi/api/knowledge/v1/model/knowledge_types.py +2 -2
  165. dify_oapi/api/knowledge/v1/model/retrieval_model.py +10 -4
  166. dify_oapi/api/knowledge/v1/model/weights.py +27 -0
  167. dify_oapi/api/workflow/v1/model/chunk_workflow_event.py +74 -0
  168. dify_oapi/api/workflow/v1/model/input_file_object_workflow.py +76 -0
  169. dify_oapi/api/workflow/v1/model/node_finished_data.py +118 -0
  170. dify_oapi/api/workflow/v1/model/node_started_data.py +81 -0
  171. dify_oapi/api/workflow/v1/model/ping_data.py +28 -0
  172. dify_oapi/api/workflow/v1/model/run_workflow_request_body.py +1 -1
  173. dify_oapi/api/workflow/v1/model/text_chunk_data.py +39 -0
  174. dify_oapi/api/workflow/v1/model/tts_message_data.py +45 -0
  175. dify_oapi/api/workflow/v1/model/tts_message_end_data.py +45 -0
  176. dify_oapi/api/workflow/v1/model/workflow_completion_response.py +50 -0
  177. dify_oapi/api/workflow/v1/model/workflow_finished_data.py +93 -0
  178. dify_oapi/api/workflow/v1/model/workflow_started_data.py +51 -0
  179. dify_oapi/api/workflow/v1/model/workflow_types.py +27 -12
  180. dify_oapi/client.py +45 -0
  181. dify_oapi/core/http/transport/__init__.py +2 -1
  182. dify_oapi/core/http/transport/async_transport.py +73 -50
  183. dify_oapi/core/http/transport/connection_pool.py +131 -0
  184. dify_oapi/core/http/transport/sync_transport.py +73 -50
  185. dify_oapi/core/model/config.py +10 -0
  186. {dify_oapi2-0.4.0.dist-info → dify_oapi2-0.5.0.dist-info}/METADATA +44 -12
  187. {dify_oapi2-0.4.0.dist-info → dify_oapi2-0.5.0.dist-info}/RECORD +189 -34
  188. dify_oapi/api/chat/v1/model/chat_request_file.py +0 -46
  189. dify_oapi/api/chat/v1/model/message_suggested_request.py +0 -36
  190. {dify_oapi2-0.4.0.dist-info → dify_oapi2-0.5.0.dist-info}/LICENSE +0 -0
  191. {dify_oapi2-0.4.0.dist-info → dify_oapi2-0.5.0.dist-info}/WHEEL +0 -0
@@ -0,0 +1,73 @@
1
+ from typing import Any
2
+
3
+ from pydantic import BaseModel
4
+
5
+ from .agent_thought import AgentThought
6
+ from .feedback_info import FeedbackInfo
7
+ from .message_file import MessageFile
8
+ from .retriever_resource import RetrieverResource
9
+
10
+
11
+ class MessageInfo(BaseModel):
12
+ id: str | None = None
13
+ conversation_id: str | None = None
14
+ inputs: dict[str, Any] | None = None
15
+ query: str | None = None
16
+ answer: str | None = None
17
+ message_files: list[MessageFile] | None = None
18
+ feedback: FeedbackInfo | None = None
19
+ retriever_resources: list[RetrieverResource] | None = None
20
+ agent_thoughts: list[AgentThought] | None = None
21
+ created_at: int | None = None
22
+
23
+ @staticmethod
24
+ def builder() -> "MessageInfoBuilder":
25
+ return MessageInfoBuilder()
26
+
27
+
28
+ class MessageInfoBuilder:
29
+ def __init__(self):
30
+ self._message_info = MessageInfo()
31
+
32
+ def id(self, id: str) -> "MessageInfoBuilder":
33
+ self._message_info.id = id
34
+ return self
35
+
36
+ def conversation_id(self, conversation_id: str) -> "MessageInfoBuilder":
37
+ self._message_info.conversation_id = conversation_id
38
+ return self
39
+
40
+ def inputs(self, inputs: dict[str, Any]) -> "MessageInfoBuilder":
41
+ self._message_info.inputs = inputs
42
+ return self
43
+
44
+ def query(self, query: str) -> "MessageInfoBuilder":
45
+ self._message_info.query = query
46
+ return self
47
+
48
+ def answer(self, answer: str) -> "MessageInfoBuilder":
49
+ self._message_info.answer = answer
50
+ return self
51
+
52
+ def message_files(self, message_files: list[MessageFile]) -> "MessageInfoBuilder":
53
+ self._message_info.message_files = message_files
54
+ return self
55
+
56
+ def feedback(self, feedback: FeedbackInfo) -> "MessageInfoBuilder":
57
+ self._message_info.feedback = feedback
58
+ return self
59
+
60
+ def retriever_resources(self, retriever_resources: list[RetrieverResource]) -> "MessageInfoBuilder":
61
+ self._message_info.retriever_resources = retriever_resources
62
+ return self
63
+
64
+ def agent_thoughts(self, agent_thoughts: list[AgentThought]) -> "MessageInfoBuilder":
65
+ self._message_info.agent_thoughts = agent_thoughts
66
+ return self
67
+
68
+ def created_at(self, created_at: int) -> "MessageInfoBuilder":
69
+ self._message_info.created_at = created_at
70
+ return self
71
+
72
+ def build(self) -> MessageInfo:
73
+ return self._message_info
@@ -0,0 +1,44 @@
1
+ """Pagination information model for Chat API."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from pydantic import BaseModel
6
+
7
+
8
+ class PaginationInfo(BaseModel):
9
+ """Pagination information model."""
10
+
11
+ limit: int | None = None
12
+ has_more: bool | None = None
13
+ total: int | None = None
14
+ page: int | None = None
15
+
16
+ @staticmethod
17
+ def builder() -> PaginationInfoBuilder:
18
+ return PaginationInfoBuilder()
19
+
20
+
21
+ class PaginationInfoBuilder:
22
+ """Builder for PaginationInfo."""
23
+
24
+ def __init__(self):
25
+ self._pagination_info = PaginationInfo()
26
+
27
+ def build(self) -> PaginationInfo:
28
+ return self._pagination_info
29
+
30
+ def limit(self, limit: int) -> PaginationInfoBuilder:
31
+ self._pagination_info.limit = limit
32
+ return self
33
+
34
+ def has_more(self, has_more: bool) -> PaginationInfoBuilder:
35
+ self._pagination_info.has_more = has_more
36
+ return self
37
+
38
+ def total(self, total: int) -> PaginationInfoBuilder:
39
+ self._pagination_info.total = total
40
+ return self
41
+
42
+ def page(self, page: int) -> PaginationInfoBuilder:
43
+ self._pagination_info.page = page
44
+ return self
@@ -17,7 +17,7 @@ class RenameConversationRequestBodyBuilder:
17
17
  def __init__(self):
18
18
  self._rename_conversation_request_body = RenameConversationRequestBody()
19
19
 
20
- def builder(self) -> RenameConversationRequestBody:
20
+ def build(self) -> RenameConversationRequestBody:
21
21
  return self._rename_conversation_request_body
22
22
 
23
23
  def name(self, name: str) -> RenameConversationRequestBodyBuilder:
@@ -0,0 +1,64 @@
1
+ """Retriever resource model for Chat API."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from pydantic import BaseModel
6
+
7
+
8
+ class RetrieverResource(BaseModel):
9
+ """Retriever resource model."""
10
+
11
+ position: int | None = None
12
+ dataset_id: str | None = None
13
+ dataset_name: str | None = None
14
+ document_id: str | None = None
15
+ document_name: str | None = None
16
+ segment_id: str | None = None
17
+ score: float | None = None
18
+ content: str | None = None
19
+
20
+ @staticmethod
21
+ def builder() -> RetrieverResourceBuilder:
22
+ return RetrieverResourceBuilder()
23
+
24
+
25
+ class RetrieverResourceBuilder:
26
+ """Builder for RetrieverResource."""
27
+
28
+ def __init__(self):
29
+ self._retriever_resource = RetrieverResource()
30
+
31
+ def build(self) -> RetrieverResource:
32
+ return self._retriever_resource
33
+
34
+ def position(self, position: int) -> RetrieverResourceBuilder:
35
+ self._retriever_resource.position = position
36
+ return self
37
+
38
+ def dataset_id(self, dataset_id: str) -> RetrieverResourceBuilder:
39
+ self._retriever_resource.dataset_id = dataset_id
40
+ return self
41
+
42
+ def dataset_name(self, dataset_name: str) -> RetrieverResourceBuilder:
43
+ self._retriever_resource.dataset_name = dataset_name
44
+ return self
45
+
46
+ def document_id(self, document_id: str) -> RetrieverResourceBuilder:
47
+ self._retriever_resource.document_id = document_id
48
+ return self
49
+
50
+ def document_name(self, document_name: str) -> RetrieverResourceBuilder:
51
+ self._retriever_resource.document_name = document_name
52
+ return self
53
+
54
+ def segment_id(self, segment_id: str) -> RetrieverResourceBuilder:
55
+ self._retriever_resource.segment_id = segment_id
56
+ return self
57
+
58
+ def score(self, score: float) -> RetrieverResourceBuilder:
59
+ self._retriever_resource.score = score
60
+ return self
61
+
62
+ def content(self, content: str) -> RetrieverResourceBuilder:
63
+ self._retriever_resource.content = content
64
+ return self
@@ -0,0 +1,92 @@
1
+ from __future__ import annotations
2
+
3
+ from pydantic import BaseModel
4
+
5
+ from .chat_types import IconType
6
+
7
+
8
+ class SiteSettings(BaseModel):
9
+ """Site settings configuration."""
10
+
11
+ title: str | None = None
12
+ chat_color_theme: str | None = None
13
+ chat_color_theme_inverted: bool | None = None
14
+ icon_type: IconType | None = None
15
+ icon: str | None = None
16
+ icon_background: str | None = None
17
+ icon_url: str | None = None
18
+ description: str | None = None
19
+ copyright: str | None = None
20
+ privacy_policy: str | None = None
21
+ custom_disclaimer: str | None = None
22
+ default_language: str | None = None
23
+ show_workflow_steps: bool | None = None
24
+ use_icon_as_answer_icon: bool | None = None
25
+
26
+ @staticmethod
27
+ def builder() -> SiteSettingsBuilder:
28
+ return SiteSettingsBuilder()
29
+
30
+
31
+ class SiteSettingsBuilder:
32
+ def __init__(self):
33
+ self._site_settings = SiteSettings()
34
+
35
+ def build(self) -> SiteSettings:
36
+ return self._site_settings
37
+
38
+ def title(self, title: str) -> SiteSettingsBuilder:
39
+ self._site_settings.title = title
40
+ return self
41
+
42
+ def chat_color_theme(self, chat_color_theme: str) -> SiteSettingsBuilder:
43
+ self._site_settings.chat_color_theme = chat_color_theme
44
+ return self
45
+
46
+ def chat_color_theme_inverted(self, chat_color_theme_inverted: bool) -> SiteSettingsBuilder:
47
+ self._site_settings.chat_color_theme_inverted = chat_color_theme_inverted
48
+ return self
49
+
50
+ def icon_type(self, icon_type: IconType) -> SiteSettingsBuilder:
51
+ self._site_settings.icon_type = icon_type
52
+ return self
53
+
54
+ def icon(self, icon: str) -> SiteSettingsBuilder:
55
+ self._site_settings.icon = icon
56
+ return self
57
+
58
+ def icon_background(self, icon_background: str) -> SiteSettingsBuilder:
59
+ self._site_settings.icon_background = icon_background
60
+ return self
61
+
62
+ def icon_url(self, icon_url: str) -> SiteSettingsBuilder:
63
+ self._site_settings.icon_url = icon_url
64
+ return self
65
+
66
+ def description(self, description: str) -> SiteSettingsBuilder:
67
+ self._site_settings.description = description
68
+ return self
69
+
70
+ def copyright(self, copyright: str) -> SiteSettingsBuilder:
71
+ self._site_settings.copyright = copyright
72
+ return self
73
+
74
+ def privacy_policy(self, privacy_policy: str) -> SiteSettingsBuilder:
75
+ self._site_settings.privacy_policy = privacy_policy
76
+ return self
77
+
78
+ def custom_disclaimer(self, custom_disclaimer: str) -> SiteSettingsBuilder:
79
+ self._site_settings.custom_disclaimer = custom_disclaimer
80
+ return self
81
+
82
+ def default_language(self, default_language: str) -> SiteSettingsBuilder:
83
+ self._site_settings.default_language = default_language
84
+ return self
85
+
86
+ def show_workflow_steps(self, show_workflow_steps: bool) -> SiteSettingsBuilder:
87
+ self._site_settings.show_workflow_steps = show_workflow_steps
88
+ return self
89
+
90
+ def use_icon_as_answer_icon(self, use_icon_as_answer_icon: bool) -> SiteSettingsBuilder:
91
+ self._site_settings.use_icon_as_answer_icon = use_icon_as_answer_icon
92
+ return self
@@ -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,33 @@
1
+ from pydantic import BaseModel
2
+
3
+ from .chat_types import Rating
4
+
5
+
6
+ class SubmitFeedbackRequestBody(BaseModel):
7
+ rating: Rating | None = None
8
+ user: str
9
+ content: str | None = None
10
+
11
+ @staticmethod
12
+ def builder() -> "SubmitFeedbackRequestBodyBuilder":
13
+ return SubmitFeedbackRequestBodyBuilder()
14
+
15
+
16
+ class SubmitFeedbackRequestBodyBuilder:
17
+ def __init__(self) -> None:
18
+ self._submit_feedback_request_body = SubmitFeedbackRequestBody(user="")
19
+
20
+ def rating(self, rating: Rating | None) -> "SubmitFeedbackRequestBodyBuilder":
21
+ self._submit_feedback_request_body.rating = rating
22
+ return self
23
+
24
+ def user(self, user: str) -> "SubmitFeedbackRequestBodyBuilder":
25
+ self._submit_feedback_request_body.user = user
26
+ return self
27
+
28
+ def content(self, content: str | None) -> "SubmitFeedbackRequestBodyBuilder":
29
+ self._submit_feedback_request_body.content = content
30
+ return self
31
+
32
+ def build(self) -> SubmitFeedbackRequestBody:
33
+ return self._submit_feedback_request_body
@@ -0,0 +1,5 @@
1
+ from dify_oapi.core.model.base_response import BaseResponse
2
+
3
+
4
+ class SubmitFeedbackResponse(BaseResponse):
5
+ result: str = "success"
@@ -0,0 +1,32 @@
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 .text_to_audio_request_body import TextToAudioRequestBody
7
+
8
+
9
+ class TextToAudioRequest(BaseRequest):
10
+ def __init__(self):
11
+ super().__init__()
12
+ self.request_body: TextToAudioRequestBody | None = None
13
+
14
+ @staticmethod
15
+ def builder() -> TextToAudioRequestBuilder:
16
+ return TextToAudioRequestBuilder()
17
+
18
+
19
+ class TextToAudioRequestBuilder:
20
+ def __init__(self):
21
+ text_to_audio_request = TextToAudioRequest()
22
+ text_to_audio_request.http_method = HttpMethod.POST
23
+ text_to_audio_request.uri = "/v1/text-to-audio"
24
+ self._text_to_audio_request = text_to_audio_request
25
+
26
+ def build(self) -> TextToAudioRequest:
27
+ return self._text_to_audio_request
28
+
29
+ def request_body(self, request_body: TextToAudioRequestBody) -> TextToAudioRequestBuilder:
30
+ self._text_to_audio_request.request_body = request_body
31
+ self._text_to_audio_request.body = request_body.model_dump(exclude_none=True, mode="json")
32
+ return self
@@ -0,0 +1,33 @@
1
+ from __future__ import annotations
2
+
3
+ from pydantic import BaseModel
4
+
5
+
6
+ class TextToAudioRequestBody(BaseModel):
7
+ message_id: str | None = None
8
+ text: str | None = None
9
+ user: str
10
+
11
+ @staticmethod
12
+ def builder() -> TextToAudioRequestBodyBuilder:
13
+ return TextToAudioRequestBodyBuilder()
14
+
15
+
16
+ class TextToAudioRequestBodyBuilder:
17
+ def __init__(self):
18
+ self._text_to_audio_request_body = TextToAudioRequestBody(user="")
19
+
20
+ def build(self) -> TextToAudioRequestBody:
21
+ return self._text_to_audio_request_body
22
+
23
+ def message_id(self, message_id: str) -> TextToAudioRequestBodyBuilder:
24
+ self._text_to_audio_request_body.message_id = message_id
25
+ return self
26
+
27
+ def text(self, text: str) -> TextToAudioRequestBodyBuilder:
28
+ self._text_to_audio_request_body.text = text
29
+ return self
30
+
31
+ def user(self, user: str) -> TextToAudioRequestBodyBuilder:
32
+ self._text_to_audio_request_body.user = user
33
+ return self
@@ -0,0 +1,7 @@
1
+ from dify_oapi.core.model.base_response import BaseResponse
2
+
3
+
4
+ class TextToAudioResponse(BaseResponse):
5
+ """Response for text-to-audio API that returns binary audio data."""
6
+
7
+ pass
@@ -0,0 +1,52 @@
1
+ from __future__ import annotations
2
+
3
+ from pydantic import BaseModel
4
+
5
+
6
+ class ToolIconDetail(BaseModel):
7
+ """Tool icon detail configuration."""
8
+
9
+ background: str
10
+ content: str
11
+
12
+ @staticmethod
13
+ def builder() -> ToolIconDetailBuilder:
14
+ return ToolIconDetailBuilder()
15
+
16
+
17
+ class ToolIconDetailBuilder:
18
+ def __init__(self):
19
+ self._tool_icon_detail = ToolIconDetail(background="", content="")
20
+
21
+ def build(self) -> ToolIconDetail:
22
+ return self._tool_icon_detail
23
+
24
+ def background(self, background: str) -> ToolIconDetailBuilder:
25
+ self._tool_icon_detail.background = background
26
+ return self
27
+
28
+ def content(self, content: str) -> ToolIconDetailBuilder:
29
+ self._tool_icon_detail.content = content
30
+ return self
31
+
32
+
33
+ class ToolIcon(BaseModel):
34
+ """Tool icon configuration."""
35
+
36
+ tool_icons: dict[str, str | ToolIconDetail] | None = None
37
+
38
+ @staticmethod
39
+ def builder() -> ToolIconBuilder:
40
+ return ToolIconBuilder()
41
+
42
+
43
+ class ToolIconBuilder:
44
+ def __init__(self):
45
+ self._tool_icon = ToolIcon()
46
+
47
+ def build(self) -> ToolIcon:
48
+ return self._tool_icon
49
+
50
+ def tool_icons(self, tool_icons: dict[str, str | ToolIconDetail]) -> ToolIconBuilder:
51
+ self._tool_icon.tool_icons = tool_icons
52
+ return self
@@ -0,0 +1,33 @@
1
+ from dify_oapi.core.enum import HttpMethod
2
+ from dify_oapi.core.model.base_request import BaseRequest
3
+
4
+ from .update_annotation_request_body import UpdateAnnotationRequestBody
5
+
6
+
7
+ class UpdateAnnotationRequest(BaseRequest):
8
+ def __init__(self) -> None:
9
+ super().__init__()
10
+ self.request_body: UpdateAnnotationRequestBody | None = None
11
+
12
+ @staticmethod
13
+ def builder() -> "UpdateAnnotationRequestBuilder":
14
+ return UpdateAnnotationRequestBuilder()
15
+
16
+
17
+ class UpdateAnnotationRequestBuilder:
18
+ def __init__(self) -> None:
19
+ update_annotation_request = UpdateAnnotationRequest()
20
+ update_annotation_request.http_method = HttpMethod.PUT
21
+ update_annotation_request.uri = "/v1/apps/annotations/:annotation_id"
22
+ self._update_annotation_request = update_annotation_request
23
+
24
+ def annotation_id(self, annotation_id: str) -> "UpdateAnnotationRequestBuilder":
25
+ self._update_annotation_request.paths["annotation_id"] = annotation_id
26
+ return self
27
+
28
+ def request_body(self, request_body: UpdateAnnotationRequestBody) -> "UpdateAnnotationRequestBuilder":
29
+ self._update_annotation_request.request_body = request_body
30
+ return self
31
+
32
+ def build(self) -> UpdateAnnotationRequest:
33
+ return self._update_annotation_request
@@ -0,0 +1,32 @@
1
+ from __future__ import annotations
2
+
3
+ from pydantic import BaseModel
4
+
5
+
6
+ class UpdateAnnotationRequestBody(BaseModel):
7
+ """Request body for updating annotation."""
8
+
9
+ question: str = ""
10
+ answer: str = ""
11
+
12
+ @staticmethod
13
+ def builder() -> UpdateAnnotationRequestBodyBuilder:
14
+ return UpdateAnnotationRequestBodyBuilder()
15
+
16
+
17
+ class UpdateAnnotationRequestBodyBuilder:
18
+ """Builder for UpdateAnnotationRequestBody."""
19
+
20
+ def __init__(self):
21
+ self._update_annotation_request_body = UpdateAnnotationRequestBody()
22
+
23
+ def build(self) -> UpdateAnnotationRequestBody:
24
+ return self._update_annotation_request_body
25
+
26
+ def question(self, question: str) -> UpdateAnnotationRequestBodyBuilder:
27
+ self._update_annotation_request_body.question = question
28
+ return self
29
+
30
+ def answer(self, answer: str) -> UpdateAnnotationRequestBodyBuilder:
31
+ self._update_annotation_request_body.answer = answer
32
+ return self
@@ -0,0 +1,9 @@
1
+ from dify_oapi.core.model.base_response import BaseResponse
2
+
3
+ from .annotation_info import AnnotationInfo
4
+
5
+
6
+ class UpdateAnnotationResponse(AnnotationInfo, BaseResponse):
7
+ """Response for updating annotation."""
8
+
9
+ pass
@@ -0,0 +1,54 @@
1
+ """Upload file request model."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from io import BytesIO
6
+
7
+ from dify_oapi.core.enum import HttpMethod
8
+ from dify_oapi.core.model.base_request import BaseRequest
9
+
10
+ from .upload_file_request_body import UploadFileRequestBody
11
+
12
+
13
+ class UploadFileRequest(BaseRequest):
14
+ """Request model for upload file API."""
15
+
16
+ def __init__(self) -> None:
17
+ super().__init__()
18
+ self.request_body: UploadFileRequestBody | None = None
19
+ self.file: BytesIO | None = None
20
+
21
+ @staticmethod
22
+ def builder() -> UploadFileRequestBuilder:
23
+ return UploadFileRequestBuilder()
24
+
25
+
26
+ class UploadFileRequestBuilder:
27
+ """Builder for UploadFileRequest."""
28
+
29
+ def __init__(self) -> None:
30
+ upload_file_request = UploadFileRequest()
31
+ upload_file_request.http_method = HttpMethod.POST
32
+ upload_file_request.uri = "/v1/files/upload"
33
+ self._upload_file_request = upload_file_request
34
+
35
+ def build(self) -> UploadFileRequest:
36
+ return self._upload_file_request
37
+
38
+ def file(self, file: BytesIO, file_name: str | None = None) -> UploadFileRequestBuilder:
39
+ """Set the file to upload."""
40
+ self._upload_file_request.file = file
41
+ file_name = file_name or "upload"
42
+ self._upload_file_request.files = {"file": (file_name, file)}
43
+ return self
44
+
45
+ def request_body(self, request_body: UploadFileRequestBody) -> UploadFileRequestBuilder:
46
+ """Set the request body."""
47
+ self._upload_file_request.request_body = request_body
48
+ if request_body.user:
49
+ self._upload_file_request.body = {"user": request_body.user}
50
+ return self
51
+
52
+ @staticmethod
53
+ def builder() -> UploadFileRequestBuilder:
54
+ return UploadFileRequestBuilder()
@@ -0,0 +1,29 @@
1
+ """Upload file request body model."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from pydantic import BaseModel
6
+
7
+
8
+ class UploadFileRequestBody(BaseModel):
9
+ """Request body for upload file API."""
10
+
11
+ user: str
12
+
13
+ @staticmethod
14
+ def builder() -> UploadFileRequestBodyBuilder:
15
+ return UploadFileRequestBodyBuilder()
16
+
17
+
18
+ class UploadFileRequestBodyBuilder:
19
+ """Builder for UploadFileRequestBody."""
20
+
21
+ def __init__(self) -> None:
22
+ self._upload_file_request_body = UploadFileRequestBody(user="")
23
+
24
+ def build(self) -> UploadFileRequestBody:
25
+ return self._upload_file_request_body
26
+
27
+ def user(self, user: str) -> UploadFileRequestBodyBuilder:
28
+ self._upload_file_request_body.user = user
29
+ return self
@@ -0,0 +1,10 @@
1
+ """Upload file response model."""
2
+
3
+ from dify_oapi.api.chat.v1.model.file_info import FileInfo
4
+ from dify_oapi.core.model.base_response import BaseResponse
5
+
6
+
7
+ class UploadFileResponse(FileInfo, BaseResponse):
8
+ """Response model for upload file API."""
9
+
10
+ pass