dify-oapi2 0.3.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 (481) 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/{workflow/v1/model/file → chat/v1/model}/file_info.py +6 -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/service.py +25 -0
  76. dify_oapi/api/chatflow/v1/model/annotation_info.py +43 -0
  77. dify_oapi/api/chatflow/v1/model/annotation_reply_settings_request.py +37 -0
  78. dify_oapi/api/chatflow/v1/model/annotation_reply_settings_request_body.py +33 -0
  79. dify_oapi/api/chatflow/v1/model/annotation_reply_settings_response.py +10 -0
  80. dify_oapi/api/chatflow/v1/model/annotation_reply_status_request.py +36 -0
  81. dify_oapi/api/chatflow/v1/model/annotation_reply_status_response.py +11 -0
  82. dify_oapi/api/chatflow/v1/model/app_info.py +33 -0
  83. dify_oapi/api/chatflow/v1/model/app_parameters.py +276 -0
  84. dify_oapi/api/chatflow/v1/model/audio_to_text_request.py +37 -0
  85. dify_oapi/api/chatflow/v1/model/audio_to_text_response.py +21 -0
  86. dify_oapi/api/chatflow/v1/model/chat_file.py +40 -0
  87. dify_oapi/api/chatflow/v1/model/chat_message.py +88 -0
  88. dify_oapi/api/chatflow/v1/model/chatflow_types.py +210 -0
  89. dify_oapi/api/chatflow/v1/model/conversation_info.py +53 -0
  90. dify_oapi/api/chatflow/v1/model/conversation_variable.py +55 -0
  91. dify_oapi/api/chatflow/v1/model/create_annotation_request.py +30 -0
  92. dify_oapi/api/chatflow/v1/model/create_annotation_request_body.py +28 -0
  93. dify_oapi/api/chatflow/v1/model/create_annotation_response.py +9 -0
  94. dify_oapi/api/chatflow/v1/model/delete_annotation_request.py +28 -0
  95. dify_oapi/api/chatflow/v1/model/delete_annotation_response.py +7 -0
  96. dify_oapi/api/chatflow/v1/model/delete_conversation_request.py +36 -0
  97. dify_oapi/api/chatflow/v1/model/delete_conversation_request_body.py +21 -0
  98. dify_oapi/api/chatflow/v1/model/delete_conversation_response.py +17 -0
  99. dify_oapi/api/chatflow/v1/model/feedback_info.py +75 -0
  100. dify_oapi/api/chatflow/v1/model/file_info.py +53 -0
  101. dify_oapi/api/chatflow/v1/model/get_annotations_request.py +30 -0
  102. dify_oapi/api/chatflow/v1/model/get_annotations_response.py +13 -0
  103. dify_oapi/api/chatflow/v1/model/get_app_feedbacks_request.py +30 -0
  104. dify_oapi/api/chatflow/v1/model/get_app_feedbacks_response.py +23 -0
  105. dify_oapi/api/chatflow/v1/model/get_conversation_messages_request.py +38 -0
  106. dify_oapi/api/chatflow/v1/model/get_conversation_messages_response.py +33 -0
  107. dify_oapi/api/chatflow/v1/model/get_conversation_variables_request.py +44 -0
  108. dify_oapi/api/chatflow/v1/model/get_conversation_variables_response.py +33 -0
  109. dify_oapi/api/chatflow/v1/model/get_conversations_request.py +40 -0
  110. dify_oapi/api/chatflow/v1/model/get_conversations_response.py +33 -0
  111. dify_oapi/api/chatflow/v1/model/get_info_request.py +22 -0
  112. dify_oapi/api/chatflow/v1/model/get_info_response.py +7 -0
  113. dify_oapi/api/chatflow/v1/model/get_meta_request.py +22 -0
  114. dify_oapi/api/chatflow/v1/model/get_meta_response.py +7 -0
  115. dify_oapi/api/chatflow/v1/model/get_parameters_request.py +22 -0
  116. dify_oapi/api/chatflow/v1/model/get_parameters_response.py +7 -0
  117. dify_oapi/api/chatflow/v1/model/get_site_request.py +22 -0
  118. dify_oapi/api/chatflow/v1/model/get_site_response.py +7 -0
  119. dify_oapi/api/chatflow/v1/model/get_suggested_questions_request.py +32 -0
  120. dify_oapi/api/{knowledge_base/v1/model/metadata/toggle_builtin_response.py → chatflow/v1/model/get_suggested_questions_response.py} +2 -3
  121. dify_oapi/api/chatflow/v1/model/message_feedback_request.py +36 -0
  122. dify_oapi/api/chatflow/v1/model/message_feedback_request_body.py +33 -0
  123. dify_oapi/api/chatflow/v1/model/message_feedback_response.py +21 -0
  124. dify_oapi/api/chatflow/v1/model/rename_conversation_request.py +36 -0
  125. dify_oapi/api/chatflow/v1/model/rename_conversation_request_body.py +31 -0
  126. dify_oapi/api/chatflow/v1/model/rename_conversation_response.py +53 -0
  127. dify_oapi/api/chatflow/v1/model/retriever_resource.py +58 -0
  128. dify_oapi/api/chatflow/v1/model/send_chat_message_request.py +30 -0
  129. dify_oapi/api/chatflow/v1/model/send_chat_message_request_body.py +54 -0
  130. dify_oapi/api/chatflow/v1/model/send_chat_message_response.py +7 -0
  131. dify_oapi/api/chatflow/v1/model/stop_chat_message_request.py +36 -0
  132. dify_oapi/api/chatflow/v1/model/stop_chat_message_request_body.py +21 -0
  133. dify_oapi/api/{knowledge_base/v1/model/tag/bind_response.py → chatflow/v1/model/stop_chat_message_response.py} +1 -3
  134. dify_oapi/api/chatflow/v1/model/text_to_audio_request.py +30 -0
  135. dify_oapi/api/chatflow/v1/model/text_to_audio_request_body.py +36 -0
  136. dify_oapi/api/chatflow/v1/model/text_to_audio_response.py +19 -0
  137. dify_oapi/api/chatflow/v1/model/tool_icon.py +48 -0
  138. dify_oapi/api/chatflow/v1/model/update_annotation_request.py +36 -0
  139. dify_oapi/api/chatflow/v1/model/update_annotation_request_body.py +28 -0
  140. dify_oapi/api/chatflow/v1/model/update_annotation_response.py +9 -0
  141. dify_oapi/api/chatflow/v1/model/upload_file_request.py +41 -0
  142. dify_oapi/api/{workflow/v1/model/file → chatflow/v1/model}/upload_file_response.py +2 -0
  143. dify_oapi/api/chatflow/v1/model/usage_info.py +78 -0
  144. dify_oapi/api/chatflow/v1/model/user_input_form.py +141 -0
  145. dify_oapi/api/chatflow/v1/model/webapp_settings.py +88 -0
  146. dify_oapi/api/chatflow/v1/resource/annotation.py +122 -0
  147. dify_oapi/api/chatflow/v1/resource/application.py +76 -0
  148. dify_oapi/api/chatflow/v1/resource/chatflow.py +91 -0
  149. dify_oapi/api/chatflow/v1/resource/conversation.py +104 -0
  150. dify_oapi/api/chatflow/v1/resource/feedback.py +69 -0
  151. dify_oapi/api/chatflow/v1/resource/file.py +39 -0
  152. dify_oapi/api/chatflow/v1/resource/tts.py +29 -0
  153. dify_oapi/api/chatflow/v1/version.py +29 -0
  154. dify_oapi/api/completion/v1/model/completion/completion_inputs.py +28 -4
  155. dify_oapi/api/completion/v1/model/completion/completion_types.py +19 -1
  156. dify_oapi/api/completion/v1/model/completion/input_file_object.py +58 -0
  157. dify_oapi/api/completion/v1/model/completion/send_message_request_body.py +40 -44
  158. dify_oapi/api/completion/v1/model/completion/usage.py +4 -2
  159. dify_oapi/api/completion/v1/model/info/feature_config.py +91 -0
  160. dify_oapi/api/completion/v1/model/info/parameters_info.py +16 -8
  161. dify_oapi/api/completion/v1/model/info/site_info.py +3 -3
  162. dify_oapi/api/completion/v1/model/info/user_input_form.py +131 -16
  163. dify_oapi/api/knowledge/service.py +8 -0
  164. dify_oapi/api/knowledge/v1/__init__.py +0 -0
  165. dify_oapi/api/knowledge/v1/model/__init__.py +0 -0
  166. dify_oapi/api/knowledge/v1/model/batch_info.py +86 -0
  167. dify_oapi/api/knowledge/v1/model/bind_tags_to_dataset_request.py +30 -0
  168. dify_oapi/api/knowledge/v1/model/bind_tags_to_dataset_request_body.py +26 -0
  169. dify_oapi/api/{knowledge_base/v1/model/tag/delete_response.py → knowledge/v1/model/bind_tags_to_dataset_response.py} +1 -3
  170. dify_oapi/api/knowledge/v1/model/child_chunk_content.py +34 -0
  171. dify_oapi/api/knowledge/v1/model/child_chunk_info.py +101 -0
  172. dify_oapi/api/{knowledge_base/v1/model/segment → knowledge/v1/model}/create_child_chunk_request.py +8 -2
  173. dify_oapi/api/knowledge/v1/model/create_child_chunk_request_body.py +44 -0
  174. dify_oapi/api/{knowledge_base/v1/model/segment → knowledge/v1/model}/create_child_chunk_response.py +5 -1
  175. dify_oapi/api/knowledge/v1/model/create_dataset_request.py +30 -0
  176. dify_oapi/api/knowledge/v1/model/create_dataset_request_body.py +67 -0
  177. dify_oapi/api/knowledge/v1/model/create_dataset_response.py +7 -0
  178. dify_oapi/api/knowledge/v1/model/create_document_by_file_request.py +55 -0
  179. dify_oapi/api/knowledge/v1/model/create_document_by_file_request_body.py +73 -0
  180. dify_oapi/api/{knowledge_base/v1/model/document/create_by_file_response.py → knowledge/v1/model/create_document_by_file_response.py} +1 -1
  181. dify_oapi/api/knowledge/v1/model/create_document_by_text_request.py +44 -0
  182. dify_oapi/api/knowledge/v1/model/create_document_by_text_request_body.py +73 -0
  183. dify_oapi/api/{knowledge_base/v1/model/document/create_by_text_response.py → knowledge/v1/model/create_document_by_text_response.py} +3 -3
  184. dify_oapi/api/knowledge/v1/model/create_segment_request.py +50 -0
  185. dify_oapi/api/knowledge/v1/model/create_segment_request_body.py +31 -0
  186. dify_oapi/api/{knowledge_base/v1/model/segment/create_response.py → knowledge/v1/model/create_segment_response.py} +5 -2
  187. dify_oapi/api/knowledge/v1/model/create_tag_request.py +30 -0
  188. dify_oapi/api/knowledge/v1/model/create_tag_request_body.py +28 -0
  189. dify_oapi/api/knowledge/v1/model/create_tag_response.py +7 -0
  190. dify_oapi/api/knowledge/v1/model/data_source_detail.py +23 -0
  191. dify_oapi/api/knowledge/v1/model/data_source_info.py +34 -0
  192. dify_oapi/api/knowledge/v1/model/dataset_info.py +123 -0
  193. dify_oapi/api/knowledge/v1/model/dataset_metadata.py +14 -0
  194. dify_oapi/api/{knowledge_base/v1/model/segment → knowledge/v1/model}/delete_child_chunk_request.py +8 -2
  195. dify_oapi/api/knowledge/v1/model/delete_child_chunk_response.py +9 -0
  196. dify_oapi/api/knowledge/v1/model/delete_dataset_request.py +28 -0
  197. dify_oapi/api/{knowledge_base/v1/model/tag/unbind_response.py → knowledge/v1/model/delete_dataset_response.py} +1 -3
  198. dify_oapi/api/knowledge/v1/model/delete_document_request.py +42 -0
  199. dify_oapi/api/knowledge/v1/model/delete_document_response.py +9 -0
  200. dify_oapi/api/knowledge/v1/model/delete_segment_request.py +48 -0
  201. dify_oapi/api/knowledge/v1/model/delete_segment_response.py +9 -0
  202. dify_oapi/api/knowledge/v1/model/delete_tag_request.py +30 -0
  203. dify_oapi/api/knowledge/v1/model/delete_tag_request_body.py +21 -0
  204. dify_oapi/api/knowledge/v1/model/delete_tag_response.py +5 -0
  205. dify_oapi/api/knowledge/v1/model/document_info.py +144 -0
  206. dify_oapi/api/knowledge/v1/model/document_metadata.py +39 -0
  207. dify_oapi/api/knowledge/v1/model/embedding_model_parameters.py +47 -0
  208. dify_oapi/api/{knowledge_base/v1/model/dataset → knowledge/v1/model}/external_knowledge_info.py +18 -12
  209. dify_oapi/api/knowledge/v1/model/external_retrieval_model.py +13 -0
  210. dify_oapi/api/knowledge/v1/model/file_info.py +71 -0
  211. dify_oapi/api/knowledge/v1/model/get_batch_indexing_status_request.py +42 -0
  212. dify_oapi/api/knowledge/v1/model/get_batch_indexing_status_response.py +22 -0
  213. dify_oapi/api/knowledge/v1/model/get_dataset_request.py +28 -0
  214. dify_oapi/api/knowledge/v1/model/get_dataset_response.py +7 -0
  215. dify_oapi/api/knowledge/v1/model/get_dataset_tags_request.py +28 -0
  216. dify_oapi/api/knowledge/v1/model/get_dataset_tags_response.py +8 -0
  217. dify_oapi/api/knowledge/v1/model/get_document_request.py +42 -0
  218. dify_oapi/api/knowledge/v1/model/get_document_response.py +11 -0
  219. dify_oapi/api/knowledge/v1/model/get_segment_request.py +48 -0
  220. dify_oapi/api/{knowledge_base/v1/model/segment/get_response.py → knowledge/v1/model/get_segment_response.py} +5 -1
  221. dify_oapi/api/knowledge/v1/model/get_text_embedding_models_request.py +22 -0
  222. dify_oapi/api/knowledge/v1/model/get_text_embedding_models_response.py +7 -0
  223. dify_oapi/api/knowledge/v1/model/get_upload_file_info_request.py +42 -0
  224. dify_oapi/api/knowledge/v1/model/get_upload_file_info_response.py +11 -0
  225. dify_oapi/api/knowledge/v1/model/knowledge_types.py +100 -0
  226. dify_oapi/api/{knowledge_base/v1/model/segment → knowledge/v1/model}/list_child_chunks_request.py +10 -4
  227. dify_oapi/api/{knowledge_base/v1/model/segment → knowledge/v1/model}/list_child_chunks_response.py +4 -0
  228. dify_oapi/api/knowledge/v1/model/list_datasets_request.py +30 -0
  229. dify_oapi/api/{knowledge_base/v1/model/dataset/list_response.py → knowledge/v1/model/list_datasets_response.py} +1 -3
  230. dify_oapi/api/knowledge/v1/model/list_documents_request.py +48 -0
  231. dify_oapi/api/{knowledge_base/v1/model/document/list_response.py → knowledge/v1/model/list_documents_response.py} +3 -3
  232. dify_oapi/api/knowledge/v1/model/list_segments_request.py +60 -0
  233. dify_oapi/api/{knowledge_base/v1/model/segment/list_response.py → knowledge/v1/model/list_segments_response.py} +5 -2
  234. dify_oapi/api/knowledge/v1/model/list_tags_request.py +28 -0
  235. dify_oapi/api/knowledge/v1/model/list_tags_response.py +7 -0
  236. dify_oapi/api/knowledge/v1/model/model_credentials.py +34 -0
  237. dify_oapi/api/knowledge/v1/model/model_info.py +85 -0
  238. dify_oapi/api/knowledge/v1/model/model_parameters.py +34 -0
  239. dify_oapi/api/knowledge/v1/model/pagination_info.py +44 -0
  240. dify_oapi/api/knowledge/v1/model/preprocessing_rule.py +36 -0
  241. dify_oapi/api/knowledge/v1/model/process_rule.py +43 -0
  242. dify_oapi/api/knowledge/v1/model/process_rules.py +49 -0
  243. dify_oapi/api/knowledge/v1/model/query_info.py +29 -0
  244. dify_oapi/api/knowledge/v1/model/reranking_mode.py +36 -0
  245. dify_oapi/api/knowledge/v1/model/reranking_model.py +47 -0
  246. dify_oapi/api/knowledge/v1/model/retrieval_model.py +68 -0
  247. dify_oapi/api/knowledge/v1/model/retrieval_record.py +28 -0
  248. dify_oapi/api/knowledge/v1/model/retrieval_segment_info.py +41 -0
  249. dify_oapi/api/knowledge/v1/model/retrieve_from_dataset_request.py +36 -0
  250. dify_oapi/api/knowledge/v1/model/retrieve_from_dataset_request_body.py +38 -0
  251. dify_oapi/api/knowledge/v1/model/retrieve_from_dataset_response.py +9 -0
  252. dify_oapi/api/knowledge/v1/model/segment_content.py +39 -0
  253. dify_oapi/api/knowledge/v1/model/segment_document_info.py +41 -0
  254. dify_oapi/api/knowledge/v1/model/segment_info.py +131 -0
  255. dify_oapi/api/knowledge/v1/model/segmentation_rule.py +44 -0
  256. dify_oapi/api/knowledge/v1/model/subchunk_segmentation_rule.py +39 -0
  257. dify_oapi/api/knowledge/v1/model/tag_info.py +56 -0
  258. dify_oapi/api/knowledge/v1/model/unbind_tags_from_dataset_request.py +30 -0
  259. dify_oapi/api/knowledge/v1/model/unbind_tags_from_dataset_request_body.py +26 -0
  260. dify_oapi/api/knowledge/v1/model/unbind_tags_from_dataset_response.py +5 -0
  261. dify_oapi/api/{knowledge_base/v1/model/segment → knowledge/v1/model}/update_child_chunk_request.py +8 -2
  262. dify_oapi/api/{knowledge_base/v1/model/segment → knowledge/v1/model}/update_child_chunk_request_body.py +12 -1
  263. dify_oapi/api/{knowledge_base/v1/model/segment → knowledge/v1/model}/update_child_chunk_response.py +4 -0
  264. dify_oapi/api/knowledge/v1/model/update_dataset_request.py +36 -0
  265. dify_oapi/api/knowledge/v1/model/update_dataset_request_body.py +62 -0
  266. dify_oapi/api/knowledge/v1/model/update_dataset_response.py +7 -0
  267. dify_oapi/api/knowledge/v1/model/update_document_by_file_request.py +61 -0
  268. dify_oapi/api/knowledge/v1/model/update_document_by_file_request_body.py +68 -0
  269. dify_oapi/api/{knowledge_base/v1/model/document/update_by_file_response.py → knowledge/v1/model/update_document_by_file_response.py} +3 -3
  270. dify_oapi/api/knowledge/v1/model/update_document_by_text_request.py +50 -0
  271. dify_oapi/api/knowledge/v1/model/update_document_by_text_request_body.py +73 -0
  272. dify_oapi/api/{knowledge_base/v1/model/document/update_by_text_response.py → knowledge/v1/model/update_document_by_text_response.py} +2 -4
  273. dify_oapi/api/knowledge/v1/model/update_document_status_request.py +51 -0
  274. dify_oapi/api/knowledge/v1/model/update_document_status_request_body.py +29 -0
  275. dify_oapi/api/knowledge/v1/model/update_document_status_response.py +9 -0
  276. dify_oapi/api/knowledge/v1/model/update_segment_request.py +56 -0
  277. dify_oapi/api/knowledge/v1/model/update_segment_request_body.py +31 -0
  278. dify_oapi/api/{knowledge_base/v1/model/segment/update_response.py → knowledge/v1/model/update_segment_response.py} +5 -1
  279. dify_oapi/api/knowledge/v1/model/update_tag_request.py +30 -0
  280. dify_oapi/api/knowledge/v1/model/update_tag_request_body.py +26 -0
  281. dify_oapi/api/knowledge/v1/model/update_tag_response.py +7 -0
  282. dify_oapi/api/knowledge/v1/model/weights.py +27 -0
  283. dify_oapi/api/knowledge/v1/resource/__init__.py +8 -0
  284. dify_oapi/api/knowledge/v1/resource/chunk.py +55 -0
  285. dify_oapi/api/knowledge/v1/resource/dataset.py +69 -0
  286. dify_oapi/api/knowledge/v1/resource/document.py +135 -0
  287. dify_oapi/api/knowledge/v1/resource/model.py +25 -0
  288. dify_oapi/api/knowledge/v1/resource/segment.py +55 -0
  289. dify_oapi/api/knowledge/v1/resource/tag.py +81 -0
  290. dify_oapi/api/knowledge/v1/version.py +18 -0
  291. dify_oapi/api/workflow/v1/model/{info/app_info.py → app_info.py} +1 -1
  292. dify_oapi/api/workflow/v1/model/chunk_workflow_event.py +74 -0
  293. dify_oapi/api/workflow/v1/model/file_upload_info.py +53 -0
  294. dify_oapi/api/workflow/v1/model/{log/get_workflow_logs_response.py → get_workflow_logs_response.py} +2 -2
  295. dify_oapi/api/workflow/v1/model/{workflow/get_workflow_run_detail_response.py → get_workflow_run_detail_response.py} +18 -0
  296. dify_oapi/api/workflow/v1/model/input_file_object_workflow.py +76 -0
  297. dify_oapi/api/workflow/v1/model/node_finished_data.py +118 -0
  298. dify_oapi/api/workflow/v1/model/node_started_data.py +81 -0
  299. dify_oapi/api/workflow/v1/model/ping_data.py +28 -0
  300. dify_oapi/api/workflow/v1/model/{workflow/run_workflow_request_body.py → run_workflow_request_body.py} +1 -1
  301. dify_oapi/api/workflow/v1/model/{info/site_info.py → site_info.py} +1 -1
  302. dify_oapi/api/workflow/v1/model/text_chunk_data.py +39 -0
  303. dify_oapi/api/workflow/v1/model/tts_message_data.py +45 -0
  304. dify_oapi/api/workflow/v1/model/tts_message_end_data.py +45 -0
  305. dify_oapi/api/{knowledge_base/v1/model/dataset/delete_response.py → workflow/v1/model/upload_file_response.py} +2 -2
  306. dify_oapi/api/workflow/v1/model/workflow_completion_response.py +50 -0
  307. dify_oapi/api/workflow/v1/model/workflow_finished_data.py +93 -0
  308. dify_oapi/api/workflow/v1/model/workflow_log_info.py +57 -0
  309. dify_oapi/api/workflow/v1/model/{log/workflow_run_log_info.py → workflow_run_log_info.py} +1 -1
  310. dify_oapi/api/workflow/v1/model/workflow_started_data.py +51 -0
  311. dify_oapi/api/workflow/v1/model/workflow_types.py +69 -0
  312. dify_oapi/api/workflow/v1/resource/workflow.py +56 -144
  313. dify_oapi/api/workflow/v1/version.py +1 -7
  314. dify_oapi/client.py +51 -6
  315. dify_oapi/core/http/transport/__init__.py +2 -1
  316. dify_oapi/core/http/transport/async_transport.py +73 -50
  317. dify_oapi/core/http/transport/connection_pool.py +131 -0
  318. dify_oapi/core/http/transport/sync_transport.py +73 -50
  319. dify_oapi/core/model/config.py +10 -0
  320. {dify_oapi2-0.3.0.dist-info → dify_oapi2-0.5.0.dist-info}/METADATA +57 -21
  321. dify_oapi2-0.5.0.dist-info/RECORD +479 -0
  322. dify_oapi/api/chat/v1/model/chat_request_file.py +0 -46
  323. dify_oapi/api/chat/v1/model/message_suggested_request.py +0 -36
  324. dify_oapi/api/knowledge_base/service.py +0 -8
  325. dify_oapi/api/knowledge_base/v1/model/dataset/__init__.py +0 -49
  326. dify_oapi/api/knowledge_base/v1/model/dataset/create_request.py +0 -32
  327. dify_oapi/api/knowledge_base/v1/model/dataset/create_request_body.py +0 -72
  328. dify_oapi/api/knowledge_base/v1/model/dataset/create_response.py +0 -11
  329. dify_oapi/api/knowledge_base/v1/model/dataset/dataset_info.py +0 -150
  330. dify_oapi/api/knowledge_base/v1/model/dataset/dataset_types.py +0 -36
  331. dify_oapi/api/knowledge_base/v1/model/dataset/delete_request.py +0 -30
  332. dify_oapi/api/knowledge_base/v1/model/dataset/filter_condition.py +0 -72
  333. dify_oapi/api/knowledge_base/v1/model/dataset/get_request.py +0 -30
  334. dify_oapi/api/knowledge_base/v1/model/dataset/get_response.py +0 -11
  335. dify_oapi/api/knowledge_base/v1/model/dataset/list_request.py +0 -45
  336. dify_oapi/api/knowledge_base/v1/model/dataset/metadata_filtering_conditions.py +0 -30
  337. dify_oapi/api/knowledge_base/v1/model/dataset/reranking_model.py +0 -28
  338. dify_oapi/api/knowledge_base/v1/model/dataset/retrieval_model.py +0 -144
  339. dify_oapi/api/knowledge_base/v1/model/dataset/retrieve_request.py +0 -38
  340. dify_oapi/api/knowledge_base/v1/model/dataset/retrieve_request_body.py +0 -38
  341. dify_oapi/api/knowledge_base/v1/model/dataset/retrieve_response.py +0 -53
  342. dify_oapi/api/knowledge_base/v1/model/dataset/update_request.py +0 -38
  343. dify_oapi/api/knowledge_base/v1/model/dataset/update_request_body.py +0 -58
  344. dify_oapi/api/knowledge_base/v1/model/dataset/update_response.py +0 -11
  345. dify_oapi/api/knowledge_base/v1/model/document/create_by_file_request.py +0 -53
  346. dify_oapi/api/knowledge_base/v1/model/document/create_by_file_request_body.py +0 -31
  347. dify_oapi/api/knowledge_base/v1/model/document/create_by_file_request_body_data.py +0 -78
  348. dify_oapi/api/knowledge_base/v1/model/document/create_by_text_request.py +0 -38
  349. dify_oapi/api/knowledge_base/v1/model/document/create_by_text_request_body.py +0 -75
  350. dify_oapi/api/knowledge_base/v1/model/document/data_source_info.py +0 -30
  351. dify_oapi/api/knowledge_base/v1/model/document/delete_request.py +0 -38
  352. dify_oapi/api/knowledge_base/v1/model/document/delete_response.py +0 -9
  353. dify_oapi/api/knowledge_base/v1/model/document/document_info.py +0 -164
  354. dify_oapi/api/knowledge_base/v1/model/document/document_types.py +0 -36
  355. dify_oapi/api/knowledge_base/v1/model/document/get_request.py +0 -40
  356. dify_oapi/api/knowledge_base/v1/model/document/get_response.py +0 -9
  357. dify_oapi/api/knowledge_base/v1/model/document/get_upload_file_request.py +0 -38
  358. dify_oapi/api/knowledge_base/v1/model/document/get_upload_file_response.py +0 -11
  359. dify_oapi/api/knowledge_base/v1/model/document/indexing_status_info.py +0 -80
  360. dify_oapi/api/knowledge_base/v1/model/document/indexing_status_request.py +0 -36
  361. dify_oapi/api/knowledge_base/v1/model/document/indexing_status_response.py +0 -11
  362. dify_oapi/api/knowledge_base/v1/model/document/list_request.py +0 -42
  363. dify_oapi/api/knowledge_base/v1/model/document/pre_processing_rule.py +0 -32
  364. dify_oapi/api/knowledge_base/v1/model/document/process_rule.py +0 -34
  365. dify_oapi/api/knowledge_base/v1/model/document/retrieval_model.py +0 -54
  366. dify_oapi/api/knowledge_base/v1/model/document/rules.py +0 -31
  367. dify_oapi/api/knowledge_base/v1/model/document/segmentation.py +0 -35
  368. dify_oapi/api/knowledge_base/v1/model/document/subchunk_segmentation.py +0 -35
  369. dify_oapi/api/knowledge_base/v1/model/document/update_by_file_request.py +0 -53
  370. dify_oapi/api/knowledge_base/v1/model/document/update_by_file_request_body.py +0 -26
  371. dify_oapi/api/knowledge_base/v1/model/document/update_by_file_request_body_data.py +0 -40
  372. dify_oapi/api/knowledge_base/v1/model/document/update_by_text_request.py +0 -55
  373. dify_oapi/api/knowledge_base/v1/model/document/update_by_text_request_body.py +0 -46
  374. dify_oapi/api/knowledge_base/v1/model/document/update_status_request.py +0 -55
  375. dify_oapi/api/knowledge_base/v1/model/document/update_status_request_body.py +0 -32
  376. dify_oapi/api/knowledge_base/v1/model/document/update_status_response.py +0 -9
  377. dify_oapi/api/knowledge_base/v1/model/document/upload_file_info.py +0 -65
  378. dify_oapi/api/knowledge_base/v1/model/metadata/__init__.py +0 -35
  379. dify_oapi/api/knowledge_base/v1/model/metadata/create_request.py +0 -38
  380. dify_oapi/api/knowledge_base/v1/model/metadata/create_request_body.py +0 -31
  381. dify_oapi/api/knowledge_base/v1/model/metadata/create_response.py +0 -13
  382. dify_oapi/api/knowledge_base/v1/model/metadata/delete_request.py +0 -36
  383. dify_oapi/api/knowledge_base/v1/model/metadata/delete_response.py +0 -7
  384. dify_oapi/api/knowledge_base/v1/model/metadata/list_request.py +0 -30
  385. dify_oapi/api/knowledge_base/v1/model/metadata/list_response.py +0 -9
  386. dify_oapi/api/knowledge_base/v1/model/metadata/metadata_info.py +0 -38
  387. dify_oapi/api/knowledge_base/v1/model/metadata/metadata_types.py +0 -15
  388. dify_oapi/api/knowledge_base/v1/model/metadata/toggle_builtin_request.py +0 -36
  389. dify_oapi/api/knowledge_base/v1/model/metadata/update_document_request.py +0 -38
  390. dify_oapi/api/knowledge_base/v1/model/metadata/update_document_request_body.py +0 -79
  391. dify_oapi/api/knowledge_base/v1/model/metadata/update_document_response.py +0 -7
  392. dify_oapi/api/knowledge_base/v1/model/metadata/update_request.py +0 -44
  393. dify_oapi/api/knowledge_base/v1/model/metadata/update_request_body.py +0 -24
  394. dify_oapi/api/knowledge_base/v1/model/metadata/update_response.py +0 -13
  395. dify_oapi/api/knowledge_base/v1/model/segment/__init__.py +0 -77
  396. dify_oapi/api/knowledge_base/v1/model/segment/child_chunk_info.py +0 -88
  397. dify_oapi/api/knowledge_base/v1/model/segment/create_child_chunk_request_body.py +0 -23
  398. dify_oapi/api/knowledge_base/v1/model/segment/create_request.py +0 -42
  399. dify_oapi/api/knowledge_base/v1/model/segment/create_request_body.py +0 -25
  400. dify_oapi/api/knowledge_base/v1/model/segment/delete_child_chunk_response.py +0 -5
  401. dify_oapi/api/knowledge_base/v1/model/segment/delete_request.py +0 -40
  402. dify_oapi/api/knowledge_base/v1/model/segment/delete_response.py +0 -5
  403. dify_oapi/api/knowledge_base/v1/model/segment/get_request.py +0 -40
  404. dify_oapi/api/knowledge_base/v1/model/segment/list_request.py +0 -50
  405. dify_oapi/api/knowledge_base/v1/model/segment/segment_data.py +0 -43
  406. dify_oapi/api/knowledge_base/v1/model/segment/segment_info.py +0 -123
  407. dify_oapi/api/knowledge_base/v1/model/segment/segment_types.py +0 -24
  408. dify_oapi/api/knowledge_base/v1/model/segment/update_request.py +0 -48
  409. dify_oapi/api/knowledge_base/v1/model/segment/update_request_body.py +0 -25
  410. dify_oapi/api/knowledge_base/v1/model/tag/__init__.py +0 -41
  411. dify_oapi/api/knowledge_base/v1/model/tag/bind_request.py +0 -32
  412. dify_oapi/api/knowledge_base/v1/model/tag/bind_request_body.py +0 -29
  413. dify_oapi/api/knowledge_base/v1/model/tag/create_request.py +0 -32
  414. dify_oapi/api/knowledge_base/v1/model/tag/create_request_body.py +0 -24
  415. dify_oapi/api/knowledge_base/v1/model/tag/create_response.py +0 -16
  416. dify_oapi/api/knowledge_base/v1/model/tag/delete_request.py +0 -32
  417. dify_oapi/api/knowledge_base/v1/model/tag/delete_request_body.py +0 -24
  418. dify_oapi/api/knowledge_base/v1/model/tag/list_request.py +0 -24
  419. dify_oapi/api/knowledge_base/v1/model/tag/list_response.py +0 -19
  420. dify_oapi/api/knowledge_base/v1/model/tag/query_bound_request.py +0 -30
  421. dify_oapi/api/knowledge_base/v1/model/tag/query_bound_response.py +0 -9
  422. dify_oapi/api/knowledge_base/v1/model/tag/tag_info.py +0 -38
  423. dify_oapi/api/knowledge_base/v1/model/tag/tag_types.py +0 -12
  424. dify_oapi/api/knowledge_base/v1/model/tag/unbind_request.py +0 -32
  425. dify_oapi/api/knowledge_base/v1/model/tag/unbind_request_body.py +0 -29
  426. dify_oapi/api/knowledge_base/v1/model/tag/update_request.py +0 -32
  427. dify_oapi/api/knowledge_base/v1/model/tag/update_request_body.py +0 -29
  428. dify_oapi/api/knowledge_base/v1/model/tag/update_response.py +0 -23
  429. dify_oapi/api/knowledge_base/v1/resource/__init__.py +0 -7
  430. dify_oapi/api/knowledge_base/v1/resource/dataset.py +0 -58
  431. dify_oapi/api/knowledge_base/v1/resource/document.py +0 -107
  432. dify_oapi/api/knowledge_base/v1/resource/metadata.py +0 -65
  433. dify_oapi/api/knowledge_base/v1/resource/segment.py +0 -110
  434. dify_oapi/api/knowledge_base/v1/resource/tag.py +0 -65
  435. dify_oapi/api/knowledge_base/v1/version.py +0 -12
  436. dify_oapi/api/workflow/v1/model/file/__init__.py +0 -1
  437. dify_oapi/api/workflow/v1/model/file/preview_file_request.py +0 -34
  438. dify_oapi/api/workflow/v1/model/file/preview_file_response.py +0 -9
  439. dify_oapi/api/workflow/v1/model/log/log_info.py +0 -57
  440. dify_oapi/api/workflow/v1/model/workflow/run_specific_workflow_request.py +0 -38
  441. dify_oapi/api/workflow/v1/model/workflow/run_specific_workflow_request_body.py +0 -47
  442. dify_oapi/api/workflow/v1/model/workflow/run_specific_workflow_response.py +0 -9
  443. dify_oapi/api/workflow/v1/model/workflow/streaming_event.py +0 -42
  444. dify_oapi/api/workflow/v1/model/workflow/workflow_types.py +0 -54
  445. dify_oapi/api/workflow/v1/resource/file.py +0 -63
  446. dify_oapi/api/workflow/v1/resource/info.py +0 -93
  447. dify_oapi/api/workflow/v1/resource/log.py +0 -43
  448. dify_oapi2-0.3.0.dist-info/RECORD +0 -348
  449. /dify_oapi/api/{knowledge_base → chatflow}/__init__.py +0 -0
  450. /dify_oapi/api/{knowledge_base → chatflow}/v1/__init__.py +0 -0
  451. /dify_oapi/api/{knowledge_base → chatflow}/v1/model/__init__.py +0 -0
  452. /dify_oapi/api/{knowledge_base/v1/model/document → chatflow/v1/resource}/__init__.py +0 -0
  453. /dify_oapi/api/{workflow/v1/model/log → knowledge}/__init__.py +0 -0
  454. /dify_oapi/api/workflow/v1/model/{log/end_user_info.py → end_user_info.py} +0 -0
  455. /dify_oapi/api/workflow/v1/model/{workflow/execution_metadata.py → execution_metadata.py} +0 -0
  456. /dify_oapi/api/workflow/v1/model/{info/file_upload_config.py → file_upload_config.py} +0 -0
  457. /dify_oapi/api/workflow/v1/model/{info/get_info_request.py → get_info_request.py} +0 -0
  458. /dify_oapi/api/workflow/v1/model/{info/get_info_response.py → get_info_response.py} +0 -0
  459. /dify_oapi/api/workflow/v1/model/{info/get_parameters_request.py → get_parameters_request.py} +0 -0
  460. /dify_oapi/api/workflow/v1/model/{info/get_parameters_response.py → get_parameters_response.py} +0 -0
  461. /dify_oapi/api/workflow/v1/model/{info/get_site_request.py → get_site_request.py} +0 -0
  462. /dify_oapi/api/workflow/v1/model/{info/get_site_response.py → get_site_response.py} +0 -0
  463. /dify_oapi/api/workflow/v1/model/{log/get_workflow_logs_request.py → get_workflow_logs_request.py} +0 -0
  464. /dify_oapi/api/workflow/v1/model/{workflow/get_workflow_run_detail_request.py → get_workflow_run_detail_request.py} +0 -0
  465. /dify_oapi/api/workflow/v1/model/{workflow/node_info.py → node_info.py} +0 -0
  466. /dify_oapi/api/workflow/v1/model/{info/parameters_info.py → parameters_info.py} +0 -0
  467. /dify_oapi/api/workflow/v1/model/{workflow/run_workflow_request.py → run_workflow_request.py} +0 -0
  468. /dify_oapi/api/workflow/v1/model/{workflow/run_workflow_response.py → run_workflow_response.py} +0 -0
  469. /dify_oapi/api/workflow/v1/model/{workflow/stop_workflow_request.py → stop_workflow_request.py} +0 -0
  470. /dify_oapi/api/workflow/v1/model/{workflow/stop_workflow_request_body.py → stop_workflow_request_body.py} +0 -0
  471. /dify_oapi/api/workflow/v1/model/{workflow/stop_workflow_response.py → stop_workflow_response.py} +0 -0
  472. /dify_oapi/api/workflow/v1/model/{info/system_parameters.py → system_parameters.py} +0 -0
  473. /dify_oapi/api/workflow/v1/model/{file/upload_file_request.py → upload_file_request.py} +0 -0
  474. /dify_oapi/api/workflow/v1/model/{file/upload_file_request_body.py → upload_file_request_body.py} +0 -0
  475. /dify_oapi/api/workflow/v1/model/{info/user_input_form.py → user_input_form.py} +0 -0
  476. /dify_oapi/api/workflow/v1/model/{workflow/workflow_file_info.py → workflow_file_info.py} +0 -0
  477. /dify_oapi/api/workflow/v1/model/{workflow/workflow_inputs.py → workflow_inputs.py} +0 -0
  478. /dify_oapi/api/workflow/v1/model/{workflow/workflow_run_data.py → workflow_run_data.py} +0 -0
  479. /dify_oapi/api/workflow/v1/model/{workflow/workflow_run_info.py → workflow_run_info.py} +0 -0
  480. {dify_oapi2-0.3.0.dist-info → dify_oapi2-0.5.0.dist-info}/LICENSE +0 -0
  481. {dify_oapi2-0.3.0.dist-info → dify_oapi2-0.5.0.dist-info}/WHEEL +0 -0
