dify-oapi2 0.5.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 (136) hide show
  1. dify_oapi/api/chat/v1/model/chat_response.py +1 -0
  2. dify_oapi/api/chat/v1/model/configure_annotation_reply_request.py +1 -0
  3. dify_oapi/api/chat/v1/model/create_annotation_request.py +1 -0
  4. dify_oapi/api/chat/v1/model/get_conversations_request.py +49 -0
  5. dify_oapi/api/chat/v1/model/update_annotation_request.py +1 -0
  6. dify_oapi/api/chat/v1/resource/__init__.py +1 -8
  7. dify_oapi/api/chat/v1/resource/annotation.py +37 -27
  8. dify_oapi/api/chat/v1/resource/chat.py +37 -29
  9. dify_oapi/api/chat/v1/resource/conversation.py +25 -59
  10. dify_oapi/api/chat/v1/resource/message.py +13 -15
  11. dify_oapi/api/chat/v1/version.py +18 -11
  12. dify_oapi/api/chatflow/service.py +1 -18
  13. dify_oapi/api/chatflow/v1/resource/annotation.py +14 -49
  14. dify_oapi/api/chatflow/v1/resource/chatflow.py +6 -19
  15. dify_oapi/api/chatflow/v1/resource/conversation.py +12 -41
  16. dify_oapi/api/chatflow/v1/version.py +11 -18
  17. dify_oapi/api/completion/v1/resource/__init__.py +0 -6
  18. dify_oapi/api/completion/v1/version.py +8 -6
  19. dify_oapi/api/dify/v1/model/get_feedbacks_response.py +26 -0
  20. dify_oapi/api/{completion/v1/model/info → dify/v1/model}/get_parameters_request.py +4 -0
  21. dify_oapi/api/dify/v1/model/{get_parameter_response.py → get_parameters_response.py} +6 -2
  22. dify_oapi/api/dify/v1/model/get_site_response.py +17 -0
  23. dify_oapi/api/{chat → dify}/v1/model/submit_feedback_request_body.py +3 -1
  24. dify_oapi/api/{chat → dify}/v1/model/submit_feedback_response.py +3 -1
  25. dify_oapi/api/dify/v1/resource/__init__.py +0 -6
  26. dify_oapi/api/dify/v1/resource/audio.py +12 -0
  27. dify_oapi/api/{chat → dify}/v1/resource/feedback.py +6 -6
  28. dify_oapi/api/dify/v1/resource/info.py +34 -2
  29. dify_oapi/api/dify/v1/version.py +5 -4
  30. dify_oapi/api/knowledge/service.py +3 -3
  31. dify_oapi/api/knowledge/v1/model/create_document_by_file_request.py +1 -3
  32. dify_oapi/api/knowledge/v1/model/create_document_by_file_request_body.py +4 -46
  33. dify_oapi/api/knowledge/v1/model/create_document_by_file_request_body_data.py +73 -0
  34. dify_oapi/api/knowledge/v1/model/process_rule.py +0 -6
  35. dify_oapi/api/knowledge/v1/model/update_document_by_file_request.py +1 -3
  36. dify_oapi/api/knowledge/v1/model/update_document_by_file_request_body.py +4 -41
  37. dify_oapi/api/knowledge/v1/model/update_document_by_file_request_body_data.py +68 -0
  38. dify_oapi/api/knowledge/v1/resource/__init__.py +0 -8
  39. dify_oapi/api/workflow/v1/resource/workflow.py +0 -34
  40. dify_oapi/api/workflow/v1/version.py +9 -0
  41. dify_oapi/client.py +4 -4
  42. dify_oapi2-1.0.0.dist-info/METADATA +365 -0
  43. {dify_oapi2-0.5.0.dist-info → dify_oapi2-1.0.0.dist-info}/RECORD +51 -130
  44. dify_oapi/api/chat/v1/model/get_app_info_request.py +0 -24
  45. dify_oapi/api/chat/v1/model/get_app_info_response.py +0 -9
  46. dify_oapi/api/chat/v1/model/get_app_meta_request.py +0 -24
  47. dify_oapi/api/chat/v1/model/get_app_meta_response.py +0 -9
  48. dify_oapi/api/chat/v1/model/get_app_parameters_request.py +0 -28
  49. dify_oapi/api/chat/v1/model/get_app_parameters_response.py +0 -9
  50. dify_oapi/api/chat/v1/model/get_feedbacks_response.py +0 -7
  51. dify_oapi/api/chat/v1/model/get_site_settings_request.py +0 -24
  52. dify_oapi/api/chat/v1/model/get_site_settings_response.py +0 -9
  53. dify_oapi/api/chat/v1/model/text_to_audio_request.py +0 -32
  54. dify_oapi/api/chat/v1/model/text_to_audio_request_body.py +0 -33
  55. dify_oapi/api/chat/v1/model/upload_file_request.py +0 -54
  56. dify_oapi/api/chat/v1/model/upload_file_response.py +0 -10
  57. dify_oapi/api/chat/v1/resource/app.py +0 -47
  58. dify_oapi/api/chat/v1/resource/audio.py +0 -30
  59. dify_oapi/api/chat/v1/resource/file.py +0 -25
  60. dify_oapi/api/chatflow/v1/model/audio_to_text_request.py +0 -37
  61. dify_oapi/api/chatflow/v1/model/audio_to_text_response.py +0 -21
  62. dify_oapi/api/chatflow/v1/model/get_app_feedbacks_request.py +0 -30
  63. dify_oapi/api/chatflow/v1/model/get_app_feedbacks_response.py +0 -23
  64. dify_oapi/api/chatflow/v1/model/get_info_request.py +0 -22
  65. dify_oapi/api/chatflow/v1/model/get_info_response.py +0 -7
  66. dify_oapi/api/chatflow/v1/model/get_meta_request.py +0 -22
  67. dify_oapi/api/chatflow/v1/model/get_meta_response.py +0 -7
  68. dify_oapi/api/chatflow/v1/model/get_parameters_request.py +0 -22
  69. dify_oapi/api/chatflow/v1/model/get_parameters_response.py +0 -7
  70. dify_oapi/api/chatflow/v1/model/get_site_request.py +0 -22
  71. dify_oapi/api/chatflow/v1/model/get_site_response.py +0 -7
  72. dify_oapi/api/chatflow/v1/model/message_feedback_request.py +0 -36
  73. dify_oapi/api/chatflow/v1/model/message_feedback_request_body.py +0 -33
  74. dify_oapi/api/chatflow/v1/model/message_feedback_response.py +0 -21
  75. dify_oapi/api/chatflow/v1/model/text_to_audio_request.py +0 -30
  76. dify_oapi/api/chatflow/v1/model/text_to_audio_request_body.py +0 -36
  77. dify_oapi/api/chatflow/v1/model/text_to_audio_response.py +0 -19
  78. dify_oapi/api/chatflow/v1/model/upload_file_request.py +0 -41
  79. dify_oapi/api/chatflow/v1/model/upload_file_response.py +0 -11
  80. dify_oapi/api/chatflow/v1/resource/application.py +0 -76
  81. dify_oapi/api/chatflow/v1/resource/feedback.py +0 -69
  82. dify_oapi/api/chatflow/v1/resource/file.py +0 -39
  83. dify_oapi/api/chatflow/v1/resource/tts.py +0 -29
  84. dify_oapi/api/completion/v1/model/audio/audio_info.py +0 -28
  85. dify_oapi/api/completion/v1/model/audio/text_to_audio_request.py +0 -32
  86. dify_oapi/api/completion/v1/model/audio/text_to_audio_request_body.py +0 -33
  87. dify_oapi/api/completion/v1/model/audio/text_to_audio_response.py +0 -9
  88. dify_oapi/api/completion/v1/model/feedback/feedback_info.py +0 -53
  89. dify_oapi/api/completion/v1/model/feedback/get_feedbacks_request.py +0 -32
  90. dify_oapi/api/completion/v1/model/feedback/get_feedbacks_response.py +0 -9
  91. dify_oapi/api/completion/v1/model/feedback/message_feedback_request.py +0 -38
  92. dify_oapi/api/completion/v1/model/feedback/message_feedback_request_body.py +0 -35
  93. dify_oapi/api/completion/v1/model/feedback/message_feedback_response.py +0 -7
  94. dify_oapi/api/completion/v1/model/file/file_info.py +0 -53
  95. dify_oapi/api/completion/v1/model/file/upload_file_request.py +0 -42
  96. dify_oapi/api/completion/v1/model/file/upload_file_request_body.py +0 -23
  97. dify_oapi/api/completion/v1/model/file/upload_file_response.py +0 -9
  98. dify_oapi/api/completion/v1/model/info/app_info.py +0 -43
  99. dify_oapi/api/completion/v1/model/info/feature_config.py +0 -91
  100. dify_oapi/api/completion/v1/model/info/file_upload_config.py +0 -23
  101. dify_oapi/api/completion/v1/model/info/get_info_request.py +0 -24
  102. dify_oapi/api/completion/v1/model/info/get_info_response.py +0 -9
  103. dify_oapi/api/completion/v1/model/info/get_parameters_response.py +0 -9
  104. dify_oapi/api/completion/v1/model/info/get_site_response.py +0 -9
  105. dify_oapi/api/completion/v1/model/info/parameters_info.py +0 -75
  106. dify_oapi/api/completion/v1/model/info/site_info.py +0 -90
  107. dify_oapi/api/completion/v1/model/info/system_parameters.py +0 -38
  108. dify_oapi/api/completion/v1/model/info/user_input_form.py +0 -158
  109. dify_oapi/api/completion/v1/resource/audio.py +0 -19
  110. dify_oapi/api/completion/v1/resource/feedback.py +0 -33
  111. dify_oapi/api/completion/v1/resource/file.py +0 -19
  112. dify_oapi/api/completion/v1/resource/info.py +0 -39
  113. dify_oapi/api/dify/v1/model/get_parameter_request.py +0 -30
  114. dify_oapi/api/dify/v1/model/message_feedback_request.py +0 -38
  115. dify_oapi/api/dify/v1/model/message_feedback_request_body.py +0 -30
  116. dify_oapi/api/dify/v1/model/message_feedback_response.py +0 -5
  117. dify_oapi/api/dify/v1/resource/message.py +0 -21
  118. dify_oapi/api/dify/v1/resource/meta.py +0 -17
  119. dify_oapi/api/dify/v1/resource/parameter.py +0 -19
  120. dify_oapi/api/workflow/v1/model/get_info_request.py +0 -24
  121. dify_oapi/api/workflow/v1/model/get_info_response.py +0 -9
  122. dify_oapi/api/workflow/v1/model/get_parameters_request.py +0 -24
  123. dify_oapi/api/workflow/v1/model/get_parameters_response.py +0 -9
  124. dify_oapi/api/workflow/v1/model/get_site_request.py +0 -24
  125. dify_oapi/api/workflow/v1/model/get_site_response.py +0 -9
  126. dify_oapi/api/workflow/v1/model/upload_file_request.py +0 -42
  127. dify_oapi/api/workflow/v1/model/upload_file_response.py +0 -9
  128. dify_oapi2-0.5.0.dist-info/METADATA +0 -335
  129. /dify_oapi/api/{chat → dify}/v1/model/audio_to_text_request.py +0 -0
  130. /dify_oapi/api/{chat → dify}/v1/model/audio_to_text_request_body.py +0 -0
  131. /dify_oapi/api/{chat → dify}/v1/model/audio_to_text_response.py +0 -0
  132. /dify_oapi/api/{chat → dify}/v1/model/get_feedbacks_request.py +0 -0
  133. /dify_oapi/api/{completion/v1/model/info → dify/v1/model}/get_site_request.py +0 -0
  134. /dify_oapi/api/{chat → dify}/v1/model/submit_feedback_request.py +0 -0
  135. {dify_oapi2-0.5.0.dist-info → dify_oapi2-1.0.0.dist-info}/LICENSE +0 -0
  136. {dify_oapi2-0.5.0.dist-info → dify_oapi2-1.0.0.dist-info}/WHEEL +0 -0
