dify-oapi2 0.1.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 (255) hide show
  1. dify_oapi/__init__.py +0 -0
  2. dify_oapi/api/__init__.py +0 -0
  3. dify_oapi/api/chat/__init__.py +0 -0
  4. dify_oapi/api/chat/service.py +8 -0
  5. dify_oapi/api/chat/v1/__init__.py +0 -0
  6. dify_oapi/api/chat/v1/model/__init__.py +0 -0
  7. dify_oapi/api/chat/v1/model/audio_to_text_request.py +40 -0
  8. dify_oapi/api/chat/v1/model/audio_to_text_request_body.py +23 -0
  9. dify_oapi/api/chat/v1/model/audio_to_text_response.py +5 -0
  10. dify_oapi/api/chat/v1/model/chat_request.py +32 -0
  11. dify_oapi/api/chat/v1/model/chat_request_body.py +57 -0
  12. dify_oapi/api/chat/v1/model/chat_request_file.py +46 -0
  13. dify_oapi/api/chat/v1/model/chat_response.py +19 -0
  14. dify_oapi/api/chat/v1/model/delete_conversation_request.py +38 -0
  15. dify_oapi/api/chat/v1/model/delete_conversation_request_body.py +23 -0
  16. dify_oapi/api/chat/v1/model/delete_conversation_response.py +5 -0
  17. dify_oapi/api/chat/v1/model/get_conversation_list_request.py +48 -0
  18. dify_oapi/api/chat/v1/model/get_conversation_list_response.py +21 -0
  19. dify_oapi/api/chat/v1/model/message_history_request.py +48 -0
  20. dify_oapi/api/chat/v1/model/message_history_response.py +49 -0
  21. dify_oapi/api/chat/v1/model/message_suggested_request.py +36 -0
  22. dify_oapi/api/chat/v1/model/message_suggested_response.py +6 -0
  23. dify_oapi/api/chat/v1/model/rename_conversation_request.py +38 -0
  24. dify_oapi/api/chat/v1/model/rename_conversation_request_body.py +33 -0
  25. dify_oapi/api/chat/v1/model/rename_conversation_response.py +11 -0
  26. dify_oapi/api/chat/v1/model/stop_chat_request.py +38 -0
  27. dify_oapi/api/chat/v1/model/stop_chat_request_body.py +23 -0
  28. dify_oapi/api/chat/v1/model/stop_chat_response.py +5 -0
  29. dify_oapi/api/chat/v1/resource/__init__.py +4 -0
  30. dify_oapi/api/chat/v1/resource/audio.py +17 -0
  31. dify_oapi/api/chat/v1/resource/chat.py +68 -0
  32. dify_oapi/api/chat/v1/resource/conversation.py +59 -0
  33. dify_oapi/api/chat/v1/resource/message.py +35 -0
  34. dify_oapi/api/chat/v1/version.py +11 -0
  35. dify_oapi/api/completion/__init__.py +0 -0
  36. dify_oapi/api/completion/service.py +8 -0
  37. dify_oapi/api/completion/v1/__init__.py +0 -0
  38. dify_oapi/api/completion/v1/model/__init__.py +0 -0
  39. dify_oapi/api/completion/v1/model/completion_request.py +34 -0
  40. dify_oapi/api/completion/v1/model/completion_request_body.py +43 -0
  41. dify_oapi/api/completion/v1/model/completion_request_body_input.py +38 -0
  42. dify_oapi/api/completion/v1/model/completion_request_file.py +49 -0
  43. dify_oapi/api/completion/v1/model/completion_response.py +18 -0
  44. dify_oapi/api/completion/v1/model/stop_completion_request.py +38 -0
  45. dify_oapi/api/completion/v1/model/stop_completion_request_body.py +23 -0
  46. dify_oapi/api/completion/v1/model/stop_completion_response.py +5 -0
  47. dify_oapi/api/completion/v1/resource/__init__.py +1 -0
  48. dify_oapi/api/completion/v1/resource/completion.py +84 -0
  49. dify_oapi/api/completion/v1/version.py +8 -0
  50. dify_oapi/api/dify/__init__.py +0 -0
  51. dify_oapi/api/dify/service.py +8 -0
  52. dify_oapi/api/dify/v1/__init__.py +0 -0
  53. dify_oapi/api/dify/v1/model/__init__.py +0 -0
  54. dify_oapi/api/dify/v1/model/get_info_request.py +30 -0
  55. dify_oapi/api/dify/v1/model/get_info_response.py +7 -0
  56. dify_oapi/api/dify/v1/model/get_meta_request.py +30 -0
  57. dify_oapi/api/dify/v1/model/get_meta_response.py +19 -0
  58. dify_oapi/api/dify/v1/model/get_parameter_request.py +30 -0
  59. dify_oapi/api/dify/v1/model/get_parameter_response.py +13 -0
  60. dify_oapi/api/dify/v1/model/message_feedback_request.py +38 -0
  61. dify_oapi/api/dify/v1/model/message_feedback_request_body.py +30 -0
  62. dify_oapi/api/dify/v1/model/message_feedback_response.py +5 -0
  63. dify_oapi/api/dify/v1/model/text_to_audio_request.py +32 -0
  64. dify_oapi/api/dify/v1/model/text_to_audio_request_body.py +33 -0
  65. dify_oapi/api/dify/v1/model/text_to_audio_response.py +4 -0
  66. dify_oapi/api/dify/v1/model/upload_file_body.py +23 -0
  67. dify_oapi/api/dify/v1/model/upload_file_request.py +42 -0
  68. dify_oapi/api/dify/v1/model/upload_file_response.py +11 -0
  69. dify_oapi/api/dify/v1/resource/__init__.py +6 -0
  70. dify_oapi/api/dify/v1/resource/audio.py +17 -0
  71. dify_oapi/api/dify/v1/resource/file.py +17 -0
  72. dify_oapi/api/dify/v1/resource/info.py +19 -0
  73. dify_oapi/api/dify/v1/resource/message.py +21 -0
  74. dify_oapi/api/dify/v1/resource/meta.py +17 -0
  75. dify_oapi/api/dify/v1/resource/parameter.py +19 -0
  76. dify_oapi/api/dify/v1/version.py +13 -0
  77. dify_oapi/api/knowledge_base/__init__.py +0 -0
  78. dify_oapi/api/knowledge_base/service.py +8 -0
  79. dify_oapi/api/knowledge_base/v1/__init__.py +0 -0
  80. dify_oapi/api/knowledge_base/v1/model/__init__.py +0 -0
  81. dify_oapi/api/knowledge_base/v1/model/dataset/__init__.py +49 -0
  82. dify_oapi/api/knowledge_base/v1/model/dataset/create_request.py +32 -0
  83. dify_oapi/api/knowledge_base/v1/model/dataset/create_request_body.py +73 -0
  84. dify_oapi/api/knowledge_base/v1/model/dataset/create_response.py +11 -0
  85. dify_oapi/api/knowledge_base/v1/model/dataset/dataset_info.py +150 -0
  86. dify_oapi/api/knowledge_base/v1/model/dataset/delete_request.py +30 -0
  87. dify_oapi/api/knowledge_base/v1/model/dataset/delete_response.py +9 -0
  88. dify_oapi/api/knowledge_base/v1/model/dataset/external_knowledge_info.py +38 -0
  89. dify_oapi/api/knowledge_base/v1/model/dataset/filter_condition.py +72 -0
  90. dify_oapi/api/knowledge_base/v1/model/dataset/get_request.py +30 -0
  91. dify_oapi/api/knowledge_base/v1/model/dataset/get_response.py +11 -0
  92. dify_oapi/api/knowledge_base/v1/model/dataset/list_request.py +45 -0
  93. dify_oapi/api/knowledge_base/v1/model/dataset/list_response.py +13 -0
  94. dify_oapi/api/knowledge_base/v1/model/dataset/metadata_filtering_conditions.py +30 -0
  95. dify_oapi/api/knowledge_base/v1/model/dataset/reranking_model.py +28 -0
  96. dify_oapi/api/knowledge_base/v1/model/dataset/retrieval_model.py +147 -0
  97. dify_oapi/api/knowledge_base/v1/model/dataset/retrieve_request.py +38 -0
  98. dify_oapi/api/knowledge_base/v1/model/dataset/retrieve_request_body.py +38 -0
  99. dify_oapi/api/knowledge_base/v1/model/dataset/retrieve_response.py +53 -0
  100. dify_oapi/api/knowledge_base/v1/model/dataset/update_request.py +38 -0
  101. dify_oapi/api/knowledge_base/v1/model/dataset/update_request_body.py +58 -0
  102. dify_oapi/api/knowledge_base/v1/model/dataset/update_response.py +11 -0
  103. dify_oapi/api/knowledge_base/v1/model/document/__init__.py +0 -0
  104. dify_oapi/api/knowledge_base/v1/model/document/create_by_file_request.py +53 -0
  105. dify_oapi/api/knowledge_base/v1/model/document/create_by_file_request_body.py +31 -0
  106. dify_oapi/api/knowledge_base/v1/model/document/create_by_file_request_body_data.py +78 -0
  107. dify_oapi/api/knowledge_base/v1/model/document/create_by_file_response.py +12 -0
  108. dify_oapi/api/knowledge_base/v1/model/document/create_by_text_request.py +38 -0
  109. dify_oapi/api/knowledge_base/v1/model/document/create_by_text_request_body.py +80 -0
  110. dify_oapi/api/knowledge_base/v1/model/document/create_by_text_response.py +12 -0
  111. dify_oapi/api/knowledge_base/v1/model/document/data_source_info.py +30 -0
  112. dify_oapi/api/knowledge_base/v1/model/document/delete_request.py +38 -0
  113. dify_oapi/api/knowledge_base/v1/model/document/delete_response.py +9 -0
  114. dify_oapi/api/knowledge_base/v1/model/document/document_info.py +164 -0
  115. dify_oapi/api/knowledge_base/v1/model/document/get_request.py +40 -0
  116. dify_oapi/api/knowledge_base/v1/model/document/get_response.py +9 -0
  117. dify_oapi/api/knowledge_base/v1/model/document/get_upload_file_request.py +38 -0
  118. dify_oapi/api/knowledge_base/v1/model/document/get_upload_file_response.py +11 -0
  119. dify_oapi/api/knowledge_base/v1/model/document/indexing_status_info.py +80 -0
  120. dify_oapi/api/knowledge_base/v1/model/document/indexing_status_request.py +36 -0
  121. dify_oapi/api/knowledge_base/v1/model/document/indexing_status_response.py +11 -0
  122. dify_oapi/api/knowledge_base/v1/model/document/list_request.py +42 -0
  123. dify_oapi/api/knowledge_base/v1/model/document/list_response.py +15 -0
  124. dify_oapi/api/knowledge_base/v1/model/document/pre_processing_rule.py +32 -0
  125. dify_oapi/api/knowledge_base/v1/model/document/process_rule.py +34 -0
  126. dify_oapi/api/knowledge_base/v1/model/document/retrieval_model.py +54 -0
  127. dify_oapi/api/knowledge_base/v1/model/document/rules.py +31 -0
  128. dify_oapi/api/knowledge_base/v1/model/document/segmentation.py +35 -0
  129. dify_oapi/api/knowledge_base/v1/model/document/subchunk_segmentation.py +35 -0
  130. dify_oapi/api/knowledge_base/v1/model/document/update_by_file_request.py +53 -0
  131. dify_oapi/api/knowledge_base/v1/model/document/update_by_file_request_body.py +26 -0
  132. dify_oapi/api/knowledge_base/v1/model/document/update_by_file_request_body_data.py +40 -0
  133. dify_oapi/api/knowledge_base/v1/model/document/update_by_file_response.py +12 -0
  134. dify_oapi/api/knowledge_base/v1/model/document/update_by_text_request.py +55 -0
  135. dify_oapi/api/knowledge_base/v1/model/document/update_by_text_request_body.py +46 -0
  136. dify_oapi/api/knowledge_base/v1/model/document/update_by_text_response.py +14 -0
  137. dify_oapi/api/knowledge_base/v1/model/document/update_status_request.py +55 -0
  138. dify_oapi/api/knowledge_base/v1/model/document/update_status_request_body.py +32 -0
  139. dify_oapi/api/knowledge_base/v1/model/document/update_status_response.py +9 -0
  140. dify_oapi/api/knowledge_base/v1/model/document/upload_file_info.py +65 -0
  141. dify_oapi/api/knowledge_base/v1/model/metadata/__init__.py +35 -0
  142. dify_oapi/api/knowledge_base/v1/model/metadata/create_request.py +38 -0
  143. dify_oapi/api/knowledge_base/v1/model/metadata/create_request_body.py +31 -0
  144. dify_oapi/api/knowledge_base/v1/model/metadata/create_response.py +13 -0
  145. dify_oapi/api/knowledge_base/v1/model/metadata/delete_request.py +36 -0
  146. dify_oapi/api/knowledge_base/v1/model/metadata/delete_response.py +7 -0
  147. dify_oapi/api/knowledge_base/v1/model/metadata/list_request.py +30 -0
  148. dify_oapi/api/knowledge_base/v1/model/metadata/list_response.py +9 -0
  149. dify_oapi/api/knowledge_base/v1/model/metadata/metadata_info.py +38 -0
  150. dify_oapi/api/knowledge_base/v1/model/metadata/toggle_builtin_request.py +36 -0
  151. dify_oapi/api/knowledge_base/v1/model/metadata/toggle_builtin_response.py +7 -0
  152. dify_oapi/api/knowledge_base/v1/model/metadata/update_document_request.py +38 -0
  153. dify_oapi/api/knowledge_base/v1/model/metadata/update_document_request_body.py +79 -0
  154. dify_oapi/api/knowledge_base/v1/model/metadata/update_document_response.py +7 -0
  155. dify_oapi/api/knowledge_base/v1/model/metadata/update_request.py +44 -0
  156. dify_oapi/api/knowledge_base/v1/model/metadata/update_request_body.py +24 -0
  157. dify_oapi/api/knowledge_base/v1/model/metadata/update_response.py +13 -0
  158. dify_oapi/api/knowledge_base/v1/model/segment/__init__.py +77 -0
  159. dify_oapi/api/knowledge_base/v1/model/segment/child_chunk_info.py +88 -0
  160. dify_oapi/api/knowledge_base/v1/model/segment/create_child_chunk_request.py +52 -0
  161. dify_oapi/api/knowledge_base/v1/model/segment/create_child_chunk_request_body.py +23 -0
  162. dify_oapi/api/knowledge_base/v1/model/segment/create_child_chunk_response.py +7 -0
  163. dify_oapi/api/knowledge_base/v1/model/segment/create_request.py +42 -0
  164. dify_oapi/api/knowledge_base/v1/model/segment/create_request_body.py +25 -0
  165. dify_oapi/api/knowledge_base/v1/model/segment/create_response.py +8 -0
  166. dify_oapi/api/knowledge_base/v1/model/segment/delete_child_chunk_request.py +50 -0
  167. dify_oapi/api/knowledge_base/v1/model/segment/delete_child_chunk_response.py +5 -0
  168. dify_oapi/api/knowledge_base/v1/model/segment/delete_request.py +40 -0
  169. dify_oapi/api/knowledge_base/v1/model/segment/delete_response.py +5 -0
  170. dify_oapi/api/knowledge_base/v1/model/segment/get_request.py +40 -0
  171. dify_oapi/api/knowledge_base/v1/model/segment/get_response.py +8 -0
  172. dify_oapi/api/knowledge_base/v1/model/segment/list_child_chunks_request.py +56 -0
  173. dify_oapi/api/knowledge_base/v1/model/segment/list_child_chunks_response.py +11 -0
  174. dify_oapi/api/knowledge_base/v1/model/segment/list_request.py +50 -0
  175. dify_oapi/api/knowledge_base/v1/model/segment/list_response.py +12 -0
  176. dify_oapi/api/knowledge_base/v1/model/segment/segment_data.py +43 -0
  177. dify_oapi/api/knowledge_base/v1/model/segment/segment_info.py +123 -0
  178. dify_oapi/api/knowledge_base/v1/model/segment/update_child_chunk_request.py +58 -0
  179. dify_oapi/api/knowledge_base/v1/model/segment/update_child_chunk_request_body.py +23 -0
  180. dify_oapi/api/knowledge_base/v1/model/segment/update_child_chunk_response.py +7 -0
  181. dify_oapi/api/knowledge_base/v1/model/segment/update_request.py +48 -0
  182. dify_oapi/api/knowledge_base/v1/model/segment/update_request_body.py +25 -0
  183. dify_oapi/api/knowledge_base/v1/model/segment/update_response.py +8 -0
  184. dify_oapi/api/knowledge_base/v1/model/tag/__init__.py +41 -0
  185. dify_oapi/api/knowledge_base/v1/model/tag/bind_request.py +32 -0
  186. dify_oapi/api/knowledge_base/v1/model/tag/bind_request_body.py +29 -0
  187. dify_oapi/api/knowledge_base/v1/model/tag/bind_response.py +7 -0
  188. dify_oapi/api/knowledge_base/v1/model/tag/create_request.py +32 -0
  189. dify_oapi/api/knowledge_base/v1/model/tag/create_request_body.py +24 -0
  190. dify_oapi/api/knowledge_base/v1/model/tag/create_response.py +16 -0
  191. dify_oapi/api/knowledge_base/v1/model/tag/delete_request.py +32 -0
  192. dify_oapi/api/knowledge_base/v1/model/tag/delete_request_body.py +24 -0
  193. dify_oapi/api/knowledge_base/v1/model/tag/delete_response.py +7 -0
  194. dify_oapi/api/knowledge_base/v1/model/tag/list_request.py +24 -0
  195. dify_oapi/api/knowledge_base/v1/model/tag/list_response.py +19 -0
  196. dify_oapi/api/knowledge_base/v1/model/tag/query_bound_request.py +30 -0
  197. dify_oapi/api/knowledge_base/v1/model/tag/query_bound_response.py +9 -0
  198. dify_oapi/api/knowledge_base/v1/model/tag/tag_info.py +38 -0
  199. dify_oapi/api/knowledge_base/v1/model/tag/unbind_request.py +32 -0
  200. dify_oapi/api/knowledge_base/v1/model/tag/unbind_request_body.py +29 -0
  201. dify_oapi/api/knowledge_base/v1/model/tag/unbind_response.py +7 -0
  202. dify_oapi/api/knowledge_base/v1/model/tag/update_request.py +32 -0
  203. dify_oapi/api/knowledge_base/v1/model/tag/update_request_body.py +29 -0
  204. dify_oapi/api/knowledge_base/v1/model/tag/update_response.py +19 -0
  205. dify_oapi/api/knowledge_base/v1/resource/__init__.py +7 -0
  206. dify_oapi/api/knowledge_base/v1/resource/dataset.py +58 -0
  207. dify_oapi/api/knowledge_base/v1/resource/document.py +107 -0
  208. dify_oapi/api/knowledge_base/v1/resource/metadata.py +65 -0
  209. dify_oapi/api/knowledge_base/v1/resource/segment.py +110 -0
  210. dify_oapi/api/knowledge_base/v1/resource/tag.py +65 -0
  211. dify_oapi/api/knowledge_base/v1/version.py +12 -0
  212. dify_oapi/api/workflow/__init__.py +0 -0
  213. dify_oapi/api/workflow/service.py +8 -0
  214. dify_oapi/api/workflow/v1/__init__.py +0 -0
  215. dify_oapi/api/workflow/v1/model/__init__.py +0 -0
  216. dify_oapi/api/workflow/v1/model/get_workflow_log_request.py +50 -0
  217. dify_oapi/api/workflow/v1/model/get_workflow_log_response.py +42 -0
  218. dify_oapi/api/workflow/v1/model/get_workflow_result_request.py +30 -0
  219. dify_oapi/api/workflow/v1/model/get_workflow_result_response.py +17 -0
  220. dify_oapi/api/workflow/v1/model/run_workflow_request.py +32 -0
  221. dify_oapi/api/workflow/v1/model/run_workflow_request_body.py +42 -0
  222. dify_oapi/api/workflow/v1/model/run_workflow_request_file.py +50 -0
  223. dify_oapi/api/workflow/v1/model/run_workflow_response.py +24 -0
  224. dify_oapi/api/workflow/v1/model/stop_workflow_request.py +38 -0
  225. dify_oapi/api/workflow/v1/model/stop_workflow_request_body.py +23 -0
  226. dify_oapi/api/workflow/v1/model/stop_workflow_response.py +5 -0
  227. dify_oapi/api/workflow/v1/resource/__init__.py +1 -0
  228. dify_oapi/api/workflow/v1/resource/workflow.py +102 -0
  229. dify_oapi/api/workflow/v1/version.py +8 -0
  230. dify_oapi/client.py +97 -0
  231. dify_oapi/core/__init__.py +0 -0
  232. dify_oapi/core/const.py +15 -0
  233. dify_oapi/core/enum.py +21 -0
  234. dify_oapi/core/http/__init__.py +0 -0
  235. dify_oapi/core/http/transport/__init__.py +4 -0
  236. dify_oapi/core/http/transport/_misc.py +145 -0
  237. dify_oapi/core/http/transport/async_transport.py +217 -0
  238. dify_oapi/core/http/transport/sync_transport.py +220 -0
  239. dify_oapi/core/json.py +61 -0
  240. dify_oapi/core/log.py +8 -0
  241. dify_oapi/core/misc.py +41 -0
  242. dify_oapi/core/model/__init__.py +0 -0
  243. dify_oapi/core/model/base_request.py +21 -0
  244. dify_oapi/core/model/base_response.py +27 -0
  245. dify_oapi/core/model/config.py +9 -0
  246. dify_oapi/core/model/raw_request.py +5 -0
  247. dify_oapi/core/model/raw_response.py +17 -0
  248. dify_oapi/core/model/request_option.py +27 -0
  249. dify_oapi/core/type.py +5 -0
  250. dify_oapi/core/utils/__init__.py +0 -0
  251. dify_oapi/core/utils/strings.py +8 -0
  252. dify_oapi2-0.1.0.dist-info/LICENSE +21 -0
  253. dify_oapi2-0.1.0.dist-info/METADATA +295 -0
  254. dify_oapi2-0.1.0.dist-info/RECORD +255 -0
  255. dify_oapi2-0.1.0.dist-info/WHEEL +4 -0