@@ -0,0 +1,39 @@
1
+ from __future__ import annotations
2
+
3
+ from dify_oapi.core.http.transport import ATransport, Transport
4
+ from dify_oapi.core.model.config import Config
5
+ from dify_oapi.core.model.request_option import RequestOption
6
+
7
+ from ..model.upload_file_request import UploadFileRequest
8
+ from ..model.upload_file_response import UploadFileResponse
9
+
10
+
11
+ class File:
12
+ """File resource for chatflow API operations."""
13
+
14
+ def __init__(self, config: Config):
15
+ self.config = config
16
+
17
+ def upload(self, request: UploadFileRequest, request_option: RequestOption) -> UploadFileResponse:
18
+ """Upload file for multimodal support.
19
+
20
+ Args:
21
+ request: Upload file request
22
+ request_option: Request options including API key
23
+
24
+ Returns:
25
+ Upload file response with file information
26
+ """
27
+ return Transport.execute(self.config, request, unmarshal_as=UploadFileResponse, option=request_option)
28
+
29
+ async def aupload(self, request: UploadFileRequest, request_option: RequestOption) -> UploadFileResponse:
30
+ """Upload file for multimodal support (async).
31
+
32
+ Args:
33
+ request: Upload file request
34
+ request_option: Request options including API key
35
+
36
+ Returns:
37
+ Upload file response with file information
38
+ """
39
+ return await ATransport.aexecute(self.config, request, unmarshal_as=UploadFileResponse, option=request_option)
@@ -0,0 +1,29 @@
1
+ from dify_oapi.api.chatflow.v1.model.audio_to_text_request import AudioToTextRequest
2
+ from dify_oapi.api.chatflow.v1.model.audio_to_text_response import AudioToTextResponse
3
+ from dify_oapi.api.chatflow.v1.model.text_to_audio_request import TextToAudioRequest
4
+ from dify_oapi.api.chatflow.v1.model.text_to_audio_response import TextToAudioResponse
5
+ from dify_oapi.core.http.transport.async_transport import ATransport
6
+ from dify_oapi.core.http.transport.sync_transport import Transport
7
+ from dify_oapi.core.model.config import Config
8
+ from dify_oapi.core.model.request_option import RequestOption
9
+
10
+
11
+ class TTS:
12
+ def __init__(self, config: Config):
13
+ self.config = config
14
+
15
+ def speech_to_text(self, request: AudioToTextRequest, request_option: RequestOption) -> AudioToTextResponse:
16
+ """Convert audio to text (sync)"""
17
+ return Transport.execute(self.config, request, unmarshal_as=AudioToTextResponse, option=request_option)
18
+
19
+ async def aspeech_to_text(self, request: AudioToTextRequest, request_option: RequestOption) -> AudioToTextResponse:
20
+ """Convert audio to text (async)"""
21
+ return await ATransport.aexecute(self.config, request, unmarshal_as=AudioToTextResponse, option=request_option)
22
+
23
+ def text_to_audio(self, request: TextToAudioRequest, request_option: RequestOption) -> TextToAudioResponse:
24
+ """Convert text to audio (sync)"""
25
+ return Transport.execute(self.config, request, unmarshal_as=TextToAudioResponse, option=request_option)
26
+
27
+ async def atext_to_audio(self, request: TextToAudioRequest, request_option: RequestOption) -> TextToAudioResponse:
28
+ """Convert text to audio (async)"""
29
+ return await ATransport.aexecute(self.config, request, unmarshal_as=TextToAudioResponse, option=request_option)
@@ -0,0 +1,29 @@
1
+ """Chatflow API V1 version integration."""
2
+
3
+ from dify_oapi.core.model.config import Config
4
+
5
+ from .resource.annotation import Annotation
6
+ from .resource.application import Application
7
+ from .resource.chatflow import Chatflow
8
+ from .resource.conversation import Conversation
9
+ from .resource.feedback import Feedback
10
+ from .resource.file import File
11
+ from .resource.tts import TTS
12
+
13
+
14
+ class V1:
15
+ """Chatflow API V1 version class that integrates all resources."""
16
+
17
+ def __init__(self, config: Config):
18
+ """Initialize V1 with all chatflow resources.
19
+
20
+ Args:
21
+ config: Configuration object containing API settings
22
+ """
23
+ self.chatflow = Chatflow(config)
24
+ self.file = File(config)
25
+ self.feedback = Feedback(config)
26
+ self.conversation = Conversation(config)
27
+ self.tts = TTS(config)
28
+ self.application = Application(config)
29
+ self.annotation = Annotation(config)
@@ -1,5 +1,7 @@
1
1
  from __future__ import annotations