@@ -25,5 +25,6 @@ class ChatResponse(BaseResponse):
25
25
  class ChatResponseMetadata(BaseModel):
26
26
  """Chat response metadata model."""
27
27
 
28
+ annotation_reply: str | None = None
28
29
  usage: UsageInfo | None = None
29
30
  retriever_resources: list[RetrieverResource] | None = None
@@ -30,6 +30,7 @@ class ConfigureAnnotationReplyRequestBuilder:
30
30
  self, request_body: ConfigureAnnotationReplyRequestBody
31
31
  ) -> "ConfigureAnnotationReplyRequestBuilder":
32
32
  self._configure_annotation_reply_request.request_body = request_body
33
+ self._configure_annotation_reply_request.body = request_body.model_dump(exclude_none=True, mode="json")
33
34
  return self
34
35
 
35
36
  def build(self) -> ConfigureAnnotationReplyRequest:
@@ -23,6 +23,7 @@ class CreateAnnotationRequestBuilder:
23
23
 
24
24
  def request_body(self, request_body: CreateAnnotationRequestBody) -> "CreateAnnotationRequestBuilder":
25
25
  self._create_annotation_request.request_body = request_body
26
+ self._create_annotation_request.body = request_body.model_dump(exclude_none=True, mode="json")
26
27
  return self
