dify-oapi2 0.4.0__py3-none-any.whl → 1.0.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (215) hide show
  1. dify_oapi/api/chat/v1/model/__init__.py +37 -0
  2. dify_oapi/api/chat/v1/model/agent_thought.py +69 -0
  3. dify_oapi/api/chat/v1/model/annotation_info.py +43 -0
  4. dify_oapi/api/{completion/v1/model/info → chat/v1/model}/app_info.py +6 -14
  5. dify_oapi/api/chat/v1/model/app_parameters.py +494 -0
  6. dify_oapi/api/chat/v1/model/chat_file.py +53 -0
  7. dify_oapi/api/chat/v1/model/chat_request_body.py +26 -13
  8. dify_oapi/api/chat/v1/model/chat_response.py +13 -2
  9. dify_oapi/api/chat/v1/model/chat_types.py +65 -0
  10. dify_oapi/api/chat/v1/model/configure_annotation_reply_request.py +37 -0
  11. dify_oapi/api/chat/v1/model/configure_annotation_reply_request_body.py +39 -0
  12. dify_oapi/api/chat/v1/model/configure_annotation_reply_response.py +10 -0
  13. dify_oapi/api/chat/v1/model/conversation_info.py +57 -0
  14. dify_oapi/api/chat/v1/model/conversation_variable.py +55 -0
  15. dify_oapi/api/chat/v1/model/create_annotation_request.py +30 -0
  16. dify_oapi/api/chat/v1/model/create_annotation_request_body.py +32 -0
  17. dify_oapi/api/chat/v1/model/create_annotation_response.py +9 -0
  18. dify_oapi/api/chat/v1/model/delete_annotation_request.py +26 -0
  19. dify_oapi/api/chat/v1/model/delete_annotation_response.py +7 -0
  20. dify_oapi/api/{completion/v1/model/feedback → chat/v1/model}/feedback_info.py +29 -7
  21. dify_oapi/api/{completion/v1/model/file → chat/v1/model}/file_info.py +6 -0
  22. dify_oapi/api/chat/v1/model/get_annotation_reply_status_request.py +32 -0
  23. dify_oapi/api/chat/v1/model/get_annotation_reply_status_response.py +11 -0
  24. dify_oapi/api/chat/v1/model/get_conversation_list_request.py +25 -24
  25. dify_oapi/api/chat/v1/model/get_conversation_list_response.py +4 -15
  26. dify_oapi/api/chat/v1/model/get_conversation_variables_request.py +54 -0
  27. dify_oapi/api/chat/v1/model/get_conversation_variables_response.py +10 -0
  28. dify_oapi/api/chat/v1/model/get_conversations_request.py +49 -0
  29. dify_oapi/api/chat/v1/model/get_suggested_questions_request.py +36 -0
  30. dify_oapi/api/chat/v1/model/{message_suggested_response.py → get_suggested_questions_response.py} +1 -1
  31. dify_oapi/api/chat/v1/model/list_annotations_request.py +32 -0
  32. dify_oapi/api/chat/v1/model/list_annotations_response.py +11 -0
  33. dify_oapi/api/chat/v1/model/message_file.py +46 -0
  34. dify_oapi/api/chat/v1/model/message_history_request.py +24 -24
  35. dify_oapi/api/chat/v1/model/message_history_response.py +4 -43
  36. dify_oapi/api/chat/v1/model/message_info.py +73 -0
  37. dify_oapi/api/chat/v1/model/pagination_info.py +44 -0
  38. dify_oapi/api/chat/v1/model/rename_conversation_request_body.py +1 -1
  39. dify_oapi/api/chat/v1/model/retriever_resource.py +64 -0
  40. dify_oapi/api/chat/v1/model/site_settings.py +92 -0
  41. dify_oapi/api/chat/v1/model/text_to_audio_response.py +7 -0
  42. dify_oapi/api/chat/v1/model/tool_icon.py +52 -0
  43. dify_oapi/api/chat/v1/model/update_annotation_request.py +34 -0
  44. dify_oapi/api/chat/v1/model/update_annotation_request_body.py +32 -0
  45. dify_oapi/api/chat/v1/model/update_annotation_response.py +9 -0
  46. dify_oapi/api/{completion/v1/model/file → chat/v1/model}/upload_file_request_body.py +9 -3
  47. dify_oapi/api/chat/v1/model/usage_info.py +84 -0
  48. dify_oapi/api/chat/v1/resource/__init__.py +1 -4
  49. dify_oapi/api/chat/v1/resource/annotation.py +87 -0
  50. dify_oapi/api/chat/v1/resource/chat.py +47 -25
  51. dify_oapi/api/chat/v1/resource/conversation.py +45 -33
  52. dify_oapi/api/chat/v1/resource/message.py +22 -20
  53. dify_oapi/api/chat/v1/version.py +18 -5
  54. dify_oapi/api/chatflow/__init__.py +0 -0
  55. dify_oapi/api/chatflow/service.py +8 -0
  56. dify_oapi/api/chatflow/v1/__init__.py +0 -0
  57. dify_oapi/api/chatflow/v1/model/__init__.py +0 -0
  58. dify_oapi/api/chatflow/v1/model/annotation_info.py +43 -0
  59. dify_oapi/api/chatflow/v1/model/annotation_reply_settings_request.py +37 -0
  60. dify_oapi/api/chatflow/v1/model/annotation_reply_settings_request_body.py +33 -0
  61. dify_oapi/api/chatflow/v1/model/annotation_reply_settings_response.py +10 -0
  62. dify_oapi/api/chatflow/v1/model/annotation_reply_status_request.py +36 -0
  63. dify_oapi/api/chatflow/v1/model/annotation_reply_status_response.py +11 -0
  64. dify_oapi/api/chatflow/v1/model/app_info.py +33 -0
  65. dify_oapi/api/chatflow/v1/model/app_parameters.py +276 -0
  66. dify_oapi/api/chatflow/v1/model/chat_file.py +40 -0
  67. dify_oapi/api/chatflow/v1/model/chat_message.py +88 -0
  68. dify_oapi/api/chatflow/v1/model/chatflow_types.py +210 -0
  69. dify_oapi/api/chatflow/v1/model/conversation_info.py +53 -0
  70. dify_oapi/api/chatflow/v1/model/conversation_variable.py +55 -0
  71. dify_oapi/api/chatflow/v1/model/create_annotation_request.py +30 -0
  72. dify_oapi/api/chatflow/v1/model/create_annotation_request_body.py +28 -0
  73. dify_oapi/api/chatflow/v1/model/create_annotation_response.py +9 -0
  74. dify_oapi/api/chatflow/v1/model/delete_annotation_request.py +28 -0
  75. dify_oapi/api/chatflow/v1/model/delete_annotation_response.py +7 -0
  76. dify_oapi/api/chatflow/v1/model/delete_conversation_request.py +36 -0
  77. dify_oapi/api/chatflow/v1/model/delete_conversation_request_body.py +21 -0
  78. dify_oapi/api/chatflow/v1/model/delete_conversation_response.py +17 -0
  79. dify_oapi/api/chatflow/v1/model/feedback_info.py +75 -0
  80. dify_oapi/api/chatflow/v1/model/file_info.py +53 -0
  81. dify_oapi/api/chatflow/v1/model/get_annotations_request.py +30 -0
  82. dify_oapi/api/chatflow/v1/model/get_annotations_response.py +13 -0
  83. dify_oapi/api/chatflow/v1/model/get_conversation_messages_request.py +38 -0
  84. dify_oapi/api/chatflow/v1/model/get_conversation_messages_response.py +33 -0
  85. dify_oapi/api/chatflow/v1/model/get_conversation_variables_request.py +44 -0
  86. dify_oapi/api/chatflow/v1/model/get_conversation_variables_response.py +33 -0
  87. dify_oapi/api/chatflow/v1/model/get_conversations_request.py +40 -0
  88. dify_oapi/api/chatflow/v1/model/get_conversations_response.py +33 -0
  89. dify_oapi/api/chatflow/v1/model/get_suggested_questions_request.py +32 -0
  90. dify_oapi/api/{completion/v1/model/feedback/message_feedback_response.py → chatflow/v1/model/get_suggested_questions_response.py} +2 -3
  91. dify_oapi/api/chatflow/v1/model/rename_conversation_request.py +36 -0
  92. dify_oapi/api/chatflow/v1/model/rename_conversation_request_body.py +31 -0
  93. dify_oapi/api/chatflow/v1/model/rename_conversation_response.py +53 -0
  94. dify_oapi/api/chatflow/v1/model/retriever_resource.py +58 -0
  95. dify_oapi/api/chatflow/v1/model/send_chat_message_request.py +30 -0
  96. dify_oapi/api/chatflow/v1/model/send_chat_message_request_body.py +54 -0
  97. dify_oapi/api/chatflow/v1/model/send_chat_message_response.py +7 -0
  98. dify_oapi/api/chatflow/v1/model/stop_chat_message_request.py +36 -0
  99. dify_oapi/api/chatflow/v1/model/stop_chat_message_request_body.py +21 -0
  100. dify_oapi/api/{dify/v1/model/message_feedback_response.py → chatflow/v1/model/stop_chat_message_response.py} +1 -1
  101. dify_oapi/api/chatflow/v1/model/tool_icon.py +48 -0
  102. dify_oapi/api/chatflow/v1/model/update_annotation_request.py +36 -0
  103. dify_oapi/api/chatflow/v1/model/update_annotation_request_body.py +28 -0
  104. dify_oapi/api/chatflow/v1/model/update_annotation_response.py +9 -0
  105. dify_oapi/api/chatflow/v1/model/usage_info.py +78 -0
  106. dify_oapi/api/chatflow/v1/model/user_input_form.py +141 -0
  107. dify_oapi/api/chatflow/v1/model/webapp_settings.py +88 -0
  108. dify_oapi/api/chatflow/v1/resource/__init__.py +0 -0
  109. dify_oapi/api/chatflow/v1/resource/annotation.py +87 -0
  110. dify_oapi/api/chatflow/v1/resource/chatflow.py +78 -0
  111. dify_oapi/api/chatflow/v1/resource/conversation.py +75 -0
  112. dify_oapi/api/chatflow/v1/version.py +22 -0
  113. dify_oapi/api/completion/v1/resource/__init__.py +0 -6
  114. dify_oapi/api/completion/v1/version.py +8 -6
  115. dify_oapi/api/{chat → dify}/v1/model/audio_to_text_request_body.py +2 -2
  116. dify_oapi/api/{completion/v1/model/feedback → dify/v1/model}/get_feedbacks_request.py +12 -12
  117. dify_oapi/api/dify/v1/model/get_feedbacks_response.py +26 -0
  118. dify_oapi/api/{workflow → dify}/v1/model/get_parameters_request.py +4 -0
  119. dify_oapi/api/dify/v1/model/{get_parameter_response.py → get_parameters_response.py} +6 -2
  120. dify_oapi/api/dify/v1/model/get_site_response.py +17 -0
  121. dify_oapi/api/dify/v1/model/submit_feedback_request.py +34 -0
  122. dify_oapi/api/dify/v1/model/submit_feedback_request_body.py +35 -0
  123. dify_oapi/api/dify/v1/model/submit_feedback_response.py +7 -0
  124. dify_oapi/api/dify/v1/resource/__init__.py +0 -6
  125. dify_oapi/api/dify/v1/resource/audio.py +12 -0
  126. dify_oapi/api/dify/v1/resource/feedback.py +31 -0
  127. dify_oapi/api/dify/v1/resource/info.py +34 -2
  128. dify_oapi/api/dify/v1/version.py +5 -4
  129. dify_oapi/api/knowledge/service.py +3 -3
  130. dify_oapi/api/knowledge/v1/model/create_document_by_file_request.py +1 -3
  131. dify_oapi/api/knowledge/v1/model/create_document_by_file_request_body.py +4 -46
  132. dify_oapi/api/knowledge/v1/model/create_document_by_file_request_body_data.py +73 -0
  133. dify_oapi/api/knowledge/v1/model/data_source_detail.py +23 -0
  134. dify_oapi/api/knowledge/v1/model/dataset_info.py +10 -9
  135. dify_oapi/api/knowledge/v1/model/dataset_metadata.py +14 -0
  136. dify_oapi/api/knowledge/v1/model/document_info.py +18 -6
  137. dify_oapi/api/knowledge/v1/model/external_knowledge_info.py +11 -1
  138. dify_oapi/api/knowledge/v1/model/external_retrieval_model.py +13 -0
  139. dify_oapi/api/knowledge/v1/model/knowledge_types.py +2 -2
  140. dify_oapi/api/knowledge/v1/model/process_rule.py +0 -6
  141. dify_oapi/api/knowledge/v1/model/retrieval_model.py +10 -4
  142. dify_oapi/api/knowledge/v1/model/update_document_by_file_request.py +1 -3
  143. dify_oapi/api/knowledge/v1/model/update_document_by_file_request_body.py +4 -41
  144. dify_oapi/api/knowledge/v1/model/update_document_by_file_request_body_data.py +68 -0
  145. dify_oapi/api/knowledge/v1/model/weights.py +27 -0
  146. dify_oapi/api/knowledge/v1/resource/__init__.py +0 -8
  147. dify_oapi/api/workflow/v1/model/chunk_workflow_event.py +74 -0
  148. dify_oapi/api/workflow/v1/model/input_file_object_workflow.py +76 -0
  149. dify_oapi/api/workflow/v1/model/node_finished_data.py +118 -0
  150. dify_oapi/api/workflow/v1/model/node_started_data.py +81 -0
  151. dify_oapi/api/workflow/v1/model/ping_data.py +28 -0
  152. dify_oapi/api/workflow/v1/model/run_workflow_request_body.py +1 -1
  153. dify_oapi/api/workflow/v1/model/text_chunk_data.py +39 -0
  154. dify_oapi/api/workflow/v1/model/tts_message_data.py +45 -0
  155. dify_oapi/api/workflow/v1/model/tts_message_end_data.py +45 -0
  156. dify_oapi/api/workflow/v1/model/workflow_completion_response.py +50 -0
  157. dify_oapi/api/workflow/v1/model/workflow_finished_data.py +93 -0
  158. dify_oapi/api/workflow/v1/model/workflow_started_data.py +51 -0
  159. dify_oapi/api/workflow/v1/model/workflow_types.py +27 -12
  160. dify_oapi/api/workflow/v1/resource/workflow.py +0 -34
  161. dify_oapi/api/workflow/v1/version.py +9 -0
  162. dify_oapi/client.py +49 -4
  163. dify_oapi/core/http/transport/__init__.py +2 -1
  164. dify_oapi/core/http/transport/async_transport.py +73 -50
  165. dify_oapi/core/http/transport/connection_pool.py +131 -0
  166. dify_oapi/core/http/transport/sync_transport.py +73 -50
  167. dify_oapi/core/model/config.py +10 -0
  168. dify_oapi2-1.0.0.dist-info/METADATA +365 -0
  169. {dify_oapi2-0.4.0.dist-info → dify_oapi2-1.0.0.dist-info}/RECORD +174 -98
  170. dify_oapi/api/chat/v1/model/chat_request_file.py +0 -46
  171. dify_oapi/api/chat/v1/model/message_suggested_request.py +0 -36
  172. dify_oapi/api/chat/v1/resource/audio.py +0 -17
  173. dify_oapi/api/completion/v1/model/audio/audio_info.py +0 -28
  174. dify_oapi/api/completion/v1/model/audio/text_to_audio_request.py +0 -32
  175. dify_oapi/api/completion/v1/model/audio/text_to_audio_request_body.py +0 -33
  176. dify_oapi/api/completion/v1/model/audio/text_to_audio_response.py +0 -9
  177. dify_oapi/api/completion/v1/model/feedback/get_feedbacks_response.py +0 -9
  178. dify_oapi/api/completion/v1/model/feedback/message_feedback_request.py +0 -38
  179. dify_oapi/api/completion/v1/model/feedback/message_feedback_request_body.py +0 -35
  180. dify_oapi/api/completion/v1/model/file/upload_file_request.py +0 -42
  181. dify_oapi/api/completion/v1/model/file/upload_file_response.py +0 -9
  182. dify_oapi/api/completion/v1/model/info/feature_config.py +0 -91
  183. dify_oapi/api/completion/v1/model/info/file_upload_config.py +0 -23
  184. dify_oapi/api/completion/v1/model/info/get_info_request.py +0 -24
  185. dify_oapi/api/completion/v1/model/info/get_info_response.py +0 -9
  186. dify_oapi/api/completion/v1/model/info/get_parameters_request.py +0 -24
  187. dify_oapi/api/completion/v1/model/info/get_parameters_response.py +0 -9
  188. dify_oapi/api/completion/v1/model/info/get_site_response.py +0 -9
  189. dify_oapi/api/completion/v1/model/info/parameters_info.py +0 -75
  190. dify_oapi/api/completion/v1/model/info/site_info.py +0 -90
  191. dify_oapi/api/completion/v1/model/info/system_parameters.py +0 -38
  192. dify_oapi/api/completion/v1/model/info/user_input_form.py +0 -158
  193. dify_oapi/api/completion/v1/resource/audio.py +0 -19
  194. dify_oapi/api/completion/v1/resource/feedback.py +0 -33
  195. dify_oapi/api/completion/v1/resource/file.py +0 -19
  196. dify_oapi/api/completion/v1/resource/info.py +0 -39
  197. dify_oapi/api/dify/v1/model/get_parameter_request.py +0 -30
  198. dify_oapi/api/dify/v1/model/message_feedback_request.py +0 -38
  199. dify_oapi/api/dify/v1/model/message_feedback_request_body.py +0 -30
  200. dify_oapi/api/dify/v1/resource/message.py +0 -21
  201. dify_oapi/api/dify/v1/resource/meta.py +0 -17
  202. dify_oapi/api/dify/v1/resource/parameter.py +0 -19
  203. dify_oapi/api/workflow/v1/model/get_info_request.py +0 -24
  204. dify_oapi/api/workflow/v1/model/get_info_response.py +0 -9
  205. dify_oapi/api/workflow/v1/model/get_parameters_response.py +0 -9
  206. dify_oapi/api/workflow/v1/model/get_site_request.py +0 -24
  207. dify_oapi/api/workflow/v1/model/get_site_response.py +0 -9
  208. dify_oapi/api/workflow/v1/model/upload_file_request.py +0 -42
  209. dify_oapi/api/workflow/v1/model/upload_file_response.py +0 -9
  210. dify_oapi2-0.4.0.dist-info/METADATA +0 -303
  211. /dify_oapi/api/{chat → dify}/v1/model/audio_to_text_request.py +0 -0
  212. /dify_oapi/api/{chat → dify}/v1/model/audio_to_text_response.py +0 -0
  213. /dify_oapi/api/{completion/v1/model/info → dify/v1/model}/get_site_request.py +0 -0
  214. {dify_oapi2-0.4.0.dist-info → dify_oapi2-1.0.0.dist-info}/LICENSE +0 -0
  215. {dify_oapi2-0.4.0.dist-info → dify_oapi2-1.0.0.dist-info}/WHEEL +0 -0