2
2
 
3
+ from typing import Any
4
+
3
5
  from pydantic import BaseModel
4
6
 
5
7
 
@@ -7,22 +9,44 @@ class CompletionInputs(BaseModel):
7
9
  """
8
10
  Inputs for completion application containing variables defined in the App.
9
11
  Text generation applications require at least the query field.
12
+ Additional custom variables can be added as needed.
10
13
  """
11
14
 
12
- query: str | None = None # User input text content (required for completion apps)
15
+ query: str # Required: User input text content
16
+
17
+ # Allow additional fields for custom variables
18
+ model_config = {"extra": "allow"}
13
19
 
14
20
  @staticmethod
15
21
  def builder() -> CompletionInputsBuilder:
16
22
  return CompletionInputsBuilder()
17
23
 
24
+ def with_variables(self, **kwargs: Any) -> CompletionInputs:
25
+ result: CompletionInputs = self.model_copy(update=kwargs)
26
+ return result
27
+
18
28
 
19
29
  class CompletionInputsBuilder:
20
30
  def __init__(self):
21
- self._completion_inputs = CompletionInputs()
31
+ self._inputs: CompletionInputs | None = None
22
32
 
23
33
  def build(self) -> CompletionInputs:
24
- return self._completion_inputs
34
+ if self._inputs is None:
35
+ raise ValueError("query field is required for CompletionInputs")
36
+ return self._inputs
25
37
 