27
28
 
28
29
  def build(self) -> CreateAnnotationRequest:
@@ -0,0 +1,49 @@
1
+ from __future__ import annotations
2
+
3
+ from dify_oapi.api.chat.v1.model.chat_types import SortBy
4
+ from dify_oapi.core.enum import HttpMethod
5
+ from dify_oapi.core.model.base_request import BaseRequest
6
+
7
+
8
+ class GetConversationsRequest(BaseRequest):
9
+ def __init__(self):
10
+ super().__init__()
11
+ self.user: str | None = None
12
+ self.last_id: str | None = None
13
+ self.limit: int | None = None
14
+ self.sort_by: SortBy | None = None
15
+
16
+ @staticmethod
17
+ def builder() -> GetConversationsRequestBuilder:
18
+ return GetConversationsRequestBuilder()
19
+
20
+
21
+ class GetConversationsRequestBuilder:
22
+ def __init__(self):
23
+ get_conversations_request = GetConversationsRequest()
24
+ get_conversations_request.http_method = HttpMethod.GET
25
+ get_conversations_request.uri = "/v1/conversations"
26
+ self._get_conversations_request = get_conversations_request
27
+
28
+ def user(self, user: str) -> GetConversationsRequestBuilder:
29
+ self._get_conversations_request.user = user
30
+ self._get_conversations_request.add_query("user", user)
31
+ return self
32
+
33
+ def last_id(self, last_id: str) -> GetConversationsRequestBuilder:
34
+ self._get_conversations_request.last_id = last_id
35
+ self._get_conversations_request.add_query("last_id", last_id)
36
+ return self
37
+
38
+ def limit(self, limit: int) -> GetConversationsRequestBuilder:
39
+ self._get_conversations_request.limit = limit
40
+ self._get_conversations_request.add_query("limit", limit)
41
+ return self
42
+
43
+ def sort_by(self, sort_by: SortBy) -> GetConversationsRequestBuilder:
44
+ self._get_conversations_request.sort_by = sort_by
45
+ self._get_conversations_request.add_query("sort_by", sort_by)
46
+ return self
47
+
48
+ def build(self) -> GetConversationsRequest:
49
+ return self._get_conversations_request
@@ -27,6 +27,7 @@ class UpdateAnnotationRequestBuilder:
27
27
 
28
28
  def request_body(self, request_body: UpdateAnnotationRequestBody) -> "UpdateAnnotationRequestBuilder":
29
29
  self._update_annotation_request.request_body = request_body
30
+ self._update_annotation_request.body = request_body.model_dump(exclude_none=True, mode="json")
30
31
  return self
31
32
 
32
33
  def build(self) -> UpdateAnnotationRequest:
@@ -1,8 +1 @@
1
- from .annotation import * # noqa F403
2
- from .app import * # noqa F403
3
- from .audio import * # noqa F403
4
- from .chat import * # noqa F403
5
- from .conversation import * # noqa F403
6
- from .feedback import * # noqa F403
7
- from .file import * # noqa F403
8
- from .message import * # noqa F403
1
+
@@ -18,60 +18,70 @@ from ..model.update_annotation_response import UpdateAnnotationResponse
18
18
 
19
19
  class Annotation:
20
20
  def __init__(self, config: Config) -> None:
21
- self.config: Config = config
21
+ self.config = config
22
22
 