@@ -0,0 +1,37 @@
1
+ """Chat API model package."""
2
+
3
+ # Annotation Management Models
4
+ from .configure_annotation_reply_request import ConfigureAnnotationReplyRequest
5
+ from .configure_annotation_reply_request_body import ConfigureAnnotationReplyRequestBody
6
+ from .configure_annotation_reply_response import ConfigureAnnotationReplyResponse
7
+ from .create_annotation_request import CreateAnnotationRequest
8
+ from .create_annotation_request_body import CreateAnnotationRequestBody
9
+ from .create_annotation_response import CreateAnnotationResponse
10
+ from .delete_annotation_request import DeleteAnnotationRequest
11
+ from .delete_annotation_response import DeleteAnnotationResponse
12
+ from .get_annotation_reply_status_request import GetAnnotationReplyStatusRequest
13
+ from .get_annotation_reply_status_response import GetAnnotationReplyStatusResponse
14
+ from .list_annotations_request import ListAnnotationsRequest
15
+ from .list_annotations_response import ListAnnotationsResponse
16
+ from .update_annotation_request import UpdateAnnotationRequest
17
+ from .update_annotation_request_body import UpdateAnnotationRequestBody
18
+ from .update_annotation_response import UpdateAnnotationResponse
19
+
20
+ __all__ = [
21
+ # Annotation Management Models
22
+ "ConfigureAnnotationReplyRequest",
23
+ "ConfigureAnnotationReplyRequestBody",
24
+ "ConfigureAnnotationReplyResponse",
25
+ "CreateAnnotationRequest",
26
+ "CreateAnnotationRequestBody",
27
+ "CreateAnnotationResponse",
28
+ "DeleteAnnotationRequest",
29
+ "DeleteAnnotationResponse",
30
+ "GetAnnotationReplyStatusRequest",
31
+ "GetAnnotationReplyStatusResponse",
32
+ "ListAnnotationsRequest",
33
+ "ListAnnotationsResponse",
34
+ "UpdateAnnotationRequest",
35
+ "UpdateAnnotationRequestBody",
36
+ "UpdateAnnotationResponse",
37
+ ]
@@ -0,0 +1,69 @@
1
+ """Agent thought model for Chat API."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from pydantic import BaseModel
6
+
7
+
8
+ class AgentThought(BaseModel):
9
+ """Agent thought model."""
10
+
11
+ id: str | None = None
12
+ message_id: str | None = None
13
+ position: int | None = None
14
+ thought: str | None = None
15
+ observation: str | None = None
16
+ tool: str | None = None
17
+ tool_input: str | None = None
18
+ message_files: list[str] | None = None
19
+ created_at: int | None = None
20
+
21
+ @staticmethod
22
+ def builder() -> AgentThoughtBuilder:
23
+ return AgentThoughtBuilder()
24
+
25
+
26
+ class AgentThoughtBuilder:
27
+ """Builder for AgentThought."""
28
+
29
+ def __init__(self):
30
+ self._agent_thought = AgentThought()
31
+
32
+ def build(self) -> AgentThought:
33
+ return self._agent_thought
34
+
35
+ def id(self, id: str) -> AgentThoughtBuilder:
36
+ self._agent_thought.id = id
37
+ return self
38
+
39
+ def message_id(self, message_id: str) -> AgentThoughtBuilder:
40
+ self._agent_thought.message_id = message_id
41
+ return self
42
+
43
+ def position(self, position: int) -> AgentThoughtBuilder:
44
+ self._agent_thought.position = position
45
+ return self
46
+
47
+ def thought(self, thought: str) -> AgentThoughtBuilder:
48
+ self._agent_thought.thought = thought
49
+ return self
50
+
51
+ def observation(self, observation: str) -> AgentThoughtBuilder:
52
+ self._agent_thought.observation = observation
53
+ return self
54
+
55
+ def tool(self, tool: str) -> AgentThoughtBuilder:
56
+ self._agent_thought.tool = tool
57
+ return self
58
+
59
+ def tool_input(self, tool_input: str) -> AgentThoughtBuilder:
60
+ self._agent_thought.tool_input = tool_input
61
+ return self
62
+
63
+ def message_files(self, message_files: list[str]) -> AgentThoughtBuilder:
64
+ self._agent_thought.message_files = message_files
65
+ return self
66
+
67
+ def created_at(self, created_at: int) -> AgentThoughtBuilder:
68
+ self._agent_thought.created_at = created_at
69
+ return self
@@ -0,0 +1,43 @@
1
+ from __future__ import annotations
2
+
3
+ from pydantic import BaseModel
4
+
5
+
6
+ class AnnotationInfo(BaseModel):
7
+ id: str | None = None
8
+ question: str | None = None
9
+ answer: str | None = None
10
+ hit_count: int | None = None
11
+ created_at: int | None = None
12
+
13
+ @staticmethod
14
+ def builder() -> AnnotationInfoBuilder:
15
+ return AnnotationInfoBuilder()
16
+
17
+
18
+ class AnnotationInfoBuilder:
19
+ def __init__(self):
20
+ self._annotation_info = AnnotationInfo()
21
+
22
+ def id(self, id: str) -> AnnotationInfoBuilder:
23
+ self._annotation_info.id = id
24
+ return self
25
+
26
+ def question(self, question: str) -> AnnotationInfoBuilder:
27
+ self._annotation_info.question = question
28
+ return self
29
+
30
+ def answer(self, answer: str) -> AnnotationInfoBuilder:
31
+ self._annotation_info.answer = answer
32
+ return self
33
+
34
+ def hit_count(self, hit_count: int) -> AnnotationInfoBuilder:
35
+ self._annotation_info.hit_count = hit_count
36
+ return self
37
+
38
+ def created_at(self, created_at: int) -> AnnotationInfoBuilder:
39
+ self._annotation_info.created_at = created_at
40
+ return self
41
+
42
+ def build(self) -> AnnotationInfo:
43
+ return self._annotation_info
@@ -4,11 +4,11 @@ from pydantic import BaseModel
4
4
 
5
5
 
6
6
  class AppInfo(BaseModel):
7
- name: str | None = None
8
- description: str | None = None
9
- tags: list[str] | None = None
10
- mode: str | None = None
11
- author_name: str | None = None
7
+ """Application basic information model."""
8
+
9
+ name: str
10
+ description: str
11
+ tags: list[str]
12
12
 
13
13
  @staticmethod
14
14
  def builder() -> AppInfoBuilder:
@@ -17,7 +17,7 @@ class AppInfo(BaseModel):
17
17
 
18
18
  class AppInfoBuilder:
19
19
  def __init__(self):
20
- self._app_info = AppInfo()
20
+ self._app_info = AppInfo(name="", description="", tags=[])
21
21
 
22
22
  def build(self) -> AppInfo:
23
23
  return self._app_info
@@ -33,11 +33,3 @@ class AppInfoBuilder:
33
33
  def tags(self, tags: list[str]) -> AppInfoBuilder:
34
34
  self._app_info.tags = tags
35
35
  return self
36
-
37
- def mode(self, mode: str) -> AppInfoBuilder:
38
- self._app_info.mode = mode
39
- return self
40
-
41
- def author_name(self, author_name: str) -> AppInfoBuilder:
42
- self._app_info.author_name = author_name
43
- return self
@@ -0,0 +1,494 @@
1
+ from __future__ import annotations
2
+
3
+ from pydantic import BaseModel
4
+
5
+ from .chat_types import TransferMethod
6
+
7
+
8
+ class TextInputConfig(BaseModel):
9
+ """Text input configuration."""
10
+
11
+ label: str
12
+ variable: str
13
+ required: bool
14
+ default: str | None = None
15
+
16
+
17
+ class ParagraphConfig(BaseModel):
18
+ """Paragraph input configuration."""
19
+
20
+ label: str
21
+ variable: str
22
+ required: bool
23
+ default: str | None = None
24
+
25
+
26
+ class SelectConfig(BaseModel):
27
+ """Select input configuration."""
28
+
29
+ label: str
30
+ variable: str
31
+ required: bool
32
+ options: list[str]
33
+ default: str | None = None
34
+
35
+
36
+ class UserInputFormItem(BaseModel):
37
+ """User input form item configuration."""
38
+
39
+ # Text input configuration
40
+ text_input: TextInputConfig | None = None
41
+ # Paragraph input configuration
42
+ paragraph: ParagraphConfig | None = None
43
+ # Select input configuration
44
+ select: SelectConfig | None = None
45
+
46
+ @staticmethod
47
+ def builder() -> UserInputFormItemBuilder:
48
+ return UserInputFormItemBuilder()
49
+
50
+
51
+ class UserInputFormItemBuilder:
52
+ def __init__(self):
53
+ self._user_input_form_item = UserInputFormItem()
54
+
55
+ def build(self) -> UserInputFormItem:
56
+ return self._user_input_form_item
57
+
58
+ def text_input(
59
+ self, label: str, variable: str, required: bool, default: str | None = None
60
+ ) -> UserInputFormItemBuilder:
61
+ self._user_input_form_item.text_input = TextInputConfig(
62
+ label=label, variable=variable, required=required, default=default
63
+ )
64
+ return self
65
+
66
+ def paragraph(
67
+ self, label: str, variable: str, required: bool, default: str | None = None
68
+ ) -> UserInputFormItemBuilder:
69
+ self._user_input_form_item.paragraph = ParagraphConfig(
70
+ label=label, variable=variable, required=required, default=default
71
+ )
72
+ return self
73
+
74
+ def select(
75
+ self, label: str, variable: str, required: bool, options: list[str], default: str | None = None
76
+ ) -> UserInputFormItemBuilder:
77
+ self._user_input_form_item.select = SelectConfig(
78
+ label=label, variable=variable, required=required, options=options, default=default
79
+ )
80
+ return self
81
+
82
+
83
+ class ImageUploadConfig(BaseModel):
84
+ """Image upload configuration."""
85
+
86
+ enabled: bool | None = None
87
+ number_limits: int | None = None
88
+ transfer_methods: list[TransferMethod] | None = None
89
+
90
+ @staticmethod
91
+ def builder() -> ImageUploadConfigBuilder:
92
+ return ImageUploadConfigBuilder()
93
+
94
+
95
+ class ImageUploadConfigBuilder:
96
+ def __init__(self):
97
+ self._image_upload_config = ImageUploadConfig()
98
+
99
+ def build(self) -> ImageUploadConfig:
100
+ return self._image_upload_config
101
+
102
+ def enabled(self, enabled: bool) -> ImageUploadConfigBuilder:
103
+ self._image_upload_config.enabled = enabled
104
+ return self
105
+
106
+ def number_limits(self, number_limits: int) -> ImageUploadConfigBuilder:
107
+ self._image_upload_config.number_limits = number_limits
108
+ return self
109
+
110
+ def transfer_methods(self, transfer_methods: list[TransferMethod]) -> ImageUploadConfigBuilder:
111
+ self._image_upload_config.transfer_methods = transfer_methods
112
+ return self
113
+
114
+
115
+ class FileUploadSystemConfig(BaseModel):
116
+ """File upload system configuration."""
117
+
118
+ file_size_limit: int | None = None
119
+ batch_count_limit: int | None = None
120
+ image_file_size_limit: int | None = None
121
+ video_file_size_limit: int | None = None
122
+ audio_file_size_limit: int | None = None
123
+ workflow_file_upload_limit: int | None = None
124
+
125
+ @staticmethod
126
+ def builder() -> FileUploadSystemConfigBuilder:
127
+ return FileUploadSystemConfigBuilder()
128
+
129
+
130
+ class FileUploadSystemConfigBuilder:
131
+ def __init__(self):
132
+ self._config = FileUploadSystemConfig()
133
+
134
+ def build(self) -> FileUploadSystemConfig:
135
+ return self._config
136
+
137
+ def file_size_limit(self, file_size_limit: int) -> FileUploadSystemConfigBuilder:
138
+ self._config.file_size_limit = file_size_limit
139
+ return self
140
+
141
+ def batch_count_limit(self, batch_count_limit: int) -> FileUploadSystemConfigBuilder:
142
+ self._config.batch_count_limit = batch_count_limit
143
+ return self
144
+
145
+ def image_file_size_limit(self, image_file_size_limit: int) -> FileUploadSystemConfigBuilder:
146
+ self._config.image_file_size_limit = image_file_size_limit
147
+ return self
148
+
149
+ def video_file_size_limit(self, video_file_size_limit: int) -> FileUploadSystemConfigBuilder:
150
+ self._config.video_file_size_limit = video_file_size_limit
151
+ return self
152
+
153
+ def audio_file_size_limit(self, audio_file_size_limit: int) -> FileUploadSystemConfigBuilder:
154
+ self._config.audio_file_size_limit = audio_file_size_limit
155
+ return self
156
+
157
+ def workflow_file_upload_limit(self, workflow_file_upload_limit: int) -> FileUploadSystemConfigBuilder:
158
+ self._config.workflow_file_upload_limit = workflow_file_upload_limit
159
+ return self
160
+
161
+
162
+ class FileUploadConfig(BaseModel):
163
+ """Complete file upload configuration."""
164
+
165
+ image: ImageUploadConfig | None = None
166
+ enabled: bool | None = None
167
+ allowed_file_types: list[str] | None = None
168
+ allowed_file_extensions: list[str] | None = None
169
+ allowed_file_upload_methods: list[TransferMethod] | None = None
170
+ number_limits: int | None = None
171
+ file_upload_config: FileUploadSystemConfig | None = None
172
+
173
+ @staticmethod
174
+ def builder() -> FileUploadConfigBuilder:
175
+ return FileUploadConfigBuilder()
176
+
177
+
178
+ class FileUploadConfigBuilder:
179
+ def __init__(self):
180
+ self._file_upload_config = FileUploadConfig()
181
+
182
+ def build(self) -> FileUploadConfig:
183
+ return self._file_upload_config
184
+
185
+ def image(self, image: ImageUploadConfig) -> FileUploadConfigBuilder:
186
+ self._file_upload_config.image = image
187
+ return self
188
+
189
+ def enabled(self, enabled: bool) -> FileUploadConfigBuilder:
190
+ self._file_upload_config.enabled = enabled
191
+ return self
192
+
193
+ def allowed_file_types(self, allowed_file_types: list[str]) -> FileUploadConfigBuilder:
194
+ self._file_upload_config.allowed_file_types = allowed_file_types
195
+ return self
196
+
197
+ def allowed_file_extensions(self, allowed_file_extensions: list[str]) -> FileUploadConfigBuilder:
198
+ self._file_upload_config.allowed_file_extensions = allowed_file_extensions
199
+ return self
200
+
201
+ def allowed_file_upload_methods(self, allowed_file_upload_methods: list[TransferMethod]) -> FileUploadConfigBuilder:
202
+ self._file_upload_config.allowed_file_upload_methods = allowed_file_upload_methods
203
+ return self
204
+
205
+ def number_limits(self, number_limits: int) -> FileUploadConfigBuilder:
206
+ self._file_upload_config.number_limits = number_limits
207
+ return self
208
+
209
+ def file_upload_config(self, file_upload_config: FileUploadSystemConfig) -> FileUploadConfigBuilder:
210
+ self._file_upload_config.file_upload_config = file_upload_config
211
+ return self
212
+
213
+
214
+ class SuggestedQuestionsAfterAnswerConfig(BaseModel):
215
+ """Suggested questions after answer configuration."""
216
+
217
+ enabled: bool | None = None
218
+
219
+ @staticmethod
220
+ def builder() -> SuggestedQuestionsAfterAnswerConfigBuilder:
221
+ return SuggestedQuestionsAfterAnswerConfigBuilder()
222
+
223
+
224
+ class SuggestedQuestionsAfterAnswerConfigBuilder:
225
+ def __init__(self):
226
+ self._config = SuggestedQuestionsAfterAnswerConfig()
227
+
228
+ def build(self) -> SuggestedQuestionsAfterAnswerConfig:
229
+ return self._config
230
+
231
+ def enabled(self, enabled: bool) -> SuggestedQuestionsAfterAnswerConfigBuilder:
232
+ self._config.enabled = enabled
233
+ return self
234
+
235
+
236
+ class SpeechToTextConfig(BaseModel):
237
+ """Speech to text configuration."""
238
+
239
+ enabled: bool | None = None
240
+
241
+ @staticmethod
242
+ def builder() -> SpeechToTextConfigBuilder:
243
+ return SpeechToTextConfigBuilder()
244
+
245
+
246
+ class SpeechToTextConfigBuilder:
247
+ def __init__(self):
248
+ self._config = SpeechToTextConfig()
249
+
250
+ def build(self) -> SpeechToTextConfig:
251
+ return self._config
252
+
253
+ def enabled(self, enabled: bool) -> SpeechToTextConfigBuilder:
254
+ self._config.enabled = enabled
255
+ return self
256
+
257
+
258
+ class TextToSpeechConfig(BaseModel):
259
+ """Text to speech configuration."""
260
+
261
+ enabled: bool | None = None
262
+ voice: str | None = None
263
+ language: str | None = None
264
+
265
+ @staticmethod
266
+ def builder() -> TextToSpeechConfigBuilder:
267
+ return TextToSpeechConfigBuilder()
268
+
269
+
270
+ class TextToSpeechConfigBuilder:
271
+ def __init__(self):
272
+ self._config = TextToSpeechConfig()
273
+
274
+ def build(self) -> TextToSpeechConfig:
275
+ return self._config
276
+
277
+ def enabled(self, enabled: bool) -> TextToSpeechConfigBuilder:
278
+ self._config.enabled = enabled
279
+ return self
280
+
281
+ def voice(self, voice: str) -> TextToSpeechConfigBuilder:
282
+ self._config.voice = voice
283
+ return self
284
+
285
+ def language(self, language: str) -> TextToSpeechConfigBuilder:
286
+ self._config.language = language
287
+ return self
288
+
289
+
290
+ class RetrieverResourceConfig(BaseModel):
291
+ """Retriever resource configuration."""
292
+
293
+ enabled: bool | None = None
294
+
295
+ @staticmethod
296
+ def builder() -> RetrieverResourceConfigBuilder:
297
+ return RetrieverResourceConfigBuilder()
298
+
299
+
300
+ class RetrieverResourceConfigBuilder:
301
+ def __init__(self):
302
+ self._config = RetrieverResourceConfig()
303
+
304
+ def build(self) -> RetrieverResourceConfig:
305
+ return self._config
306
+
307
+ def enabled(self, enabled: bool) -> RetrieverResourceConfigBuilder:
308
+ self._config.enabled = enabled
309
+ return self
310
+
311
+
312
+ class AnnotationReplyConfig(BaseModel):
313
+ """Annotation reply configuration."""
314
+
315
+ enabled: bool | None = None
316
+
317
+ @staticmethod
318
+ def builder() -> AnnotationReplyConfigBuilder:
319
+ return AnnotationReplyConfigBuilder()
320
+
321
+
322
+ class AnnotationReplyConfigBuilder:
323
+ def __init__(self):
324
+ self._config = AnnotationReplyConfig()
325
+
326
+ def build(self) -> AnnotationReplyConfig:
327
+ return self._config
328
+
329
+ def enabled(self, enabled: bool) -> AnnotationReplyConfigBuilder:
330
+ self._config.enabled = enabled
331
+ return self
332
+
333
+
334
+ class MoreLikeThisConfig(BaseModel):
335
+ """More like this configuration."""
336
+
337
+ enabled: bool | None = None
338
+
339
+ @staticmethod
340
+ def builder() -> MoreLikeThisConfigBuilder:
341
+ return MoreLikeThisConfigBuilder()
342
+
343
+
344
+ class MoreLikeThisConfigBuilder:
345
+ def __init__(self):
346
+ self._config = MoreLikeThisConfig()
347
+
348
+ def build(self) -> MoreLikeThisConfig:
349
+ return self._config
350
+
351
+ def enabled(self, enabled: bool) -> MoreLikeThisConfigBuilder:
352
+ self._config.enabled = enabled
353
+ return self
354
+
355
+
356
+ class SensitiveWordAvoidanceConfig(BaseModel):
357
+ """Sensitive word avoidance configuration."""
358
+
359
+ enabled: bool | None = None
360
+
361
+ @staticmethod
362
+ def builder() -> SensitiveWordAvoidanceConfigBuilder:
363
+ return SensitiveWordAvoidanceConfigBuilder()
364
+
365
+
366
+ class SensitiveWordAvoidanceConfigBuilder:
367
+ def __init__(self):
368
+ self._config = SensitiveWordAvoidanceConfig()
369
+
370
+ def build(self) -> SensitiveWordAvoidanceConfig:
371
+ return self._config
372
+
373
+ def enabled(self, enabled: bool) -> SensitiveWordAvoidanceConfigBuilder:
374
+ self._config.enabled = enabled
375
+ return self
376
+
377
+
378
+ class SystemParameters(BaseModel):
379
+ """System parameters configuration."""
380
+
381
+ image_file_size_limit: int | None = None
382
+ video_file_size_limit: int | None = None
383
+ audio_file_size_limit: int | None = None
384
+ file_size_limit: int | None = None
385
+ workflow_file_upload_limit: int | None = None
386
+
387
+ @staticmethod
388
+ def builder() -> SystemParametersBuilder:
389
+ return SystemParametersBuilder()
390
+
391
+
392
+ class SystemParametersBuilder:
393
+ def __init__(self):
394
+ self._system_parameters = SystemParameters()
395
+
396
+ def build(self) -> SystemParameters:
397
+ return self._system_parameters
398
+
399
+ def image_file_size_limit(self, image_file_size_limit: int) -> SystemParametersBuilder:
400
+ self._system_parameters.image_file_size_limit = image_file_size_limit
401
+ return self
402
+
403
+ def video_file_size_limit(self, video_file_size_limit: int) -> SystemParametersBuilder:
404
+ self._system_parameters.video_file_size_limit = video_file_size_limit
405
+ return self
406
+
407
+ def audio_file_size_limit(self, audio_file_size_limit: int) -> SystemParametersBuilder:
408
+ self._system_parameters.audio_file_size_limit = audio_file_size_limit
409
+ return self
410
+
411
+ def file_size_limit(self, file_size_limit: int) -> SystemParametersBuilder:
412
+ self._system_parameters.file_size_limit = file_size_limit
413
+ return self
414
+
415
+ def workflow_file_upload_limit(self, workflow_file_upload_limit: int) -> SystemParametersBuilder:
416
+ self._system_parameters.workflow_file_upload_limit = workflow_file_upload_limit
417
+ return self
418
+
419
+
420
+ class AppParameters(BaseModel):
421
+ """Application parameters configuration."""
422
+
423
+ opening_statement: str | None = None
424
+ suggested_questions: list[str] | None = None
425
+ suggested_questions_after_answer: SuggestedQuestionsAfterAnswerConfig | None = None
426
+ speech_to_text: SpeechToTextConfig | None = None
427
+ text_to_speech: TextToSpeechConfig | None = None
428
+ retriever_resource: RetrieverResourceConfig | None = None
429
+ annotation_reply: AnnotationReplyConfig | None = None
430
+ more_like_this: MoreLikeThisConfig | None = None
431
+ user_input_form: list[UserInputFormItem] | None = None
432
+ sensitive_word_avoidance: SensitiveWordAvoidanceConfig | None = None
433
+ file_upload: FileUploadConfig | None = None
434
+ system_parameters: SystemParameters | None = None
435
+
436
+ @staticmethod
437
+ def builder() -> AppParametersBuilder:
438
+ return AppParametersBuilder()
439
+
440
+
441
+ class AppParametersBuilder:
442
+ def __init__(self):
443
+ self._app_parameters = AppParameters()
444
+
445
+ def build(self) -> AppParameters:
446
+ return self._app_parameters
447
+
448
+ def opening_statement(self, opening_statement: str) -> AppParametersBuilder:
449
+ self._app_parameters.opening_statement = opening_statement
450
+ return self
451
+
452
+ def suggested_questions(self, suggested_questions: list[str]) -> AppParametersBuilder:
453
+ self._app_parameters.suggested_questions = suggested_questions
454
+ return self
455
+
456
+ def suggested_questions_after_answer(self, config: SuggestedQuestionsAfterAnswerConfig) -> AppParametersBuilder:
457
+ self._app_parameters.suggested_questions_after_answer = config
458
+ return self
459
+
460
+ def speech_to_text(self, config: SpeechToTextConfig) -> AppParametersBuilder:
461
+ self._app_parameters.speech_to_text = config
462
+ return self
463
+
464
+ def text_to_speech(self, config: TextToSpeechConfig) -> AppParametersBuilder:
465
+ self._app_parameters.text_to_speech = config
466
+ return self
467
+
468
+ def retriever_resource(self, config: RetrieverResourceConfig) -> AppParametersBuilder:
469
+ self._app_parameters.retriever_resource = config
470
+ return self
471
+
472
+ def annotation_reply(self, config: AnnotationReplyConfig) -> AppParametersBuilder:
473
+ self._app_parameters.annotation_reply = config
474
+ return self
475
+
476
+ def more_like_this(self, config: MoreLikeThisConfig) -> AppParametersBuilder:
477
+ self._app_parameters.more_like_this = config
478
+ return self
479
+
480
+ def user_input_form(self, user_input_form: list[UserInputFormItem]) -> AppParametersBuilder:
481
+ self._app_parameters.user_input_form = user_input_form
482
+ return self
483
+
484
+ def sensitive_word_avoidance(self, config: SensitiveWordAvoidanceConfig) -> AppParametersBuilder:
485
+ self._app_parameters.sensitive_word_avoidance = config
486
+ return self
487
+
488
+ def file_upload(self, config: FileUploadConfig) -> AppParametersBuilder:
489
+ self._app_parameters.file_upload = config
490
+ return self
491
+
492
+ def system_parameters(self, system_parameters: SystemParameters) -> AppParametersBuilder:
493
+ self._app_parameters.system_parameters = system_parameters
494
+ return self