26
38
  def query(self, query: str) -> CompletionInputsBuilder:
27
- self._completion_inputs.query = query
39
+ self._inputs = CompletionInputs(query=query)
40
+ return self
41
+
42
+ def add_variable(self, key: str, value: Any) -> CompletionInputsBuilder:
43
+ if self._inputs is None:
44
+ raise ValueError("Must set query first")
45
+ self._inputs = self._inputs.with_variables(**{key: value})
46
+ return self
47
+
48
+ def variables(self, **kwargs: Any) -> CompletionInputsBuilder:
49
+ if self._inputs is None:
50
+ raise ValueError("Must set query first")
51
+ self._inputs = self._inputs.with_variables(**kwargs)
28
52
  return self
@@ -12,7 +12,7 @@ FileType = Literal["image"]
12
12
  TransferMethod = Literal["remote_url", "local_file"]
13
13
 
14
14
  # Feedback rating types
15
- FeedbackRating = Literal["like", "dislike", "null"]
15
+ FeedbackRating = Literal["like", "dislike"]
16
16
 
17
17
  # Annotation action types
18
18
  AnnotationAction = Literal["enable", "disable"]
@@ -25,3 +25,21 @@ AppMode = Literal["completion"]
25
25
 
26
26
  # Job status types
27
27
  JobStatus = Literal["waiting", "running", "completed", "failed"]