23
- def list(self, request: ListAnnotationsRequest, option: RequestOption | None = None) -> ListAnnotationsResponse:
24
- return Transport.execute(self.config, request, unmarshal_as=ListAnnotationsResponse, option=option)
23
+ def list(self, request: ListAnnotationsRequest, request_option: RequestOption) -> ListAnnotationsResponse:
24
+ return Transport.execute(self.config, request, unmarshal_as=ListAnnotationsResponse, option=request_option)
25
25
 
26
- async def alist(
27
- self, request: ListAnnotationsRequest, option: RequestOption | None = None
28
- ) -> ListAnnotationsResponse:
29
- return await ATransport.aexecute(self.config, request, unmarshal_as=ListAnnotationsResponse, option=option)
26
+ async def alist(self, request: ListAnnotationsRequest, request_option: RequestOption) -> ListAnnotationsResponse:
27
+ return await ATransport.aexecute(
28
+ self.config, request, unmarshal_as=ListAnnotationsResponse, option=request_option
29
+ )
30
30
 
31
- def create(self, request: CreateAnnotationRequest, option: RequestOption | None = None) -> CreateAnnotationResponse:
32
- return Transport.execute(self.config, request, unmarshal_as=CreateAnnotationResponse, option=option)
31
+ def create(self, request: CreateAnnotationRequest, request_option: RequestOption) -> CreateAnnotationResponse:
32
+ return Transport.execute(self.config, request, unmarshal_as=CreateAnnotationResponse, option=request_option)
33
33
 
34
34
  async def acreate(
35
- self, request: CreateAnnotationRequest, option: RequestOption | None = None
35
+ self, request: CreateAnnotationRequest, request_option: RequestOption
36
36
  ) -> CreateAnnotationResponse:
37
- return await ATransport.aexecute(self.config, request, unmarshal_as=CreateAnnotationResponse, option=option)
37
+ return await ATransport.aexecute(
38
+ self.config, request, unmarshal_as=CreateAnnotationResponse, option=request_option
39
+ )
38
40
 
39
- def update(self, request: UpdateAnnotationRequest, option: RequestOption | None = None) -> UpdateAnnotationResponse:
40
- return Transport.execute(self.config, request, unmarshal_as=UpdateAnnotationResponse, option=option)
41
+ def update(self, request: UpdateAnnotationRequest, request_option: RequestOption) -> UpdateAnnotationResponse:
42
+ return Transport.execute(self.config, request, unmarshal_as=UpdateAnnotationResponse, option=request_option)
41
43
 
42
44
  async def aupdate(
43
- self, request: UpdateAnnotationRequest, option: RequestOption | None = None
45
+ self, request: UpdateAnnotationRequest, request_option: RequestOption
44
46
  ) -> UpdateAnnotationResponse:
45
- return await ATransport.aexecute(self.config, request, unmarshal_as=UpdateAnnotationResponse, option=option)
47
+ return await ATransport.aexecute(
48
+ self.config, request, unmarshal_as=UpdateAnnotationResponse, option=request_option
49
+ )
46
50
 
47
- def delete(self, request: DeleteAnnotationRequest, option: RequestOption | None = None) -> DeleteAnnotationResponse:
48
- return Transport.execute(self.config, request, unmarshal_as=DeleteAnnotationResponse, option=option)
51
+ def delete(self, request: DeleteAnnotationRequest, request_option: RequestOption) -> DeleteAnnotationResponse:
52
+ return Transport.execute(self.config, request, unmarshal_as=DeleteAnnotationResponse, option=request_option)
49
53
 
50
54
  async def adelete(
51
- self, request: DeleteAnnotationRequest, option: RequestOption | None = None
55
+ self, request: DeleteAnnotationRequest, request_option: RequestOption
52
56
  ) -> DeleteAnnotationResponse:
53
- return await ATransport.aexecute(self.config, request, unmarshal_as=DeleteAnnotationResponse, option=option)
57
+ return await ATransport.aexecute(
58
+ self.config, request, unmarshal_as=DeleteAnnotationResponse, option=request_option
59
+ )
54
60
 
55
61
  def configure(
56
- self, request: ConfigureAnnotationReplyRequest, option: RequestOption | None = None
62
+ self, request: ConfigureAnnotationReplyRequest, request_option: RequestOption
57
63
  ) -> ConfigureAnnotationReplyResponse:
58
- return Transport.execute(self.config, request, unmarshal_as=ConfigureAnnotationReplyResponse, option=option)
64
+ return Transport.execute(
65
+ self.config, request, unmarshal_as=ConfigureAnnotationReplyResponse, option=request_option
66
+ )
59
67
 
60
68
  async def aconfigure(
61
- self, request: ConfigureAnnotationReplyRequest, option: RequestOption | None = None
69
+ self, request: ConfigureAnnotationReplyRequest, request_option: RequestOption
62
70
  ) -> ConfigureAnnotationReplyResponse:
63
71
  return await ATransport.aexecute(
64
- self.config, request, unmarshal_as=ConfigureAnnotationReplyResponse, option=option
72
+ self.config, request, unmarshal_as=ConfigureAnnotationReplyResponse, option=request_option
65
73
  )
66
74
 
67
75
  def status(
68
- self, request: GetAnnotationReplyStatusRequest, option: RequestOption | None = None
76
+ self, request: GetAnnotationReplyStatusRequest, request_option: RequestOption
69
77
  ) -> GetAnnotationReplyStatusResponse:
70
- return Transport.execute(self.config, request, unmarshal_as=GetAnnotationReplyStatusResponse, option=option)
78
+ return Transport.execute(
79
+ self.config, request, unmarshal_as=GetAnnotationReplyStatusResponse, option=request_option
80
+ )
71
81
 
