dify-oapi2 0.4.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.
- dify_oapi/api/chat/v1/model/__init__.py +37 -0
- dify_oapi/api/chat/v1/model/agent_thought.py +69 -0
- dify_oapi/api/chat/v1/model/annotation_info.py +43 -0
- dify_oapi/api/chat/v1/model/app_info.py +35 -0
- dify_oapi/api/chat/v1/model/app_parameters.py +494 -0
- dify_oapi/api/chat/v1/model/audio_to_text_request_body.py +2 -2
- dify_oapi/api/chat/v1/model/chat_file.py +53 -0
- dify_oapi/api/chat/v1/model/chat_request_body.py +26 -13
- dify_oapi/api/chat/v1/model/chat_response.py +12 -2
- dify_oapi/api/chat/v1/model/chat_types.py +65 -0
- dify_oapi/api/chat/v1/model/configure_annotation_reply_request.py +36 -0
- dify_oapi/api/chat/v1/model/configure_annotation_reply_request_body.py +39 -0
- dify_oapi/api/chat/v1/model/configure_annotation_reply_response.py +10 -0
- dify_oapi/api/chat/v1/model/conversation_info.py +57 -0
- dify_oapi/api/chat/v1/model/conversation_variable.py +55 -0
- dify_oapi/api/chat/v1/model/create_annotation_request.py +29 -0
- dify_oapi/api/chat/v1/model/create_annotation_request_body.py +32 -0
- dify_oapi/api/chat/v1/model/create_annotation_response.py +9 -0
- dify_oapi/api/chat/v1/model/delete_annotation_request.py +26 -0
- dify_oapi/api/chat/v1/model/delete_annotation_response.py +7 -0
- dify_oapi/api/chat/v1/model/feedback_info.py +75 -0
- dify_oapi/api/chat/v1/model/file_info.py +59 -0
- dify_oapi/api/chat/v1/model/get_annotation_reply_status_request.py +32 -0
- dify_oapi/api/chat/v1/model/get_annotation_reply_status_response.py +11 -0
- dify_oapi/api/chat/v1/model/get_app_info_request.py +24 -0
- dify_oapi/api/chat/v1/model/get_app_info_response.py +9 -0
- dify_oapi/api/chat/v1/model/get_app_meta_request.py +24 -0
- dify_oapi/api/chat/v1/model/get_app_meta_response.py +9 -0
- dify_oapi/api/chat/v1/model/get_app_parameters_request.py +28 -0
- dify_oapi/api/chat/v1/model/get_app_parameters_response.py +9 -0
- dify_oapi/api/chat/v1/model/get_conversation_list_request.py +25 -24
- dify_oapi/api/chat/v1/model/get_conversation_list_response.py +4 -15
- dify_oapi/api/chat/v1/model/get_conversation_variables_request.py +54 -0
- dify_oapi/api/chat/v1/model/get_conversation_variables_response.py +10 -0
- dify_oapi/api/chat/v1/model/get_feedbacks_request.py +32 -0
- dify_oapi/api/chat/v1/model/get_feedbacks_response.py +7 -0
- dify_oapi/api/chat/v1/model/get_site_settings_request.py +24 -0
- dify_oapi/api/chat/v1/model/get_site_settings_response.py +9 -0
- dify_oapi/api/chat/v1/model/get_suggested_questions_request.py +36 -0
- dify_oapi/api/chat/v1/model/{message_suggested_response.py → get_suggested_questions_response.py} +1 -1
- dify_oapi/api/chat/v1/model/list_annotations_request.py +32 -0
- dify_oapi/api/chat/v1/model/list_annotations_response.py +11 -0
- dify_oapi/api/chat/v1/model/message_file.py +46 -0
- dify_oapi/api/chat/v1/model/message_history_request.py +24 -24
- dify_oapi/api/chat/v1/model/message_history_response.py +4 -43
- dify_oapi/api/chat/v1/model/message_info.py +73 -0
- dify_oapi/api/chat/v1/model/pagination_info.py +44 -0
- dify_oapi/api/chat/v1/model/rename_conversation_request_body.py +1 -1
- dify_oapi/api/chat/v1/model/retriever_resource.py +64 -0
- dify_oapi/api/chat/v1/model/site_settings.py +92 -0
- dify_oapi/api/chat/v1/model/submit_feedback_request.py +34 -0
- dify_oapi/api/chat/v1/model/submit_feedback_request_body.py +33 -0
- dify_oapi/api/chat/v1/model/submit_feedback_response.py +5 -0
- dify_oapi/api/chat/v1/model/text_to_audio_request.py +32 -0
- dify_oapi/api/chat/v1/model/text_to_audio_request_body.py +33 -0
- dify_oapi/api/chat/v1/model/text_to_audio_response.py +7 -0
- dify_oapi/api/chat/v1/model/tool_icon.py +52 -0
- dify_oapi/api/chat/v1/model/update_annotation_request.py +33 -0
- dify_oapi/api/chat/v1/model/update_annotation_request_body.py +32 -0
- dify_oapi/api/chat/v1/model/update_annotation_response.py +9 -0
- dify_oapi/api/chat/v1/model/upload_file_request.py +54 -0
- dify_oapi/api/chat/v1/model/upload_file_request_body.py +29 -0
- dify_oapi/api/chat/v1/model/upload_file_response.py +10 -0
- dify_oapi/api/chat/v1/model/usage_info.py +84 -0
- dify_oapi/api/chat/v1/resource/__init__.py +7 -3
- dify_oapi/api/chat/v1/resource/annotation.py +77 -0
- dify_oapi/api/chat/v1/resource/app.py +47 -0
- dify_oapi/api/chat/v1/resource/audio.py +13 -0
- dify_oapi/api/chat/v1/resource/chat.py +14 -0
- dify_oapi/api/chat/v1/resource/conversation.py +55 -9
- dify_oapi/api/chat/v1/resource/feedback.py +31 -0
- dify_oapi/api/chat/v1/resource/file.py +25 -0
- dify_oapi/api/chat/v1/resource/message.py +19 -15
- dify_oapi/api/chat/v1/version.py +8 -2
- dify_oapi/api/chatflow/__init__.py +0 -0
- dify_oapi/api/chatflow/service.py +25 -0
- dify_oapi/api/chatflow/v1/__init__.py +0 -0
- dify_oapi/api/chatflow/v1/model/__init__.py +0 -0
- dify_oapi/api/chatflow/v1/model/annotation_info.py +43 -0
- dify_oapi/api/chatflow/v1/model/annotation_reply_settings_request.py +37 -0
- dify_oapi/api/chatflow/v1/model/annotation_reply_settings_request_body.py +33 -0
- dify_oapi/api/chatflow/v1/model/annotation_reply_settings_response.py +10 -0
- dify_oapi/api/chatflow/v1/model/annotation_reply_status_request.py +36 -0
- dify_oapi/api/chatflow/v1/model/annotation_reply_status_response.py +11 -0
- dify_oapi/api/chatflow/v1/model/app_info.py +33 -0
- dify_oapi/api/chatflow/v1/model/app_parameters.py +276 -0
- dify_oapi/api/chatflow/v1/model/audio_to_text_request.py +37 -0
- dify_oapi/api/chatflow/v1/model/audio_to_text_response.py +21 -0
- dify_oapi/api/chatflow/v1/model/chat_file.py +40 -0
- dify_oapi/api/chatflow/v1/model/chat_message.py +88 -0
- dify_oapi/api/chatflow/v1/model/chatflow_types.py +210 -0
- dify_oapi/api/chatflow/v1/model/conversation_info.py +53 -0
- dify_oapi/api/chatflow/v1/model/conversation_variable.py +55 -0
- dify_oapi/api/chatflow/v1/model/create_annotation_request.py +30 -0
- dify_oapi/api/chatflow/v1/model/create_annotation_request_body.py +28 -0
- dify_oapi/api/chatflow/v1/model/create_annotation_response.py +9 -0
- dify_oapi/api/chatflow/v1/model/delete_annotation_request.py +28 -0
- dify_oapi/api/chatflow/v1/model/delete_annotation_response.py +7 -0
- dify_oapi/api/chatflow/v1/model/delete_conversation_request.py +36 -0
- dify_oapi/api/chatflow/v1/model/delete_conversation_request_body.py +21 -0
- dify_oapi/api/chatflow/v1/model/delete_conversation_response.py +17 -0
- dify_oapi/api/chatflow/v1/model/feedback_info.py +75 -0
- dify_oapi/api/chatflow/v1/model/file_info.py +53 -0
- dify_oapi/api/chatflow/v1/model/get_annotations_request.py +30 -0
- dify_oapi/api/chatflow/v1/model/get_annotations_response.py +13 -0
- dify_oapi/api/chatflow/v1/model/get_app_feedbacks_request.py +30 -0
- dify_oapi/api/chatflow/v1/model/get_app_feedbacks_response.py +23 -0
- dify_oapi/api/chatflow/v1/model/get_conversation_messages_request.py +38 -0
- dify_oapi/api/chatflow/v1/model/get_conversation_messages_response.py +33 -0
- dify_oapi/api/chatflow/v1/model/get_conversation_variables_request.py +44 -0
- dify_oapi/api/chatflow/v1/model/get_conversation_variables_response.py +33 -0
- dify_oapi/api/chatflow/v1/model/get_conversations_request.py +40 -0
- dify_oapi/api/chatflow/v1/model/get_conversations_response.py +33 -0
- dify_oapi/api/chatflow/v1/model/get_info_request.py +22 -0
- dify_oapi/api/chatflow/v1/model/get_info_response.py +7 -0
- dify_oapi/api/chatflow/v1/model/get_meta_request.py +22 -0
- dify_oapi/api/chatflow/v1/model/get_meta_response.py +7 -0
- dify_oapi/api/chatflow/v1/model/get_parameters_request.py +22 -0
- dify_oapi/api/chatflow/v1/model/get_parameters_response.py +7 -0
- dify_oapi/api/chatflow/v1/model/get_site_request.py +22 -0
- dify_oapi/api/chatflow/v1/model/get_site_response.py +7 -0
- dify_oapi/api/chatflow/v1/model/get_suggested_questions_request.py +32 -0
- dify_oapi/api/chatflow/v1/model/get_suggested_questions_response.py +6 -0
- dify_oapi/api/chatflow/v1/model/message_feedback_request.py +36 -0
- dify_oapi/api/chatflow/v1/model/message_feedback_request_body.py +33 -0
- dify_oapi/api/chatflow/v1/model/message_feedback_response.py +21 -0
- dify_oapi/api/chatflow/v1/model/rename_conversation_request.py +36 -0
- dify_oapi/api/chatflow/v1/model/rename_conversation_request_body.py +31 -0
- dify_oapi/api/chatflow/v1/model/rename_conversation_response.py +53 -0
- dify_oapi/api/chatflow/v1/model/retriever_resource.py +58 -0
- dify_oapi/api/chatflow/v1/model/send_chat_message_request.py +30 -0
- dify_oapi/api/chatflow/v1/model/send_chat_message_request_body.py +54 -0
- dify_oapi/api/chatflow/v1/model/send_chat_message_response.py +7 -0
- dify_oapi/api/chatflow/v1/model/stop_chat_message_request.py +36 -0
- dify_oapi/api/chatflow/v1/model/stop_chat_message_request_body.py +21 -0
- dify_oapi/api/chatflow/v1/model/stop_chat_message_response.py +5 -0
- dify_oapi/api/chatflow/v1/model/text_to_audio_request.py +30 -0
- dify_oapi/api/chatflow/v1/model/text_to_audio_request_body.py +36 -0
- dify_oapi/api/chatflow/v1/model/text_to_audio_response.py +19 -0
- dify_oapi/api/chatflow/v1/model/tool_icon.py +48 -0
- dify_oapi/api/chatflow/v1/model/update_annotation_request.py +36 -0
- dify_oapi/api/chatflow/v1/model/update_annotation_request_body.py +28 -0
- dify_oapi/api/chatflow/v1/model/update_annotation_response.py +9 -0
- dify_oapi/api/chatflow/v1/model/upload_file_request.py +41 -0
- dify_oapi/api/chatflow/v1/model/upload_file_response.py +11 -0
- dify_oapi/api/chatflow/v1/model/usage_info.py +78 -0
- dify_oapi/api/chatflow/v1/model/user_input_form.py +141 -0
- dify_oapi/api/chatflow/v1/model/webapp_settings.py +88 -0
- dify_oapi/api/chatflow/v1/resource/__init__.py +0 -0
- dify_oapi/api/chatflow/v1/resource/annotation.py +122 -0
- dify_oapi/api/chatflow/v1/resource/application.py +76 -0
- dify_oapi/api/chatflow/v1/resource/chatflow.py +91 -0
- dify_oapi/api/chatflow/v1/resource/conversation.py +104 -0
- dify_oapi/api/chatflow/v1/resource/feedback.py +69 -0
- dify_oapi/api/chatflow/v1/resource/file.py +39 -0
- dify_oapi/api/chatflow/v1/resource/tts.py +29 -0
- dify_oapi/api/chatflow/v1/version.py +29 -0
- dify_oapi/api/knowledge/v1/model/data_source_detail.py +23 -0
- dify_oapi/api/knowledge/v1/model/dataset_info.py +10 -9
- dify_oapi/api/knowledge/v1/model/dataset_metadata.py +14 -0
- dify_oapi/api/knowledge/v1/model/document_info.py +18 -6
- dify_oapi/api/knowledge/v1/model/external_knowledge_info.py +11 -1
- dify_oapi/api/knowledge/v1/model/external_retrieval_model.py +13 -0
- dify_oapi/api/knowledge/v1/model/knowledge_types.py +2 -2
- dify_oapi/api/knowledge/v1/model/retrieval_model.py +10 -4
- dify_oapi/api/knowledge/v1/model/weights.py +27 -0
- dify_oapi/api/workflow/v1/model/chunk_workflow_event.py +74 -0
- dify_oapi/api/workflow/v1/model/input_file_object_workflow.py +76 -0
- dify_oapi/api/workflow/v1/model/node_finished_data.py +118 -0
- dify_oapi/api/workflow/v1/model/node_started_data.py +81 -0
- dify_oapi/api/workflow/v1/model/ping_data.py +28 -0
- dify_oapi/api/workflow/v1/model/run_workflow_request_body.py +1 -1
- dify_oapi/api/workflow/v1/model/text_chunk_data.py +39 -0
- dify_oapi/api/workflow/v1/model/tts_message_data.py +45 -0
- dify_oapi/api/workflow/v1/model/tts_message_end_data.py +45 -0
- dify_oapi/api/workflow/v1/model/workflow_completion_response.py +50 -0
- dify_oapi/api/workflow/v1/model/workflow_finished_data.py +93 -0
- dify_oapi/api/workflow/v1/model/workflow_started_data.py +51 -0
- dify_oapi/api/workflow/v1/model/workflow_types.py +27 -12
- dify_oapi/client.py +45 -0
- dify_oapi/core/http/transport/__init__.py +2 -1
- dify_oapi/core/http/transport/async_transport.py +73 -50
- dify_oapi/core/http/transport/connection_pool.py +131 -0
- dify_oapi/core/http/transport/sync_transport.py +73 -50
- dify_oapi/core/model/config.py +10 -0
- {dify_oapi2-0.4.0.dist-info → dify_oapi2-0.5.0.dist-info}/METADATA +44 -12
- {dify_oapi2-0.4.0.dist-info → dify_oapi2-0.5.0.dist-info}/RECORD +189 -34
- dify_oapi/api/chat/v1/model/chat_request_file.py +0 -46
- dify_oapi/api/chat/v1/model/message_suggested_request.py +0 -36
- {dify_oapi2-0.4.0.dist-info → dify_oapi2-0.5.0.dist-info}/LICENSE +0 -0
- {dify_oapi2-0.4.0.dist-info → dify_oapi2-0.5.0.dist-info}/WHEEL +0 -0
@@ -0,0 +1,36 @@
|
|
1
|
+
from dify_oapi.core.enum import HttpMethod
|
2
|
+
from dify_oapi.core.model.base_request import BaseRequest
|
3
|
+
|
4
|
+
from .chatflow_types import AnnotationAction
|
5
|
+
|
6
|
+
|
7
|
+
class AnnotationReplyStatusRequest(BaseRequest):
|
8
|
+
def __init__(self):
|
9
|
+
super().__init__()
|
10
|
+
self.action: AnnotationAction | None = None
|
11
|
+
self.job_id: str | None = None
|
12
|
+
|
13
|
+
@staticmethod
|
14
|
+
def builder() -> "AnnotationReplyStatusRequestBuilder":
|
15
|
+
return AnnotationReplyStatusRequestBuilder()
|
16
|
+
|
17
|
+
|
18
|
+
class AnnotationReplyStatusRequestBuilder:
|
19
|
+
def __init__(self):
|
20
|
+
annotation_reply_status_request = AnnotationReplyStatusRequest()
|
21
|
+
annotation_reply_status_request.http_method = HttpMethod.GET
|
22
|
+
annotation_reply_status_request.uri = "/v1/apps/annotation-reply/:action/status/:job_id"
|
23
|
+
self._annotation_reply_status_request = annotation_reply_status_request
|
24
|
+
|
25
|
+
def build(self) -> AnnotationReplyStatusRequest:
|
26
|
+
return self._annotation_reply_status_request
|
27
|
+
|
28
|
+
def action(self, action: AnnotationAction) -> "AnnotationReplyStatusRequestBuilder":
|
29
|
+
self._annotation_reply_status_request.action = action
|
30
|
+
self._annotation_reply_status_request.paths["action"] = action
|
31
|
+
return self
|
32
|
+
|
33
|
+
def job_id(self, job_id: str) -> "AnnotationReplyStatusRequestBuilder":
|
34
|
+
self._annotation_reply_status_request.job_id = job_id
|
35
|
+
self._annotation_reply_status_request.paths["job_id"] = job_id
|
36
|
+
return self
|
@@ -0,0 +1,11 @@
|
|
1
|
+
from dify_oapi.core.model.base_response import BaseResponse
|
2
|
+
|
3
|
+
from .chatflow_types import JobStatus
|
4
|
+
|
5
|
+
|
6
|
+
class AnnotationReplyStatusResponse(BaseResponse):
|
7
|
+
"""Response for annotation reply status."""
|
8
|
+
|
9
|
+
job_id: str | None = None
|
10
|
+
job_status: JobStatus | None = None
|
11
|
+
error_msg: str | None = None
|
@@ -0,0 +1,33 @@
|
|
1
|
+
from pydantic import BaseModel
|
2
|
+
|
3
|
+
|
4
|
+
class AppInfo(BaseModel):
|
5
|
+
"""Application information model."""
|
6
|
+
|
7
|
+
name: str | None = None
|
8
|
+
description: str | None = None
|
9
|
+
tags: list[str] | None = None
|
10
|
+
|
11
|
+
@staticmethod
|
12
|
+
def builder() -> "AppInfoBuilder":
|
13
|
+
return AppInfoBuilder()
|
14
|
+
|
15
|
+
|
16
|
+
class AppInfoBuilder:
|
17
|
+
def __init__(self):
|
18
|
+
self._app_info = AppInfo()
|
19
|
+
|
20
|
+
def build(self) -> AppInfo:
|
21
|
+
return self._app_info
|
22
|
+
|
23
|
+
def name(self, name: str) -> "AppInfoBuilder":
|
24
|
+
self._app_info.name = name
|
25
|
+
return self
|
26
|
+
|
27
|
+
def description(self, description: str) -> "AppInfoBuilder":
|
28
|
+
self._app_info.description = description
|
29
|
+
return self
|
30
|
+
|
31
|
+
def tags(self, tags: list[str]) -> "AppInfoBuilder":
|
32
|
+
self._app_info.tags = tags
|
33
|
+
return self
|
@@ -0,0 +1,276 @@
|
|
1
|
+
from pydantic import BaseModel
|
2
|
+
|
3
|
+
from .chatflow_types import AutoPlay, TransferMethod
|
4
|
+
from .user_input_form import UserInputFormItem
|
5
|
+
|
6
|
+
|
7
|
+
class SuggestedQuestionsAfterAnswer(BaseModel):
|
8
|
+
enabled: bool
|
9
|
+
|
10
|
+
@staticmethod
|
11
|
+
def builder() -> "SuggestedQuestionsAfterAnswerBuilder":
|
12
|
+
return SuggestedQuestionsAfterAnswerBuilder()
|
13
|
+
|
14
|
+
|
15
|
+
class SuggestedQuestionsAfterAnswerBuilder:
|
16
|
+
def __init__(self):
|
17
|
+
self._suggested_questions_after_answer = SuggestedQuestionsAfterAnswer(enabled=False)
|
18
|
+
|
19
|
+
def build(self) -> SuggestedQuestionsAfterAnswer:
|
20
|
+
return self._suggested_questions_after_answer
|
21
|
+
|
22
|
+
def enabled(self, enabled: bool) -> "SuggestedQuestionsAfterAnswerBuilder":
|
23
|
+
self._suggested_questions_after_answer.enabled = enabled
|
24
|
+
return self
|
25
|
+
|
26
|
+
|
27
|
+
class SpeechToText(BaseModel):
|
28
|
+
enabled: bool
|
29
|
+
|
30
|
+
@staticmethod
|
31
|
+
def builder() -> "SpeechToTextBuilder":
|
32
|
+
return SpeechToTextBuilder()
|
33
|
+
|
34
|
+
|
35
|
+
class SpeechToTextBuilder:
|
36
|
+
def __init__(self):
|
37
|
+
self._speech_to_text = SpeechToText(enabled=False)
|
38
|
+
|
39
|
+
def build(self) -> SpeechToText:
|
40
|
+
return self._speech_to_text
|
41
|
+
|
42
|
+
def enabled(self, enabled: bool) -> "SpeechToTextBuilder":
|
43
|
+
self._speech_to_text.enabled = enabled
|
44
|
+
return self
|
45
|
+
|
46
|
+
|
47
|
+
class TextToSpeech(BaseModel):
|
48
|
+
enabled: bool
|
49
|
+
voice: str | None = None
|
50
|
+
language: str | None = None
|
51
|
+
auto_play: AutoPlay | None = None
|
52
|
+
|
53
|
+
@staticmethod
|
54
|
+
def builder() -> "TextToSpeechBuilder":
|
55
|
+
return TextToSpeechBuilder()
|
56
|
+
|
57
|
+
|
58
|
+
class TextToSpeechBuilder:
|
59
|
+
def __init__(self):
|
60
|
+
self._text_to_speech = TextToSpeech(enabled=False)
|
61
|
+
|
62
|
+
def build(self) -> TextToSpeech:
|
63
|
+
return self._text_to_speech
|
64
|
+
|
65
|
+
def enabled(self, enabled: bool) -> "TextToSpeechBuilder":
|
66
|
+
self._text_to_speech.enabled = enabled
|
67
|
+
return self
|
68
|
+
|
69
|
+
def voice(self, voice: str) -> "TextToSpeechBuilder":
|
70
|
+
self._text_to_speech.voice = voice
|
71
|
+
return self
|
72
|
+
|
73
|
+
def language(self, language: str) -> "TextToSpeechBuilder":
|
74
|
+
self._text_to_speech.language = language
|
75
|
+
return self
|
76
|
+
|
77
|
+
def auto_play(self, auto_play: AutoPlay) -> "TextToSpeechBuilder":
|
78
|
+
self._text_to_speech.auto_play = auto_play
|
79
|
+
return self
|
80
|
+
|
81
|
+
|
82
|
+
class RetrieverResource(BaseModel):
|
83
|
+
enabled: bool
|
84
|
+
|
85
|
+
@staticmethod
|
86
|
+
def builder() -> "RetrieverResourceBuilder":
|
87
|
+
return RetrieverResourceBuilder()
|
88
|
+
|
89
|
+
|
90
|
+
class RetrieverResourceBuilder:
|
91
|
+
def __init__(self):
|
92
|
+
self._retriever_resource = RetrieverResource(enabled=False)
|
93
|
+
|
94
|
+
def build(self) -> RetrieverResource:
|
95
|
+
return self._retriever_resource
|
96
|
+
|
97
|
+
def enabled(self, enabled: bool) -> "RetrieverResourceBuilder":
|
98
|
+
self._retriever_resource.enabled = enabled
|
99
|
+
return self
|
100
|
+
|
101
|
+
|
102
|
+
class AnnotationReply(BaseModel):
|
103
|
+
enabled: bool
|
104
|
+
|
105
|
+
@staticmethod
|
106
|
+
def builder() -> "AnnotationReplyBuilder":
|
107
|
+
return AnnotationReplyBuilder()
|
108
|
+
|
109
|
+
|
110
|
+
class AnnotationReplyBuilder:
|
111
|
+
def __init__(self):
|
112
|
+
self._annotation_reply = AnnotationReply(enabled=False)
|
113
|
+
|
114
|
+
def build(self) -> AnnotationReply:
|
115
|
+
return self._annotation_reply
|
116
|
+
|
117
|
+
def enabled(self, enabled: bool) -> "AnnotationReplyBuilder":
|
118
|
+
self._annotation_reply.enabled = enabled
|
119
|
+
return self
|
120
|
+
|
121
|
+
|
122
|
+
class ImageUpload(BaseModel):
|
123
|
+
enabled: bool
|
124
|
+
number_limits: int | None = None
|
125
|
+
detail: str | None = None
|
126
|
+
transfer_methods: list[TransferMethod] | None = None
|
127
|
+
|
128
|
+
@staticmethod
|
129
|
+
def builder() -> "ImageUploadBuilder":
|
130
|
+
return ImageUploadBuilder()
|
131
|
+
|
132
|
+
|
133
|
+
class ImageUploadBuilder:
|
134
|
+
def __init__(self):
|
135
|
+
self._image_upload = ImageUpload(enabled=False)
|
136
|
+
|
137
|
+
def build(self) -> ImageUpload:
|
138
|
+
return self._image_upload
|
139
|
+
|
140
|
+
def enabled(self, enabled: bool) -> "ImageUploadBuilder":
|
141
|
+
self._image_upload.enabled = enabled
|
142
|
+
return self
|
143
|
+
|
144
|
+
def number_limits(self, number_limits: int) -> "ImageUploadBuilder":
|
145
|
+
self._image_upload.number_limits = number_limits
|
146
|
+
return self
|
147
|
+
|
148
|
+
def detail(self, detail: str) -> "ImageUploadBuilder":
|
149
|
+
self._image_upload.detail = detail
|
150
|
+
return self
|
151
|
+
|
152
|
+
def transfer_methods(self, transfer_methods: list[TransferMethod]) -> "ImageUploadBuilder":
|
153
|
+
self._image_upload.transfer_methods = transfer_methods
|
154
|
+
return self
|
155
|
+
|
156
|
+
|
157
|
+
class FileUpload(BaseModel):
|
158
|
+
image: ImageUpload | None = None
|
159
|
+
|
160
|
+
@staticmethod
|
161
|
+
def builder() -> "FileUploadBuilder":
|
162
|
+
return FileUploadBuilder()
|
163
|
+
|
164
|
+
|
165
|
+
class FileUploadBuilder:
|
166
|
+
def __init__(self):
|
167
|
+
self._file_upload = FileUpload()
|
168
|
+
|
169
|
+
def build(self) -> FileUpload:
|
170
|
+
return self._file_upload
|
171
|
+
|
172
|
+
def image(self, image: ImageUpload) -> "FileUploadBuilder":
|
173
|
+
self._file_upload.image = image
|
174
|
+
return self
|
175
|
+
|
176
|
+
|
177
|
+
class SystemParameters(BaseModel):
|
178
|
+
file_size_limit: int | None = None
|
179
|
+
image_file_size_limit: int | None = None
|
180
|
+
audio_file_size_limit: int | None = None
|
181
|
+
video_file_size_limit: int | None = None
|
182
|
+
|
183
|
+
@staticmethod
|
184
|
+
def builder() -> "SystemParametersBuilder":
|
185
|
+
return SystemParametersBuilder()
|
186
|
+
|
187
|
+
|
188
|
+
class SystemParametersBuilder:
|
189
|
+
def __init__(self):
|
190
|
+
self._system_parameters = SystemParameters()
|
191
|
+
|
192
|
+
def build(self) -> SystemParameters:
|
193
|
+
return self._system_parameters
|
194
|
+
|
195
|
+
def file_size_limit(self, file_size_limit: int) -> "SystemParametersBuilder":
|
196
|
+
self._system_parameters.file_size_limit = file_size_limit
|
197
|
+
return self
|
198
|
+
|
199
|
+
def image_file_size_limit(self, image_file_size_limit: int) -> "SystemParametersBuilder":
|
200
|
+
self._system_parameters.image_file_size_limit = image_file_size_limit
|
201
|
+
return self
|
202
|
+
|
203
|
+
def audio_file_size_limit(self, audio_file_size_limit: int) -> "SystemParametersBuilder":
|
204
|
+
self._system_parameters.audio_file_size_limit = audio_file_size_limit
|
205
|
+
return self
|
206
|
+
|
207
|
+
def video_file_size_limit(self, video_file_size_limit: int) -> "SystemParametersBuilder":
|
208
|
+
self._system_parameters.video_file_size_limit = video_file_size_limit
|
209
|
+
return self
|
210
|
+
|
211
|
+
|
212
|
+
class AppParameters(BaseModel):
|
213
|
+
opening_statement: str | None = None
|
214
|
+
suggested_questions: list[str] | None = None
|
215
|
+
suggested_questions_after_answer: SuggestedQuestionsAfterAnswer | None = None
|
216
|
+
speech_to_text: SpeechToText | None = None
|
217
|
+
text_to_speech: TextToSpeech | None = None
|
218
|
+
retriever_resource: RetrieverResource | None = None
|
219
|
+
annotation_reply: AnnotationReply | None = None
|
220
|
+
user_input_form: list[UserInputFormItem] | None = None
|
221
|
+
file_upload: FileUpload | None = None
|
222
|
+
system_parameters: SystemParameters | None = None
|
223
|
+
|
224
|
+
@staticmethod
|
225
|
+
def builder() -> "AppParametersBuilder":
|
226
|
+
return AppParametersBuilder()
|
227
|
+
|
228
|
+
|
229
|
+
class AppParametersBuilder:
|
230
|
+
def __init__(self):
|
231
|
+
self._app_parameters = AppParameters()
|
232
|
+
|
233
|
+
def build(self) -> AppParameters:
|
234
|
+
return self._app_parameters
|
235
|
+
|
236
|
+
def opening_statement(self, opening_statement: str) -> "AppParametersBuilder":
|
237
|
+
self._app_parameters.opening_statement = opening_statement
|
238
|
+
return self
|
239
|
+
|
240
|
+
def suggested_questions(self, suggested_questions: list[str]) -> "AppParametersBuilder":
|
241
|
+
self._app_parameters.suggested_questions = suggested_questions
|
242
|
+
return self
|
243
|
+
|
244
|
+
def suggested_questions_after_answer(
|
245
|
+
self, suggested_questions_after_answer: SuggestedQuestionsAfterAnswer
|
246
|
+
) -> "AppParametersBuilder":
|
247
|
+
self._app_parameters.suggested_questions_after_answer = suggested_questions_after_answer
|
248
|
+
return self
|
249
|
+
|
250
|
+
def speech_to_text(self, speech_to_text: SpeechToText) -> "AppParametersBuilder":
|
251
|
+
self._app_parameters.speech_to_text = speech_to_text
|
252
|
+
return self
|
253
|
+
|
254
|
+
def text_to_speech(self, text_to_speech: TextToSpeech) -> "AppParametersBuilder":
|
255
|
+
self._app_parameters.text_to_speech = text_to_speech
|
256
|
+
return self
|
257
|
+
|
258
|
+
def retriever_resource(self, retriever_resource: RetrieverResource) -> "AppParametersBuilder":
|
259
|
+
self._app_parameters.retriever_resource = retriever_resource
|
260
|
+
return self
|
261
|
+
|
262
|
+
def annotation_reply(self, annotation_reply: AnnotationReply) -> "AppParametersBuilder":
|
263
|
+
self._app_parameters.annotation_reply = annotation_reply
|
264
|
+
return self
|
265
|
+
|
266
|
+
def user_input_form(self, user_input_form: list[UserInputFormItem]) -> "AppParametersBuilder":
|
267
|
+
self._app_parameters.user_input_form = user_input_form
|
268
|
+
return self
|
269
|
+
|
270
|
+
def file_upload(self, file_upload: FileUpload) -> "AppParametersBuilder":
|
271
|
+
self._app_parameters.file_upload = file_upload
|
272
|
+
return self
|
273
|
+
|
274
|
+
def system_parameters(self, system_parameters: SystemParameters) -> "AppParametersBuilder":
|
275
|
+
self._app_parameters.system_parameters = system_parameters
|
276
|
+
return self
|
@@ -0,0 +1,37 @@
|
|
1
|
+
from io import BytesIO
|
2
|
+
|
3
|
+
from dify_oapi.core.enum import HttpMethod
|
4
|
+
from dify_oapi.core.model.base_request import BaseRequest
|
5
|
+
|
6
|
+
|
7
|
+
class AudioToTextRequest(BaseRequest):
|
8
|
+
def __init__(self):
|
9
|
+
super().__init__()
|
10
|
+
self.file: BytesIO | None = None
|
11
|
+
self.user: str | None = None
|
12
|
+
|
13
|
+
@staticmethod
|
14
|
+
def builder() -> "AudioToTextRequestBuilder":
|
15
|
+
return AudioToTextRequestBuilder()
|
16
|
+
|
17
|
+
|
18
|
+
class AudioToTextRequestBuilder:
|
19
|
+
def __init__(self):
|
20
|
+
audio_to_text_request = AudioToTextRequest()
|
21
|
+
audio_to_text_request.http_method = HttpMethod.POST
|
22
|
+
audio_to_text_request.uri = "/v1/audio-to-text"
|
23
|
+
self._audio_to_text_request = audio_to_text_request
|
24
|
+
|
25
|
+
def build(self) -> AudioToTextRequest:
|
26
|
+
return self._audio_to_text_request
|
27
|
+
|
28
|
+
def file(self, file: BytesIO, file_name: str | None = None) -> "AudioToTextRequestBuilder":
|
29
|
+
self._audio_to_text_request.file = file
|
30
|
+
file_name = file_name or "audio"
|
31
|
+
self._audio_to_text_request.files = {"file": (file_name, file)}
|
32
|
+
return self
|
33
|
+
|
34
|
+
def user(self, user: str) -> "AudioToTextRequestBuilder":
|
35
|
+
self._audio_to_text_request.user = user
|
36
|
+
self._audio_to_text_request.body = {"user": user}
|
37
|
+
return self
|
@@ -0,0 +1,21 @@
|
|
1
|
+
from dify_oapi.core.model.base_response import BaseResponse
|
2
|
+
|
3
|
+
|
4
|
+
class AudioToTextResponse(BaseResponse):
|
5
|
+
text: str | None = None
|
6
|
+
|
7
|
+
@staticmethod
|
8
|
+
def builder() -> "AudioToTextResponseBuilder":
|
9
|
+
return AudioToTextResponseBuilder()
|
10
|
+
|
11
|
+
|
12
|
+
class AudioToTextResponseBuilder:
|
13
|
+
def __init__(self):
|
14
|
+
self._audio_to_text_response = AudioToTextResponse()
|
15
|
+
|
16
|
+
def build(self) -> AudioToTextResponse:
|
17
|
+
return self._audio_to_text_response
|
18
|
+
|
19
|
+
def text(self, text: str) -> "AudioToTextResponseBuilder":
|
20
|
+
self._audio_to_text_response.text = text
|
21
|
+
return self
|
@@ -0,0 +1,40 @@
|
|
1
|
+
from pydantic import BaseModel
|
2
|
+
|
3
|
+
from .chatflow_types import FileType, TransferMethod
|
4
|
+
|
5
|
+
|
6
|
+
class ChatFile(BaseModel):
|
7
|
+
"""File attachment model for chat messages."""
|
8
|
+
|
9
|
+
type: FileType | None = None
|
10
|
+
transfer_method: TransferMethod | None = None
|
11
|
+
url: str | None = None
|
12
|
+
upload_file_id: str | None = None
|
13
|
+
|
14
|
+
@staticmethod
|
15
|
+
def builder() -> "ChatFileBuilder":
|
16
|
+
return ChatFileBuilder()
|
17
|
+
|
18
|
+
|
19
|
+
class ChatFileBuilder:
|
20
|
+
def __init__(self):
|
21
|
+
self._chat_file = ChatFile()
|
22
|
+
|
23
|
+
def build(self) -> ChatFile:
|
24
|
+
return self._chat_file
|
25
|
+
|
26
|
+
def type(self, type: FileType) -> "ChatFileBuilder":
|
27
|
+
self._chat_file.type = type
|
28
|
+
return self
|
29
|
+
|
30
|
+
def transfer_method(self, transfer_method: TransferMethod) -> "ChatFileBuilder":
|
31
|
+
self._chat_file.transfer_method = transfer_method
|
32
|
+
return self
|
33
|
+
|
34
|
+
def url(self, url: str) -> "ChatFileBuilder":
|
35
|
+
self._chat_file.url = url
|
36
|
+
return self
|
37
|
+
|
38
|
+
def upload_file_id(self, upload_file_id: str) -> "ChatFileBuilder":
|
39
|
+
self._chat_file.upload_file_id = upload_file_id
|
40
|
+
return self
|
@@ -0,0 +1,88 @@
|
|
1
|
+
from __future__ import annotations
|
2
|
+
|
3
|
+
from typing import TYPE_CHECKING
|
4
|
+
|
5
|
+
from pydantic import BaseModel
|
6
|
+
|
7
|
+
from .chatflow_types import FeedbackRating, MessageFileBelongsTo
|
8
|
+
from .retriever_resource import RetrieverResource
|
9
|
+
|
10
|
+
if TYPE_CHECKING:
|
11
|
+
pass
|
12
|
+
|
13
|
+
|
14
|
+
class MessageFile(BaseModel):
|
15
|
+
"""Message file attachment model."""
|
16
|
+
|
17
|
+
id: str | None = None
|
18
|
+
type: str | None = None
|
19
|
+
url: str | None = None
|
20
|
+
belongs_to: MessageFileBelongsTo | None = None
|
21
|
+
|
22
|
+
|
23
|
+
class MessageFeedback(BaseModel):
|
24
|
+
"""Message feedback model."""
|
25
|
+
|
26
|
+
rating: FeedbackRating | None = None
|
27
|
+
|
28
|
+
|
29
|
+
class ChatMessage(BaseModel):
|
30
|
+
"""Core chat message model."""
|
31
|
+
|
32
|
+
id: str | None = None
|
33
|
+
conversation_id: str | None = None
|
34
|
+
inputs: dict[str, str] | None = None
|
35
|
+
query: str | None = None
|
36
|
+
answer: str | None = None
|
37
|
+
message_files: list[MessageFile] | None = None
|
38
|
+
feedback: MessageFeedback | None = None
|
39
|
+
retriever_resources: list[RetrieverResource] | None = None
|
40
|
+
created_at: int | None = None
|
41
|
+
|
42
|
+
@staticmethod
|
43
|
+
def builder() -> ChatMessageBuilder:
|
44
|
+
return ChatMessageBuilder()
|
45
|
+
|
46
|
+
|
47
|
+
class ChatMessageBuilder:
|
48
|
+
def __init__(self):
|
49
|
+
self._chat_message = ChatMessage()
|
50
|
+
|
51
|
+
def build(self) -> ChatMessage:
|
52
|
+
return self._chat_message
|
53
|
+
|
54
|
+
def id(self, id: str) -> ChatMessageBuilder:
|
55
|
+
self._chat_message.id = id
|
56
|
+
return self
|
57
|
+
|
58
|
+
def conversation_id(self, conversation_id: str) -> ChatMessageBuilder:
|
59
|
+
self._chat_message.conversation_id = conversation_id
|
60
|
+
return self
|
61
|
+
|
62
|
+
def inputs(self, inputs: dict[str, str]) -> ChatMessageBuilder:
|
63
|
+
self._chat_message.inputs = inputs
|
64
|
+
return self
|
65
|
+
|
66
|
+
def query(self, query: str) -> ChatMessageBuilder:
|
67
|
+
self._chat_message.query = query
|
68
|
+
return self
|
69
|
+
|
70
|
+
def answer(self, answer: str) -> ChatMessageBuilder:
|
71
|
+
self._chat_message.answer = answer
|
72
|
+
return self
|
73
|
+
|
74
|
+
def message_files(self, message_files: list[MessageFile]) -> ChatMessageBuilder:
|
75
|
+
self._chat_message.message_files = message_files
|
76
|
+
return self
|
77
|
+
|
78
|
+
def feedback(self, feedback: MessageFeedback) -> ChatMessageBuilder:
|
79
|
+
self._chat_message.feedback = feedback
|
80
|
+
return self
|
81
|
+
|
82
|
+
def retriever_resources(self, retriever_resources: list[RetrieverResource]) -> ChatMessageBuilder:
|
83
|
+
self._chat_message.retriever_resources = retriever_resources
|
84
|
+
return self
|
85
|
+
|
86
|
+
def created_at(self, created_at: int) -> ChatMessageBuilder:
|
87
|
+
self._chat_message.created_at = created_at
|
88
|
+
return self
|