28
+
29
+ # Event types for streaming
30
+ EventType = Literal["message", "message_end", "tts_message", "tts_message_end", "message_replace", "error", "ping"]
31
+
32
+ # User input form types
33
+ UserInputFormType = Literal["text-input", "paragraph", "select"]
34
+
35
+ # Audio format types
36
+ AudioFormat = Literal["mp3", "wav"]
37
+
38
+ # Image format types
39
+ ImageFormat = Literal["png", "jpg", "jpeg", "webp", "gif"]
40
+
41
+ # Currency types (common currencies)
42
+ CurrencyType = Literal["USD", "EUR", "CNY", "JPY", "GBP"]
43
+
44
+ # Language codes (common language codes)
45
+ LanguageCode = Literal["en-US", "zh-CN", "ja-JP", "ko-KR", "fr-FR", "de-DE", "es-ES", "pt-BR", "ru-RU"]
@@ -0,0 +1,58 @@
1
+ from __future__ import annotations
2
+
3
+ from pydantic import BaseModel, field_validator
4
+
5
+ from .completion_types import FileType, TransferMethod
6
+
7
+
8
+ class InputFileObject(BaseModel):
9
+ """File input object for multimodal understanding."""
10
+
11
+ type: FileType
12
+ transfer_method: TransferMethod
13
+ url: str | None = None
14
+ upload_file_id: str | None = None
15
+
16
+ @field_validator("url", "upload_file_id")
17
+ @classmethod
18
+ def validate_transfer_method_fields(cls, v, info):
19
+ """Validate that the correct field is provided based on transfer_method."""
20
+ if info.data.get("transfer_method") == "remote_url":
21
+ if info.field_name == "url" and v is None:
22
+ raise ValueError("url is required when transfer_method is remote_url")
23
+ if info.field_name == "upload_file_id" and v is not None:
24
+ raise ValueError("upload_file_id must not be provided when transfer_method is remote_url")
25
+ elif info.data.get("transfer_method") == "local_file":
26
+ if info.field_name == "upload_file_id" and v is None:
27
+ raise ValueError("upload_file_id is required when transfer_method is local_file")
28
+ if info.field_name == "url" and v is not None:
29
+ raise ValueError("url must not be provided when transfer_method is local_file")
30
+ return v
31
+
32
+ @staticmethod
33
+ def builder() -> InputFileObjectBuilder:
34
+ return InputFileObjectBuilder()
35
+
36
+
37
+ class InputFileObjectBuilder:
38
+ def __init__(self):
39
+ self._file_object = InputFileObject(type="image", transfer_method="remote_url")
40
+
41
+ def build(self) -> InputFileObject:
42
+ return self._file_object
43
+
44
+ def type(self, type_: FileType) -> InputFileObjectBuilder:
45
+ self._file_object.type = type_
46
+ return self
47
+
48
+ def transfer_method(self, transfer_method: TransferMethod) -> InputFileObjectBuilder:
49
+ self._file_object.transfer_method = transfer_method
50
+ return self
51
+
52
+ def url(self, url: str) -> InputFileObjectBuilder:
53
+ self._file_object.url = url
54
+ return self
55
+
56
+ def upload_file_id(self, upload_file_id: str) -> InputFileObjectBuilder:
57
+ self._file_object.upload_file_id = upload_file_id
58
+ return self
@@ -1,51 +1,33 @@
1
1
  from __future__ import annotations
