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.
- 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/{completion/v1/model/info → chat/v1/model}/app_info.py +6 -14
- dify_oapi/api/chat/v1/model/app_parameters.py +494 -0
- 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 +13 -2
- dify_oapi/api/chat/v1/model/chat_types.py +65 -0
- dify_oapi/api/chat/v1/model/configure_annotation_reply_request.py +37 -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 +30 -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/{completion/v1/model/feedback → chat/v1/model}/feedback_info.py +29 -7
- dify_oapi/api/{completion/v1/model/file → chat/v1/model}/file_info.py +6 -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_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_conversations_request.py +49 -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/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 +34 -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/{completion/v1/model/file → chat/v1/model}/upload_file_request_body.py +9 -3
- dify_oapi/api/chat/v1/model/usage_info.py +84 -0
- dify_oapi/api/chat/v1/resource/__init__.py +1 -4
- dify_oapi/api/chat/v1/resource/annotation.py +87 -0
- dify_oapi/api/chat/v1/resource/chat.py +47 -25
- dify_oapi/api/chat/v1/resource/conversation.py +45 -33
- dify_oapi/api/chat/v1/resource/message.py +22 -20
- dify_oapi/api/chat/v1/version.py +18 -5
- dify_oapi/api/chatflow/__init__.py +0 -0
- dify_oapi/api/chatflow/service.py +8 -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/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_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_suggested_questions_request.py +32 -0
- dify_oapi/api/{completion/v1/model/feedback/message_feedback_response.py → chatflow/v1/model/get_suggested_questions_response.py} +2 -3
- 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/{dify/v1/model/message_feedback_response.py → chatflow/v1/model/stop_chat_message_response.py} +1 -1
- 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/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 +87 -0
- dify_oapi/api/chatflow/v1/resource/chatflow.py +78 -0
- dify_oapi/api/chatflow/v1/resource/conversation.py +75 -0
- dify_oapi/api/chatflow/v1/version.py +22 -0
- dify_oapi/api/completion/v1/resource/__init__.py +0 -6
- dify_oapi/api/completion/v1/version.py +8 -6
- dify_oapi/api/{chat → dify}/v1/model/audio_to_text_request_body.py +2 -2
- dify_oapi/api/{completion/v1/model/feedback → dify/v1/model}/get_feedbacks_request.py +12 -12
- dify_oapi/api/dify/v1/model/get_feedbacks_response.py +26 -0
- dify_oapi/api/{workflow → dify}/v1/model/get_parameters_request.py +4 -0
- dify_oapi/api/dify/v1/model/{get_parameter_response.py → get_parameters_response.py} +6 -2
- dify_oapi/api/dify/v1/model/get_site_response.py +17 -0
- dify_oapi/api/dify/v1/model/submit_feedback_request.py +34 -0
- dify_oapi/api/dify/v1/model/submit_feedback_request_body.py +35 -0
- dify_oapi/api/dify/v1/model/submit_feedback_response.py +7 -0
- dify_oapi/api/dify/v1/resource/__init__.py +0 -6
- dify_oapi/api/dify/v1/resource/audio.py +12 -0
- dify_oapi/api/dify/v1/resource/feedback.py +31 -0
- dify_oapi/api/dify/v1/resource/info.py +34 -2
- dify_oapi/api/dify/v1/version.py +5 -4
- dify_oapi/api/knowledge/service.py +3 -3
- dify_oapi/api/knowledge/v1/model/create_document_by_file_request.py +1 -3
- dify_oapi/api/knowledge/v1/model/create_document_by_file_request_body.py +4 -46
- dify_oapi/api/knowledge/v1/model/create_document_by_file_request_body_data.py +73 -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/process_rule.py +0 -6
- dify_oapi/api/knowledge/v1/model/retrieval_model.py +10 -4
- dify_oapi/api/knowledge/v1/model/update_document_by_file_request.py +1 -3
- dify_oapi/api/knowledge/v1/model/update_document_by_file_request_body.py +4 -41
- dify_oapi/api/knowledge/v1/model/update_document_by_file_request_body_data.py +68 -0
- dify_oapi/api/knowledge/v1/model/weights.py +27 -0
- dify_oapi/api/knowledge/v1/resource/__init__.py +0 -8
- 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/api/workflow/v1/resource/workflow.py +0 -34
- dify_oapi/api/workflow/v1/version.py +9 -0
- dify_oapi/client.py +49 -4
- 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-1.0.0.dist-info/METADATA +365 -0
- {dify_oapi2-0.4.0.dist-info → dify_oapi2-1.0.0.dist-info}/RECORD +174 -98
- 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_oapi/api/chat/v1/resource/audio.py +0 -17
- dify_oapi/api/completion/v1/model/audio/audio_info.py +0 -28
- dify_oapi/api/completion/v1/model/audio/text_to_audio_request.py +0 -32
- dify_oapi/api/completion/v1/model/audio/text_to_audio_request_body.py +0 -33
- dify_oapi/api/completion/v1/model/audio/text_to_audio_response.py +0 -9
- dify_oapi/api/completion/v1/model/feedback/get_feedbacks_response.py +0 -9
- dify_oapi/api/completion/v1/model/feedback/message_feedback_request.py +0 -38
- dify_oapi/api/completion/v1/model/feedback/message_feedback_request_body.py +0 -35
- dify_oapi/api/completion/v1/model/file/upload_file_request.py +0 -42
- dify_oapi/api/completion/v1/model/file/upload_file_response.py +0 -9
- dify_oapi/api/completion/v1/model/info/feature_config.py +0 -91
- dify_oapi/api/completion/v1/model/info/file_upload_config.py +0 -23
- dify_oapi/api/completion/v1/model/info/get_info_request.py +0 -24
- dify_oapi/api/completion/v1/model/info/get_info_response.py +0 -9
- dify_oapi/api/completion/v1/model/info/get_parameters_request.py +0 -24
- dify_oapi/api/completion/v1/model/info/get_parameters_response.py +0 -9
- dify_oapi/api/completion/v1/model/info/get_site_response.py +0 -9
- dify_oapi/api/completion/v1/model/info/parameters_info.py +0 -75
- dify_oapi/api/completion/v1/model/info/site_info.py +0 -90
- dify_oapi/api/completion/v1/model/info/system_parameters.py +0 -38
- dify_oapi/api/completion/v1/model/info/user_input_form.py +0 -158
- dify_oapi/api/completion/v1/resource/audio.py +0 -19
- dify_oapi/api/completion/v1/resource/feedback.py +0 -33
- dify_oapi/api/completion/v1/resource/file.py +0 -19
- dify_oapi/api/completion/v1/resource/info.py +0 -39
- dify_oapi/api/dify/v1/model/get_parameter_request.py +0 -30
- dify_oapi/api/dify/v1/model/message_feedback_request.py +0 -38
- dify_oapi/api/dify/v1/model/message_feedback_request_body.py +0 -30
- dify_oapi/api/dify/v1/resource/message.py +0 -21
- dify_oapi/api/dify/v1/resource/meta.py +0 -17
- dify_oapi/api/dify/v1/resource/parameter.py +0 -19
- dify_oapi/api/workflow/v1/model/get_info_request.py +0 -24
- dify_oapi/api/workflow/v1/model/get_info_response.py +0 -9
- dify_oapi/api/workflow/v1/model/get_parameters_response.py +0 -9
- dify_oapi/api/workflow/v1/model/get_site_request.py +0 -24
- dify_oapi/api/workflow/v1/model/get_site_response.py +0 -9
- dify_oapi/api/workflow/v1/model/upload_file_request.py +0 -42
- dify_oapi/api/workflow/v1/model/upload_file_response.py +0 -9
- dify_oapi2-0.4.0.dist-info/METADATA +0 -303
- /dify_oapi/api/{chat → dify}/v1/model/audio_to_text_request.py +0 -0
- /dify_oapi/api/{chat → dify}/v1/model/audio_to_text_response.py +0 -0
- /dify_oapi/api/{completion/v1/model/info → dify/v1/model}/get_site_request.py +0 -0
- {dify_oapi2-0.4.0.dist-info → dify_oapi2-1.0.0.dist-info}/LICENSE +0 -0
- {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
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
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
|