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,141 @@
1
+ from pydantic import BaseModel
2
+
3
+
4
+ class TextInputControl(BaseModel):
5
+ label: str
6
+ variable: str
7
+ required: bool
8
+ default: str | None = None
9
+
10
+ @staticmethod
11
+ def builder() -> "TextInputControlBuilder":
12
+ return TextInputControlBuilder()
13
+
14
+
15
+ class TextInputControlBuilder:
16
+ def __init__(self):
17
+ self._text_input_control = TextInputControl(label="", variable="", required=False)
18
+
19
+ def build(self) -> TextInputControl:
20
+ return self._text_input_control
21
+
22
+ def label(self, label: str) -> "TextInputControlBuilder":
23
+ self._text_input_control.label = label
24
+ return self
25
+
26
+ def variable(self, variable: str) -> "TextInputControlBuilder":
27
+ self._text_input_control.variable = variable
28
+ return self
29
+
30
+ def required(self, required: bool) -> "TextInputControlBuilder":
31
+ self._text_input_control.required = required
32
+ return self
33
+
34
+ def default(self, default: str) -> "TextInputControlBuilder":
35
+ self._text_input_control.default = default
36
+ return self
37
+
38
+
39
+ class ParagraphControl(BaseModel):
40
+ label: str
41
+ variable: str
42
+ required: bool
43
+ default: str | None = None
44
+
45
+ @staticmethod
46
+ def builder() -> "ParagraphControlBuilder":
47
+ return ParagraphControlBuilder()
48
+
49
+
50
+ class ParagraphControlBuilder:
51
+ def __init__(self):
52
+ self._paragraph_control = ParagraphControl(label="", variable="", required=False)
53
+
54
+ def build(self) -> ParagraphControl:
55
+ return self._paragraph_control
56
+
57
+ def label(self, label: str) -> "ParagraphControlBuilder":
58
+ self._paragraph_control.label = label
59
+ return self
60
+
61
+ def variable(self, variable: str) -> "ParagraphControlBuilder":
62
+ self._paragraph_control.variable = variable
63
+ return self
64
+
65
+ def required(self, required: bool) -> "ParagraphControlBuilder":
66
+ self._paragraph_control.required = required
67
+ return self
68
+
69
+ def default(self, default: str) -> "ParagraphControlBuilder":
70
+ self._paragraph_control.default = default
71
+ return self
72
+
73
+
74
+ class SelectControl(BaseModel):
75
+ label: str
76
+ variable: str
77
+ required: bool
78
+ default: str | None = None
79
+ options: list[str]
80
+
81
+ @staticmethod
82
+ def builder() -> "SelectControlBuilder":
83
+ return SelectControlBuilder()
84
+
85
+
86
+ class SelectControlBuilder:
87
+ def __init__(self):
88
+ self._select_control = SelectControl(label="", variable="", required=False, options=[])
89
+
90
+ def build(self) -> SelectControl:
91
+ return self._select_control
92
+
93
+ def label(self, label: str) -> "SelectControlBuilder":
94
+ self._select_control.label = label
95
+ return self
96
+
97
+ def variable(self, variable: str) -> "SelectControlBuilder":
98
+ self._select_control.variable = variable
99
+ return self
100
+
101
+ def required(self, required: bool) -> "SelectControlBuilder":
102
+ self._select_control.required = required
103
+ return self
104
+
105
+ def default(self, default: str) -> "SelectControlBuilder":
106
+ self._select_control.default = default
107
+ return self
108
+
109
+ def options(self, options: list[str]) -> "SelectControlBuilder":
110
+ self._select_control.options = options
111
+ return self
112
+
113
+
114
+ class UserInputFormItem(BaseModel):
115
+ text_input: TextInputControl | None = None
116
+ paragraph: ParagraphControl | None = None
117
+ select: SelectControl | None = None
118
+
119
+ @staticmethod
120
+ def builder() -> "UserInputFormItemBuilder":
121
+ return UserInputFormItemBuilder()
122
+
123
+
124
+ class UserInputFormItemBuilder:
125
+ def __init__(self):
126
+ self._user_input_form_item = UserInputFormItem()
127
+
128
+ def build(self) -> UserInputFormItem:
129
+ return self._user_input_form_item
130
+
131
+ def text_input(self, text_input: TextInputControl) -> "UserInputFormItemBuilder":
132
+ self._user_input_form_item.text_input = text_input
133
+ return self
134
+
135
+ def paragraph(self, paragraph: ParagraphControl) -> "UserInputFormItemBuilder":
136
+ self._user_input_form_item.paragraph = paragraph
137
+ return self
138
+
139
+ def select(self, select: SelectControl) -> "UserInputFormItemBuilder":
140
+ self._user_input_form_item.select = select
141
+ return self
@@ -0,0 +1,88 @@
1
+ from pydantic import BaseModel
2
+
3
+ from .chatflow_types import ChatColorTheme, DefaultLanguage, IconType
4
+
5
+
6
+ class WebAppSettings(BaseModel):
7
+ title: str | None = None
8
+ chat_color_theme: ChatColorTheme | None = None
9
+ chat_color_theme_inverted: bool | 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: DefaultLanguage | None = None
19
+ show_workflow_steps: bool | None = None
20
+ use_icon_as_answer_icon: bool | None = None
21
+
22
+ @staticmethod
23
+ def builder() -> "WebAppSettingsBuilder":
24
+ return WebAppSettingsBuilder()
25
+
26
+
27
+ class WebAppSettingsBuilder:
28
+ def __init__(self):
29
+ self._webapp_settings = WebAppSettings()
30
+
31
+ def build(self) -> WebAppSettings:
32
+ return self._webapp_settings
33
+
34
+ def title(self, title: str) -> "WebAppSettingsBuilder":
35
+ self._webapp_settings.title = title
36
+ return self
37
+
38
+ def chat_color_theme(self, chat_color_theme: ChatColorTheme) -> "WebAppSettingsBuilder":
39
+ self._webapp_settings.chat_color_theme = chat_color_theme
40
+ return self
41
+
42
+ def chat_color_theme_inverted(self, chat_color_theme_inverted: bool) -> "WebAppSettingsBuilder":
43
+ self._webapp_settings.chat_color_theme_inverted = chat_color_theme_inverted
44
+ return self
45
+
46
+ def icon_type(self, icon_type: IconType) -> "WebAppSettingsBuilder":
47
+ self._webapp_settings.icon_type = icon_type
48
+ return self
49
+
50
+ def icon(self, icon: str) -> "WebAppSettingsBuilder":
51
+ self._webapp_settings.icon = icon
52
+ return self
53
+
54
+ def icon_background(self, icon_background: str) -> "WebAppSettingsBuilder":
55
+ self._webapp_settings.icon_background = icon_background
56
+ return self
57
+
58
+ def icon_url(self, icon_url: str) -> "WebAppSettingsBuilder":
59
+ self._webapp_settings.icon_url = icon_url
60
+ return self
61
+
62
+ def description(self, description: str) -> "WebAppSettingsBuilder":
63
+ self._webapp_settings.description = description
64
+ return self
65
+
66
+ def copyright(self, copyright: str) -> "WebAppSettingsBuilder":
67
+ self._webapp_settings.copyright = copyright
68
+ return self
69
+
70
+ def privacy_policy(self, privacy_policy: str) -> "WebAppSettingsBuilder":
71
+ self._webapp_settings.privacy_policy = privacy_policy
72
+ return self
73
+
74
+ def custom_disclaimer(self, custom_disclaimer: str) -> "WebAppSettingsBuilder":
75
+ self._webapp_settings.custom_disclaimer = custom_disclaimer
76
+ return self
77
+
78
+ def default_language(self, default_language: DefaultLanguage) -> "WebAppSettingsBuilder":
79
+ self._webapp_settings.default_language = default_language
80
+ return self
81
+
82
+ def show_workflow_steps(self, show_workflow_steps: bool) -> "WebAppSettingsBuilder":
83
+ self._webapp_settings.show_workflow_steps = show_workflow_steps
84
+ return self
85
+
86
+ def use_icon_as_answer_icon(self, use_icon_as_answer_icon: bool) -> "WebAppSettingsBuilder":
87
+ self._webapp_settings.use_icon_as_answer_icon = use_icon_as_answer_icon
88
+ return self
File without changes
@@ -0,0 +1,87 @@
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.annotation_reply_settings_request import AnnotationReplySettingsRequest
6
+ from ..model.annotation_reply_settings_response import AnnotationReplySettingsResponse
7
+ from ..model.annotation_reply_status_request import AnnotationReplyStatusRequest
8
+ from ..model.annotation_reply_status_response import AnnotationReplyStatusResponse
9
+ from ..model.create_annotation_request import CreateAnnotationRequest
10
+ from ..model.create_annotation_response import CreateAnnotationResponse
11
+ from ..model.delete_annotation_request import DeleteAnnotationRequest
12
+ from ..model.delete_annotation_response import DeleteAnnotationResponse
13
+ from ..model.get_annotations_request import GetAnnotationsRequest
14
+ from ..model.get_annotations_response import GetAnnotationsResponse
15
+ from ..model.update_annotation_request import UpdateAnnotationRequest
16
+ from ..model.update_annotation_response import UpdateAnnotationResponse
17
+
18
+
19
+ class Annotation:
20
+ def __init__(self, config: Config) -> None:
21
+ self.config = config
22
+
23
+ def list(self, request: GetAnnotationsRequest, request_option: RequestOption) -> GetAnnotationsResponse:
24
+ return Transport.execute(self.config, request, unmarshal_as=GetAnnotationsResponse, option=request_option)
25
+
26
+ async def alist(self, request: GetAnnotationsRequest, request_option: RequestOption) -> GetAnnotationsResponse:
27
+ return await ATransport.aexecute(
28
+ self.config, request, unmarshal_as=GetAnnotationsResponse, option=request_option
29
+ )
30
+
31
+ def create(self, request: CreateAnnotationRequest, request_option: RequestOption) -> CreateAnnotationResponse:
32
+ return Transport.execute(self.config, request, unmarshal_as=CreateAnnotationResponse, option=request_option)
33
+
34
+ async def acreate(
35
+ self, request: CreateAnnotationRequest, request_option: RequestOption
36
+ ) -> CreateAnnotationResponse:
37
+ return await ATransport.aexecute(
38
+ self.config, request, unmarshal_as=CreateAnnotationResponse, option=request_option
39
+ )
40
+
41
+ def update(self, request: UpdateAnnotationRequest, request_option: RequestOption) -> UpdateAnnotationResponse:
42
+ return Transport.execute(self.config, request, unmarshal_as=UpdateAnnotationResponse, option=request_option)
43
+
44
+ async def aupdate(
45
+ self, request: UpdateAnnotationRequest, request_option: RequestOption
46
+ ) -> UpdateAnnotationResponse:
47
+ return await ATransport.aexecute(
48
+ self.config, request, unmarshal_as=UpdateAnnotationResponse, option=request_option
49
+ )
50
+
51
+ def delete(self, request: DeleteAnnotationRequest, request_option: RequestOption) -> DeleteAnnotationResponse:
52
+ return Transport.execute(self.config, request, unmarshal_as=DeleteAnnotationResponse, option=request_option)
53
+
54
+ async def adelete(
55
+ self, request: DeleteAnnotationRequest, request_option: RequestOption
56
+ ) -> DeleteAnnotationResponse:
57
+ return await ATransport.aexecute(
58
+ self.config, request, unmarshal_as=DeleteAnnotationResponse, option=request_option
59
+ )
60
+
61
+ def reply_settings(
62
+ self, request: AnnotationReplySettingsRequest, request_option: RequestOption
63
+ ) -> AnnotationReplySettingsResponse:
64
+ return Transport.execute(
65
+ self.config, request, unmarshal_as=AnnotationReplySettingsResponse, option=request_option
66
+ )
67
+
68
+ async def areply_settings(
69
+ self, request: AnnotationReplySettingsRequest, request_option: RequestOption
70
+ ) -> AnnotationReplySettingsResponse:
71
+ return await ATransport.aexecute(
72
+ self.config, request, unmarshal_as=AnnotationReplySettingsResponse, option=request_option
73
+ )
74
+
75
+ def reply_status(
76
+ self, request: AnnotationReplyStatusRequest, request_option: RequestOption
77
+ ) -> AnnotationReplyStatusResponse:
78
+ return Transport.execute(
79
+ self.config, request, unmarshal_as=AnnotationReplyStatusResponse, option=request_option
80
+ )
81
+
82
+ async def areply_status(
83
+ self, request: AnnotationReplyStatusRequest, request_option: RequestOption
84
+ ) -> AnnotationReplyStatusResponse:
85
+ return await ATransport.aexecute(
86
+ self.config, request, unmarshal_as=AnnotationReplyStatusResponse, option=request_option
87
+ )
@@ -0,0 +1,78 @@
1
+ from collections.abc import AsyncGenerator, Generator
2
+ from typing import Literal, overload
3
+
4
+ from dify_oapi.core.http.transport import ATransport, Transport
5
+ from dify_oapi.core.model.config import Config
6
+ from dify_oapi.core.model.request_option import RequestOption
7
+
8
+ from ..model.get_suggested_questions_request import GetSuggestedQuestionsRequest
9
+ from ..model.get_suggested_questions_response import GetSuggestedQuestionsResponse
10
+ from ..model.send_chat_message_request import SendChatMessageRequest
11
+ from ..model.send_chat_message_response import SendChatMessageResponse
12
+ from ..model.stop_chat_message_request import StopChatMessageRequest
13
+ from ..model.stop_chat_message_response import StopChatMessageResponse
14
+
15
+
16
+ class Chatflow:
17
+ def __init__(self, config: Config) -> None:
18
+ self.config = config
19
+
20
+ @overload
21
+ def send(
22
+ self,
23
+ request: SendChatMessageRequest,
24
+ request_option: RequestOption,
25
+ stream: Literal[True],
26
+ ) -> Generator[bytes, None, None]: ...
27
+
28
+ @overload
29
+ def send(
30
+ self,
31
+ request: SendChatMessageRequest,
32
+ request_option: RequestOption,
33
+ stream: Literal[False] = False,
34
+ ) -> SendChatMessageResponse: ...
35
+
36
+ def send(
37
+ self,
38
+ request: SendChatMessageRequest,
39
+ request_option: RequestOption,
40
+ stream: bool = False,
41
+ ) -> SendChatMessageResponse | Generator[bytes, None, None]:
42
+ if stream:
43
+ return Transport.execute(self.config, request, stream=True, option=request_option)
44
+ return Transport.execute(self.config, request, unmarshal_as=SendChatMessageResponse, option=request_option)
45
+
46
+ async def asend(
47
+ self,
48
+ request: SendChatMessageRequest,
49
+ request_option: RequestOption,
50
+ stream: bool = False,
51
+ ) -> SendChatMessageResponse | AsyncGenerator[bytes, None]:
52
+ if stream:
53
+ return await ATransport.aexecute(self.config, request, stream=True, option=request_option)
54
+ return await ATransport.aexecute(
55
+ self.config, request, unmarshal_as=SendChatMessageResponse, option=request_option
56
+ )
57
+
58
+ def stop(self, request: StopChatMessageRequest, request_option: RequestOption) -> StopChatMessageResponse:
59
+ return Transport.execute(self.config, request, unmarshal_as=StopChatMessageResponse, option=request_option)
60
+
61
+ async def astop(self, request: StopChatMessageRequest, request_option: RequestOption) -> StopChatMessageResponse:
62
+ return await ATransport.aexecute(
63
+ self.config, request, unmarshal_as=StopChatMessageResponse, option=request_option
64
+ )
65
+
66
+ def suggested(
67
+ self, request: GetSuggestedQuestionsRequest, request_option: RequestOption
68
+ ) -> GetSuggestedQuestionsResponse:
69
+ return Transport.execute(
70
+ self.config, request, unmarshal_as=GetSuggestedQuestionsResponse, option=request_option
71
+ )
72
+
73
+ async def asuggested(
74
+ self, request: GetSuggestedQuestionsRequest, request_option: RequestOption
75
+ ) -> GetSuggestedQuestionsResponse:
76
+ return await ATransport.aexecute(
77
+ self.config, request, unmarshal_as=GetSuggestedQuestionsResponse, option=request_option
78
+ )
@@ -0,0 +1,75 @@
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.delete_conversation_request import DeleteConversationRequest
6
+ from ..model.delete_conversation_response import DeleteConversationResponse
7
+ from ..model.get_conversation_messages_request import GetConversationMessagesRequest
8
+ from ..model.get_conversation_messages_response import GetConversationMessagesResponse
9
+ from ..model.get_conversation_variables_request import GetConversationVariablesRequest
10
+ from ..model.get_conversation_variables_response import GetConversationVariablesResponse
11
+ from ..model.get_conversations_request import GetConversationsRequest
12
+ from ..model.get_conversations_response import GetConversationsResponse
13
+ from ..model.rename_conversation_request import RenameConversationRequest
14
+ from ..model.rename_conversation_response import RenameConversationResponse
15
+
16
+
17
+ class Conversation:
18
+ def __init__(self, config: Config) -> None:
19
+ self.config = config
20
+
21
+ def messages(
22
+ self, request: GetConversationMessagesRequest, request_option: RequestOption
23
+ ) -> GetConversationMessagesResponse:
24
+ return Transport.execute(
25
+ self.config, request, unmarshal_as=GetConversationMessagesResponse, option=request_option
26
+ )
27
+
28
+ async def amessages(
29
+ self, request: GetConversationMessagesRequest, request_option: RequestOption
30
+ ) -> GetConversationMessagesResponse:
31
+ return await ATransport.aexecute(
32
+ self.config, request, unmarshal_as=GetConversationMessagesResponse, option=request_option
33
+ )
34
+
35
+ def list(self, request: GetConversationsRequest, request_option: RequestOption) -> GetConversationsResponse:
36
+ return Transport.execute(self.config, request, unmarshal_as=GetConversationsResponse, option=request_option)
37
+
38
+ async def alist(self, request: GetConversationsRequest, request_option: RequestOption) -> GetConversationsResponse:
39
+ return await ATransport.aexecute(
40
+ self.config, request, unmarshal_as=GetConversationsResponse, option=request_option
41
+ )
42
+
43
+ def delete(self, request: DeleteConversationRequest, request_option: RequestOption) -> DeleteConversationResponse:
44
+ return Transport.execute(self.config, request, unmarshal_as=DeleteConversationResponse, option=request_option)
45
+
46
+ async def adelete(
47
+ self, request: DeleteConversationRequest, request_option: RequestOption
48
+ ) -> DeleteConversationResponse:
49
+ return await ATransport.aexecute(
50
+ self.config, request, unmarshal_as=DeleteConversationResponse, option=request_option
51
+ )
52
+
53
+ def rename(self, request: RenameConversationRequest, request_option: RequestOption) -> RenameConversationResponse:
54
+ return Transport.execute(self.config, request, unmarshal_as=RenameConversationResponse, option=request_option)
55
+
56
+ async def arename(
57
+ self, request: RenameConversationRequest, request_option: RequestOption
58
+ ) -> RenameConversationResponse:
59
+ return await ATransport.aexecute(
60
+ self.config, request, unmarshal_as=RenameConversationResponse, option=request_option
61
+ )
62
+
63
+ def variables(
64
+ self, request: GetConversationVariablesRequest, request_option: RequestOption
65
+ ) -> GetConversationVariablesResponse:
66
+ return Transport.execute(
67
+ self.config, request, unmarshal_as=GetConversationVariablesResponse, option=request_option
68
+ )
69
+
70
+ async def avariables(
71
+ self, request: GetConversationVariablesRequest, request_option: RequestOption
72
+ ) -> GetConversationVariablesResponse:
73
+ return await ATransport.aexecute(
74
+ self.config, request, unmarshal_as=GetConversationVariablesResponse, option=request_option
75
+ )
@@ -0,0 +1,22 @@
1
+ from dify_oapi.api.dify.v1.resource.audio import Audio
2
+ from dify_oapi.api.dify.v1.resource.feedback import Feedback
3
+ from dify_oapi.api.dify.v1.resource.file import File
4
+ from dify_oapi.api.dify.v1.resource.info import Info
5
+ from dify_oapi.core.model.config import Config
6
+
7
+ from .resource.annotation import Annotation
8
+ from .resource.chatflow import Chatflow
9
+ from .resource.conversation import Conversation
10
+
11
+
12
+ class V1:
13
+ def __init__(self, config: Config) -> None:
14
+ # Business-specific APIs
15
+ self.chatflow = Chatflow(config)
16
+ self.conversation = Conversation(config)
17
+ self.annotation = Annotation(config)
18
+ # System APIs - direct use of dify module
19
+ self.file = File(config)
20
+ self.tts = Audio(config)
21
+ self.application = Info(config)
22
+ self.feedback = Feedback(config)
@@ -1,6 +0,0 @@
1
- from .annotation import * # noqa 403
2
- from .audio import * # noqa 403
3
- from .completion import * # noqa 403
4
- from .feedback import * # noqa 403
5
- from .file import * # noqa 403
6
- from .info import * # noqa 403
@@ -1,18 +1,20 @@
1
+ from dify_oapi.api.dify.v1.resource.audio import Audio
2
+ from dify_oapi.api.dify.v1.resource.feedback import Feedback
3
+ from dify_oapi.api.dify.v1.resource.file import File
4
+ from dify_oapi.api.dify.v1.resource.info import Info
1
5
  from dify_oapi.core.model.config import Config