72
82
  async def astatus(
73
- self, request: GetAnnotationReplyStatusRequest, option: RequestOption | None = None
83
+ self, request: GetAnnotationReplyStatusRequest, request_option: RequestOption
74
84
  ) -> GetAnnotationReplyStatusResponse:
75
85
  return await ATransport.aexecute(
76
- self.config, request, unmarshal_as=GetAnnotationReplyStatusResponse, option=option
86
+ self.config, request, unmarshal_as=GetAnnotationReplyStatusResponse, option=request_option
77
87
  )
@@ -15,68 +15,76 @@ from ..model.stop_chat_response import StopChatResponse
15
15
 
16
16
  class Chat:
17
17
  def __init__(self, config: Config) -> None:
18
- self.config: Config = config
18
+ self.config = config
19
19
 
20
20
  @overload
21
21
  def chat(
22
- self, request: ChatRequest, option: RequestOption | None, stream: Literal[True]
22
+ self,
23
+ request: ChatRequest,
24
+ request_option: RequestOption,
25
+ stream: Literal[True],
23
26
  ) -> Generator[bytes, None, None]: ...
24
27
 
25
28
  @overload
26
- def chat(self, request: ChatRequest, option: RequestOption | None, stream: Literal[False]) -> ChatResponse: ...
27
-
28
- @overload
29
- def chat(self, request: ChatRequest, option: RequestOption | None) -> ChatResponse: ...
29
+ def chat(
30
+ self,
31
+ request: ChatRequest,
32
+ request_option: RequestOption,
33
+ stream: Literal[False] = False,
34
+ ) -> ChatResponse: ...
30
35
 
31
36
  def chat(
32
37
  self,
33
38
  request: ChatRequest,
34
- option: RequestOption | None = None,
39
+ request_option: RequestOption,
35
40
  stream: bool = False,
36
- ):
41
+ ) -> ChatResponse | Generator[bytes, None, None]:
37
42
  if stream:
38
- return Transport.execute(self.config, request, option=option, stream=True)
39
- else:
40
- return Transport.execute(self.config, request, unmarshal_as=ChatResponse, option=option)
43
+ return Transport.execute(self.config, request, stream=True, option=request_option)
44
+ return Transport.execute(self.config, request, unmarshal_as=ChatResponse, option=request_option)
41
45
 
42
46
  @overload
43
47
  async def achat(
44
- self, request: ChatRequest, option: RequestOption | None, stream: Literal[True]
48
+ self,
49
+ request: ChatRequest,
50
+ request_option: RequestOption,
51
+ stream: Literal[True],
45
52
  ) -> AsyncGenerator[bytes, None]: ...
46
53
 
47
54
  @overload
48
55
  async def achat(
49
- self, request: ChatRequest, option: RequestOption | None, stream: Literal[False]
56
+ self,
57
+ request: ChatRequest,
58
+ request_option: RequestOption,
59
+ stream: Literal[False] = False,
50
60
  ) -> ChatResponse: ...
51
61
 
52
- @overload
53
- async def achat(self, request: ChatRequest, option: RequestOption | None) -> ChatResponse: ...
54
-
55
62
  async def achat(
56
63
  self,
57
64
  request: ChatRequest,
58
- option: RequestOption | None = None,
65
+ request_option: RequestOption,
59
66
  stream: bool = False,
60
- ):
67
+ ) -> ChatResponse | AsyncGenerator[bytes, None]:
61
68
  if stream:
62
- return await ATransport.aexecute(self.config, request, option=option, stream=True)
63
- else:
64
- return await ATransport.aexecute(self.config, request, unmarshal_as=ChatResponse, option=option)
69
+ return await ATransport.aexecute(self.config, request, stream=True, option=request_option)
70
+ return await ATransport.aexecute(self.config, request, unmarshal_as=ChatResponse, option=request_option)
65
71
 
66
- def stop(self, request: StopChatRequest, option: RequestOption | None = None) -> StopChatResponse:
67
- return Transport.execute(self.config, request, unmarshal_as=StopChatResponse, option=option)
72
+ def stop(self, request: StopChatRequest, request_option: RequestOption) -> StopChatResponse:
73
+ return Transport.execute(self.config, request, unmarshal_as=StopChatResponse, option=request_option)
68
74
 
69
- async def astop(self, request: StopChatRequest, option: RequestOption | None = None) -> StopChatResponse:
70
- return await ATransport.aexecute(self.config, request, unmarshal_as=StopChatResponse, option=option)
75
+ async def astop(self, request: StopChatRequest, request_option: RequestOption) -> StopChatResponse:
76
+ return await ATransport.aexecute(self.config, request, unmarshal_as=StopChatResponse, option=request_option)
71
77
 
72
78
  def suggested(
73
- self, request: GetSuggestedQuestionsRequest, option: RequestOption | None = None
79
+ self, request: GetSuggestedQuestionsRequest, request_option: RequestOption
74
80
  ) -> GetSuggestedQuestionsResponse:
75
- return Transport.execute(self.config, request, unmarshal_as=GetSuggestedQuestionsResponse, option=option)
81
+ return Transport.execute(
82
+ self.config, request, unmarshal_as=GetSuggestedQuestionsResponse, option=request_option
83
+ )
76
84
 
77
85
  async def asuggested(
78
- self, request: GetSuggestedQuestionsRequest, option: RequestOption | None = None
86
+ self, request: GetSuggestedQuestionsRequest, request_option: RequestOption
79
87
  ) -> GetSuggestedQuestionsResponse:
80
88
  return await ATransport.aexecute(
81
- self.config, request, unmarshal_as=GetSuggestedQuestionsResponse, option=option
89
+ self.config, request, unmarshal_as=GetSuggestedQuestionsResponse, option=request_option
82
90
  )
@@ -16,90 +16,56 @@ from ..model.rename_conversation_response import RenameConversationResponse
16
16
 
17
17
  class Conversation:
18
18
  def __init__(self, config: Config) -> None:
19
- self.config: Config = config
19
+ self.config = config
20
20
 
21
- def list(self, request: GetConversationsRequest, option: RequestOption | None = None) -> GetConversationsResponse:
22
- # Send request
23
- return Transport.execute(
24
- self.config,
25
- request,
26
- unmarshal_as=GetConversationsResponse,
27
- option=option,
28
- )
21
+ def list(self, request: GetConversationsRequest, request_option: RequestOption) -> GetConversationsResponse:
22
+ return Transport.execute(self.config, request, unmarshal_as=GetConversationsResponse, option=request_option)
29
23
 
30
- async def alist(
31
- self, request: GetConversationsRequest, option: RequestOption | None = None
32
- ) -> GetConversationsResponse:
33
- # Send request
24
+ async def alist(self, request: GetConversationsRequest, request_option: RequestOption) -> GetConversationsResponse:
34
25
  return await ATransport.aexecute(
35
- self.config,
36
- request,
37
- unmarshal_as=GetConversationsResponse,
38
- option=option,
26
+ self.config, request, unmarshal_as=GetConversationsResponse, option=request_option
39
27
  )
40
28
 
41
- def history(
42
- self, request: GetMessageHistoryRequest, option: RequestOption | None = None
43
- ) -> GetMessageHistoryResponse:
44
- # Send request
45
- return Transport.execute(
46
- self.config,
47
- request,
48
- unmarshal_as=GetMessageHistoryResponse,
49
- option=option,
50
- )
29
+ def history(self, request: GetMessageHistoryRequest, request_option: RequestOption) -> GetMessageHistoryResponse:
30
+ return Transport.execute(self.config, request, unmarshal_as=GetMessageHistoryResponse, option=request_option)
51
31
 
52
32
  async def ahistory(
53
- self, request: GetMessageHistoryRequest, option: RequestOption | None = None
33
+ self, request: GetMessageHistoryRequest, request_option: RequestOption
54
34
  ) -> GetMessageHistoryResponse:
55
- # Send request
56
35
  return await ATransport.aexecute(
57
- self.config,
58
- request,
59
- unmarshal_as=GetMessageHistoryResponse,
60
- option=option,
36
+ self.config, request, unmarshal_as=GetMessageHistoryResponse, option=request_option
61
37
  )
62
38
 
63
39
  def variables(
64
- self, request: GetConversationVariablesRequest, option: RequestOption | None = None
40
+ self, request: GetConversationVariablesRequest, request_option: RequestOption
65
41
  ) -> GetConversationVariablesResponse:
66
- # Send request
67
42
  return Transport.execute(
68
- self.config,
69
- request,
70
- unmarshal_as=GetConversationVariablesResponse,
71
- option=option,
43
+ self.config, request, unmarshal_as=GetConversationVariablesResponse, option=request_option
72
44
  )
73
45
 
74
46
  async def avariables(
75
- self, request: GetConversationVariablesRequest, option: RequestOption | None = None
47
+ self, request: GetConversationVariablesRequest, request_option: RequestOption
76
48
  ) -> GetConversationVariablesResponse:
77
- # Send request
78
49
  return await ATransport.aexecute(
79
- self.config,
80
- request,
81
- unmarshal_as=GetConversationVariablesResponse,
82
- option=option,
50
+ self.config, request, unmarshal_as=GetConversationVariablesResponse, option=request_option
83
51
  )
84
52
 
85
- def delete(
86
- self, request: DeleteConversationRequest, option: RequestOption | None = None
87
- ) -> DeleteConversationResponse:
88
- return Transport.execute(self.config, request, unmarshal_as=DeleteConversationResponse, option=option)
53
+ def delete(self, request: DeleteConversationRequest, request_option: RequestOption) -> DeleteConversationResponse:
54
+ return Transport.execute(self.config, request, unmarshal_as=DeleteConversationResponse, option=request_option)
89
55
 
90
56
  async def adelete(
91
- self, request: DeleteConversationRequest, option: RequestOption | None = None
57
+ self, request: DeleteConversationRequest, request_option: RequestOption
92
58
  ) -> DeleteConversationResponse:
93
- # Send request
94
- return await ATransport.aexecute(self.config, request, unmarshal_as=DeleteConversationResponse, option=option)
59
+ return await ATransport.aexecute(
60
+ self.config, request, unmarshal_as=DeleteConversationResponse, option=request_option
61
+ )
95
62
 
96
- def rename(
97
- self, request: RenameConversationRequest, option: RequestOption | None = None
98
- ) -> RenameConversationResponse:
99
- return Transport.execute(self.config, request, unmarshal_as=RenameConversationResponse, option=option)
63
+ def rename(self, request: RenameConversationRequest, request_option: RequestOption) -> RenameConversationResponse:
64
+ return Transport.execute(self.config, request, unmarshal_as=RenameConversationResponse, option=request_option)
100
65
 
101
66
  async def arename(
102
- self, request: RenameConversationRequest, option: RequestOption | None = None
67
+ self, request: RenameConversationRequest, request_option: RequestOption
103
68
  ) -> RenameConversationResponse:
104
- # Send request
105
- return await ATransport.aexecute(self.config, request, unmarshal_as=RenameConversationResponse, option=option)
69
+ return await ATransport.aexecute(
70
+ self.config, request, unmarshal_as=RenameConversationResponse, option=request_option
71
+ )
@@ -10,30 +10,28 @@ from ..model.message_history_response import GetMessageHistoryResponse
10
10
 
11
11
  class Message:
12
12
  def __init__(self, config: Config) -> None:
13
- self.config: Config = config
13
+ self.config = config
14
14
 
15
15
  def suggested(
16
- self, request: GetSuggestedQuestionsRequest, option: RequestOption | None = None
16
+ self, request: GetSuggestedQuestionsRequest, request_option: RequestOption
17
17
  ) -> GetSuggestedQuestionsResponse:
18
- # Send request
19
- return Transport.execute(self.config, request, unmarshal_as=GetSuggestedQuestionsResponse, option=option)
18
+ return Transport.execute(
19
+ self.config, request, unmarshal_as=GetSuggestedQuestionsResponse, option=request_option
20
+ )
20
21
 
21
22
  async def asuggested(
22
- self, request: GetSuggestedQuestionsRequest, option: RequestOption | None = None
23
+ self, request: GetSuggestedQuestionsRequest, request_option: RequestOption
23
24
  ) -> GetSuggestedQuestionsResponse:
24
- # Send request
25
25
  return await ATransport.aexecute(
26
- self.config, request, unmarshal_as=GetSuggestedQuestionsResponse, option=option
26
+ self.config, request, unmarshal_as=GetSuggestedQuestionsResponse, option=request_option
27
27
  )
28
28
 
29
- def history(
30
- self, request: GetMessageHistoryRequest, option: RequestOption | None = None
31
- ) -> GetMessageHistoryResponse:
32
- # Send request
33
- return Transport.execute(self.config, request, unmarshal_as=GetMessageHistoryResponse, option=option)
29
+ def history(self, request: GetMessageHistoryRequest, request_option: RequestOption) -> GetMessageHistoryResponse:
30
+ return Transport.execute(self.config, request, unmarshal_as=GetMessageHistoryResponse, option=request_option)
34
31
 
35
32
  async def ahistory(
36
- self, request: GetMessageHistoryRequest, option: RequestOption | None = None
33
+ self, request: GetMessageHistoryRequest, request_option: RequestOption
37
34
  ) -> GetMessageHistoryResponse:
38
- # Send request
39
- return await ATransport.aexecute(self.config, request, unmarshal_as=GetMessageHistoryResponse, option=option)
35
+ return await ATransport.aexecute(
36
+ self.config, request, unmarshal_as=GetMessageHistoryResponse, option=request_option
37
+ )
@@ -1,17 +1,24 @@
1
+ from dify_oapi.api.dify.v1.resource.audio import Audio
2
+ from dify_oapi.api.dify.v1.resource.feedback import Feedback
3
+ from dify_oapi.api.dify.v1.resource.file import File
4
+ from dify_oapi.api.dify.v1.resource.info import Info
1
5
  from dify_oapi.core.model.config import Config
2
6
 
3
- from .resource import Annotation, App, Audio, Chat, Conversation, Feedback, File, Message
7
+ from .resource.annotation import Annotation
8
+ from .resource.chat import Chat
9
+ from .resource.conversation import Conversation
10
+ from .resource.message import Message
4
11
 
5
12
 
6
13
  class V1:
7
14
  def __init__(self, config: Config):
8
- self.chat: Chat = Chat(config)
9
- self.file: File = File(config)
10
- self.feedback: Feedback = Feedback(config)
11
- self.conversation: Conversation = Conversation(config)
12
- self.audio: Audio = Audio(config)
13
- self.app: App = App(config)
14
- self.annotation: Annotation = Annotation(config)
15
-
16
- # DEPRECATED: Keep for backward compatibility
17
- self.message: Message = Message(config)
15
+ # Business-specific APIs
16
+ self.chat = Chat(config)
17
+ self.conversation = Conversation(config)
18
+ self.annotation = Annotation(config)
19
+ self.message = Message(config)
20
+ # System APIs - direct use of dify module
21
+ self.file = File(config)
22
+ self.audio = Audio(config)
23
+ self.app = Info(config)
24
+ self.feedback = Feedback(config)
@@ -4,22 +4,5 @@ from .v1.version import V1
4
4
 
5
5
 
6
6
  class ChatflowService:
7
- """Chatflow API service providing access to all chatflow-related operations.
8
-
9
- This service provides access to 17 chatflow APIs across 6 resource categories:
10
- - Chatflow: 3 APIs (send, stop, suggested)
11
- - File: 1 API (upload)
12
- - Feedback: 2 APIs (message, list)
13
- - Conversation: 5 APIs (messages, list, delete, rename, variables)
14
- - TTS: 2 APIs (speech_to_text, text_to_audio)
15
- - Application: 4 APIs (info, parameters, meta, site)
16
- - Annotation: 6 APIs (list, create, update, delete, reply_settings, reply_status)
17
- """
18
-
19
- def __init__(self, config: Config):
20
- """Initialize the Chatflow service with configuration.
21
-
22
- Args:
23
- config: The configuration object containing API settings
24
- """
7
+ def __init__(self, config: Config) -> None:
25
8
  self.v1 = V1(config)
@@ -1,5 +1,4 @@
1
- from dify_oapi.core.http.transport.async_transport import ATransport
2
- from dify_oapi.core.http.transport.sync_transport import Transport
1
+ from dify_oapi.core.http.transport import ATransport, Transport
3
2
  from dify_oapi.core.model.config import Config