2
2
 
3
- from pydantic import BaseModel
3
+ from typing import Any
4
4
 
5
- from .completion_inputs import CompletionInputs
6
- from .completion_types import FileType, ResponseMode, TransferMethod
7
-
8
-
9
- class FileInfo(BaseModel):
10
- type: FileType | None = None
11
- transfer_method: TransferMethod | None = None
12
- url: str | None = None
13
- upload_file_id: str | None = None
14
-
15
- @staticmethod
16
- def builder() -> FileInfoBuilder:
17
- return FileInfoBuilder()
18
-
19
-
20
- class FileInfoBuilder:
21
- def __init__(self):
22
- self._file_info = FileInfo()
23
-
24
- def build(self) -> FileInfo:
25
- return self._file_info
26
-
27
- def type(self, type_: FileType) -> FileInfoBuilder:
28
- self._file_info.type = type_
29
- return self
5
+ from pydantic import BaseModel, field_validator
30
6
 
31
- def transfer_method(self, transfer_method: TransferMethod) -> FileInfoBuilder:
32
- self._file_info.transfer_method = transfer_method
33
- return self
34
-
35
- def url(self, url: str) -> FileInfoBuilder:
36
- self._file_info.url = url
37
- return self
38
-
39
- def upload_file_id(self, upload_file_id: str) -> FileInfoBuilder:
40
- self._file_info.upload_file_id = upload_file_id
41
- return self
7
+ from .completion_inputs import CompletionInputs
8
+ from .completion_types import ResponseMode
9
+ from .input_file_object import InputFileObject
42
10
 