2
6
 
3
7
  from .resource.annotation import Annotation
4
- from .resource.audio import Audio
5
8
  from .resource.completion import Completion
6
- from .resource.feedback import Feedback
7
- from .resource.file import File
8
- from .resource.info import Info
9
9
 
10
10
 
11
11
  class V1:
12
12
  def __init__(self, config: Config):
13
+ # Business-specific APIs
13
14
  self.completion: Completion = Completion(config)
15
+ self.annotation: Annotation = Annotation(config)
16
+ # System APIs - direct use of dify module
14
17
  self.file: File = File(config)
15
- self.feedback: Feedback = Feedback(config)
16
18
  self.audio: Audio = Audio(config)
17
19
  self.info: Info = Info(config)
18
- self.annotation: Annotation = Annotation(config)
20
+ self.feedback: Feedback = Feedback(config)
@@ -4,7 +4,7 @@ from pydantic import BaseModel
4
4
 
5
5
 
6
6
  class AudioToTextRequestBody(BaseModel):
7
- user: str | None = None
7
+ user: str
8
8
 
9
9
  @staticmethod
10
10
  def builder() -> AudioToTextRequestBodyBuilder:
@@ -13,7 +13,7 @@ class AudioToTextRequestBody(BaseModel):
13
13
 
14
14
  class AudioToTextRequestBodyBuilder:
15
15
  def __init__(self):
16
- self._audio_to_text_request_body = AudioToTextRequestBody()
16
+ self._audio_to_text_request_body = AudioToTextRequestBody(user="")
17
17
 
18
18
  def build(self) -> AudioToTextRequestBody:
19
19
  return self._audio_to_text_request_body
@@ -1,32 +1,32 @@
1
- from __future__ import annotations
2
-
3
1
  from dify_oapi.core.enum import HttpMethod
4
2
  from dify_oapi.core.model.base_request import BaseRequest
5
3
 
6
4
 
7
5
  class GetFeedbacksRequest(BaseRequest):
8
- def __init__(self):
6
+ def __init__(self) -> None:
9
7
  super().__init__()
10
8
 
11
9
  @staticmethod
12
- def builder() -> GetFeedbacksRequestBuilder:
10
+ def builder() -> "GetFeedbacksRequestBuilder":
13
11
  return GetFeedbacksRequestBuilder()
14
12
 
15
13
 
16
14
  class GetFeedbacksRequestBuilder:
17
- def __init__(self):
15
+ def __init__(self) -> None:
18
16
  get_feedbacks_request = GetFeedbacksRequest()
19
17
  get_feedbacks_request.http_method = HttpMethod.GET
20
18
  get_feedbacks_request.uri = "/v1/app/feedbacks"