4
3
  from dify_oapi.core.model.request_option import RequestOption
5
4
 
@@ -18,104 +17,70 @@ from ..model.update_annotation_response import UpdateAnnotationResponse
18
17
 
19
18
 
20
19
  class Annotation:
21
- def __init__(self, config: Config):
20
+ def __init__(self, config: Config) -> None:
22
21
  self.config = config
23
22
 
24
- def list(
25
- self,
26
- request: GetAnnotationsRequest,
27
- request_option: RequestOption,
28
- ) -> GetAnnotationsResponse:
23
+ def list(self, request: GetAnnotationsRequest, request_option: RequestOption) -> GetAnnotationsResponse:
29
24
  return Transport.execute(self.config, request, unmarshal_as=GetAnnotationsResponse, option=request_option)
30
25
 
31
- async def alist(
32
- self,
33
- request: GetAnnotationsRequest,
34
- request_option: RequestOption,
35
- ) -> GetAnnotationsResponse:
26
+ async def alist(self, request: GetAnnotationsRequest, request_option: RequestOption) -> GetAnnotationsResponse:
36
27
  return await ATransport.aexecute(
37
28
  self.config, request, unmarshal_as=GetAnnotationsResponse, option=request_option
38
29
  )
39
30
 
40
- def create(
41
- self,
42
- request: CreateAnnotationRequest,
43
- request_option: RequestOption,
44
- ) -> CreateAnnotationResponse:
31
+ def create(self, request: CreateAnnotationRequest, request_option: RequestOption) -> CreateAnnotationResponse:
45
32
  return Transport.execute(self.config, request, unmarshal_as=CreateAnnotationResponse, option=request_option)
46
33
 
47
34
  async def acreate(
48
- self,
49
- request: CreateAnnotationRequest,
50
- request_option: RequestOption,
35
+ self, request: CreateAnnotationRequest, request_option: RequestOption
51
36
  ) -> CreateAnnotationResponse:
52
37
  return await ATransport.aexecute(
53
38
  self.config, request, unmarshal_as=CreateAnnotationResponse, option=request_option
54
39
  )
55
40
 
56
- def update(
57
- self,
58
- request: UpdateAnnotationRequest,
59
- request_option: RequestOption,
60
- ) -> UpdateAnnotationResponse:
41
+ def update(self, request: UpdateAnnotationRequest, request_option: RequestOption) -> UpdateAnnotationResponse:
61
42
  return Transport.execute(self.config, request, unmarshal_as=UpdateAnnotationResponse, option=request_option)
62
43
 
63
44
  async def aupdate(
64
- self,
65
- request: UpdateAnnotationRequest,
66
- request_option: RequestOption,
45
+ self, request: UpdateAnnotationRequest, request_option: RequestOption
67
46
  ) -> UpdateAnnotationResponse:
68
47
  return await ATransport.aexecute(
69
48
  self.config, request, unmarshal_as=UpdateAnnotationResponse, option=request_option
70
49
  )
71
50
 
72
- def delete(
73
- self,
74
- request: DeleteAnnotationRequest,
75
- request_option: RequestOption,
76
- ) -> DeleteAnnotationResponse:
51
+ def delete(self, request: DeleteAnnotationRequest, request_option: RequestOption) -> DeleteAnnotationResponse:
77
52
  return Transport.execute(self.config, request, unmarshal_as=DeleteAnnotationResponse, option=request_option)
78
53
 
79
54
  async def adelete(
80
- self,
81
- request: DeleteAnnotationRequest,
82
- request_option: RequestOption,
55
+ self, request: DeleteAnnotationRequest, request_option: RequestOption
83
56
  ) -> DeleteAnnotationResponse:
84
57
  return await ATransport.aexecute(
85
58
  self.config, request, unmarshal_as=DeleteAnnotationResponse, option=request_option
86
59
  )
87
60
 
88
61
  def reply_settings(
89
- self,
90
- request: AnnotationReplySettingsRequest,
91
- request_option: RequestOption,
62
+ self, request: AnnotationReplySettingsRequest, request_option: RequestOption
92
63
  ) -> AnnotationReplySettingsResponse:
93
64
  return Transport.execute(
94
65
  self.config, request, unmarshal_as=AnnotationReplySettingsResponse, option=request_option
95
66
  )
96
67
 
97
68
  async def areply_settings(
98
- self,
99
- request: AnnotationReplySettingsRequest,
100
- request_option: RequestOption,
69
+ self, request: AnnotationReplySettingsRequest, request_option: RequestOption
101
70
  ) -> AnnotationReplySettingsResponse:
102
71
  return await ATransport.aexecute(
103
72
  self.config, request, unmarshal_as=AnnotationReplySettingsResponse, option=request_option
104
73
  )
105
74
 
106
75
  def reply_status(
107
- self,
108
- request: AnnotationReplyStatusRequest,
109
- request_option: RequestOption,
76
+ self, request: AnnotationReplyStatusRequest, request_option: RequestOption
110
77
  ) -> AnnotationReplyStatusResponse:
111
78
  return Transport.execute(
112
79
  self.config, request, unmarshal_as=AnnotationReplyStatusResponse, option=request_option
113
80
  )
114
81
 
115
82
  async def areply_status(
116
- self,
117
- request: AnnotationReplyStatusRequest,
118
- request_option: RequestOption,
83
+ self, request: AnnotationReplyStatusRequest, request_option: RequestOption
119
84
  ) -> AnnotationReplyStatusResponse:
120
85
  return await ATransport.aexecute(
121
86
  self.config, request, unmarshal_as=AnnotationReplyStatusResponse, option=request_option