@@ -0,0 +1,23 @@
1
+ from __future__ import annotations
2
+
3
+ from pydantic import BaseModel
4
+
5
+
6
+ class StopChatRequestBody(BaseModel):
7
+ user: str | None = None
8
+
9
+ @staticmethod
10
+ def builder() -> StopChatRequestBodyBuilder:
11
+ return StopChatRequestBodyBuilder()
12
+
13
+
14
+ class StopChatRequestBodyBuilder:
15
+ def __init__(self):
16
+ self._stop_chat_request_body = StopChatRequestBody()
17
+
18
+ def user(self, user: str) -> StopChatRequestBodyBuilder:
19
+ self._stop_chat_request_body.user = user
20
+ return self
21
+
22
+ def build(self) -> StopChatRequestBody:
23
+ return self._stop_chat_request_body
@@ -0,0 +1,5 @@
1
+ from dify_oapi.core.model.base_response import BaseResponse
2
+
3
+
4
+ class StopChatResponse(BaseResponse):
5
+ result: str | None = None
@@ -0,0 +1,4 @@
1
+ from .chat import * # noqa F403
2
+ from .conversation import * # noqa 403
3
+ from .message import * # noqa 403
4
+ from .audio import * # noqa 403
@@ -0,0 +1,17 @@
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.audio_to_text_request import AudioToTextRequest
6
+ from ..model.audio_to_text_response import AudioToTextResponse
7
+
8
+
9
+ class Audio:
10
+ def __init__(self, config: Config) -> None:
11
+ self.config: Config = config
12
+
13
+ def to_text(self, request: AudioToTextRequest, option: RequestOption | None = None) -> AudioToTextResponse:
14
+ return Transport.execute(self.config, request, unmarshal_as=AudioToTextResponse, option=option)
15
+
16
+ async def ato_text(self, request: AudioToTextRequest, option: RequestOption | None = None) -> AudioToTextResponse:
17
+ return await ATransport.aexecute(self.config, request, unmarshal_as=AudioToTextResponse, option=option)
@@ -0,0 +1,68 @@
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.chat_request import ChatRequest
9
+ from ..model.chat_response import ChatResponse
10
+ from ..model.stop_chat_request import StopChatRequest
11
+ from ..model.stop_chat_response import StopChatResponse
12
+
13
+
14
+ class Chat:
15
+ def __init__(self, config: Config) -> None:
16
+ self.config: Config = config
17
+
18
+ @overload
19
+ def chat(
20
+ self, request: ChatRequest, option: RequestOption | None, stream: Literal[True]
21
+ ) -> Generator[bytes, None, None]: ...
22
+
23
+ @overload
24
+ def chat(self, request: ChatRequest, option: RequestOption | None, stream: Literal[False]) -> ChatResponse: ...
25
+
26
+ @overload
27
+ def chat(self, request: ChatRequest, option: RequestOption | None) -> ChatResponse: ...
28
+
29
+ def chat(
30
+ self,
31
+ request: ChatRequest,
32
+ option: RequestOption | None = None,
33
+ stream: bool = False,
34
+ ):
35
+ if stream:
36
+ return Transport.execute(self.config, request, option=option, stream=True)
37
+ else:
38
+ return Transport.execute(self.config, request, unmarshal_as=ChatResponse, option=option)
39
+
40
+ @overload
41
+ async def achat(
42
+ self, request: ChatRequest, option: RequestOption | None, stream: Literal[True]
43
+ ) -> AsyncGenerator[bytes, None]: ...
44
+
45
+ @overload
46
+ async def achat(
47
+ self, request: ChatRequest, option: RequestOption | None, stream: Literal[False]
48
+ ) -> ChatResponse: ...
49
+
50
+ @overload
51
+ async def achat(self, request: ChatRequest, option: RequestOption | None) -> ChatResponse: ...
52
+
53
+ async def achat(
54
+ self,
55
+ request: ChatRequest,
56
+ option: RequestOption | None = None,
57
+ stream: bool = False,
58
+ ):
59
+ if stream:
60
+ return await ATransport.aexecute(self.config, request, option=option, stream=True)
61
+ else:
62
+ return await ATransport.aexecute(self.config, request, unmarshal_as=ChatResponse, option=option)
63
+
64
+ def stop(self, request: StopChatRequest, option: RequestOption | None = None) -> StopChatResponse:
65
+ return Transport.execute(self.config, request, unmarshal_as=StopChatResponse, option=option)
66
+
67
+ async def astop(self, request: StopChatRequest, option: RequestOption | None = None) -> StopChatResponse:
68
+ return await ATransport.aexecute(self.config, request, unmarshal_as=StopChatResponse, option=option)
@@ -0,0 +1,59 @@
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_list_request import GetConversationListRequest
8
+ from ..model.get_conversation_list_response import GetConversationListResponse
9
+ from ..model.rename_conversation_request import RenameConversationRequest
10
+ from ..model.rename_conversation_response import RenameConversationResponse
11
+
12
+
13
+ class Conversation:
14
+ def __init__(self, config: Config) -> None:
15
+ self.config: Config = config
16
+
17
+ def list(
18
+ self, request: GetConversationListRequest, option: RequestOption | None = None
19
+ ) -> GetConversationListResponse:
20
+ # Send request
21
+ return Transport.execute(
22
+ self.config,
23
+ request,
24
+ unmarshal_as=GetConversationListResponse,
25
+ option=option,
26
+ )
27
+
28
+ async def alist(
29
+ self, request: GetConversationListRequest, option: RequestOption | None = None
30
+ ) -> GetConversationListResponse:
31
+ # Send request
32
+ return await ATransport.aexecute(
33
+ self.config,
34
+ request,
35
+ unmarshal_as=GetConversationListResponse,
36
+ option=option,
37
+ )
38
+
39
+ def delete(
40
+ self, request: DeleteConversationRequest, option: RequestOption | None = None
41
+ ) -> DeleteConversationResponse:
42
+ return Transport.execute(self.config, request, unmarshal_as=DeleteConversationResponse, option=option)
43
+
44
+ async def adelete(
45
+ self, request: DeleteConversationRequest, option: RequestOption | None = None
46
+ ) -> DeleteConversationResponse:
47
+ # Send request
48
+ return await ATransport.aexecute(self.config, request, unmarshal_as=DeleteConversationResponse, option=option)
49
+
50
+ def rename(
51
+ self, request: RenameConversationRequest, option: RequestOption | None = None
52
+ ) -> RenameConversationResponse:
53
+ return Transport.execute(self.config, request, unmarshal_as=RenameConversationResponse, option=option)
54
+
55
+ async def arename(
56
+ self, request: RenameConversationRequest, option: RequestOption | None = None
57
+ ) -> RenameConversationResponse:
58
+ # Send request
59
+ return await ATransport.aexecute(self.config, request, unmarshal_as=RenameConversationResponse, option=option)
@@ -0,0 +1,35 @@
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.message_history_request import MessageHistoryRequest
6
+ from ..model.message_history_response import MessageHistoryResponse
7
+ from ..model.message_suggested_request import MessageSuggestedRequest
8
+ from ..model.message_suggested_response import MessageSuggestedResponse
9
+
10
+
11
+ class Message:
12
+ def __init__(self, config: Config) -> None:
13
+ self.config: Config = config
14
+
15
+ def suggested(
16
+ self, request: MessageSuggestedRequest, option: RequestOption | None = None
17
+ ) -> MessageSuggestedResponse:
18
+ # Send request
19
+ return Transport.execute(self.config, request, unmarshal_as=MessageSuggestedResponse, option=option)
20
+
21
+ async def asuggested(
22
+ self, request: MessageSuggestedRequest, option: RequestOption | None = None
23
+ ) -> MessageSuggestedResponse:
24
+ # Send request
25
+ return await ATransport.aexecute(self.config, request, unmarshal_as=MessageSuggestedResponse, option=option)
26
+
27
+ def history(self, request: MessageHistoryRequest, option: RequestOption | None = None) -> MessageHistoryResponse:
28
+ # Send request
29
+ return Transport.execute(self.config, request, unmarshal_as=MessageHistoryResponse, option=option)
30
+
31
+ async def ahistory(
32
+ self, request: MessageHistoryRequest, option: RequestOption | None = None
33
+ ) -> MessageHistoryResponse:
34
+ # Send request
35
+ return await ATransport.aexecute(self.config, request, unmarshal_as=MessageHistoryResponse, option=option)
@@ -0,0 +1,11 @@
1
+ from dify_oapi.core.model.config import Config
2
+
3
+ from .resource import Audio, Chat, Conversation, Message
4
+
5
+
6
+ class V1:
7
+ def __init__(self, config: Config):
8
+ self.chat: Chat = Chat(config)
9
+ self.conversation: Conversation = Conversation(config)
10
+ self.message: Message = Message(config)
11
+ self.audio: Audio = Audio(config)
File without changes
@@ -0,0 +1,8 @@
1
+ from dify_oapi.core.model.config import Config
2
+
3
+ from .v1.version import V1
4
+
5
+
6
+ class CompletionService:
7
+ def __init__(self, config: Config) -> None:
8
+ self.v1: V1 = V1(config)
File without changes
File without changes
@@ -0,0 +1,34 @@
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 .completion_request_body import CompletionRequestBody
7
+
8
+
9
+ class CompletionRequest(BaseRequest):
10
+ def __init__(self) -> None:
11
+ super().__init__()
12
+ self.request_body: CompletionRequestBody | None = None
13
+
14
+ @staticmethod
15
+ def builder() -> CompletionRequestBuilder:
16
+ return CompletionRequestBuilder()
17
+
18
+
19
+ class CompletionRequestBuilder:
20
+ def __init__(self) -> None:
21
+ completion_request = CompletionRequest()
22
+ completion_request.http_method = HttpMethod.POST
23
+ completion_request.uri = "/v1/completion-messages"
24
+ self._completion_request: CompletionRequest = completion_request
25
+
26
+ def request_body(self, request_body: CompletionRequestBody) -> CompletionRequestBuilder:
27
+ self._completion_request.request_body = request_body
28
+ self._completion_request.body = request_body.model_dump(exclude_none=True, mode="json")
29
+ if request_body.inputs and (custom_inputs := request_body.inputs.custom_inputs):
30
+ self._completion_request.body["inputs"].update(custom_inputs)
31
+ return self
32
+
33
+ def build(self) -> CompletionRequest:
34
+ return self._completion_request
@@ -0,0 +1,43 @@
1
+ from __future__ import annotations
2
+
3
+ from pydantic import BaseModel
4
+
5
+ from .completion_request_body_input import CompletionRequestBodyInput
6
+ from .completion_request_file import CompletionRequestFile
7
+
8
+
9
+ class CompletionRequestBody(BaseModel):
10
+ inputs: CompletionRequestBodyInput | None = None
11
+ response_mode: str | None = None
12
+ user: str | None = None
13
+ files: list[CompletionRequestFile] | None = None
14
+
15
+ @staticmethod
16
+ def builder() -> CompletionRequestBodyBuilder:
17
+ return CompletionRequestBodyBuilder()
18
+
19
+
20
+ class CompletionRequestBodyBuilder:
21
+ def __init__(self):
22
+ self._completion_request_body = CompletionRequestBody()
23
+
24
+ def inputs(self, inputs: CompletionRequestBodyInput) -> CompletionRequestBodyBuilder:
25
+ self._completion_request_body.inputs = inputs
26
+ return self
27
+
28
+ def response_mode(self, response_mode: str) -> CompletionRequestBodyBuilder:
29
+ if response_mode not in ["streaming", "blocking"]:
30
+ raise ValueError('response_mode must be either "streaming" or "blocking"')
31
+ self._completion_request_body.response_mode = response_mode
32
+ return self
33
+
34
+ def user(self, user: str) -> CompletionRequestBodyBuilder:
35
+ self._completion_request_body.user = user
36
+ return self
37
+
38
+ def files(self, files: list[CompletionRequestFile]) -> CompletionRequestBodyBuilder:
39
+ self._completion_request_body.files = files
40
+ return self
41
+
42
+ def build(self):
43
+ return self._completion_request_body
@@ -0,0 +1,38 @@
1
+ from __future__ import annotations
2
+
3
+ from typing import Any
4
+
5
+ from pydantic import BaseModel, Field
6
+
7
+
8
+ class CompletionRequestBodyInput(BaseModel):
9
+ query: str | None = None
10
+ custom_inputs: dict[str, Any] | None = Field(None, exclude=True)
11
+
12
+ @staticmethod
13
+ def builder() -> CompletionRequestBodyInputBuilder:
14
+ return CompletionRequestBodyInputBuilder()
15
+
16
+
17
+ class CompletionRequestBodyInputBuilder:
18
+ def __init__(self):
19
+ self._completion_request_body_input = CompletionRequestBodyInput()
20
+
21
+ def build(self) -> CompletionRequestBodyInput:
22
+ if self._completion_request_body_input.query is None:
23
+ raise ValueError("CompletionRequestBodyInput.query is None")
24
+ return self._completion_request_body_input
25
+
26
+ def query(self, query: str):
27
+ self._completion_request_body_input.query = query
28
+ return self
29
+
30
+ def custom_input(self, key: str, value: Any):
31
+ if self._completion_request_body_input.custom_inputs is None:
32
+ self._completion_request_body_input.custom_inputs = {}
33
+ self._completion_request_body_input.custom_inputs[key] = value
34
+ return self
35
+
36
+ def custom_inputs(self, custom_inputs: dict[str, Any]):
37
+ self._completion_request_body_input.custom_inputs = custom_inputs
38
+ return self
@@ -0,0 +1,49 @@
1
+ from __future__ import annotations
2
+
3
+ from pydantic import BaseModel, HttpUrl
4
+
5
+
6
+ class CompletionRequestFile(BaseModel):
7
+ type: str | None = None
8
+ transfer_method: str | None = None
9
+ url: HttpUrl | None = None
10
+ upload_file_id: str | None = None
11
+
12
+ @staticmethod
13
+ def builder() -> CompletionRequestFileBuilder:
14
+ return CompletionRequestFileBuilder()
15
+
16
+
17
+ class CompletionRequestFileBuilder:
18
+ def __init__(self):
19
+ self._completion_request_file = CompletionRequestFile()
20
+
21
+ def type(self, type_: str):
22
+ if type_ != "image":
23
+ raise ValueError("Only 'image' is supported")
24
+ self._completion_request_file.type = type_
25
+ return self
26
+
27
+ def transfer_method(self, transfer_method: str):
28
+ if transfer_method not in ("remote_url", "local_file"):
29
+ raise ValueError("Only 'remote_url' and 'local_file' are supported")
30
+ self._completion_request_file.transfer_method = transfer_method
31
+ return self
32
+
33
+ def url(self, url: str):
34
+ self._completion_request_file.url = HttpUrl(url=url)
35
+ return self
36
+
37
+ def upload_file_id(self, upload_file_id: str):
38
+ self._completion_request_file.upload_file_id = upload_file_id
39
+ return self
40
+
41
+ def build(self) -> CompletionRequestFile:
42
+ if self._completion_request_file.transfer_method == "remote_url" and self._completion_request_file.url is None:
43
+ raise ValueError("Url needs to be set when transfer_method is set as remote_url")
44
+ if (
45
+ self._completion_request_file.transfer_method == "local_file"
46
+ and self._completion_request_file.upload_file_id is None
47
+ ):
48
+ raise ValueError("Upload file_id needs to be set when transfer_method is set as local_file")
49
+ return self._completion_request_file
@@ -0,0 +1,18 @@
1
+ from __future__ import annotations
2
+
3
+ from pydantic import BaseModel
4
+
5
+ from dify_oapi.core.model.base_response import BaseResponse
6
+
7
+
8
+ class CompletionResponse(BaseResponse):
9
+ message_id: str | None = None
10
+ mode: str | None = None
11
+ answer: str | None = None
12
+ metadata: CompletionResponseMetadata | None = None
13
+ created_at: int | None = None
14
+
15
+
16
+ class CompletionResponseMetadata(BaseModel):
17
+ usage: dict | None = None
18
+ retriever_resources: list[dict] | None = None
@@ -0,0 +1,38 @@
1
+ from __future__ import annotations
2
+
3
+ from dify_oapi.core.enum import HttpMethod
4
+ from dify_oapi.core.model.base_request import BaseRequest
5
+
6
+ from .stop_completion_request_body import StopCompletionRequestBody
7
+
8
+
9
+ class StopCompletionRequest(BaseRequest):
10
+ def __init__(self) -> None:
11
+ super().__init__()
12
+ self.task_id: str | None = None
13
+ self.request_body: StopCompletionRequestBody | None = None
14
+
15
+ @staticmethod
16
+ def builder() -> StopCompletionRequestBuilder:
17
+ return StopCompletionRequestBuilder()
18
+
19
+
20
+ class StopCompletionRequestBuilder:
21
+ def __init__(self) -> None:
22
+ stop_completion_request = StopCompletionRequest()
23
+ stop_completion_request.http_method = HttpMethod.POST
24
+ stop_completion_request.uri = "/v1/completion-messages/:task_id/stop"
25
+ self._stop_completion_request: StopCompletionRequest = stop_completion_request
26
+
27
+ def task_id(self, task_id: str) -> StopCompletionRequestBuilder:
28
+ self._stop_completion_request.task_id = task_id
29
+ self._stop_completion_request.paths["task_id"] = str(task_id)
30
+ return self
31
+
32
+ def request_body(self, request_body: StopCompletionRequestBody) -> StopCompletionRequestBuilder:
33
+ self._stop_completion_request.request_body = request_body
34
+ self._stop_completion_request.body = request_body.model_dump(exclude_none=True, mode="json")
35
+ return self
36
+
37
+ def build(self) -> StopCompletionRequest:
38
+ return self._stop_completion_request
@@ -0,0 +1,23 @@
1
+ from __future__ import annotations
2
+
3
+ from pydantic import BaseModel
4
+
5
+
6
+ class StopCompletionRequestBody(BaseModel):
7
+ user: str | None = None
8
+
9
+ @staticmethod
10
+ def builder() -> StopCompletionRequestBodyBuilder:
11
+ return StopCompletionRequestBodyBuilder()
12
+
13
+
14
+ class StopCompletionRequestBodyBuilder:
15
+ def __init__(self):
16
+ self._stop_completion_request_body = StopCompletionRequestBody()
17
+
18
+ def user(self, user: str) -> StopCompletionRequestBodyBuilder:
19
+ self._stop_completion_request_body.user = user
20
+ return self
21
+
22
+ def build(self) -> StopCompletionRequestBody:
23
+ return self._stop_completion_request_body
@@ -0,0 +1,5 @@
1
+ from dify_oapi.core.model.base_response import BaseResponse
2
+
3
+
4
+ class StopCompletionResponse(BaseResponse):
5
+ result: str | None = None
@@ -0,0 +1 @@
1
+ from .completion import * # noqa 403
@@ -0,0 +1,84 @@
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.completion_request import CompletionRequest
9
+ from ..model.completion_response import CompletionResponse
10
+ from ..model.stop_completion_request import StopCompletionRequest
11
+ from ..model.stop_completion_response import StopCompletionResponse
12
+
13
+
14
+ class Completion:
15
+ def __init__(self, config: Config) -> None:
16
+ self.config: Config = config
17
+
18
+ @overload
19
+ def completion(
20
+ self,
21
+ request: CompletionRequest,
22
+ option: RequestOption | None,
23
+ stream: Literal[True],
24
+ ) -> Generator[bytes, None, None]: ...
25
+
26
+ @overload
27
+ def completion(
28
+ self,
29
+ request: CompletionRequest,
30
+ option: RequestOption | None,
31
+ stream: Literal[False],
32
+ ) -> CompletionResponse: ...
33
+
34
+ @overload
35
+ def completion(self, request: CompletionRequest, option: RequestOption | None) -> CompletionResponse: ...
36
+
37
+ def completion(
38
+ self,
39
+ request: CompletionRequest,
40
+ option: RequestOption | None = None,
41
+ stream: bool = False,
42
+ ):
43
+ if stream:
44
+ return Transport.execute(self.config, request, option=option, stream=True)
45
+ else:
46
+ return Transport.execute(self.config, request, unmarshal_as=CompletionResponse, option=option)
47
+
48
+ @overload
49
+ async def acompletion(
50
+ self,
51
+ request: CompletionRequest,
52
+ option: RequestOption | None,
53
+ stream: Literal[True],
54
+ ) -> AsyncGenerator[bytes, None]: ...
55
+
56
+ @overload
57
+ async def acompletion(
58
+ self,
59
+ request: CompletionRequest,
60
+ option: RequestOption | None,
61
+ stream: Literal[False],
62
+ ) -> CompletionResponse: ...
63
+
64
+ @overload
65
+ async def acompletion(self, request: CompletionRequest, option: RequestOption | None) -> CompletionResponse: ...
66
+
67
+ async def acompletion(
68
+ self,
69
+ request: CompletionRequest,
70
+ option: RequestOption | None = None,
71
+ stream: bool = False,
72
+ ):
73
+ if stream:
74
+ return await ATransport.aexecute(self.config, request, option=option, stream=True)
75
+ else:
76
+ return await ATransport.aexecute(self.config, request, unmarshal_as=CompletionResponse, option=option)
77
+
78
+ def stop(self, request: StopCompletionRequest, option: RequestOption | None = None) -> StopCompletionResponse:
79
+ return Transport.execute(self.config, request, unmarshal_as=StopCompletionResponse, option=option)
80
+
81
+ async def astop(
82
+ self, request: StopCompletionRequest, option: RequestOption | None = None
83
+ ) -> StopCompletionResponse:
84
+ return await ATransport.aexecute(self.config, request, unmarshal_as=StopCompletionResponse, option=option)
@@ -0,0 +1,8 @@
1
+ from dify_oapi.core.model.config import Config
2
+
3
+ from .resource import Completion
4
+
5
+
6
+ class V1:
7
+ def __init__(self, config: Config):
8
+ self.completion: Completion = Completion(config)
File without changes
@@ -0,0 +1,8 @@
1
+ from dify_oapi.core.model.config import Config
2
+
3
+ from .v1.version import V1
4
+
5
+
6
+ class DifyService:
7
+ def __init__(self, config: Config) -> None:
8
+ self.v1: V1 = V1(config)
File without changes
File without changes
@@ -0,0 +1,30 @@
1
+ from __future__ import annotations
2
+
3
+ from dify_oapi.core.enum import HttpMethod
4
+ from dify_oapi.core.model.base_request import BaseRequest
5
+
6
+
7
+ class GetInfoRequest(BaseRequest):
8
+ def __init__(self):
9
+ super().__init__()
10
+ self.user: str | None = None
11
+
12
+ @staticmethod
13
+ def builder() -> GetInfoRequestBuilder:
14
+ return GetInfoRequestBuilder()
15
+
16
+
17
+ class GetInfoRequestBuilder:
18
+ def __init__(self) -> None:
19
+ get_info_request = GetInfoRequest()
20
+ get_info_request.http_method = HttpMethod.GET
21
+ get_info_request.uri = "/v1/info"
22
+ self._get_info_request: GetInfoRequest = get_info_request
23
+
24
+ def build(self) -> GetInfoRequest:
25
+ return self._get_info_request
26
+
27
+ def user(self, user: str) -> GetInfoRequestBuilder:
28
+ self._get_info_request.user = user
29
+ self._get_info_request.add_query("user", user)
30
+ return self
@@ -0,0 +1,7 @@
1
+ from dify_oapi.core.model.base_response import BaseResponse
2
+
3
+
4
+ class GetInfoResponse(BaseResponse):
5
+ name: str | None = None
6
+ description: str | None = None
7
+ tags: list[str] | None = None