dify-oapi2 0.1.1__py3-none-any.whl → 0.3.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/completion/v1/model/annotation/annotation_info.py +43 -0
- dify_oapi/api/completion/v1/model/annotation/annotation_reply_settings_request.py +39 -0
- dify_oapi/api/completion/v1/model/annotation/annotation_reply_settings_request_body.py +33 -0
- dify_oapi/api/completion/v1/model/annotation/annotation_reply_settings_response.py +9 -0
- dify_oapi/api/completion/v1/model/annotation/create_annotation_request.py +32 -0
- dify_oapi/api/completion/v1/model/annotation/create_annotation_request_body.py +28 -0
- dify_oapi/api/completion/v1/model/annotation/create_annotation_response.py +9 -0
- dify_oapi/api/completion/v1/model/annotation/delete_annotation_request.py +30 -0
- dify_oapi/api/completion/v1/model/annotation/delete_annotation_response.py +7 -0
- dify_oapi/api/completion/v1/model/annotation/job_status_info.py +35 -0
- dify_oapi/api/completion/v1/model/annotation/list_annotations_request.py +32 -0
- dify_oapi/api/completion/v1/model/annotation/list_annotations_response.py +13 -0
- dify_oapi/api/completion/v1/model/annotation/query_annotation_reply_status_request.py +38 -0
- dify_oapi/api/completion/v1/model/annotation/query_annotation_reply_status_response.py +9 -0
- dify_oapi/api/completion/v1/model/annotation/update_annotation_request.py +38 -0
- dify_oapi/api/completion/v1/model/annotation/update_annotation_request_body.py +28 -0
- dify_oapi/api/completion/v1/model/annotation/update_annotation_response.py +9 -0
- dify_oapi/api/completion/v1/model/audio/audio_info.py +28 -0
- dify_oapi/api/completion/v1/model/audio/text_to_audio_request.py +32 -0
- dify_oapi/api/completion/v1/model/audio/text_to_audio_request_body.py +33 -0
- dify_oapi/api/completion/v1/model/audio/text_to_audio_response.py +9 -0
- dify_oapi/api/completion/v1/model/completion/completion_inputs.py +28 -0
- dify_oapi/api/completion/v1/model/completion/completion_message_info.py +46 -0
- dify_oapi/api/completion/v1/model/completion/completion_types.py +27 -0
- dify_oapi/api/completion/v1/model/completion/metadata.py +31 -0
- dify_oapi/api/completion/v1/model/completion/retriever_resource.py +58 -0
- dify_oapi/api/completion/v1/model/completion/send_message_request.py +32 -0
- dify_oapi/api/completion/v1/model/completion/send_message_request_body.py +76 -0
- dify_oapi/api/completion/v1/model/completion/send_message_response.py +9 -0
- dify_oapi/api/completion/v1/model/completion/stop_response_request.py +38 -0
- dify_oapi/api/completion/v1/model/completion/stop_response_request_body.py +23 -0
- dify_oapi/api/completion/v1/model/{stop_completion_response.py → completion/stop_response_response.py} +3 -1
- dify_oapi/api/completion/v1/model/completion/usage.py +78 -0
- dify_oapi/api/completion/v1/model/feedback/feedback_info.py +53 -0
- dify_oapi/api/completion/v1/model/feedback/get_feedbacks_request.py +32 -0
- dify_oapi/api/completion/v1/model/feedback/get_feedbacks_response.py +9 -0
- dify_oapi/api/completion/v1/model/feedback/message_feedback_request.py +38 -0
- dify_oapi/api/completion/v1/model/feedback/message_feedback_request_body.py +35 -0
- dify_oapi/api/completion/v1/model/feedback/message_feedback_response.py +7 -0
- dify_oapi/api/completion/v1/model/file/file_info.py +53 -0
- dify_oapi/api/completion/v1/model/file/upload_file_request.py +42 -0
- dify_oapi/api/completion/v1/model/file/upload_file_request_body.py +23 -0
- dify_oapi/api/completion/v1/model/file/upload_file_response.py +9 -0
- dify_oapi/api/completion/v1/model/info/app_info.py +43 -0
- dify_oapi/api/completion/v1/model/info/file_upload_config.py +23 -0
- dify_oapi/api/completion/v1/model/info/get_info_request.py +24 -0
- dify_oapi/api/completion/v1/model/info/get_info_response.py +9 -0
- dify_oapi/api/completion/v1/model/info/get_parameters_request.py +24 -0
- dify_oapi/api/completion/v1/model/info/get_parameters_response.py +9 -0
- dify_oapi/api/completion/v1/model/info/get_site_request.py +24 -0
- dify_oapi/api/completion/v1/model/info/get_site_response.py +9 -0
- dify_oapi/api/completion/v1/model/info/parameters_info.py +67 -0
- dify_oapi/api/completion/v1/model/info/site_info.py +90 -0
- dify_oapi/api/completion/v1/model/info/system_parameters.py +38 -0
- dify_oapi/api/completion/v1/model/info/user_input_form.py +43 -0
- dify_oapi/api/completion/v1/resource/__init__.py +5 -0
- dify_oapi/api/completion/v1/resource/annotation.py +99 -0
- dify_oapi/api/completion/v1/resource/audio.py +19 -0
- dify_oapi/api/completion/v1/resource/completion.py +36 -46
- dify_oapi/api/completion/v1/resource/feedback.py +33 -0
- dify_oapi/api/completion/v1/resource/file.py +19 -0
- dify_oapi/api/completion/v1/resource/info.py +39 -0
- dify_oapi/api/completion/v1/version.py +11 -1
- dify_oapi/api/knowledge_base/v1/model/dataset/create_request_body.py +3 -4
- dify_oapi/api/knowledge_base/v1/model/dataset/dataset_types.py +36 -0
- dify_oapi/api/knowledge_base/v1/model/dataset/retrieval_model.py +3 -6
- dify_oapi/api/knowledge_base/v1/model/document/create_by_text_request_body.py +7 -12
- dify_oapi/api/knowledge_base/v1/model/document/document_types.py +36 -0
- dify_oapi/api/knowledge_base/v1/model/metadata/metadata_types.py +15 -0
- dify_oapi/api/knowledge_base/v1/model/segment/segment_types.py +24 -0
- dify_oapi/api/knowledge_base/v1/model/tag/tag_types.py +12 -0
- dify_oapi/api/knowledge_base/v1/model/tag/update_response.py +5 -1
- dify_oapi/api/workflow/v1/model/file/__init__.py +1 -0
- dify_oapi/api/workflow/v1/model/file/file_info.py +53 -0
- dify_oapi/api/workflow/v1/model/file/preview_file_request.py +34 -0
- dify_oapi/api/workflow/v1/model/file/preview_file_response.py +9 -0
- dify_oapi/api/workflow/v1/model/file/upload_file_request.py +42 -0
- dify_oapi/api/workflow/v1/model/file/upload_file_request_body.py +23 -0
- dify_oapi/api/workflow/v1/model/file/upload_file_response.py +9 -0
- dify_oapi/api/workflow/v1/model/info/app_info.py +45 -0
- dify_oapi/api/workflow/v1/model/info/file_upload_config.py +45 -0
- dify_oapi/api/workflow/v1/model/info/get_info_request.py +24 -0
- dify_oapi/api/workflow/v1/model/info/get_info_response.py +9 -0
- dify_oapi/api/workflow/v1/model/info/get_parameters_request.py +24 -0
- dify_oapi/api/workflow/v1/model/info/get_parameters_response.py +9 -0
- dify_oapi/api/workflow/v1/model/info/get_site_request.py +24 -0
- dify_oapi/api/workflow/v1/model/info/get_site_response.py +9 -0
- dify_oapi/api/workflow/v1/model/info/parameters_info.py +37 -0
- dify_oapi/api/workflow/v1/model/info/site_info.py +75 -0
- dify_oapi/api/workflow/v1/model/info/system_parameters.py +38 -0
- dify_oapi/api/workflow/v1/model/info/user_input_form.py +43 -0
- dify_oapi/api/workflow/v1/model/log/__init__.py +0 -0
- dify_oapi/api/workflow/v1/model/log/end_user_info.py +38 -0
- dify_oapi/api/workflow/v1/model/log/get_workflow_logs_request.py +48 -0
- dify_oapi/api/workflow/v1/model/log/get_workflow_logs_response.py +13 -0
- dify_oapi/api/workflow/v1/model/log/log_info.py +57 -0
- dify_oapi/api/workflow/v1/model/log/workflow_run_log_info.py +65 -0
- dify_oapi/api/workflow/v1/model/workflow/execution_metadata.py +33 -0
- dify_oapi/api/workflow/v1/model/workflow/get_workflow_run_detail_request.py +30 -0
- dify_oapi/api/workflow/v1/model/{run_workflow_response.py → workflow/get_workflow_run_detail_response.py} +8 -11
- dify_oapi/api/workflow/v1/model/workflow/node_info.py +88 -0
- dify_oapi/api/workflow/v1/model/workflow/run_specific_workflow_request.py +38 -0
- dify_oapi/api/workflow/v1/model/workflow/run_specific_workflow_request_body.py +47 -0
- dify_oapi/api/workflow/v1/model/workflow/run_specific_workflow_response.py +9 -0
- dify_oapi/api/workflow/v1/model/{run_workflow_request.py → workflow/run_workflow_request.py} +4 -4
- dify_oapi/api/workflow/v1/model/workflow/run_workflow_request_body.py +47 -0
- dify_oapi/api/workflow/v1/model/workflow/run_workflow_response.py +9 -0
- dify_oapi/api/workflow/v1/model/{stop_workflow_request.py → workflow/stop_workflow_request.py} +9 -9
- dify_oapi/api/workflow/v1/model/{stop_workflow_request_body.py → workflow/stop_workflow_request_body.py} +3 -3
- dify_oapi/api/workflow/v1/model/{stop_workflow_response.py → workflow/stop_workflow_response.py} +2 -0
- dify_oapi/api/workflow/v1/model/workflow/streaming_event.py +42 -0
- dify_oapi/api/workflow/v1/model/workflow/workflow_file_info.py +40 -0
- dify_oapi/api/workflow/v1/model/workflow/workflow_inputs.py +56 -0
- dify_oapi/api/workflow/v1/model/workflow/workflow_run_data.py +72 -0
- dify_oapi/api/workflow/v1/model/workflow/workflow_run_info.py +35 -0
- dify_oapi/api/workflow/v1/model/workflow/workflow_types.py +54 -0
- dify_oapi/api/workflow/v1/resource/__init__.py +0 -1
- dify_oapi/api/workflow/v1/resource/file.py +63 -0
- dify_oapi/api/workflow/v1/resource/info.py +93 -0
- dify_oapi/api/workflow/v1/resource/log.py +43 -0
- dify_oapi/api/workflow/v1/resource/workflow.py +171 -53
- dify_oapi/api/workflow/v1/version.py +7 -1
- dify_oapi/core/http/transport/_misc.py +54 -14
- {dify_oapi2-0.1.1.dist-info → dify_oapi2-0.3.0.dist-info}/METADATA +10 -6
- {dify_oapi2-0.1.1.dist-info → dify_oapi2-0.3.0.dist-info}/RECORD +127 -34
- dify_oapi/api/completion/v1/model/completion_request.py +0 -34
- dify_oapi/api/completion/v1/model/completion_request_body.py +0 -43
- dify_oapi/api/completion/v1/model/completion_request_body_input.py +0 -38
- dify_oapi/api/completion/v1/model/completion_request_file.py +0 -49
- dify_oapi/api/completion/v1/model/completion_response.py +0 -18
- dify_oapi/api/completion/v1/model/stop_completion_request.py +0 -38
- dify_oapi/api/completion/v1/model/stop_completion_request_body.py +0 -23
- dify_oapi/api/workflow/v1/model/get_workflow_log_request.py +0 -50
- dify_oapi/api/workflow/v1/model/get_workflow_log_response.py +0 -42
- dify_oapi/api/workflow/v1/model/get_workflow_result_request.py +0 -30
- dify_oapi/api/workflow/v1/model/get_workflow_result_response.py +0 -17
- dify_oapi/api/workflow/v1/model/run_workflow_request_body.py +0 -42
- dify_oapi/api/workflow/v1/model/run_workflow_request_file.py +0 -50
- {dify_oapi2-0.1.1.dist-info → dify_oapi2-0.3.0.dist-info}/LICENSE +0 -0
- {dify_oapi2-0.1.1.dist-info → dify_oapi2-0.3.0.dist-info}/WHEEL +0 -0
@@ -0,0 +1,33 @@
|
|
1
|
+
from __future__ import annotations
|
2
|
+
|
3
|
+
from dify_oapi.core.http.transport import ATransport, Transport
|
4
|
+
from dify_oapi.core.model.config import Config
|
5
|
+
from dify_oapi.core.model.request_option import RequestOption
|
6
|
+
|
7
|
+
from ..model.feedback.get_feedbacks_request import GetFeedbacksRequest
|
8
|
+
from ..model.feedback.get_feedbacks_response import GetFeedbacksResponse
|
9
|
+
from ..model.feedback.message_feedback_request import MessageFeedbackRequest
|
10
|
+
from ..model.feedback.message_feedback_response import MessageFeedbackResponse
|
11
|
+
|
12
|
+
|
13
|
+
class Feedback:
|
14
|
+
def __init__(self, config: Config) -> None:
|
15
|
+
self.config: Config = config
|
16
|
+
|
17
|
+
def message_feedback(
|
18
|
+
self, request: MessageFeedbackRequest, request_option: RequestOption
|
19
|
+
) -> MessageFeedbackResponse:
|
20
|
+
return Transport.execute(self.config, request, unmarshal_as=MessageFeedbackResponse, option=request_option)
|
21
|
+
|
22
|
+
async def amessage_feedback(
|
23
|
+
self, request: MessageFeedbackRequest, request_option: RequestOption
|
24
|
+
) -> MessageFeedbackResponse:
|
25
|
+
return await ATransport.aexecute(
|
26
|
+
self.config, request, unmarshal_as=MessageFeedbackResponse, option=request_option
|
27
|
+
)
|
28
|
+
|
29
|
+
def get_feedbacks(self, request: GetFeedbacksRequest, request_option: RequestOption) -> GetFeedbacksResponse:
|
30
|
+
return Transport.execute(self.config, request, unmarshal_as=GetFeedbacksResponse, option=request_option)
|
31
|
+
|
32
|
+
async def aget_feedbacks(self, request: GetFeedbacksRequest, request_option: RequestOption) -> GetFeedbacksResponse:
|
33
|
+
return await ATransport.aexecute(self.config, request, unmarshal_as=GetFeedbacksResponse, option=request_option)
|
@@ -0,0 +1,19 @@
|
|
1
|
+
from __future__ import annotations
|
2
|
+
|
3
|
+
from dify_oapi.core.http.transport import ATransport, Transport
|
4
|
+
from dify_oapi.core.model.config import Config
|
5
|
+
from dify_oapi.core.model.request_option import RequestOption
|
6
|
+
|
7
|
+
from ..model.file.upload_file_request import UploadFileRequest
|
8
|
+
from ..model.file.upload_file_response import UploadFileResponse
|
9
|
+
|
10
|
+
|
11
|
+
class File:
|
12
|
+
def __init__(self, config: Config) -> None:
|
13
|
+
self.config: Config = config
|
14
|
+
|
15
|
+
def upload_file(self, request: UploadFileRequest, request_option: RequestOption) -> UploadFileResponse:
|
16
|
+
return Transport.execute(self.config, request, unmarshal_as=UploadFileResponse, option=request_option)
|
17
|
+
|
18
|
+
async def aupload_file(self, request: UploadFileRequest, request_option: RequestOption) -> UploadFileResponse:
|
19
|
+
return await ATransport.aexecute(self.config, request, unmarshal_as=UploadFileResponse, option=request_option)
|
@@ -0,0 +1,39 @@
|
|
1
|
+
from __future__ import annotations
|
2
|
+
|
3
|
+
from dify_oapi.core.http.transport import ATransport, Transport
|
4
|
+
from dify_oapi.core.model.config import Config
|
5
|
+
from dify_oapi.core.model.request_option import RequestOption
|
6
|
+
|
7
|
+
from ..model.info.get_info_request import GetInfoRequest
|
8
|
+
from ..model.info.get_info_response import GetInfoResponse
|
9
|
+
from ..model.info.get_parameters_request import GetParametersRequest
|
10
|
+
from ..model.info.get_parameters_response import GetParametersResponse
|
11
|
+
from ..model.info.get_site_request import GetSiteRequest
|
12
|
+
from ..model.info.get_site_response import GetSiteResponse
|
13
|
+
|
14
|
+
|
15
|
+
class Info:
|
16
|
+
def __init__(self, config: Config) -> None:
|
17
|
+
self.config: Config = config
|
18
|
+
|
19
|
+
def get_info(self, request: GetInfoRequest, request_option: RequestOption) -> GetInfoResponse:
|
20
|
+
return Transport.execute(self.config, request, unmarshal_as=GetInfoResponse, option=request_option)
|
21
|
+
|
22
|
+
async def aget_info(self, request: GetInfoRequest, request_option: RequestOption) -> GetInfoResponse:
|
23
|
+
return await ATransport.aexecute(self.config, request, unmarshal_as=GetInfoResponse, option=request_option)
|
24
|
+
|
25
|
+
def get_parameters(self, request: GetParametersRequest, request_option: RequestOption) -> GetParametersResponse:
|
26
|
+
return Transport.execute(self.config, request, unmarshal_as=GetParametersResponse, option=request_option)
|
27
|
+
|
28
|
+
async def aget_parameters(
|
29
|
+
self, request: GetParametersRequest, request_option: RequestOption
|
30
|
+
) -> GetParametersResponse:
|
31
|
+
return await ATransport.aexecute(
|
32
|
+
self.config, request, unmarshal_as=GetParametersResponse, option=request_option
|
33
|
+
)
|
34
|
+
|
35
|
+
def get_site(self, request: GetSiteRequest, request_option: RequestOption) -> GetSiteResponse:
|
36
|
+
return Transport.execute(self.config, request, unmarshal_as=GetSiteResponse, option=request_option)
|
37
|
+
|
38
|
+
async def aget_site(self, request: GetSiteRequest, request_option: RequestOption) -> GetSiteResponse:
|
39
|
+
return await ATransport.aexecute(self.config, request, unmarshal_as=GetSiteResponse, option=request_option)
|
@@ -1,8 +1,18 @@
|
|
1
1
|
from dify_oapi.core.model.config import Config
|
2
2
|
|
3
|
-
from .resource import
|
3
|
+
from .resource.annotation import Annotation
|
4
|
+
from .resource.audio import Audio
|
5
|
+
from .resource.completion import Completion
|
6
|
+
from .resource.feedback import Feedback
|
7
|
+
from .resource.file import File
|
8
|
+
from .resource.info import Info
|
4
9
|
|
5
10
|
|
6
11
|
class V1:
|
7
12
|
def __init__(self, config: Config):
|
8
13
|
self.completion: Completion = Completion(config)
|
14
|
+
self.file: File = File(config)
|
15
|
+
self.feedback: Feedback = Feedback(config)
|
16
|
+
self.audio: Audio = Audio(config)
|
17
|
+
self.info: Info = Info(config)
|
18
|
+
self.annotation: Annotation = Annotation(config)
|
@@ -1,16 +1,15 @@
|
|
1
1
|
from __future__ import annotations
|
2
2
|
|
3
|
-
from typing import Literal
|
4
|
-
|
5
3
|
from pydantic import BaseModel
|
6
4
|
|
5
|
+
from .dataset_types import IndexingTechnique
|
7
6
|
from .retrieval_model import RetrievalModel
|
8
7
|
|
9
8
|
|
10
9
|
class CreateRequestBody(BaseModel):
|
11
10
|
name: str | None = None
|
12
11
|
description: str | None = None
|
13
|
-
indexing_technique:
|
12
|
+
indexing_technique: IndexingTechnique | None = None
|
14
13
|
permission: str | None = None
|
15
14
|
provider: str | None = None
|
16
15
|
external_knowledge_api_id: str | None = None
|
@@ -40,7 +39,7 @@ class CreateRequestBodyBuilder:
|
|
40
39
|
self._create_request_body.description = description
|
41
40
|
return self
|
42
41
|
|
43
|
-
def indexing_technique(self, indexing_technique:
|
42
|
+
def indexing_technique(self, indexing_technique: IndexingTechnique) -> CreateRequestBodyBuilder:
|
44
43
|
self._create_request_body.indexing_technique = indexing_technique
|
45
44
|
return self
|
46
45
|
|
@@ -0,0 +1,36 @@
|
|
1
|
+
from __future__ import annotations
|
2
|
+
|
3
|
+
from typing import Literal
|
4
|
+
|
5
|
+
# Indexing technique types
|
6
|
+
IndexingTechnique = Literal["high_quality", "economy"]
|
7
|
+
|
8
|
+
# Search method types
|
9
|
+
SearchMethod = Literal["keyword_search", "semantic_search", "full_text_search", "hybrid_search"]
|
10
|
+
|
11
|
+
# Reranking model types
|
12
|
+
RerankingModelType = Literal["rerank-model"]
|
13
|
+
|
14
|
+
# Processing rule mode types
|
15
|
+
ProcessingRuleMode = Literal["automatic", "custom"]
|
16
|
+
|
17
|
+
# Data source types
|
18
|
+
DataSourceType = Literal["upload_file", "notion_import", "website_crawl"]
|
19
|
+
|
20
|
+
# Document status types
|
21
|
+
DocumentStatus = Literal["indexing", "completed", "error", "paused"]
|
22
|
+
|
23
|
+
# Metadata field types
|
24
|
+
MetadataFieldType = Literal["text", "number", "select"]
|
25
|
+
|
26
|
+
# Tag types
|
27
|
+
TagType = Literal["knowledge", "custom"]
|
28
|
+
|
29
|
+
# Built-in metadata actions
|
30
|
+
BuiltinMetadataAction = Literal["enable", "disable"]
|
31
|
+
|
32
|
+
# Filter operator types
|
33
|
+
FilterOperator = Literal["contains", "not_contains", "is", "is_not", "is_empty", "is_not_empty"]
|
34
|
+
|
35
|
+
# Reranking enable types
|
36
|
+
RerankingEnable = Literal[True, False]
|
@@ -1,9 +1,8 @@
|
|
1
1
|
from __future__ import annotations
|
2
2
|
|
3
|
-
from typing import Literal
|
4
|
-
|
5
3
|
from pydantic import BaseModel
|
6
4
|
|
5
|
+
from .dataset_types import SearchMethod
|
7
6
|
from .metadata_filtering_conditions import MetadataFilteringConditions
|
8
7
|
from .reranking_model import RerankingModel
|
9
8
|
|
@@ -84,7 +83,7 @@ class WeightsBuilder:
|
|
84
83
|
|
85
84
|
|
86
85
|
class RetrievalModel(BaseModel):
|
87
|
-
search_method:
|
86
|
+
search_method: SearchMethod | None = None
|
88
87
|
reranking_enable: bool | None = None
|
89
88
|
reranking_mode: str | None = None
|
90
89
|
reranking_model: RerankingModel | None = None
|
@@ -106,9 +105,7 @@ class RetrievalModelBuilder:
|
|
106
105
|
def build(self) -> RetrievalModel:
|
107
106
|
return self._retrieval_model
|
108
107
|
|
109
|
-
def search_method(
|
110
|
-
self, search_method: Literal["keyword_search", "semantic_search", "full_text_search", "hybrid_search"]
|
111
|
-
) -> RetrievalModelBuilder:
|
108
|
+
def search_method(self, search_method: SearchMethod) -> RetrievalModelBuilder:
|
112
109
|
self._retrieval_model.search_method = search_method
|
113
110
|
return self
|
114
111
|
|
@@ -1,9 +1,8 @@
|
|
1
1
|
from __future__ import annotations
|
2
2
|
|
3
|
-
from typing import Literal
|
4
|
-
|
5
3
|
from pydantic import BaseModel
|
6
4
|
|
5
|
+
from .document_types import DocumentForm, DocumentLanguage, IndexingTechnique
|
7
6
|
from .process_rule import ProcessRule
|
8
7
|
from .retrieval_model import RetrievalModel
|
9
8
|
|
@@ -13,9 +12,9 @@ class CreateByTextRequestBody(BaseModel):
|
|
13
12
|
|
14
13
|
name: str | None = None
|
15
14
|
text: str | None = None
|
16
|
-
indexing_technique:
|
17
|
-
doc_form:
|
18
|
-
doc_language:
|
15
|
+
indexing_technique: IndexingTechnique | None = None
|
16
|
+
doc_form: DocumentForm | None = None
|
17
|
+
doc_language: DocumentLanguage | None = None
|
19
18
|
process_rule: ProcessRule | None = None
|
20
19
|
retrieval_model: RetrievalModel | None = None
|
21
20
|
embedding_model: str | None = None
|
@@ -47,19 +46,15 @@ class CreateByTextRequestBodyBuilder:
|
|
47
46
|
self._create_by_text_request_body.text = text
|
48
47
|
return self
|
49
48
|
|
50
|
-
def indexing_technique(
|
51
|
-
self, indexing_technique: Literal["high_quality", "economy"]
|
52
|
-
) -> CreateByTextRequestBodyBuilder:
|
49
|
+
def indexing_technique(self, indexing_technique: IndexingTechnique) -> CreateByTextRequestBodyBuilder:
|
53
50
|
self._create_by_text_request_body.indexing_technique = indexing_technique
|
54
51
|
return self
|
55
52
|
|
56
|
-
def doc_form(
|
57
|
-
self, doc_form: Literal["text_model", "hierarchical_model", "qa_model"]
|
58
|
-
) -> CreateByTextRequestBodyBuilder:
|
53
|
+
def doc_form(self, doc_form: DocumentForm) -> CreateByTextRequestBodyBuilder:
|
59
54
|
self._create_by_text_request_body.doc_form = doc_form
|
60
55
|
return self
|
61
56
|
|
62
|
-
def doc_language(self, doc_language:
|
57
|
+
def doc_language(self, doc_language: DocumentLanguage) -> CreateByTextRequestBodyBuilder:
|
63
58
|
self._create_by_text_request_body.doc_language = doc_language
|
64
59
|
return self
|
65
60
|
|
@@ -0,0 +1,36 @@
|
|
1
|
+
from __future__ import annotations
|
2
|
+
|
3
|
+
from typing import Literal
|
4
|
+
|
5
|
+
# Indexing technique types
|
6
|
+
IndexingTechnique = Literal["high_quality", "economy"]
|
7
|
+
|
8
|
+
# Document form types
|
9
|
+
DocumentForm = Literal["text_model", "hierarchical_model", "qa_model"]
|
10
|
+
|
11
|
+
# Document language types
|
12
|
+
DocumentLanguage = Literal["English", "Chinese", "Japanese", "Korean"]
|
13
|
+
|
14
|
+
# Processing rule mode types
|
15
|
+
ProcessingRuleMode = Literal["automatic", "custom"]
|
16
|
+
|
17
|
+
# Segmentation separator types
|
18
|
+
Separator = Literal["\\n\\n", "\\n", ".", "!", "?", ";"]
|
19
|
+
|
20
|
+
# Pre-processing rule types
|
21
|
+
PreProcessingRuleType = Literal["remove_extra_spaces", "remove_urls_emails"]
|
22
|
+
|
23
|
+
# Data source types
|
24
|
+
DataSourceType = Literal["upload_file", "notion_import", "website_crawl"]
|
25
|
+
|
26
|
+
# Document indexing status types
|
27
|
+
IndexingStatus = Literal["waiting", "parsing", "cleaning", "splitting", "indexing", "completed", "error", "paused"]
|
28
|
+
|
29
|
+
# Document status action types
|
30
|
+
StatusAction = Literal["enable", "disable", "archive"]
|
31
|
+
|
32
|
+
# Upload file status types
|
33
|
+
UploadFileStatus = Literal["success", "processing", "error"]
|
34
|
+
|
35
|
+
# Document enabled status
|
36
|
+
DocumentEnabled = Literal[True, False]
|
@@ -0,0 +1,15 @@
|
|
1
|
+
from __future__ import annotations
|
2
|
+
|
3
|
+
from typing import Literal
|
4
|
+
|
5
|
+
# Metadata field types
|
6
|
+
MetadataFieldType = Literal["text", "number", "select"]
|
7
|
+
|
8
|
+
# Built-in metadata actions
|
9
|
+
BuiltinMetadataAction = Literal["enable", "disable"]
|
10
|
+
|
11
|
+
# Metadata status types
|
12
|
+
MetadataStatus = Literal["active", "inactive"]
|
13
|
+
|
14
|
+
# Metadata scope types
|
15
|
+
MetadataScope = Literal["document", "segment"]
|
@@ -0,0 +1,24 @@
|
|
1
|
+
from __future__ import annotations
|
2
|
+
|
3
|
+
from typing import Literal
|
4
|
+
|
5
|
+
# Segment status types
|
6
|
+
SegmentStatus = Literal["waiting", "indexing", "completed", "error", "paused"]
|
7
|
+
|
8
|
+
# Segment enabled status types
|
9
|
+
SegmentEnabledStatus = Literal["enabled", "disabled"]
|
10
|
+
|
11
|
+
# Child chunk status types
|
12
|
+
ChildChunkStatus = Literal["waiting", "indexing", "completed", "error"]
|
13
|
+
|
14
|
+
# Segment search status types
|
15
|
+
SearchStatus = Literal["all", "enabled", "disabled"]
|
16
|
+
|
17
|
+
# Sort order types
|
18
|
+
SortOrder = Literal["created_at", "position", "word_count", "hit_count"]
|
19
|
+
|
20
|
+
# Sort direction types
|
21
|
+
SortDirection = Literal["asc", "desc"]
|
22
|
+
|
23
|
+
# Segment enabled boolean
|
24
|
+
SegmentEnabled = Literal[True, False]
|
@@ -0,0 +1,12 @@
|
|
1
|
+
from __future__ import annotations
|
2
|
+
|
3
|
+
from typing import Literal
|
4
|
+
|
5
|
+
# Tag types
|
6
|
+
TagType = Literal["knowledge", "custom"]
|
7
|
+
|
8
|
+
# Tag status types
|
9
|
+
TagStatus = Literal["active", "inactive"]
|
10
|
+
|
11
|
+
# Tag binding status types
|
12
|
+
BindingStatus = Literal["bound", "unbound"]
|
@@ -11,9 +11,13 @@ class UpdateResponse(BaseResponse):
|
|
11
11
|
binding_count: int | str | None = None
|
12
12
|
|
13
13
|
def to_tag_info(self) -> TagInfo:
|
14
|
+
binding_count = None
|
15
|
+
if self.binding_count is not None:
|
16
|
+
binding_count = int(self.binding_count) if isinstance(self.binding_count, str) else self.binding_count
|
17
|
+
|
14
18
|
return TagInfo(
|
15
19
|
id=self.id or "",
|
16
20
|
name=self.name or "",
|
17
21
|
type=self.type or "",
|
18
|
-
binding_count=
|
22
|
+
binding_count=binding_count or 0,
|
19
23
|
)
|
@@ -0,0 +1 @@
|
|
1
|
+
# File models for workflow API
|
@@ -0,0 +1,53 @@
|
|
1
|
+
from __future__ import annotations
|
2
|
+
|
3
|
+
from pydantic import BaseModel
|
4
|
+
|
5
|
+
|
6
|
+
class FileInfo(BaseModel):
|
7
|
+
id: str | None = None
|
8
|
+
name: str | None = None
|
9
|
+
size: int | None = None
|
10
|
+
extension: str | None = None
|
11
|
+
mime_type: str | None = None
|
12
|
+
created_by: str | None = None
|
13
|
+
created_at: int | None = None
|
14
|
+
|
15
|
+
@staticmethod
|
16
|
+
def builder() -> FileInfoBuilder:
|
17
|
+
return FileInfoBuilder()
|
18
|
+
|
19
|
+
|
20
|
+
class FileInfoBuilder:
|
21
|
+
def __init__(self):
|
22
|
+
self._file_info = FileInfo()
|
23
|
+
|
24
|
+
def build(self) -> FileInfo:
|
25
|
+
return self._file_info
|
26
|
+
|
27
|
+
def id(self, id: str) -> FileInfoBuilder:
|
28
|
+
self._file_info.id = id
|
29
|
+
return self
|
30
|
+
|
31
|
+
def name(self, name: str) -> FileInfoBuilder:
|
32
|
+
self._file_info.name = name
|
33
|
+
return self
|
34
|
+
|
35
|
+
def size(self, size: int) -> FileInfoBuilder:
|
36
|
+
self._file_info.size = size
|
37
|
+
return self
|
38
|
+
|
39
|
+
def extension(self, extension: str) -> FileInfoBuilder:
|
40
|
+
self._file_info.extension = extension
|
41
|
+
return self
|
42
|
+
|
43
|
+
def mime_type(self, mime_type: str) -> FileInfoBuilder:
|
44
|
+
self._file_info.mime_type = mime_type
|
45
|
+
return self
|
46
|
+
|
47
|
+
def created_by(self, created_by: str) -> FileInfoBuilder:
|
48
|
+
self._file_info.created_by = created_by
|
49
|
+
return self
|
50
|
+
|
51
|
+
def created_at(self, created_at: int) -> FileInfoBuilder:
|
52
|
+
self._file_info.created_at = created_at
|
53
|
+
return self
|
@@ -0,0 +1,34 @@
|
|
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 PreviewFileRequest(BaseRequest):
|
8
|
+
def __init__(self) -> None:
|
9
|
+
super().__init__()
|
10
|
+
self.file_id: str | None = None
|
11
|
+
|
12
|
+
@staticmethod
|
13
|
+
def builder() -> PreviewFileRequestBuilder:
|
14
|
+
return PreviewFileRequestBuilder()
|
15
|
+
|
16
|
+
|
17
|
+
class PreviewFileRequestBuilder:
|
18
|
+
def __init__(self):
|
19
|
+
preview_file_request = PreviewFileRequest()
|
20
|
+
preview_file_request.http_method = HttpMethod.GET
|
21
|
+
preview_file_request.uri = "/v1/files/:file_id/preview"
|
22
|
+
self._preview_file_request = preview_file_request
|
23
|
+
|
24
|
+
def build(self) -> PreviewFileRequest:
|
25
|
+
return self._preview_file_request
|
26
|
+
|
27
|
+
def file_id(self, file_id: str) -> PreviewFileRequestBuilder:
|
28
|
+
self._preview_file_request.file_id = file_id
|
29
|
+
self._preview_file_request.paths["file_id"] = file_id
|
30
|
+
return self
|
31
|
+
|
32
|
+
def as_attachment(self, as_attachment: bool) -> PreviewFileRequestBuilder:
|
33
|
+
self._preview_file_request.add_query("as_attachment", str(as_attachment).lower())
|
34
|
+
return self
|
@@ -0,0 +1,42 @@
|
|
1
|
+
from __future__ import annotations
|
2
|
+
|
3
|
+
from io import BytesIO
|
4
|
+
|
5
|
+
from dify_oapi.core.enum import HttpMethod
|
6
|
+
from dify_oapi.core.model.base_request import BaseRequest
|
7
|
+
|
8
|
+
from .upload_file_request_body import UploadFileRequestBody
|
9
|
+
|
10
|
+
|
11
|
+
class UploadFileRequest(BaseRequest):
|
12
|
+
def __init__(self) -> None:
|
13
|
+
super().__init__()
|
14
|
+
self.request_body: UploadFileRequestBody | None = None
|
15
|
+
self.file: BytesIO | None = None
|
16
|
+
|
17
|
+
@staticmethod
|
18
|
+
def builder() -> UploadFileRequestBuilder:
|
19
|
+
return UploadFileRequestBuilder()
|
20
|
+
|
21
|
+
|
22
|
+
class UploadFileRequestBuilder:
|
23
|
+
def __init__(self):
|
24
|
+
upload_file_request = UploadFileRequest()
|
25
|
+
upload_file_request.http_method = HttpMethod.POST
|
26
|
+
upload_file_request.uri = "/v1/files/upload"
|
27
|
+
self._upload_file_request = upload_file_request
|
28
|
+
|
29
|
+
def build(self) -> UploadFileRequest:
|
30
|
+
return self._upload_file_request
|
31
|
+
|
32
|
+
def file(self, file: BytesIO, file_name: str | None = None) -> UploadFileRequestBuilder:
|
33
|
+
self._upload_file_request.file = file
|
34
|
+
file_name = file_name or "upload"
|
35
|
+
self._upload_file_request.files = {"file": (file_name, file)}
|
36
|
+
return self
|
37
|
+
|
38
|
+
def request_body(self, request_body: UploadFileRequestBody) -> UploadFileRequestBuilder:
|
39
|
+
self._upload_file_request.request_body = request_body
|
40
|
+
if request_body.user:
|
41
|
+
self._upload_file_request.body = {"user": request_body.user}
|
42
|
+
return self
|
@@ -0,0 +1,23 @@
|
|
1
|
+
from __future__ import annotations
|
2
|
+
|
3
|
+
from pydantic import BaseModel
|
4
|
+
|
5
|
+
|
6
|
+
class UploadFileRequestBody(BaseModel):
|
7
|
+
user: str | None = None
|
8
|
+
|
9
|
+
@staticmethod
|
10
|
+
def builder() -> UploadFileRequestBodyBuilder:
|
11
|
+
return UploadFileRequestBodyBuilder()
|
12
|
+
|
13
|
+
|
14
|
+
class UploadFileRequestBodyBuilder:
|
15
|
+
def __init__(self):
|
16
|
+
self._upload_file_request_body = UploadFileRequestBody()
|
17
|
+
|
18
|
+
def build(self) -> UploadFileRequestBody:
|
19
|
+
return self._upload_file_request_body
|
20
|
+
|
21
|
+
def user(self, user: str) -> UploadFileRequestBodyBuilder:
|
22
|
+
self._upload_file_request_body.user = user
|
23
|
+
return self
|
@@ -0,0 +1,45 @@
|
|
1
|
+
from __future__ import annotations
|
2
|
+
|
3
|
+
from pydantic import BaseModel
|
4
|
+
|
5
|
+
from ..workflow.workflow_types import AppMode
|
6
|
+
|
7
|
+
|
8
|
+
class AppInfo(BaseModel):
|
9
|
+
name: str | None = None
|
10
|
+
description: str | None = None
|
11
|
+
tags: list[str] | None = None
|
12
|
+
mode: AppMode | None = None
|
13
|
+
author_name: str | None = None
|
14
|
+
|
15
|
+
@staticmethod
|
16
|
+
def builder() -> AppInfoBuilder:
|
17
|
+
return AppInfoBuilder()
|
18
|
+
|
19
|
+
|
20
|
+
class AppInfoBuilder:
|
21
|
+
def __init__(self):
|
22
|
+
self._app_info = AppInfo()
|
23
|
+
|
24
|
+
def build(self) -> AppInfo:
|
25
|
+
return self._app_info
|
26
|
+
|
27
|
+
def name(self, name: str) -> AppInfoBuilder:
|
28
|
+
self._app_info.name = name
|
29
|
+
return self
|
30
|
+
|
31
|
+
def description(self, description: str) -> AppInfoBuilder:
|
32
|
+
self._app_info.description = description
|
33
|
+
return self
|
34
|
+
|
35
|
+
def tags(self, tags: list[str]) -> AppInfoBuilder:
|
36
|
+
self._app_info.tags = tags
|
37
|
+
return self
|
38
|
+
|
39
|
+
def mode(self, mode: AppMode) -> AppInfoBuilder:
|
40
|
+
self._app_info.mode = mode
|
41
|
+
return self
|
42
|
+
|
43
|
+
def author_name(self, author_name: str) -> AppInfoBuilder:
|
44
|
+
self._app_info.author_name = author_name
|
45
|
+
return self
|
@@ -0,0 +1,45 @@
|
|
1
|
+
from __future__ import annotations
|
2
|
+
|
3
|
+
from typing import Any
|
4
|
+
|
5
|
+
from pydantic import BaseModel
|
6
|
+
|
7
|
+
|
8
|
+
class FileUploadConfig(BaseModel):
|
9
|
+
document: dict[str, Any] | None = None
|
10
|
+
image: dict[str, Any] | None = None
|
11
|
+
audio: dict[str, Any] | None = None
|
12
|
+
video: dict[str, Any] | None = None
|
13
|
+
custom: dict[str, Any] | None = None
|
14
|
+
|
15
|
+
@staticmethod
|
16
|
+
def builder() -> FileUploadConfigBuilder:
|
17
|
+
return FileUploadConfigBuilder()
|
18
|
+
|
19
|
+
|
20
|
+
class FileUploadConfigBuilder:
|
21
|
+
def __init__(self):
|
22
|
+
self._file_upload_config = FileUploadConfig()
|
23
|
+
|
24
|
+
def build(self) -> FileUploadConfig:
|
25
|
+
return self._file_upload_config
|
26
|
+
|
27
|
+
def document(self, document: dict[str, Any]) -> FileUploadConfigBuilder:
|
28
|
+
self._file_upload_config.document = document
|
29
|
+
return self
|
30
|
+
|
31
|
+
def image(self, image: dict[str, Any]) -> FileUploadConfigBuilder:
|
32
|
+
self._file_upload_config.image = image
|
33
|
+
return self
|
34
|
+
|
35
|
+
def audio(self, audio: dict[str, Any]) -> FileUploadConfigBuilder:
|
36
|
+
self._file_upload_config.audio = audio
|
37
|
+
return self
|
38
|
+
|
39
|
+
def video(self, video: dict[str, Any]) -> FileUploadConfigBuilder:
|
40
|
+
self._file_upload_config.video = video
|
41
|
+
return self
|
42
|
+
|
43
|
+
def custom(self, custom: dict[str, Any]) -> FileUploadConfigBuilder:
|
44
|
+
self._file_upload_config.custom = custom
|
45
|
+
return self
|
@@ -0,0 +1,24 @@
|
|
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 GetInfoRequest(BaseRequest):
|
8
|
+
def __init__(self):
|
9
|
+
super().__init__()
|
10
|
+
|
11
|
+
@staticmethod
|
12
|
+
def builder() -> GetInfoRequestBuilder:
|
13
|
+
return GetInfoRequestBuilder()
|
14
|
+
|
15
|
+
|
16
|
+
class GetInfoRequestBuilder:
|
17
|
+
def __init__(self):
|
18
|
+
get_info_request = GetInfoRequest()
|
19
|
+
get_info_request.http_method = HttpMethod.GET
|
20
|
+
get_info_request.uri = "/v1/info"
|
21
|
+
self._get_info_request = get_info_request
|
22
|
+
|
23
|
+
def build(self) -> GetInfoRequest:
|
24
|
+
return self._get_info_request
|