43
11
 
44
12
  class SendMessageRequestBody(BaseModel):
45
- inputs: CompletionInputs | None = None
46
- response_mode: ResponseMode | None = None
13
+ """Request body for sending completion messages."""
14
+
15
+ inputs: dict[str, Any] # Variable values defined by the App, must include 'query'
16
+ response_mode: ResponseMode | None = "streaming"
47
17
  user: str | None = None
48
- files: list[FileInfo] | None = None
18
+ files: list[InputFileObject] | None = None
19
+
20
+ @field_validator("inputs")
21
+ @classmethod
22
+ def validate_inputs(cls, v):
23
+ """Validate that inputs contains the required 'query' field."""
24
+ if not isinstance(v, dict):
25
+ raise ValueError("inputs must be a dictionary")
26
+ if "query" not in v:
27
+ raise ValueError('inputs must contain a "query" field')
28
+ if not isinstance(v["query"], str):
29
+ raise ValueError("query field must be a string")
30
+ return v
49
31
 
50
32
  @staticmethod
51
33
  def builder() -> SendMessageRequestBodyBuilder:
@@ -54,13 +36,27 @@ class SendMessageRequestBody(BaseModel):
54
36
 
55
37
  class SendMessageRequestBodyBuilder:
56
38
  def __init__(self):
57
- self._send_message_request_body = SendMessageRequestBody()
39
+ self._send_message_request_body = SendMessageRequestBody(inputs={"query": ""})
58
40
 
59
41
  def build(self) -> SendMessageRequestBody:
60
42
  return self._send_message_request_body
61
43
 
62
- def inputs(self, inputs: CompletionInputs) -> SendMessageRequestBodyBuilder:
63
- self._send_message_request_body.inputs = inputs
44
+ def inputs(self, inputs: CompletionInputs | dict[str, Any]) -> SendMessageRequestBodyBuilder:
45
+ """Set inputs from CompletionInputs object or dictionary."""
46
+ if isinstance(inputs, CompletionInputs):
47
+ self._send_message_request_body.inputs = inputs.model_dump()
48
+ else:
49
+ self._send_message_request_body.inputs = inputs
50
+ return self
51
+
52
+ def query(self, query: str) -> SendMessageRequestBodyBuilder:
53
+ """Set the query field directly."""
54
+ self._send_message_request_body.inputs["query"] = query
55
+ return self
56
+
57
+ def add_variable(self, key: str, value: str) -> SendMessageRequestBodyBuilder:
58
+ """Add a custom variable to inputs."""
59
+ self._send_message_request_body.inputs[key] = value
64
60
  return self
65
61
 
66
62
  def response_mode(self, response_mode: ResponseMode) -> SendMessageRequestBodyBuilder:
@@ -71,6 +67,6 @@ class SendMessageRequestBodyBuilder:
71
67
  self._send_message_request_body.user = user
72
68
  return self
73
69
 
74
- def files(self, files: list[FileInfo]) -> SendMessageRequestBodyBuilder:
70
+ def files(self, files: list[InputFileObject]) -> SendMessageRequestBodyBuilder:
75
71
  self._send_message_request_body.files = files
76
72
  return self
@@ -2,6 +2,8 @@ from __future__ import annotations
2
2
 
3
3
  from pydantic import BaseModel
4
4
 
5
+ from .completion_types import CurrencyType
6
+
5
7
 
6
8
  class Usage(BaseModel):
7
9
  prompt_tokens: int | None = None