21
19
  self._get_feedbacks_request = get_feedbacks_request
22
20
 
23
- def build(self) -> GetFeedbacksRequest:
24
- return self._get_feedbacks_request
25
-
26
- def page(self, page: str) -> GetFeedbacksRequestBuilder:
27
- self._get_feedbacks_request.add_query("page", page)
21
+ def page(self, page: int | None) -> "GetFeedbacksRequestBuilder":
22
+ if page is not None:
23
+ self._get_feedbacks_request.add_query("page", str(page))
28
24
  return self
29
25
 
30
- def limit(self, limit: str) -> GetFeedbacksRequestBuilder:
31
- self._get_feedbacks_request.add_query("limit", limit)
26
+ def limit(self, limit: int | None) -> "GetFeedbacksRequestBuilder":
27
+ if limit is not None:
28
+ self._get_feedbacks_request.add_query("limit", str(limit))
32
29
  return self
30
+
31
+ def build(self) -> GetFeedbacksRequest:
32
+ return self._get_feedbacks_request
@@ -0,0 +1,26 @@
1
+ from pydantic import BaseModel
2
+
3
+ from dify_oapi.core.model.base_response import BaseResponse
4
+
5
+
6
+ class FeedbackInfo(BaseModel):
7
+ """Feedback information."""
8
+
9
+ id: str | None = None
10
+ username: str | None = None
11
+ phone: str | None = None
12
+ avatar: str | None = None
13
+ display_name: str | None = None
14
+ timestamp: int | None = None
15
+ rating: str | None = None
16
+ content: str | None = None
17
+
18
+
19
+ class GetFeedbacksResponse(BaseResponse):
20
+ """Response for get feedbacks API."""
21
+
22
+ data: list[FeedbackInfo] | None = None
23
+ has_more: bool | None = None
24
+ limit: int | None = None
25
+ page: int | None = None
26
+ total: int | None = None
@@ -22,3 +22,7 @@ class GetParametersRequestBuilder:
22
22
 
