dify-oapi2 0.1.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/__init__.py +0 -0
- dify_oapi/api/__init__.py +0 -0
- dify_oapi/api/chat/__init__.py +0 -0
- dify_oapi/api/chat/service.py +8 -0
- dify_oapi/api/chat/v1/__init__.py +0 -0
- dify_oapi/api/chat/v1/model/__init__.py +0 -0
- dify_oapi/api/chat/v1/model/audio_to_text_request.py +40 -0
- dify_oapi/api/chat/v1/model/audio_to_text_request_body.py +23 -0
- dify_oapi/api/chat/v1/model/audio_to_text_response.py +5 -0
- dify_oapi/api/chat/v1/model/chat_request.py +32 -0
- dify_oapi/api/chat/v1/model/chat_request_body.py +57 -0
- dify_oapi/api/chat/v1/model/chat_request_file.py +46 -0
- dify_oapi/api/chat/v1/model/chat_response.py +19 -0
- dify_oapi/api/chat/v1/model/delete_conversation_request.py +38 -0
- dify_oapi/api/chat/v1/model/delete_conversation_request_body.py +23 -0
- dify_oapi/api/chat/v1/model/delete_conversation_response.py +5 -0
- dify_oapi/api/chat/v1/model/get_conversation_list_request.py +48 -0
- dify_oapi/api/chat/v1/model/get_conversation_list_response.py +21 -0
- dify_oapi/api/chat/v1/model/message_history_request.py +48 -0
- dify_oapi/api/chat/v1/model/message_history_response.py +49 -0
- dify_oapi/api/chat/v1/model/message_suggested_request.py +36 -0
- dify_oapi/api/chat/v1/model/message_suggested_response.py +6 -0
- dify_oapi/api/chat/v1/model/rename_conversation_request.py +38 -0
- dify_oapi/api/chat/v1/model/rename_conversation_request_body.py +33 -0
- dify_oapi/api/chat/v1/model/rename_conversation_response.py +11 -0
- dify_oapi/api/chat/v1/model/stop_chat_request.py +38 -0
- dify_oapi/api/chat/v1/model/stop_chat_request_body.py +23 -0
- dify_oapi/api/chat/v1/model/stop_chat_response.py +5 -0
- dify_oapi/api/chat/v1/resource/__init__.py +4 -0
- dify_oapi/api/chat/v1/resource/audio.py +17 -0
- dify_oapi/api/chat/v1/resource/chat.py +68 -0
- dify_oapi/api/chat/v1/resource/conversation.py +59 -0
- dify_oapi/api/chat/v1/resource/message.py +35 -0
- dify_oapi/api/chat/v1/version.py +11 -0
- dify_oapi/api/completion/__init__.py +0 -0
- dify_oapi/api/completion/service.py +8 -0
- dify_oapi/api/completion/v1/__init__.py +0 -0
- dify_oapi/api/completion/v1/model/__init__.py +0 -0
- dify_oapi/api/completion/v1/model/completion_request.py +34 -0
- dify_oapi/api/completion/v1/model/completion_request_body.py +43 -0
- dify_oapi/api/completion/v1/model/completion_request_body_input.py +38 -0
- dify_oapi/api/completion/v1/model/completion_request_file.py +49 -0
- dify_oapi/api/completion/v1/model/completion_response.py +18 -0
- dify_oapi/api/completion/v1/model/stop_completion_request.py +38 -0
- dify_oapi/api/completion/v1/model/stop_completion_request_body.py +23 -0
- dify_oapi/api/completion/v1/model/stop_completion_response.py +5 -0
- dify_oapi/api/completion/v1/resource/__init__.py +1 -0
- dify_oapi/api/completion/v1/resource/completion.py +84 -0
- dify_oapi/api/completion/v1/version.py +8 -0
- dify_oapi/api/dify/__init__.py +0 -0
- dify_oapi/api/dify/service.py +8 -0
- dify_oapi/api/dify/v1/__init__.py +0 -0
- dify_oapi/api/dify/v1/model/__init__.py +0 -0
- dify_oapi/api/dify/v1/model/get_info_request.py +30 -0
- dify_oapi/api/dify/v1/model/get_info_response.py +7 -0
- dify_oapi/api/dify/v1/model/get_meta_request.py +30 -0
- dify_oapi/api/dify/v1/model/get_meta_response.py +19 -0
- dify_oapi/api/dify/v1/model/get_parameter_request.py +30 -0
- dify_oapi/api/dify/v1/model/get_parameter_response.py +13 -0
- dify_oapi/api/dify/v1/model/message_feedback_request.py +38 -0
- dify_oapi/api/dify/v1/model/message_feedback_request_body.py +30 -0
- dify_oapi/api/dify/v1/model/message_feedback_response.py +5 -0
- dify_oapi/api/dify/v1/model/text_to_audio_request.py +32 -0
- dify_oapi/api/dify/v1/model/text_to_audio_request_body.py +33 -0
- dify_oapi/api/dify/v1/model/text_to_audio_response.py +4 -0
- dify_oapi/api/dify/v1/model/upload_file_body.py +23 -0
- dify_oapi/api/dify/v1/model/upload_file_request.py +42 -0
- dify_oapi/api/dify/v1/model/upload_file_response.py +11 -0
- dify_oapi/api/dify/v1/resource/__init__.py +6 -0
- dify_oapi/api/dify/v1/resource/audio.py +17 -0
- dify_oapi/api/dify/v1/resource/file.py +17 -0
- dify_oapi/api/dify/v1/resource/info.py +19 -0
- dify_oapi/api/dify/v1/resource/message.py +21 -0
- dify_oapi/api/dify/v1/resource/meta.py +17 -0
- dify_oapi/api/dify/v1/resource/parameter.py +19 -0
- dify_oapi/api/dify/v1/version.py +13 -0
- dify_oapi/api/knowledge_base/__init__.py +0 -0
- dify_oapi/api/knowledge_base/service.py +8 -0
- dify_oapi/api/knowledge_base/v1/__init__.py +0 -0
- dify_oapi/api/knowledge_base/v1/model/__init__.py +0 -0
- dify_oapi/api/knowledge_base/v1/model/dataset/__init__.py +49 -0
- dify_oapi/api/knowledge_base/v1/model/dataset/create_request.py +32 -0
- dify_oapi/api/knowledge_base/v1/model/dataset/create_request_body.py +73 -0
- dify_oapi/api/knowledge_base/v1/model/dataset/create_response.py +11 -0
- dify_oapi/api/knowledge_base/v1/model/dataset/dataset_info.py +150 -0
- dify_oapi/api/knowledge_base/v1/model/dataset/delete_request.py +30 -0
- dify_oapi/api/knowledge_base/v1/model/dataset/delete_response.py +9 -0
- dify_oapi/api/knowledge_base/v1/model/dataset/external_knowledge_info.py +38 -0
- dify_oapi/api/knowledge_base/v1/model/dataset/filter_condition.py +72 -0
- dify_oapi/api/knowledge_base/v1/model/dataset/get_request.py +30 -0
- dify_oapi/api/knowledge_base/v1/model/dataset/get_response.py +11 -0
- dify_oapi/api/knowledge_base/v1/model/dataset/list_request.py +45 -0
- dify_oapi/api/knowledge_base/v1/model/dataset/list_response.py +13 -0
- dify_oapi/api/knowledge_base/v1/model/dataset/metadata_filtering_conditions.py +30 -0
- dify_oapi/api/knowledge_base/v1/model/dataset/reranking_model.py +28 -0
- dify_oapi/api/knowledge_base/v1/model/dataset/retrieval_model.py +147 -0
- dify_oapi/api/knowledge_base/v1/model/dataset/retrieve_request.py +38 -0
- dify_oapi/api/knowledge_base/v1/model/dataset/retrieve_request_body.py +38 -0
- dify_oapi/api/knowledge_base/v1/model/dataset/retrieve_response.py +53 -0
- dify_oapi/api/knowledge_base/v1/model/dataset/update_request.py +38 -0
- dify_oapi/api/knowledge_base/v1/model/dataset/update_request_body.py +58 -0
- dify_oapi/api/knowledge_base/v1/model/dataset/update_response.py +11 -0
- dify_oapi/api/knowledge_base/v1/model/document/__init__.py +0 -0
- dify_oapi/api/knowledge_base/v1/model/document/create_by_file_request.py +53 -0
- dify_oapi/api/knowledge_base/v1/model/document/create_by_file_request_body.py +31 -0
- dify_oapi/api/knowledge_base/v1/model/document/create_by_file_request_body_data.py +78 -0
- dify_oapi/api/knowledge_base/v1/model/document/create_by_file_response.py +12 -0
- dify_oapi/api/knowledge_base/v1/model/document/create_by_text_request.py +38 -0
- dify_oapi/api/knowledge_base/v1/model/document/create_by_text_request_body.py +80 -0
- dify_oapi/api/knowledge_base/v1/model/document/create_by_text_response.py +12 -0
- dify_oapi/api/knowledge_base/v1/model/document/data_source_info.py +30 -0
- dify_oapi/api/knowledge_base/v1/model/document/delete_request.py +38 -0
- dify_oapi/api/knowledge_base/v1/model/document/delete_response.py +9 -0
- dify_oapi/api/knowledge_base/v1/model/document/document_info.py +164 -0
- dify_oapi/api/knowledge_base/v1/model/document/get_request.py +40 -0
- dify_oapi/api/knowledge_base/v1/model/document/get_response.py +9 -0
- dify_oapi/api/knowledge_base/v1/model/document/get_upload_file_request.py +38 -0
- dify_oapi/api/knowledge_base/v1/model/document/get_upload_file_response.py +11 -0
- dify_oapi/api/knowledge_base/v1/model/document/indexing_status_info.py +80 -0
- dify_oapi/api/knowledge_base/v1/model/document/indexing_status_request.py +36 -0
- dify_oapi/api/knowledge_base/v1/model/document/indexing_status_response.py +11 -0
- dify_oapi/api/knowledge_base/v1/model/document/list_request.py +42 -0
- dify_oapi/api/knowledge_base/v1/model/document/list_response.py +15 -0
- dify_oapi/api/knowledge_base/v1/model/document/pre_processing_rule.py +32 -0
- dify_oapi/api/knowledge_base/v1/model/document/process_rule.py +34 -0
- dify_oapi/api/knowledge_base/v1/model/document/retrieval_model.py +54 -0
- dify_oapi/api/knowledge_base/v1/model/document/rules.py +31 -0
- dify_oapi/api/knowledge_base/v1/model/document/segmentation.py +35 -0
- dify_oapi/api/knowledge_base/v1/model/document/subchunk_segmentation.py +35 -0
- dify_oapi/api/knowledge_base/v1/model/document/update_by_file_request.py +53 -0
- dify_oapi/api/knowledge_base/v1/model/document/update_by_file_request_body.py +26 -0
- dify_oapi/api/knowledge_base/v1/model/document/update_by_file_request_body_data.py +40 -0
- dify_oapi/api/knowledge_base/v1/model/document/update_by_file_response.py +12 -0
- dify_oapi/api/knowledge_base/v1/model/document/update_by_text_request.py +55 -0
- dify_oapi/api/knowledge_base/v1/model/document/update_by_text_request_body.py +46 -0
- dify_oapi/api/knowledge_base/v1/model/document/update_by_text_response.py +14 -0
- dify_oapi/api/knowledge_base/v1/model/document/update_status_request.py +55 -0
- dify_oapi/api/knowledge_base/v1/model/document/update_status_request_body.py +32 -0
- dify_oapi/api/knowledge_base/v1/model/document/update_status_response.py +9 -0
- dify_oapi/api/knowledge_base/v1/model/document/upload_file_info.py +65 -0
- dify_oapi/api/knowledge_base/v1/model/metadata/__init__.py +35 -0
- dify_oapi/api/knowledge_base/v1/model/metadata/create_request.py +38 -0
- dify_oapi/api/knowledge_base/v1/model/metadata/create_request_body.py +31 -0
- dify_oapi/api/knowledge_base/v1/model/metadata/create_response.py +13 -0
- dify_oapi/api/knowledge_base/v1/model/metadata/delete_request.py +36 -0
- dify_oapi/api/knowledge_base/v1/model/metadata/delete_response.py +7 -0
- dify_oapi/api/knowledge_base/v1/model/metadata/list_request.py +30 -0
- dify_oapi/api/knowledge_base/v1/model/metadata/list_response.py +9 -0
- dify_oapi/api/knowledge_base/v1/model/metadata/metadata_info.py +38 -0
- dify_oapi/api/knowledge_base/v1/model/metadata/toggle_builtin_request.py +36 -0
- dify_oapi/api/knowledge_base/v1/model/metadata/toggle_builtin_response.py +7 -0
- dify_oapi/api/knowledge_base/v1/model/metadata/update_document_request.py +38 -0
- dify_oapi/api/knowledge_base/v1/model/metadata/update_document_request_body.py +79 -0
- dify_oapi/api/knowledge_base/v1/model/metadata/update_document_response.py +7 -0
- dify_oapi/api/knowledge_base/v1/model/metadata/update_request.py +44 -0
- dify_oapi/api/knowledge_base/v1/model/metadata/update_request_body.py +24 -0
- dify_oapi/api/knowledge_base/v1/model/metadata/update_response.py +13 -0
- dify_oapi/api/knowledge_base/v1/model/segment/__init__.py +77 -0
- dify_oapi/api/knowledge_base/v1/model/segment/child_chunk_info.py +88 -0
- dify_oapi/api/knowledge_base/v1/model/segment/create_child_chunk_request.py +52 -0
- dify_oapi/api/knowledge_base/v1/model/segment/create_child_chunk_request_body.py +23 -0
- dify_oapi/api/knowledge_base/v1/model/segment/create_child_chunk_response.py +7 -0
- dify_oapi/api/knowledge_base/v1/model/segment/create_request.py +42 -0
- dify_oapi/api/knowledge_base/v1/model/segment/create_request_body.py +25 -0
- dify_oapi/api/knowledge_base/v1/model/segment/create_response.py +8 -0
- dify_oapi/api/knowledge_base/v1/model/segment/delete_child_chunk_request.py +50 -0
- dify_oapi/api/knowledge_base/v1/model/segment/delete_child_chunk_response.py +5 -0
- dify_oapi/api/knowledge_base/v1/model/segment/delete_request.py +40 -0
- dify_oapi/api/knowledge_base/v1/model/segment/delete_response.py +5 -0
- dify_oapi/api/knowledge_base/v1/model/segment/get_request.py +40 -0
- dify_oapi/api/knowledge_base/v1/model/segment/get_response.py +8 -0
- dify_oapi/api/knowledge_base/v1/model/segment/list_child_chunks_request.py +56 -0
- dify_oapi/api/knowledge_base/v1/model/segment/list_child_chunks_response.py +11 -0
- dify_oapi/api/knowledge_base/v1/model/segment/list_request.py +50 -0
- dify_oapi/api/knowledge_base/v1/model/segment/list_response.py +12 -0
- dify_oapi/api/knowledge_base/v1/model/segment/segment_data.py +43 -0
- dify_oapi/api/knowledge_base/v1/model/segment/segment_info.py +123 -0
- dify_oapi/api/knowledge_base/v1/model/segment/update_child_chunk_request.py +58 -0
- dify_oapi/api/knowledge_base/v1/model/segment/update_child_chunk_request_body.py +23 -0
- dify_oapi/api/knowledge_base/v1/model/segment/update_child_chunk_response.py +7 -0
- dify_oapi/api/knowledge_base/v1/model/segment/update_request.py +48 -0
- dify_oapi/api/knowledge_base/v1/model/segment/update_request_body.py +25 -0
- dify_oapi/api/knowledge_base/v1/model/segment/update_response.py +8 -0
- dify_oapi/api/knowledge_base/v1/model/tag/__init__.py +41 -0
- dify_oapi/api/knowledge_base/v1/model/tag/bind_request.py +32 -0
- dify_oapi/api/knowledge_base/v1/model/tag/bind_request_body.py +29 -0
- dify_oapi/api/knowledge_base/v1/model/tag/bind_response.py +7 -0
- dify_oapi/api/knowledge_base/v1/model/tag/create_request.py +32 -0
- dify_oapi/api/knowledge_base/v1/model/tag/create_request_body.py +24 -0
- dify_oapi/api/knowledge_base/v1/model/tag/create_response.py +16 -0
- dify_oapi/api/knowledge_base/v1/model/tag/delete_request.py +32 -0
- dify_oapi/api/knowledge_base/v1/model/tag/delete_request_body.py +24 -0
- dify_oapi/api/knowledge_base/v1/model/tag/delete_response.py +7 -0
- dify_oapi/api/knowledge_base/v1/model/tag/list_request.py +24 -0
- dify_oapi/api/knowledge_base/v1/model/tag/list_response.py +19 -0
- dify_oapi/api/knowledge_base/v1/model/tag/query_bound_request.py +30 -0
- dify_oapi/api/knowledge_base/v1/model/tag/query_bound_response.py +9 -0
- dify_oapi/api/knowledge_base/v1/model/tag/tag_info.py +38 -0
- dify_oapi/api/knowledge_base/v1/model/tag/unbind_request.py +32 -0
- dify_oapi/api/knowledge_base/v1/model/tag/unbind_request_body.py +29 -0
- dify_oapi/api/knowledge_base/v1/model/tag/unbind_response.py +7 -0
- dify_oapi/api/knowledge_base/v1/model/tag/update_request.py +32 -0
- dify_oapi/api/knowledge_base/v1/model/tag/update_request_body.py +29 -0
- dify_oapi/api/knowledge_base/v1/model/tag/update_response.py +19 -0
- dify_oapi/api/knowledge_base/v1/resource/__init__.py +7 -0
- dify_oapi/api/knowledge_base/v1/resource/dataset.py +58 -0
- dify_oapi/api/knowledge_base/v1/resource/document.py +107 -0
- dify_oapi/api/knowledge_base/v1/resource/metadata.py +65 -0
- dify_oapi/api/knowledge_base/v1/resource/segment.py +110 -0
- dify_oapi/api/knowledge_base/v1/resource/tag.py +65 -0
- dify_oapi/api/knowledge_base/v1/version.py +12 -0
- dify_oapi/api/workflow/__init__.py +0 -0
- dify_oapi/api/workflow/service.py +8 -0
- dify_oapi/api/workflow/v1/__init__.py +0 -0
- dify_oapi/api/workflow/v1/model/__init__.py +0 -0
- dify_oapi/api/workflow/v1/model/get_workflow_log_request.py +50 -0
- dify_oapi/api/workflow/v1/model/get_workflow_log_response.py +42 -0
- dify_oapi/api/workflow/v1/model/get_workflow_result_request.py +30 -0
- dify_oapi/api/workflow/v1/model/get_workflow_result_response.py +17 -0
- dify_oapi/api/workflow/v1/model/run_workflow_request.py +32 -0
- dify_oapi/api/workflow/v1/model/run_workflow_request_body.py +42 -0
- dify_oapi/api/workflow/v1/model/run_workflow_request_file.py +50 -0
- dify_oapi/api/workflow/v1/model/run_workflow_response.py +24 -0
- dify_oapi/api/workflow/v1/model/stop_workflow_request.py +38 -0
- dify_oapi/api/workflow/v1/model/stop_workflow_request_body.py +23 -0
- dify_oapi/api/workflow/v1/model/stop_workflow_response.py +5 -0
- dify_oapi/api/workflow/v1/resource/__init__.py +1 -0
- dify_oapi/api/workflow/v1/resource/workflow.py +102 -0
- dify_oapi/api/workflow/v1/version.py +8 -0
- dify_oapi/client.py +97 -0
- dify_oapi/core/__init__.py +0 -0
- dify_oapi/core/const.py +15 -0
- dify_oapi/core/enum.py +21 -0
- dify_oapi/core/http/__init__.py +0 -0
- dify_oapi/core/http/transport/__init__.py +4 -0
- dify_oapi/core/http/transport/_misc.py +145 -0
- dify_oapi/core/http/transport/async_transport.py +217 -0
- dify_oapi/core/http/transport/sync_transport.py +220 -0
- dify_oapi/core/json.py +61 -0
- dify_oapi/core/log.py +8 -0
- dify_oapi/core/misc.py +41 -0
- dify_oapi/core/model/__init__.py +0 -0
- dify_oapi/core/model/base_request.py +21 -0
- dify_oapi/core/model/base_response.py +27 -0
- dify_oapi/core/model/config.py +9 -0
- dify_oapi/core/model/raw_request.py +5 -0
- dify_oapi/core/model/raw_response.py +17 -0
- dify_oapi/core/model/request_option.py +27 -0
- dify_oapi/core/type.py +5 -0
- dify_oapi/core/utils/__init__.py +0 -0
- dify_oapi/core/utils/strings.py +8 -0
- dify_oapi2-0.1.0.dist-info/LICENSE +21 -0
- dify_oapi2-0.1.0.dist-info/METADATA +295 -0
- dify_oapi2-0.1.0.dist-info/RECORD +255 -0
- dify_oapi2-0.1.0.dist-info/WHEEL +4 -0
@@ -0,0 +1,164 @@
|
|
1
|
+
from __future__ import annotations
|
2
|
+
|
3
|
+
from typing import Literal
|
4
|
+
|
5
|
+
from pydantic import BaseModel
|
6
|
+
|
7
|
+
from .data_source_info import DataSourceInfo
|
8
|
+
|
9
|
+
|
10
|
+
class DocumentInfo(BaseModel):
|
11
|
+
"""Document information model containing all document-related fields."""
|
12
|
+
|
13
|
+
id: str | None = None
|
14
|
+
position: int | None = None
|
15
|
+
data_source_type: str | None = None
|
16
|
+
data_source_info: DataSourceInfo | None = None
|
17
|
+
dataset_process_rule_id: str | None = None
|
18
|
+
name: str | None = None
|
19
|
+
created_from: str | None = None
|
20
|
+
created_by: str | None = None
|
21
|
+
created_at: int | None = None
|
22
|
+
tokens: int | None = None
|
23
|
+
indexing_status: str | None = None
|
24
|
+
error: str | None = None
|
25
|
+
enabled: bool | None = None
|
26
|
+
disabled_at: int | None = None
|
27
|
+
disabled_by: str | None = None
|
28
|
+
archived: bool | None = None
|
29
|
+
display_status: str | None = None
|
30
|
+
word_count: int | None = None
|
31
|
+
hit_count: int | None = None
|
32
|
+
doc_form: str | None = None
|
33
|
+
doc_language: str | None = None
|
34
|
+
completed_at: int | None = None
|
35
|
+
updated_at: int | None = None
|
36
|
+
indexing_latency: float | None = None
|
37
|
+
segment_count: int | None = None
|
38
|
+
average_segment_length: int | None = None
|
39
|
+
dataset_process_rule: dict | None = None
|
40
|
+
document_process_rule: dict | None = None
|
41
|
+
|
42
|
+
@staticmethod
|
43
|
+
def builder() -> DocumentInfoBuilder:
|
44
|
+
return DocumentInfoBuilder()
|
45
|
+
|
46
|
+
|
47
|
+
class DocumentInfoBuilder:
|
48
|
+
def __init__(self):
|
49
|
+
self._document_info = DocumentInfo()
|
50
|
+
|
51
|
+
def build(self) -> DocumentInfo:
|
52
|
+
return self._document_info
|
53
|
+
|
54
|
+
def id(self, id: str) -> DocumentInfoBuilder:
|
55
|
+
self._document_info.id = id
|
56
|
+
return self
|
57
|
+
|
58
|
+
def position(self, position: int) -> DocumentInfoBuilder:
|
59
|
+
self._document_info.position = position
|
60
|
+
return self
|
61
|
+
|
62
|
+
def data_source_type(self, data_source_type: str) -> DocumentInfoBuilder:
|
63
|
+
self._document_info.data_source_type = data_source_type
|
64
|
+
return self
|
65
|
+
|
66
|
+
def data_source_info(self, data_source_info: DataSourceInfo) -> DocumentInfoBuilder:
|
67
|
+
self._document_info.data_source_info = data_source_info
|
68
|
+
return self
|
69
|
+
|
70
|
+
def dataset_process_rule_id(self, dataset_process_rule_id: str) -> DocumentInfoBuilder:
|
71
|
+
self._document_info.dataset_process_rule_id = dataset_process_rule_id
|
72
|
+
return self
|
73
|
+
|
74
|
+
def name(self, name: str) -> DocumentInfoBuilder:
|
75
|
+
self._document_info.name = name
|
76
|
+
return self
|
77
|
+
|
78
|
+
def created_from(self, created_from: str) -> DocumentInfoBuilder:
|
79
|
+
self._document_info.created_from = created_from
|
80
|
+
return self
|
81
|
+
|
82
|
+
def created_by(self, created_by: str) -> DocumentInfoBuilder:
|
83
|
+
self._document_info.created_by = created_by
|
84
|
+
return self
|
85
|
+
|
86
|
+
def created_at(self, created_at: int) -> DocumentInfoBuilder:
|
87
|
+
self._document_info.created_at = created_at
|
88
|
+
return self
|
89
|
+
|
90
|
+
def tokens(self, tokens: int) -> DocumentInfoBuilder:
|
91
|
+
self._document_info.tokens = tokens
|
92
|
+
return self
|
93
|
+
|
94
|
+
def indexing_status(self, indexing_status: str) -> DocumentInfoBuilder:
|
95
|
+
self._document_info.indexing_status = indexing_status
|
96
|
+
return self
|
97
|
+
|
98
|
+
def error(self, error: str) -> DocumentInfoBuilder:
|
99
|
+
self._document_info.error = error
|
100
|
+
return self
|
101
|
+
|
102
|
+
def enabled(self, enabled: bool) -> DocumentInfoBuilder:
|
103
|
+
self._document_info.enabled = enabled
|
104
|
+
return self
|
105
|
+
|
106
|
+
def disabled_at(self, disabled_at: int) -> DocumentInfoBuilder:
|
107
|
+
self._document_info.disabled_at = disabled_at
|
108
|
+
return self
|
109
|
+
|
110
|
+
def disabled_by(self, disabled_by: str) -> DocumentInfoBuilder:
|
111
|
+
self._document_info.disabled_by = disabled_by
|
112
|
+
return self
|
113
|
+
|
114
|
+
def archived(self, archived: bool) -> DocumentInfoBuilder:
|
115
|
+
self._document_info.archived = archived
|
116
|
+
return self
|
117
|
+
|
118
|
+
def display_status(self, display_status: str) -> DocumentInfoBuilder:
|
119
|
+
self._document_info.display_status = display_status
|
120
|
+
return self
|
121
|
+
|
122
|
+
def word_count(self, word_count: int) -> DocumentInfoBuilder:
|
123
|
+
self._document_info.word_count = word_count
|
124
|
+
return self
|
125
|
+
|
126
|
+
def hit_count(self, hit_count: int) -> DocumentInfoBuilder:
|
127
|
+
self._document_info.hit_count = hit_count
|
128
|
+
return self
|
129
|
+
|
130
|
+
def doc_form(self, doc_form: Literal["text_model", "hierarchical_model", "qa_model"]) -> DocumentInfoBuilder:
|
131
|
+
self._document_info.doc_form = doc_form
|
132
|
+
return self
|
133
|
+
|
134
|
+
def doc_language(self, doc_language: str) -> DocumentInfoBuilder:
|
135
|
+
self._document_info.doc_language = doc_language
|
136
|
+
return self
|
137
|
+
|
138
|
+
def completed_at(self, completed_at: int) -> DocumentInfoBuilder:
|
139
|
+
self._document_info.completed_at = completed_at
|
140
|
+
return self
|
141
|
+
|
142
|
+
def updated_at(self, updated_at: int) -> DocumentInfoBuilder:
|
143
|
+
self._document_info.updated_at = updated_at
|
144
|
+
return self
|
145
|
+
|
146
|
+
def indexing_latency(self, indexing_latency: float) -> DocumentInfoBuilder:
|
147
|
+
self._document_info.indexing_latency = indexing_latency
|
148
|
+
return self
|
149
|
+
|
150
|
+
def segment_count(self, segment_count: int) -> DocumentInfoBuilder:
|
151
|
+
self._document_info.segment_count = segment_count
|
152
|
+
return self
|
153
|
+
|
154
|
+
def average_segment_length(self, average_segment_length: int) -> DocumentInfoBuilder:
|
155
|
+
self._document_info.average_segment_length = average_segment_length
|
156
|
+
return self
|
157
|
+
|
158
|
+
def dataset_process_rule(self, dataset_process_rule: dict) -> DocumentInfoBuilder:
|
159
|
+
self._document_info.dataset_process_rule = dataset_process_rule
|
160
|
+
return self
|
161
|
+
|
162
|
+
def document_process_rule(self, document_process_rule: dict) -> DocumentInfoBuilder:
|
163
|
+
self._document_info.document_process_rule = document_process_rule
|
164
|
+
return self
|
@@ -0,0 +1,40 @@
|
|
1
|
+
from __future__ import annotations
|
2
|
+
|
3
|
+
from dify_oapi.core.enum import HttpMethod
|
4
|
+
from dify_oapi.core.model.base_request import BaseRequest
|
5
|
+
|
6
|
+
|
7
|
+
class GetRequest(BaseRequest):
|
8
|
+
def __init__(self):
|
9
|
+
super().__init__()
|
10
|
+
self.dataset_id: str | None = None
|
11
|
+
self.document_id: str | None = None
|
12
|
+
|
13
|
+
@staticmethod
|
14
|
+
def builder() -> GetRequestBuilder:
|
15
|
+
return GetRequestBuilder()
|
16
|
+
|
17
|
+
|
18
|
+
class GetRequestBuilder:
|
19
|
+
def __init__(self):
|
20
|
+
get_request = GetRequest()
|
21
|
+
get_request.http_method = HttpMethod.GET
|
22
|
+
get_request.uri = "/v1/datasets/:dataset_id/documents/:document_id"
|
23
|
+
self._get_request = get_request
|
24
|
+
|
25
|
+
def build(self) -> GetRequest:
|
26
|
+
return self._get_request
|
27
|
+
|
28
|
+
def dataset_id(self, dataset_id: str) -> GetRequestBuilder:
|
29
|
+
self._get_request.dataset_id = dataset_id
|
30
|
+
self._get_request.paths["dataset_id"] = dataset_id
|
31
|
+
return self
|
32
|
+
|
33
|
+
def document_id(self, document_id: str) -> GetRequestBuilder:
|
34
|
+
self._get_request.document_id = document_id
|
35
|
+
self._get_request.paths["document_id"] = document_id
|
36
|
+
return self
|
37
|
+
|
38
|
+
def metadata(self, metadata: str) -> GetRequestBuilder:
|
39
|
+
self._get_request.add_query("metadata", metadata)
|
40
|
+
return self
|
@@ -0,0 +1,38 @@
|
|
1
|
+
from __future__ import annotations
|
2
|
+
|
3
|
+
from dify_oapi.core.enum import HttpMethod
|
4
|
+
from dify_oapi.core.model.base_request import BaseRequest
|
5
|
+
|
6
|
+
|
7
|
+
class GetUploadFileRequest(BaseRequest):
|
8
|
+
"""Request model for get upload file API."""
|
9
|
+
|
10
|
+
def __init__(self):
|
11
|
+
super().__init__()
|
12
|
+
self.dataset_id: str | None = None
|
13
|
+
self.document_id: str | None = None
|
14
|
+
|
15
|
+
@staticmethod
|
16
|
+
def builder() -> GetUploadFileRequestBuilder:
|
17
|
+
return GetUploadFileRequestBuilder()
|
18
|
+
|
19
|
+
|
20
|
+
class GetUploadFileRequestBuilder:
|
21
|
+
def __init__(self):
|
22
|
+
get_upload_file_request = GetUploadFileRequest()
|
23
|
+
get_upload_file_request.http_method = HttpMethod.GET
|
24
|
+
get_upload_file_request.uri = "/v1/datasets/:dataset_id/documents/:document_id/upload-file"
|
25
|
+
self._get_upload_file_request = get_upload_file_request
|
26
|
+
|
27
|
+
def build(self) -> GetUploadFileRequest:
|
28
|
+
return self._get_upload_file_request
|
29
|
+
|
30
|
+
def dataset_id(self, dataset_id: str) -> GetUploadFileRequestBuilder:
|
31
|
+
self._get_upload_file_request.dataset_id = dataset_id
|
32
|
+
self._get_upload_file_request.paths["dataset_id"] = dataset_id
|
33
|
+
return self
|
34
|
+
|
35
|
+
def document_id(self, document_id: str) -> GetUploadFileRequestBuilder:
|
36
|
+
self._get_upload_file_request.document_id = document_id
|
37
|
+
self._get_upload_file_request.paths["document_id"] = document_id
|
38
|
+
return self
|
@@ -0,0 +1,11 @@
|
|
1
|
+
from __future__ import annotations
|
2
|
+
|
3
|
+
from dify_oapi.core.model.base_response import BaseResponse
|
4
|
+
|
5
|
+
from .upload_file_info import UploadFileInfo
|
6
|
+
|
7
|
+
|
8
|
+
class GetUploadFileResponse(UploadFileInfo, BaseResponse):
|
9
|
+
"""Response model for get upload file API."""
|
10
|
+
|
11
|
+
pass
|
@@ -0,0 +1,80 @@
|
|
1
|
+
from __future__ import annotations
|
2
|
+
|
3
|
+
from pydantic import BaseModel
|
4
|
+
|
5
|
+
|
6
|
+
class IndexingStatusInfo(BaseModel):
|
7
|
+
"""Indexing status information model for document processing status."""
|
8
|
+
|
9
|
+
id: str | None = None
|
10
|
+
indexing_status: str | None = None
|
11
|
+
processing_started_at: float | None = None
|
12
|
+
parsing_completed_at: float | None = None
|
13
|
+
cleaning_completed_at: float | None = None
|
14
|
+
splitting_completed_at: float | None = None
|
15
|
+
completed_at: float | None = None
|
16
|
+
paused_at: float | None = None
|
17
|
+
error: str | None = None
|
18
|
+
stopped_at: float | None = None
|
19
|
+
completed_segments: int | None = None
|
20
|
+
total_segments: int | None = None
|
21
|
+
|
22
|
+
@staticmethod
|
23
|
+
def builder() -> IndexingStatusInfoBuilder:
|
24
|
+
return IndexingStatusInfoBuilder()
|
25
|
+
|
26
|
+
|
27
|
+
class IndexingStatusInfoBuilder:
|
28
|
+
def __init__(self):
|
29
|
+
self._indexing_status_info = IndexingStatusInfo()
|
30
|
+
|
31
|
+
def build(self) -> IndexingStatusInfo:
|
32
|
+
return self._indexing_status_info
|
33
|
+
|
34
|
+
def id(self, id: str) -> IndexingStatusInfoBuilder:
|
35
|
+
self._indexing_status_info.id = id
|
36
|
+
return self
|
37
|
+
|
38
|
+
def indexing_status(self, indexing_status: str) -> IndexingStatusInfoBuilder:
|
39
|
+
self._indexing_status_info.indexing_status = indexing_status
|
40
|
+
return self
|
41
|
+
|
42
|
+
def processing_started_at(self, processing_started_at: float) -> IndexingStatusInfoBuilder:
|
43
|
+
self._indexing_status_info.processing_started_at = processing_started_at
|
44
|
+
return self
|
45
|
+
|
46
|
+
def parsing_completed_at(self, parsing_completed_at: float) -> IndexingStatusInfoBuilder:
|
47
|
+
self._indexing_status_info.parsing_completed_at = parsing_completed_at
|
48
|
+
return self
|
49
|
+
|
50
|
+
def cleaning_completed_at(self, cleaning_completed_at: float) -> IndexingStatusInfoBuilder:
|
51
|
+
self._indexing_status_info.cleaning_completed_at = cleaning_completed_at
|
52
|
+
return self
|
53
|
+
|
54
|
+
def splitting_completed_at(self, splitting_completed_at: float) -> IndexingStatusInfoBuilder:
|
55
|
+
self._indexing_status_info.splitting_completed_at = splitting_completed_at
|
56
|
+
return self
|
57
|
+
|
58
|
+
def completed_at(self, completed_at: float) -> IndexingStatusInfoBuilder:
|
59
|
+
self._indexing_status_info.completed_at = completed_at
|
60
|
+
return self
|
61
|
+
|
62
|
+
def paused_at(self, paused_at: float) -> IndexingStatusInfoBuilder:
|
63
|
+
self._indexing_status_info.paused_at = paused_at
|
64
|
+
return self
|
65
|
+
|
66
|
+
def error(self, error: str) -> IndexingStatusInfoBuilder:
|
67
|
+
self._indexing_status_info.error = error
|
68
|
+
return self
|
69
|
+
|
70
|
+
def stopped_at(self, stopped_at: float) -> IndexingStatusInfoBuilder:
|
71
|
+
self._indexing_status_info.stopped_at = stopped_at
|
72
|
+
return self
|
73
|
+
|
74
|
+
def completed_segments(self, completed_segments: int) -> IndexingStatusInfoBuilder:
|
75
|
+
self._indexing_status_info.completed_segments = completed_segments
|
76
|
+
return self
|
77
|
+
|
78
|
+
def total_segments(self, total_segments: int) -> IndexingStatusInfoBuilder:
|
79
|
+
self._indexing_status_info.total_segments = total_segments
|
80
|
+
return self
|
@@ -0,0 +1,36 @@
|
|
1
|
+
from __future__ import annotations
|
2
|
+
|
3
|
+
from dify_oapi.core.enum import HttpMethod
|
4
|
+
from dify_oapi.core.model.base_request import BaseRequest
|
5
|
+
|
6
|
+
|
7
|
+
class IndexingStatusRequest(BaseRequest):
|
8
|
+
def __init__(self):
|
9
|
+
super().__init__()
|
10
|
+
self.dataset_id: str | None = None
|
11
|
+
self.batch: str | None = None
|
12
|
+
|
13
|
+
@staticmethod
|
14
|
+
def builder() -> IndexingStatusRequestBuilder:
|
15
|
+
return IndexingStatusRequestBuilder()
|
16
|
+
|
17
|
+
|
18
|
+
class IndexingStatusRequestBuilder:
|
19
|
+
def __init__(self):
|
20
|
+
indexing_status_request = IndexingStatusRequest()
|
21
|
+
indexing_status_request.http_method = HttpMethod.GET
|
22
|
+
indexing_status_request.uri = "/v1/datasets/:dataset_id/documents/:batch/indexing-status"
|
23
|
+
self._indexing_status_request = indexing_status_request
|
24
|
+
|
25
|
+
def build(self) -> IndexingStatusRequest:
|
26
|
+
return self._indexing_status_request
|
27
|
+
|
28
|
+
def dataset_id(self, dataset_id: str) -> IndexingStatusRequestBuilder:
|
29
|
+
self._indexing_status_request.dataset_id = dataset_id
|
30
|
+
self._indexing_status_request.paths["dataset_id"] = dataset_id
|
31
|
+
return self
|
32
|
+
|
33
|
+
def batch(self, batch: str) -> IndexingStatusRequestBuilder:
|
34
|
+
self._indexing_status_request.batch = batch
|
35
|
+
self._indexing_status_request.paths["batch"] = batch
|
36
|
+
return self
|
@@ -0,0 +1,11 @@
|
|
1
|
+
from __future__ import annotations
|
2
|
+
|
3
|
+
from dify_oapi.core.model.base_response import BaseResponse
|
4
|
+
|
5
|
+
from .indexing_status_info import IndexingStatusInfo
|
6
|
+
|
7
|
+
|
8
|
+
class IndexingStatusResponse(BaseResponse):
|
9
|
+
"""Response model for indexing status API"""
|
10
|
+
|
11
|
+
data: list[IndexingStatusInfo] | None = None
|
@@ -0,0 +1,42 @@
|
|
1
|
+
from __future__ import annotations
|
2
|
+
|
3
|
+
from dify_oapi.core.enum import HttpMethod
|
4
|
+
from dify_oapi.core.model.base_request import BaseRequest
|
5
|
+
|
6
|
+
|
7
|
+
class ListRequest(BaseRequest):
|
8
|
+
def __init__(self):
|
9
|
+
super().__init__()
|
10
|
+
self.dataset_id: str | None = None
|
11
|
+
|
12
|
+
@staticmethod
|
13
|
+
def builder() -> ListRequestBuilder:
|
14
|
+
return ListRequestBuilder()
|
15
|
+
|
16
|
+
|
17
|
+
class ListRequestBuilder:
|
18
|
+
def __init__(self):
|
19
|
+
list_request = ListRequest()
|
20
|
+
list_request.http_method = HttpMethod.GET
|
21
|
+
list_request.uri = "/v1/datasets/:dataset_id/documents"
|
22
|
+
self._list_request = list_request
|
23
|
+
|
24
|
+
def build(self) -> ListRequest:
|
25
|
+
return self._list_request
|
26
|
+
|
27
|
+
def dataset_id(self, dataset_id: str) -> ListRequestBuilder:
|
28
|
+
self._list_request.dataset_id = dataset_id
|
29
|
+
self._list_request.paths["dataset_id"] = dataset_id
|
30
|
+
return self
|
31
|
+
|
32
|
+
def keyword(self, keyword: str) -> ListRequestBuilder:
|
33
|
+
self._list_request.add_query("keyword", keyword)
|
34
|
+
return self
|
35
|
+
|
36
|
+
def page(self, page: int) -> ListRequestBuilder:
|
37
|
+
self._list_request.add_query("page", page)
|
38
|
+
return self
|
39
|
+
|
40
|
+
def limit(self, limit: int) -> ListRequestBuilder:
|
41
|
+
self._list_request.add_query("limit", limit)
|
42
|
+
return self
|
@@ -0,0 +1,15 @@
|
|
1
|
+
from __future__ import annotations
|
2
|
+
|
3
|
+
from dify_oapi.core.model.base_response import BaseResponse
|
4
|
+
|
5
|
+
from .document_info import DocumentInfo
|
6
|
+
|
7
|
+
|
8
|
+
class ListResponse(BaseResponse):
|
9
|
+
"""Response model for list documents API"""
|
10
|
+
|
11
|
+
data: list[DocumentInfo] | None = None
|
12
|
+
has_more: bool | None = None
|
13
|
+
limit: int | None = None
|
14
|
+
total: int | None = None
|
15
|
+
page: int | None = None
|
@@ -0,0 +1,32 @@
|
|
1
|
+
from __future__ import annotations
|
2
|
+
|
3
|
+
from typing import Literal
|
4
|
+
|
5
|
+
from pydantic import BaseModel
|
6
|
+
|
7
|
+
|
8
|
+
class PreProcessingRule(BaseModel):
|
9
|
+
"""Pre-processing rule model for document preprocessing configuration."""
|
10
|
+
|
11
|
+
id: str | None = None
|
12
|
+
enabled: bool | None = None
|
13
|
+
|
14
|
+
@staticmethod
|
15
|
+
def builder() -> PreProcessingRuleBuilder:
|
16
|
+
return PreProcessingRuleBuilder()
|
17
|
+
|
18
|
+
|
19
|
+
class PreProcessingRuleBuilder:
|
20
|
+
def __init__(self):
|
21
|
+
self._pre_processing_rule = PreProcessingRule()
|
22
|
+
|
23
|
+
def build(self) -> PreProcessingRule:
|
24
|
+
return self._pre_processing_rule
|
25
|
+
|
26
|
+
def id(self, id: Literal["remove_extra_spaces", "remove_urls_emails"]) -> PreProcessingRuleBuilder:
|
27
|
+
self._pre_processing_rule.id = id
|
28
|
+
return self
|
29
|
+
|
30
|
+
def enabled(self, enabled: bool) -> PreProcessingRuleBuilder:
|
31
|
+
self._pre_processing_rule.enabled = enabled
|
32
|
+
return self
|
@@ -0,0 +1,34 @@
|
|
1
|
+
from __future__ import annotations
|
2
|
+
|
3
|
+
from typing import Literal
|
4
|
+
|
5
|
+
from pydantic import BaseModel
|
6
|
+
|
7
|
+
from .rules import Rules
|
8
|
+
|
9
|
+
|
10
|
+
class ProcessRule(BaseModel):
|
11
|
+
"""Processing rule model for document processing configuration."""
|
12
|
+
|
13
|
+
mode: str | None = None
|
14
|
+
rules: Rules | None = None
|
15
|
+
|
16
|
+
@staticmethod
|
17
|
+
def builder() -> ProcessRuleBuilder:
|
18
|
+
return ProcessRuleBuilder()
|
19
|
+
|
20
|
+
|
21
|
+
class ProcessRuleBuilder:
|
22
|
+
def __init__(self):
|
23
|
+
self._process_rule = ProcessRule()
|
24
|
+
|
25
|
+
def build(self) -> ProcessRule:
|
26
|
+
return self._process_rule
|
27
|
+
|
28
|
+
def mode(self, mode: Literal["automatic", "custom"]) -> ProcessRuleBuilder:
|
29
|
+
self._process_rule.mode = mode
|
30
|
+
return self
|
31
|
+
|
32
|
+
def rules(self, rules: Rules) -> ProcessRuleBuilder:
|
33
|
+
self._process_rule.rules = rules
|
34
|
+
return self
|
@@ -0,0 +1,54 @@
|
|
1
|
+
from __future__ import annotations
|
2
|
+
|
3
|
+
from typing import Literal
|
4
|
+
|
5
|
+
from pydantic import BaseModel
|
6
|
+
|
7
|
+
|
8
|
+
class RetrievalModel(BaseModel):
|
9
|
+
"""Document-specific retrieval model for search and retrieval configuration."""
|
10
|
+
|
11
|
+
search_method: str | None = None
|
12
|
+
reranking_enable: bool | None = None
|
13
|
+
reranking_model: dict | None = None
|
14
|
+
top_k: int | None = None
|
15
|
+
score_threshold_enabled: bool | None = None
|
16
|
+
score_threshold: float | None = None
|
17
|
+
|
18
|
+
@staticmethod
|
19
|
+
def builder() -> RetrievalModelBuilder:
|
20
|
+
return RetrievalModelBuilder()
|
21
|
+
|
22
|
+
|
23
|
+
class RetrievalModelBuilder:
|
24
|
+
def __init__(self):
|
25
|
+
self._retrieval_model = RetrievalModel()
|
26
|
+
|
27
|
+
def build(self) -> RetrievalModel:
|
28
|
+
return self._retrieval_model
|
29
|
+
|
30
|
+
def search_method(
|
31
|
+
self, search_method: Literal["keyword_search", "semantic_search", "full_text_search", "hybrid_search"]
|
32
|
+
) -> RetrievalModelBuilder:
|
33
|
+
self._retrieval_model.search_method = search_method
|
34
|
+
return self
|
35
|
+
|
36
|
+
def reranking_enable(self, reranking_enable: bool) -> RetrievalModelBuilder:
|
37
|
+
self._retrieval_model.reranking_enable = reranking_enable
|
38
|
+
return self
|
39
|
+
|
40
|
+
def reranking_model(self, reranking_model: dict) -> RetrievalModelBuilder:
|
41
|
+
self._retrieval_model.reranking_model = reranking_model
|
42
|
+
return self
|
43
|
+
|
44
|
+
def top_k(self, top_k: int) -> RetrievalModelBuilder:
|
45
|
+
self._retrieval_model.top_k = top_k
|
46
|
+
return self
|
47
|
+
|
48
|
+
def score_threshold_enabled(self, score_threshold_enabled: bool) -> RetrievalModelBuilder:
|
49
|
+
self._retrieval_model.score_threshold_enabled = score_threshold_enabled
|
50
|
+
return self
|
51
|
+
|
52
|
+
def score_threshold(self, score_threshold: float) -> RetrievalModelBuilder:
|
53
|
+
self._retrieval_model.score_threshold = score_threshold
|
54
|
+
return self
|
@@ -0,0 +1,31 @@
|
|
1
|
+
from __future__ import annotations
|
2
|
+
|
3
|
+
from pydantic import BaseModel
|
4
|
+
|
5
|
+
from .pre_processing_rule import PreProcessingRule
|
6
|
+
from .segmentation import Segmentation
|
7
|
+
|
8
|
+
|
9
|
+
class Rules(BaseModel):
|
10
|
+
pre_processing_rules: list[PreProcessingRule] | None = None
|
11
|
+
segmentation: Segmentation | None = None
|
12
|
+
|
13
|
+
@staticmethod
|
14
|
+
def builder() -> RulesBuilder:
|
15
|
+
return RulesBuilder()
|
16
|
+
|
17
|
+
|
18
|
+
class RulesBuilder:
|
19
|
+
def __init__(self):
|
20
|
+
self._rules = Rules()
|
21
|
+
|
22
|
+
def build(self) -> Rules:
|
23
|
+
return self._rules
|
24
|
+
|
25
|
+
def pre_processing_rules(self, pre_processing_rules: list[PreProcessingRule]) -> RulesBuilder:
|
26
|
+
self._rules.pre_processing_rules = pre_processing_rules
|
27
|
+
return self
|
28
|
+
|
29
|
+
def segmentation(self, segmentation: Segmentation) -> RulesBuilder:
|
30
|
+
self._rules.segmentation = segmentation
|
31
|
+
return self
|
@@ -0,0 +1,35 @@
|
|
1
|
+
from __future__ import annotations
|
2
|
+
|
3
|
+
from pydantic import BaseModel
|
4
|
+
|
5
|
+
|
6
|
+
class Segmentation(BaseModel):
|
7
|
+
"""Segmentation rule model for document text segmentation configuration."""
|
8
|
+
|
9
|
+
separator: str | None = None
|
10
|
+
max_tokens: int | None = None
|
11
|
+
chunk_overlap: int | None = None
|
12
|
+
|
13
|
+
@staticmethod
|
14
|
+
def builder() -> SegmentationBuilder:
|
15
|
+
return SegmentationBuilder()
|
16
|
+
|
17
|
+
|
18
|
+
class SegmentationBuilder:
|
19
|
+
def __init__(self):
|
20
|
+
self._segmentation = Segmentation()
|
21
|
+
|
22
|
+
def build(self) -> Segmentation:
|
23
|
+
return self._segmentation
|
24
|
+
|
25
|
+
def separator(self, separator: str) -> SegmentationBuilder:
|
26
|
+
self._segmentation.separator = separator
|
27
|
+
return self
|
28
|
+
|
29
|
+
def max_tokens(self, max_tokens: int) -> SegmentationBuilder:
|
30
|
+
self._segmentation.max_tokens = max_tokens
|
31
|
+
return self
|
32
|
+
|
33
|
+
def chunk_overlap(self, chunk_overlap: int) -> SegmentationBuilder:
|
34
|
+
self._segmentation.chunk_overlap = chunk_overlap
|
35
|
+
return self
|
@@ -0,0 +1,35 @@
|
|
1
|
+
from __future__ import annotations
|
2
|
+
|
3
|
+
from pydantic import BaseModel
|
4
|
+
|
5
|
+
|
6
|
+
class SubchunkSegmentation(BaseModel):
|
7
|
+
"""Sub-chunk segmentation rule model for hierarchical document segmentation."""
|
8
|
+
|
9
|
+
separator: str | None = None
|
10
|
+
max_tokens: int | None = None
|
11
|
+
chunk_overlap: int | None = None
|
12
|
+
|
13
|
+
@staticmethod
|
14
|
+
def builder() -> SubchunkSegmentationBuilder:
|
15
|
+
return SubchunkSegmentationBuilder()
|
16
|
+
|
17
|
+
|
18
|
+
class SubchunkSegmentationBuilder:
|
19
|
+
def __init__(self):
|
20
|
+
self._subchunk_segmentation = SubchunkSegmentation()
|
21
|
+
|
22
|
+
def build(self) -> SubchunkSegmentation:
|
23
|
+
return self._subchunk_segmentation
|
24
|
+
|
25
|
+
def separator(self, separator: str) -> SubchunkSegmentationBuilder:
|
26
|
+
self._subchunk_segmentation.separator = separator
|
27
|
+
return self
|
28
|
+
|
29
|
+
def max_tokens(self, max_tokens: int) -> SubchunkSegmentationBuilder:
|
30
|
+
self._subchunk_segmentation.max_tokens = max_tokens
|
31
|
+
return self
|
32
|
+
|
33
|
+
def chunk_overlap(self, chunk_overlap: int) -> SubchunkSegmentationBuilder:
|
34
|
+
self._subchunk_segmentation.chunk_overlap = chunk_overlap
|
35
|
+
return self
|