@@ -14,7 +16,7 @@ class Usage(BaseModel):
14
16
  completion_price: str | None = None
15
17
  total_tokens: int | None = None
16
18
  total_price: str | None = None
17
- currency: str | None = None
19
+ currency: CurrencyType | None = None
18
20
  latency: float | None = None
19
21
 
20
22
  @staticmethod
@@ -69,7 +71,7 @@ class UsageBuilder:
69
71
  self._usage.total_price = total_price
70
72
  return self
71
73
 
72
- def currency(self, currency: str) -> UsageBuilder:
74
+ def currency(self, currency: CurrencyType) -> UsageBuilder:
73
75
  self._usage.currency = currency
74
76
  return self
75
77
 
@@ -0,0 +1,91 @@
1
+ from __future__ import annotations
2
+
3
+ from pydantic import BaseModel
4
+
5
+
6
+ class SuggestedQuestionsAfterAnswerConfig(BaseModel):
7
+ """Configuration for suggested questions after answer feature."""
8
+
9
+ enabled: bool
10
+
11
+ @staticmethod
12
+ def builder() -> SuggestedQuestionsAfterAnswerConfigBuilder:
13
+ return SuggestedQuestionsAfterAnswerConfigBuilder()
14
+
15
+
16
+ class SuggestedQuestionsAfterAnswerConfigBuilder:
17
+ def __init__(self):
18
+ self._config = SuggestedQuestionsAfterAnswerConfig(enabled=False)
19
+
20
+ def build(self) -> SuggestedQuestionsAfterAnswerConfig:
21
+ return self._config
22
+
23
+ def enabled(self, enabled: bool) -> SuggestedQuestionsAfterAnswerConfigBuilder:
24
+ self._config.enabled = enabled
25
+ return self
26
+
27
+
28
+ class SpeechToTextConfig(BaseModel):
29
+ """Configuration for speech to text feature."""
30
+
31
+ enabled: bool
32
+
33
+ @staticmethod
34
+ def builder() -> SpeechToTextConfigBuilder:
35
+ return SpeechToTextConfigBuilder()
36
+
37
+
38
+ class SpeechToTextConfigBuilder:
39
+ def __init__(self):
40
+ self._config = SpeechToTextConfig(enabled=False)
41
+
42
+ def build(self) -> SpeechToTextConfig:
43
+ return self._config
44
+
45
+ def enabled(self, enabled: bool) -> SpeechToTextConfigBuilder:
46
+ self._config.enabled = enabled
47
+ return self
48
+
49
+
50
+ class RetrieverResourceConfig(BaseModel):
51
+ """Configuration for retriever resource (citation and attribution) feature."""
52
+
53
+ enabled: bool
54
+
55
+ @staticmethod
56
+ def builder() -> RetrieverResourceConfigBuilder:
57
+ return RetrieverResourceConfigBuilder()
58
+
59
+
60
+ class RetrieverResourceConfigBuilder:
61
+ def __init__(self):
62
+ self._config = RetrieverResourceConfig(enabled=False)
63
+
64
+ def build(self) -> RetrieverResourceConfig:
65
+ return self._config
66
+
67
+ def enabled(self, enabled: bool) -> RetrieverResourceConfigBuilder:
68
+ self._config.enabled = enabled
69
+ return self
70
+
71
+
72
+ class AnnotationReplyConfig(BaseModel):
73
+ """Configuration for annotation reply feature."""
74
+
75
+ enabled: bool
76
+
77
+ @staticmethod
78
+ def builder() -> AnnotationReplyConfigBuilder:
79
+ return AnnotationReplyConfigBuilder()
80
+
81
+
82
+ class AnnotationReplyConfigBuilder:
83
+ def __init__(self):
84
+ self._config = AnnotationReplyConfig(enabled=False)
85
+
86
+ def build(self) -> AnnotationReplyConfig:
87
+ return self._config
88
+
89
+ def enabled(self, enabled: bool) -> AnnotationReplyConfigBuilder:
90
+ self._config.enabled = enabled
91
+ return self
@@ -2,6 +2,12 @@ from __future__ import annotations
2
2
 
3
3
  from pydantic import BaseModel
4
4
 
5
+ from .feature_config import (
6
+ AnnotationReplyConfig,
7
+ RetrieverResourceConfig,
8
+ SpeechToTextConfig,
9
+ SuggestedQuestionsAfterAnswerConfig,
10
+ )
5
11
  from .file_upload_config import FileUploadConfig
6
12
  from .system_parameters import SystemParameters
7
13
  from .user_input_form import UserInputForm
@@ -10,10 +16,10 @@ from .user_input_form import UserInputForm
10
16
  class ParametersInfo(BaseModel):
11
17
  opening_statement: str | None = None
12
18
  suggested_questions: list[str] | None = None
13
- suggested_questions_after_answer: dict | None = None
14
- speech_to_text: dict | None = None
15
- retriever_resource: dict | None = None
16
- annotation_reply: dict | None = None
19
+ suggested_questions_after_answer: SuggestedQuestionsAfterAnswerConfig | None = None
20
+ speech_to_text: SpeechToTextConfig | None = None
21
+ retriever_resource: RetrieverResourceConfig | None = None
22
+ annotation_reply: AnnotationReplyConfig | None = None
17
23
  user_input_form: list[UserInputForm] | None = None
18
24
  file_upload: FileUploadConfig | None = None
19
25
  system_parameters: SystemParameters | None = None
@@ -38,19 +44,21 @@ class ParametersInfoBuilder:
38
44
  self._parameters_info.suggested_questions = suggested_questions
39
45
  return self
40
46
 
41
- def suggested_questions_after_answer(self, suggested_questions_after_answer: dict) -> ParametersInfoBuilder:
47
+ def suggested_questions_after_answer(
48
+ self, suggested_questions_after_answer: SuggestedQuestionsAfterAnswerConfig
49
+ ) -> ParametersInfoBuilder:
42
50
  self._parameters_info.suggested_questions_after_answer = suggested_questions_after_answer
43
51
  return self
44
52
 
45
- def speech_to_text(self, speech_to_text: dict) -> ParametersInfoBuilder:
53
+ def speech_to_text(self, speech_to_text: SpeechToTextConfig) -> ParametersInfoBuilder:
46
54
  self._parameters_info.speech_to_text = speech_to_text
47
55
  return self
48
56
 
49
- def retriever_resource(self, retriever_resource: dict) -> ParametersInfoBuilder:
57
+ def retriever_resource(self, retriever_resource: RetrieverResourceConfig) -> ParametersInfoBuilder:
50
58
  self._parameters_info.retriever_resource = retriever_resource
51
59
  return self
52
60
 
53
- def annotation_reply(self, annotation_reply: dict) -> ParametersInfoBuilder:
61
+ def annotation_reply(self, annotation_reply: AnnotationReplyConfig) -> ParametersInfoBuilder:
54
62
  self._parameters_info.annotation_reply = annotation_reply
55
63
  return self
56
64
 
@@ -2,7 +2,7 @@ from __future__ import annotations
2
2
 
3
3
  from pydantic import BaseModel
4
4
 
5
- from ..completion.completion_types import IconType
5
+ from ..completion.completion_types import IconType, LanguageCode
6
6
 
7
7
 
8
8
  class SiteInfo(BaseModel):
@@ -17,7 +17,7 @@ class SiteInfo(BaseModel):
17
17
  copyright: str | None = None
18
18
  privacy_policy: str | None = None
19
19
  custom_disclaimer: str | None = None
20
- default_language: str | None = None
20
+ default_language: LanguageCode | None = None
21
21
  show_workflow_steps: bool | None = None
22
22
  use_icon_as_answer_icon: bool | None = None
23
23
 
@@ -77,7 +77,7 @@ class SiteInfoBuilder:
77
77
  self._site_info.custom_disclaimer = custom_disclaimer
78
78
  return self
79
79
 
80
- def default_language(self, default_language: str) -> SiteInfoBuilder:
80
+ def default_language(self, default_language: LanguageCode) -> SiteInfoBuilder:
81
81
  self._site_info.default_language = default_language
82
82
  return self
83
83