23
23
  def build(self) -> GetParametersRequest:
24
24
  return self._get_parameters_request
25
+
26
+ def user(self, user: str) -> GetParametersRequestBuilder:
27
+ self._get_parameters_request.add_query("user", user)
28
+ return self
@@ -1,13 +1,17 @@
1
1
  from dify_oapi.core.model.base_response import BaseResponse
2
2
 
3
3
 
4
- class GetParameterResponse(BaseResponse):
4
+ class GetParametersResponse(BaseResponse):
5
+ """Response for get application parameters API."""
6
+
5
7
  opening_statement: str | None = None
6
8
  suggested_questions: list[str] | None = None
7
- suggested_questions_after_answer: dict | None = None
8
9
  speech_to_text: dict | None = None
10
+ text_to_speech: dict | None = None
9
11
  retriever_resource: dict | None = None
10
12
  annotation_reply: dict | None = None
13
+ more_like_this: dict | None = None
11
14
  user_input_form: list[dict] | None = None
15
+ sensitive_word_avoidance: dict | None = None
12
16
  file_upload: dict | None = None
13
17
  system_parameters: dict | None = None
@@ -0,0 +1,17 @@
1
+ from dify_oapi.core.model.base_response import BaseResponse
2
+
3
+
4
+ class GetSiteResponse(BaseResponse):
5
+ """Response for get site settings API."""
6
+
7
+ title: str | None = None
8
+ icon: str | None = None
9
+ icon_background: str | None = None
10
+ description: str | None = None
11
+ default_language: str | None = None
12
+ customize_domain: str | None = None
13
+ customize_token_strategy: str | None = None
14
+ prompt_public: bool | None = None
15
+ copyright: str | None = None
16
+ privacy_policy: str | None = None
17
+ custom_disclaimer: str | None = None