qanswer_sdk 3.1509.0__py3-none-any.whl → 3.1511.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.
- qanswer_sdk/__init__.py +31 -24
- qanswer_sdk/api/__init__.py +0 -1
- qanswer_sdk/api/admin_api.py +914 -142
- qanswer_sdk/api/ai_assistant_access_rights_api.py +883 -280
- qanswer_sdk/api/ai_assistant_api.py +289 -61
- qanswer_sdk/api/branding_api.py +6 -6
- qanswer_sdk/api/connector_website_api.py +287 -0
- qanswer_sdk/api/connectors_api.py +863 -11
- qanswer_sdk/api/connectors_data_api.py +28 -27
- qanswer_sdk/api/mcp_api.py +1103 -469
- qanswer_sdk/api/payment_api.py +3 -3
- qanswer_sdk/api/socket_api.py +0 -245
- qanswer_sdk/api/task_ai_excel_api.py +288 -0
- qanswer_sdk/api/task_report_copilot_api.py +49 -122
- qanswer_sdk/api/tool_embedder_api.py +552 -1
- qanswer_sdk/api/tool_llm_api.py +1059 -10
- qanswer_sdk/api/unit_organizations_api.py +1240 -165
- qanswer_sdk/api/unit_user_api.py +506 -0
- qanswer_sdk/api_client.py +1 -1
- qanswer_sdk/configuration.py +1 -1
- qanswer_sdk/models/__init__.py +30 -22
- qanswer_sdk/models/access_pdf_payload_model.py +6 -4
- qanswer_sdk/models/add_qn_a_request.py +5 -3
- qanswer_sdk/models/{assistant_template.py → ai_assistant_clone_response.py} +9 -19
- qanswer_sdk/models/ai_assistant_dto.py +4 -2
- qanswer_sdk/models/ai_assistant_filter_dto.py +3 -1
- qanswer_sdk/models/{user_dataset_access_control_origin_header.py → ai_assistant_restricted_domain.py} +8 -8
- qanswer_sdk/models/ai_assistant_share_response.py +93 -0
- qanswer_sdk/models/api_key_mcp_authentication_config.py +2 -2
- qanswer_sdk/models/assistant_template_filter_dto.py +93 -0
- qanswer_sdk/models/{relation_extraction_schema.py → assistant_template_with_tools_selection_dto.py} +26 -24
- qanswer_sdk/models/audio_file_upload_payload.py +4 -2
- qanswer_sdk/models/auto_bot_description_request.py +5 -3
- qanswer_sdk/models/chatbot_chat_payload.py +6 -2
- qanswer_sdk/models/connector_type_dto.py +101 -0
- qanswer_sdk/models/{relation_extraction_data_input.py → connector_type_list_dto.py} +14 -14
- qanswer_sdk/models/conversation_message.py +37 -7
- qanswer_sdk/models/conversation_model.py +8 -2
- qanswer_sdk/models/credits_info_global_dto.py +95 -0
- qanswer_sdk/models/credits_info_organization_dto.py +93 -0
- qanswer_sdk/models/dataset_detail_kg.py +30 -10
- qanswer_sdk/models/dataset_schema.py +5 -1
- qanswer_sdk/models/dataset_update_object.py +8 -2
- qanswer_sdk/models/document_content_update_model.py +4 -2
- qanswer_sdk/models/econsilium_search_index_add_payload.py +3 -1
- qanswer_sdk/models/embedder_create_dto.py +9 -3
- qanswer_sdk/models/embedder_detailed_dto.py +9 -3
- qanswer_sdk/models/embedder_update_dto.py +9 -3
- qanswer_sdk/models/{relation_model.py → embedding_endpoint_import_failure.py} +8 -10
- qanswer_sdk/models/embedding_endpoint_import_response.py +99 -0
- qanswer_sdk/models/es_meta_data.py +98 -0
- qanswer_sdk/models/{get_file_es_meta_data_response.py → es_meta_data_value.py} +7 -11
- qanswer_sdk/models/feedback_update.py +4 -2
- qanswer_sdk/models/file_es_meta_data.py +31 -4
- qanswer_sdk/models/g_drive_download_request.py +3 -1
- qanswer_sdk/models/generate_ai_cells_payload.py +5 -3
- qanswer_sdk/models/highlight_audio_payload_model.py +6 -4
- qanswer_sdk/models/imap_add_payload.py +4 -2
- qanswer_sdk/models/list_socket_events.py +2 -2
- qanswer_sdk/models/llm_consumption.py +2 -2
- qanswer_sdk/models/llm_create_dto.py +25 -3
- qanswer_sdk/models/llm_detailed_dto.py +30 -4
- qanswer_sdk/models/llm_dto.py +18 -2
- qanswer_sdk/models/llm_endpoint.py +25 -3
- qanswer_sdk/models/llm_endpoint_import_failure.py +89 -0
- qanswer_sdk/models/{relation_extraction_data_output.py → llm_endpoint_import_response.py} +20 -16
- qanswer_sdk/models/llm_endpoint_read_input.py +25 -3
- qanswer_sdk/models/llm_endpoint_read_output.py +25 -3
- qanswer_sdk/models/llm_update_dto.py +25 -3
- qanswer_sdk/models/mcp_server.py +153 -0
- qanswer_sdk/models/mcp_server_create.py +4 -2
- qanswer_sdk/models/mcp_server_dto.py +6 -2
- qanswer_sdk/models/mcp_server_update.py +4 -2
- qanswer_sdk/models/mcp_tool.py +124 -0
- qanswer_sdk/models/mcp_tool_description_update.py +6 -4
- qanswer_sdk/models/mcp_tool_dto.py +3 -1
- qanswer_sdk/models/one_drive_download_request.py +3 -1
- qanswer_sdk/models/one_note_download_request.py +3 -1
- qanswer_sdk/models/organization_admin.py +4 -2
- qanswer_sdk/models/organization_filter_dto.py +4 -2
- qanswer_sdk/models/{relation_value_input.py → organization_mcp_server_setting.py} +29 -24
- qanswer_sdk/models/plan_dto.py +16 -4
- qanswer_sdk/models/publication_add_payload.py +4 -2
- qanswer_sdk/models/rag_payload.py +6 -2
- qanswer_sdk/models/report_copilot_generation_from_slots_payload.py +5 -3
- qanswer_sdk/models/report_copilot_refinement_payload.py +5 -3
- qanswer_sdk/models/report_copilot_slot_feedback_update.py +4 -2
- qanswer_sdk/models/report_template.py +3 -1
- qanswer_sdk/models/report_template_create_payload.py +4 -2
- qanswer_sdk/models/report_template_simplified.py +4 -2
- qanswer_sdk/models/report_template_update_payload.py +4 -2
- qanswer_sdk/models/report_templates_search_payload.py +104 -0
- qanswer_sdk/models/search_payload.py +6 -2
- qanswer_sdk/models/share_point_download_request.py +3 -1
- qanswer_sdk/models/socket_conversation_message.py +37 -7
- qanswer_sdk/models/template_toggle_request.py +5 -5
- qanswer_sdk/models/text2_sparql_payload.py +5 -1
- qanswer_sdk/models/thinking_block.py +91 -0
- qanswer_sdk/models/{subject_model.py → update_cells_payload.py} +10 -10
- qanswer_sdk/models/{relation_extraction_configuration.py → update_file_es_meta_data.py} +37 -26
- qanswer_sdk/models/{update_metadata_model.py → update_metadata_model_input.py} +7 -7
- qanswer_sdk/models/{relation_extraction_task_settings_update_payload.py → update_metadata_model_output.py} +14 -12
- qanswer_sdk/models/update_qn_a_pair_request.py +4 -2
- qanswer_sdk/models/{relation_extraction_template_payload.py → update_template_cells_payload.py} +19 -15
- qanswer_sdk/models/user.py +10 -5
- qanswer_sdk/models/user_credits_config_dto.py +95 -0
- qanswer_sdk/models/user_credits_dto.py +104 -0
- qanswer_sdk/models/user_dataset.py +31 -11
- qanswer_sdk/models/{relation_extraction_row_output.py → user_dataset_mcp_tool_selection.py} +33 -26
- qanswer_sdk/models/user_dataset_mcp_tool_selection_dto.py +3 -1
- qanswer_sdk/models/user_filter_dto.py +4 -2
- qanswer_sdk/models/{relation_extraction_row_input.py → user_mcp_tool_selection.py} +31 -26
- qanswer_sdk/models/user_mcp_tool_selection_dto.py +3 -1
- qanswer_sdk/models/user_profile_dto.py +16 -4
- qanswer_sdk/models/{value_model.py → websearch_scraping_site.py} +11 -17
- qanswer_sdk/models/website_add_payload.py +4 -2
- {qanswer_sdk-3.1509.0.dist-info → qanswer_sdk-3.1511.0.dist-info}/METADATA +2 -2
- {qanswer_sdk-3.1509.0.dist-info → qanswer_sdk-3.1511.0.dist-info}/RECORD +119 -112
- qanswer_sdk/api/task_relation_extraction_api.py +0 -3636
- qanswer_sdk/models/export_relation_extraction_table_request.py +0 -97
- qanswer_sdk/models/relation_extraction_payload.py +0 -117
- qanswer_sdk/models/relation_extraction_task_settings.py +0 -125
- qanswer_sdk/models/relation_extraction_task_update.py +0 -125
- qanswer_sdk/models/relation_value_output.py +0 -103
- qanswer_sdk/models/socket_data_extraction.py +0 -109
- {qanswer_sdk-3.1509.0.dist-info → qanswer_sdk-3.1511.0.dist-info}/WHEEL +0 -0
|
@@ -32,8 +32,9 @@ class OneNoteDownloadRequest(BaseModel):
|
|
|
32
32
|
account_id: Optional[StrictStr] = None
|
|
33
33
|
connector_id: StrictInt
|
|
34
34
|
quota: Optional[StrictInt] = Field(default=None, description="Quota of the user")
|
|
35
|
+
additional_fields: Optional[Dict[str, Any]] = None
|
|
35
36
|
ids: OneNoteDownloadByIds
|
|
36
|
-
__properties: ClassVar[List[str]] = ["username", "dataset", "account_id", "connector_id", "quota", "ids"]
|
|
37
|
+
__properties: ClassVar[List[str]] = ["username", "dataset", "account_id", "connector_id", "quota", "additional_fields", "ids"]
|
|
37
38
|
|
|
38
39
|
model_config = ConfigDict(
|
|
39
40
|
populate_by_name=True,
|
|
@@ -94,6 +95,7 @@ class OneNoteDownloadRequest(BaseModel):
|
|
|
94
95
|
"account_id": obj.get("account_id"),
|
|
95
96
|
"connector_id": obj.get("connector_id"),
|
|
96
97
|
"quota": obj.get("quota"),
|
|
98
|
+
"additional_fields": obj.get("additional_fields"),
|
|
97
99
|
"ids": OneNoteDownloadByIds.from_dict(obj["ids"]) if obj.get("ids") is not None else None
|
|
98
100
|
})
|
|
99
101
|
return _obj
|
|
@@ -31,7 +31,8 @@ class OrganizationAdmin(BaseModel):
|
|
|
31
31
|
website: Optional[StrictStr] = Field(default=None, description="Official website URL of the organization.")
|
|
32
32
|
id: Optional[StrictInt] = Field(default=None, description="Unique identifier of the organization.")
|
|
33
33
|
admin: Optional[StrictBool] = Field(default=None, description="Indicates if the user is an admin or not")
|
|
34
|
-
|
|
34
|
+
selected: Optional[StrictBool] = Field(default=None, description="Indicates if the organization is selected")
|
|
35
|
+
__properties: ClassVar[List[str]] = ["name", "description", "website", "id", "admin", "selected"]
|
|
35
36
|
|
|
36
37
|
model_config = ConfigDict(
|
|
37
38
|
populate_by_name=True,
|
|
@@ -88,7 +89,8 @@ class OrganizationAdmin(BaseModel):
|
|
|
88
89
|
"description": obj.get("description"),
|
|
89
90
|
"website": obj.get("website"),
|
|
90
91
|
"id": obj.get("id"),
|
|
91
|
-
"admin": obj.get("admin")
|
|
92
|
+
"admin": obj.get("admin"),
|
|
93
|
+
"selected": obj.get("selected")
|
|
92
94
|
})
|
|
93
95
|
return _obj
|
|
94
96
|
|
|
@@ -17,7 +17,7 @@ import pprint
|
|
|
17
17
|
import re # noqa: F401
|
|
18
18
|
import json
|
|
19
19
|
|
|
20
|
-
from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr
|
|
20
|
+
from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictInt, StrictStr
|
|
21
21
|
from typing import Any, ClassVar, Dict, List, Optional
|
|
22
22
|
from typing import Optional, Set
|
|
23
23
|
from typing_extensions import Self
|
|
@@ -28,11 +28,12 @@ class OrganizationFilterDto(BaseModel):
|
|
|
28
28
|
""" # noqa: E501
|
|
29
29
|
search: Optional[StrictStr] = None
|
|
30
30
|
user_id: Optional[StrictInt] = Field(default=None, alias="userId")
|
|
31
|
+
is_admin: Optional[StrictBool] = Field(default=None, alias="isAdmin")
|
|
31
32
|
page: Optional[StrictInt] = None
|
|
32
33
|
size: Optional[StrictInt] = None
|
|
33
34
|
sort_by: Optional[StrictStr] = Field(default=None, alias="sortBy")
|
|
34
35
|
sort_dir: Optional[StrictStr] = Field(default=None, alias="sortDir")
|
|
35
|
-
__properties: ClassVar[List[str]] = ["search", "userId", "page", "size", "sortBy", "sortDir"]
|
|
36
|
+
__properties: ClassVar[List[str]] = ["search", "userId", "isAdmin", "page", "size", "sortBy", "sortDir"]
|
|
36
37
|
|
|
37
38
|
model_config = ConfigDict(
|
|
38
39
|
populate_by_name=True,
|
|
@@ -87,6 +88,7 @@ class OrganizationFilterDto(BaseModel):
|
|
|
87
88
|
_obj = cls.model_validate({
|
|
88
89
|
"search": obj.get("search"),
|
|
89
90
|
"userId": obj.get("userId"),
|
|
91
|
+
"isAdmin": obj.get("isAdmin"),
|
|
90
92
|
"page": obj.get("page"),
|
|
91
93
|
"size": obj.get("size"),
|
|
92
94
|
"sortBy": obj.get("sortBy"),
|
|
@@ -17,23 +17,24 @@ import pprint
|
|
|
17
17
|
import re # noqa: F401
|
|
18
18
|
import json
|
|
19
19
|
|
|
20
|
-
from
|
|
20
|
+
from datetime import datetime
|
|
21
|
+
from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictInt
|
|
21
22
|
from typing import Any, ClassVar, Dict, List, Optional
|
|
22
|
-
from qanswer_sdk.models.
|
|
23
|
-
from qanswer_sdk.models.value_model import ValueModel
|
|
23
|
+
from qanswer_sdk.models.organization import Organization
|
|
24
24
|
from typing import Optional, Set
|
|
25
25
|
from typing_extensions import Self
|
|
26
26
|
|
|
27
|
-
class
|
|
27
|
+
class OrganizationMcpServerSetting(BaseModel):
|
|
28
28
|
"""
|
|
29
|
-
|
|
29
|
+
OrganizationMcpServerSetting
|
|
30
30
|
""" # noqa: E501
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
31
|
+
id: Optional[StrictInt] = None
|
|
32
|
+
organization: Optional[Organization] = None
|
|
33
|
+
mcp_server: Optional[McpServer] = Field(default=None, alias="mcpServer")
|
|
34
|
+
enabled: Optional[StrictBool] = None
|
|
35
|
+
created: Optional[datetime] = None
|
|
36
|
+
updated: Optional[datetime] = None
|
|
37
|
+
__properties: ClassVar[List[str]] = ["id", "organization", "mcpServer", "enabled", "created", "updated"]
|
|
37
38
|
|
|
38
39
|
model_config = ConfigDict(
|
|
39
40
|
populate_by_name=True,
|
|
@@ -53,7 +54,7 @@ class RelationValueInput(BaseModel):
|
|
|
53
54
|
|
|
54
55
|
@classmethod
|
|
55
56
|
def from_json(cls, json_str: str) -> Optional[Self]:
|
|
56
|
-
"""Create an instance of
|
|
57
|
+
"""Create an instance of OrganizationMcpServerSetting from a JSON string"""
|
|
57
58
|
return cls.from_dict(json.loads(json_str))
|
|
58
59
|
|
|
59
60
|
def to_dict(self) -> Dict[str, Any]:
|
|
@@ -74,17 +75,17 @@ class RelationValueInput(BaseModel):
|
|
|
74
75
|
exclude=excluded_fields,
|
|
75
76
|
exclude_none=True,
|
|
76
77
|
)
|
|
77
|
-
# override the default output from pydantic by calling `to_dict()` of
|
|
78
|
-
if self.
|
|
79
|
-
_dict['
|
|
80
|
-
# override the default output from pydantic by calling `to_dict()` of
|
|
81
|
-
if self.
|
|
82
|
-
_dict['
|
|
78
|
+
# override the default output from pydantic by calling `to_dict()` of organization
|
|
79
|
+
if self.organization:
|
|
80
|
+
_dict['organization'] = self.organization.to_dict()
|
|
81
|
+
# override the default output from pydantic by calling `to_dict()` of mcp_server
|
|
82
|
+
if self.mcp_server:
|
|
83
|
+
_dict['mcpServer'] = self.mcp_server.to_dict()
|
|
83
84
|
return _dict
|
|
84
85
|
|
|
85
86
|
@classmethod
|
|
86
87
|
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
|
|
87
|
-
"""Create an instance of
|
|
88
|
+
"""Create an instance of OrganizationMcpServerSetting from a dict"""
|
|
88
89
|
if obj is None:
|
|
89
90
|
return None
|
|
90
91
|
|
|
@@ -92,12 +93,16 @@ class RelationValueInput(BaseModel):
|
|
|
92
93
|
return cls.model_validate(obj)
|
|
93
94
|
|
|
94
95
|
_obj = cls.model_validate({
|
|
95
|
-
"
|
|
96
|
-
"
|
|
97
|
-
"
|
|
98
|
-
"
|
|
99
|
-
"
|
|
96
|
+
"id": obj.get("id"),
|
|
97
|
+
"organization": Organization.from_dict(obj["organization"]) if obj.get("organization") is not None else None,
|
|
98
|
+
"mcpServer": McpServer.from_dict(obj["mcpServer"]) if obj.get("mcpServer") is not None else None,
|
|
99
|
+
"enabled": obj.get("enabled"),
|
|
100
|
+
"created": obj.get("created"),
|
|
101
|
+
"updated": obj.get("updated")
|
|
100
102
|
})
|
|
101
103
|
return _obj
|
|
102
104
|
|
|
105
|
+
from qanswer_sdk.models.mcp_server import McpServer
|
|
106
|
+
# TODO: Rewrite to not use raise_errors
|
|
107
|
+
OrganizationMcpServerSetting.model_rebuild(raise_errors=False)
|
|
103
108
|
|
qanswer_sdk/models/plan_dto.py
CHANGED
|
@@ -35,7 +35,8 @@ class PlanDto(BaseModel):
|
|
|
35
35
|
price_monthly: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, alias="priceMonthly")
|
|
36
36
|
duration_in_months: Optional[StrictInt] = Field(default=None, alias="durationInMonths")
|
|
37
37
|
currency: Optional[StrictStr] = None
|
|
38
|
-
|
|
38
|
+
pricing_type: Optional[StrictStr] = Field(default=None, alias="pricingType")
|
|
39
|
+
__properties: ClassVar[List[str]] = ["plan", "shortName", "pricingPlan", "features", "description", "price", "priceMonthly", "durationInMonths", "currency", "pricingType"]
|
|
39
40
|
|
|
40
41
|
@field_validator('pricing_plan')
|
|
41
42
|
def pricing_plan_validate_enum(cls, value):
|
|
@@ -43,8 +44,8 @@ class PlanDto(BaseModel):
|
|
|
43
44
|
if value is None:
|
|
44
45
|
return value
|
|
45
46
|
|
|
46
|
-
if value not in set(['NOT_LOGGED', 'FREE', 'BASIC', 'BASIC_DOLLAR', 'BASIC_ANNUAL', 'BASIC_ANNUAL_DOLLAR', 'PROFESSIONAL', 'PROFESSIONAL_DOLLAR', 'PROFESSIONAL_ANNUAL', 'PROFESSIONAL_ANNUAL_DOLLAR', 'CUSTOM', 'UNLIMITED']):
|
|
47
|
-
raise ValueError("must be one of enum values ('NOT_LOGGED', 'FREE', 'BASIC', 'BASIC_DOLLAR', 'BASIC_ANNUAL', 'BASIC_ANNUAL_DOLLAR', 'PROFESSIONAL', 'PROFESSIONAL_DOLLAR', 'PROFESSIONAL_ANNUAL', 'PROFESSIONAL_ANNUAL_DOLLAR', 'CUSTOM', 'UNLIMITED')")
|
|
47
|
+
if value not in set(['NOT_LOGGED', 'FREE', 'WORK', 'WORK_DOLLAR', 'WORK_ANNUAL', 'WORK_ANNUAL_DOLLAR', 'BASIC', 'BASIC_DOLLAR', 'BASIC_ANNUAL', 'BASIC_ANNUAL_DOLLAR', 'PROFESSIONAL', 'PROFESSIONAL_DOLLAR', 'PROFESSIONAL_ANNUAL', 'PROFESSIONAL_ANNUAL_DOLLAR', 'CUSTOM', 'UNLIMITED']):
|
|
48
|
+
raise ValueError("must be one of enum values ('NOT_LOGGED', 'FREE', 'WORK', 'WORK_DOLLAR', 'WORK_ANNUAL', 'WORK_ANNUAL_DOLLAR', 'BASIC', 'BASIC_DOLLAR', 'BASIC_ANNUAL', 'BASIC_ANNUAL_DOLLAR', 'PROFESSIONAL', 'PROFESSIONAL_DOLLAR', 'PROFESSIONAL_ANNUAL', 'PROFESSIONAL_ANNUAL_DOLLAR', 'CUSTOM', 'UNLIMITED')")
|
|
48
49
|
return value
|
|
49
50
|
|
|
50
51
|
@field_validator('currency')
|
|
@@ -57,6 +58,16 @@ class PlanDto(BaseModel):
|
|
|
57
58
|
raise ValueError("must be one of enum values ('EURO', 'DOLLAR', 'NONE')")
|
|
58
59
|
return value
|
|
59
60
|
|
|
61
|
+
@field_validator('pricing_type')
|
|
62
|
+
def pricing_type_validate_enum(cls, value):
|
|
63
|
+
"""Validates the enum"""
|
|
64
|
+
if value is None:
|
|
65
|
+
return value
|
|
66
|
+
|
|
67
|
+
if value not in set(['BOT', 'WORK', 'NONE']):
|
|
68
|
+
raise ValueError("must be one of enum values ('BOT', 'WORK', 'NONE')")
|
|
69
|
+
return value
|
|
70
|
+
|
|
60
71
|
model_config = ConfigDict(
|
|
61
72
|
populate_by_name=True,
|
|
62
73
|
validate_assignment=True,
|
|
@@ -116,7 +127,8 @@ class PlanDto(BaseModel):
|
|
|
116
127
|
"price": obj.get("price"),
|
|
117
128
|
"priceMonthly": obj.get("priceMonthly"),
|
|
118
129
|
"durationInMonths": obj.get("durationInMonths"),
|
|
119
|
-
"currency": obj.get("currency")
|
|
130
|
+
"currency": obj.get("currency"),
|
|
131
|
+
"pricingType": obj.get("pricingType")
|
|
120
132
|
})
|
|
121
133
|
return _obj
|
|
122
134
|
|
|
@@ -18,7 +18,7 @@ import re # noqa: F401
|
|
|
18
18
|
import json
|
|
19
19
|
|
|
20
20
|
from pydantic import BaseModel, ConfigDict, StrictInt, StrictStr
|
|
21
|
-
from typing import Any, ClassVar, Dict, List
|
|
21
|
+
from typing import Any, ClassVar, Dict, List, Optional
|
|
22
22
|
from qanswer_sdk.models.publication_file_metadata import PublicationFileMetadata
|
|
23
23
|
from typing import Optional, Set
|
|
24
24
|
from typing_extensions import Self
|
|
@@ -31,8 +31,9 @@ class PublicationAddPayload(BaseModel):
|
|
|
31
31
|
dataset: StrictStr
|
|
32
32
|
connector_id: StrictInt
|
|
33
33
|
quota: StrictInt
|
|
34
|
+
additional_fields: Optional[Dict[str, Any]] = None
|
|
34
35
|
files: List[PublicationFileMetadata]
|
|
35
|
-
__properties: ClassVar[List[str]] = ["username", "dataset", "connector_id", "quota", "files"]
|
|
36
|
+
__properties: ClassVar[List[str]] = ["username", "dataset", "connector_id", "quota", "additional_fields", "files"]
|
|
36
37
|
|
|
37
38
|
model_config = ConfigDict(
|
|
38
39
|
populate_by_name=True,
|
|
@@ -96,6 +97,7 @@ class PublicationAddPayload(BaseModel):
|
|
|
96
97
|
"dataset": obj.get("dataset"),
|
|
97
98
|
"connector_id": obj.get("connector_id"),
|
|
98
99
|
"quota": obj.get("quota"),
|
|
100
|
+
"additional_fields": obj.get("additional_fields"),
|
|
99
101
|
"files": [PublicationFileMetadata.from_dict(_item) for _item in obj["files"]] if obj.get("files") is not None else None
|
|
100
102
|
})
|
|
101
103
|
return _obj
|
|
@@ -52,9 +52,11 @@ class RAGPayload(BaseModel):
|
|
|
52
52
|
index_hashes: Optional[List[Dict[str, Any]]] = Field(default=None, description="The hashes of the indexes to be used for the response.")
|
|
53
53
|
apply_map_reduce: Optional[StrictBool] = Field(default=None, description="Determines whether to apply map-reduce strategy for the response.")
|
|
54
54
|
conversation_has_clip: Optional[StrictBool] = Field(default=None, description="Indicates whether the conversation has a clip associated with it.")
|
|
55
|
+
incognito: Optional[StrictBool] = Field(default=None, description="When true, the conversation is stored only in Redis with a TTL, is not retrievable via list/get, and will be purged automatically.")
|
|
55
56
|
current_time: Optional[StrictStr] = Field(default=None, description="The current time to be used in the prompt, if applicable.")
|
|
56
57
|
tool_selections: Optional[List[ToolSelection]] = Field(default=None, description="The selections of the MCP tools to be used.")
|
|
57
|
-
|
|
58
|
+
expanded_question: Optional[StrictStr] = Field(default=None, description="The expanded version of the original question, if applicable.")
|
|
59
|
+
__properties: ClassVar[List[str]] = ["question", "username", "dataset", "organizationId", "image_urls", "parent_message_id", "conversation_id", "is_regenerate", "origin", "text_fragmentation", "interface_origin", "system_prompt", "prompt", "additional_fields", "bypass_guardrail", "talk_to_web", "original_question", "oauth_token", "auto_filters", "filters", "exclude_filters", "index_hashes", "apply_map_reduce", "conversation_has_clip", "incognito", "current_time", "tool_selections", "expanded_question"]
|
|
58
60
|
|
|
59
61
|
@field_validator('interface_origin')
|
|
60
62
|
def interface_origin_validate_enum(cls, value):
|
|
@@ -172,8 +174,10 @@ class RAGPayload(BaseModel):
|
|
|
172
174
|
"index_hashes": obj.get("index_hashes"),
|
|
173
175
|
"apply_map_reduce": obj.get("apply_map_reduce"),
|
|
174
176
|
"conversation_has_clip": obj.get("conversation_has_clip"),
|
|
177
|
+
"incognito": obj.get("incognito"),
|
|
175
178
|
"current_time": obj.get("current_time"),
|
|
176
|
-
"tool_selections": [ToolSelection.from_dict(_item) for _item in obj["tool_selections"]] if obj.get("tool_selections") is not None else None
|
|
179
|
+
"tool_selections": [ToolSelection.from_dict(_item) for _item in obj["tool_selections"]] if obj.get("tool_selections") is not None else None,
|
|
180
|
+
"expanded_question": obj.get("expanded_question")
|
|
177
181
|
})
|
|
178
182
|
return _obj
|
|
179
183
|
|
|
@@ -18,7 +18,7 @@ import re # noqa: F401
|
|
|
18
18
|
import json
|
|
19
19
|
|
|
20
20
|
from pydantic import BaseModel, ConfigDict, StrictInt, StrictStr
|
|
21
|
-
from typing import Any, ClassVar, Dict, List
|
|
21
|
+
from typing import Any, ClassVar, Dict, List, Optional
|
|
22
22
|
from typing import Optional, Set
|
|
23
23
|
from typing_extensions import Self
|
|
24
24
|
|
|
@@ -30,7 +30,8 @@ class ReportCopilotGenerationFromSlotsPayload(BaseModel):
|
|
|
30
30
|
dataset: StrictStr
|
|
31
31
|
slot_ids: List[StrictInt]
|
|
32
32
|
conversation_id: StrictStr
|
|
33
|
-
|
|
33
|
+
additional_fields: Optional[Dict[str, Any]] = None
|
|
34
|
+
__properties: ClassVar[List[str]] = ["username", "dataset", "slot_ids", "conversation_id", "additional_fields"]
|
|
34
35
|
|
|
35
36
|
model_config = ConfigDict(
|
|
36
37
|
populate_by_name=True,
|
|
@@ -86,7 +87,8 @@ class ReportCopilotGenerationFromSlotsPayload(BaseModel):
|
|
|
86
87
|
"username": obj.get("username"),
|
|
87
88
|
"dataset": obj.get("dataset"),
|
|
88
89
|
"slot_ids": obj.get("slot_ids"),
|
|
89
|
-
"conversation_id": obj.get("conversation_id")
|
|
90
|
+
"conversation_id": obj.get("conversation_id"),
|
|
91
|
+
"additional_fields": obj.get("additional_fields")
|
|
90
92
|
})
|
|
91
93
|
return _obj
|
|
92
94
|
|
|
@@ -18,7 +18,7 @@ import re # noqa: F401
|
|
|
18
18
|
import json
|
|
19
19
|
|
|
20
20
|
from pydantic import BaseModel, ConfigDict, StrictStr, field_validator
|
|
21
|
-
from typing import Any, ClassVar, Dict, List
|
|
21
|
+
from typing import Any, ClassVar, Dict, List, Optional
|
|
22
22
|
from typing import Optional, Set
|
|
23
23
|
from typing_extensions import Self
|
|
24
24
|
|
|
@@ -32,7 +32,8 @@ class ReportCopilotRefinementPayload(BaseModel):
|
|
|
32
32
|
command_type: StrictStr
|
|
33
33
|
command_value: StrictStr
|
|
34
34
|
conversation_id: StrictStr
|
|
35
|
-
|
|
35
|
+
additional_fields: Optional[Dict[str, Any]] = None
|
|
36
|
+
__properties: ClassVar[List[str]] = ["username", "dataset", "text", "command_type", "command_value", "conversation_id", "additional_fields"]
|
|
36
37
|
|
|
37
38
|
@field_validator('command_type')
|
|
38
39
|
def command_type_validate_enum(cls, value):
|
|
@@ -97,7 +98,8 @@ class ReportCopilotRefinementPayload(BaseModel):
|
|
|
97
98
|
"text": obj.get("text"),
|
|
98
99
|
"command_type": obj.get("command_type"),
|
|
99
100
|
"command_value": obj.get("command_value"),
|
|
100
|
-
"conversation_id": obj.get("conversation_id")
|
|
101
|
+
"conversation_id": obj.get("conversation_id"),
|
|
102
|
+
"additional_fields": obj.get("additional_fields")
|
|
101
103
|
})
|
|
102
104
|
return _obj
|
|
103
105
|
|
|
@@ -30,7 +30,8 @@ class ReportCopilotSlotFeedbackUpdate(BaseModel):
|
|
|
30
30
|
rate: StrictInt
|
|
31
31
|
comment: Optional[StrictStr] = None
|
|
32
32
|
approved: Optional[StrictBool] = None
|
|
33
|
-
|
|
33
|
+
additional_fields: Optional[Dict[str, Any]] = None
|
|
34
|
+
__properties: ClassVar[List[str]] = ["message_id", "rate", "comment", "approved", "additional_fields"]
|
|
34
35
|
|
|
35
36
|
model_config = ConfigDict(
|
|
36
37
|
populate_by_name=True,
|
|
@@ -86,7 +87,8 @@ class ReportCopilotSlotFeedbackUpdate(BaseModel):
|
|
|
86
87
|
"message_id": obj.get("message_id"),
|
|
87
88
|
"rate": obj.get("rate"),
|
|
88
89
|
"comment": obj.get("comment"),
|
|
89
|
-
"approved": obj.get("approved")
|
|
90
|
+
"approved": obj.get("approved"),
|
|
91
|
+
"additional_fields": obj.get("additional_fields")
|
|
90
92
|
})
|
|
91
93
|
return _obj
|
|
92
94
|
|
|
@@ -41,10 +41,11 @@ class ReportTemplate(BaseModel):
|
|
|
41
41
|
is_generating: Optional[StrictBool] = None
|
|
42
42
|
active_slot_id: Optional[StrictInt] = None
|
|
43
43
|
description: Optional[StrictStr] = None
|
|
44
|
+
tags: Optional[List[StrictStr]] = None
|
|
44
45
|
template_with_slots: StrictStr
|
|
45
46
|
slots: List[Slot]
|
|
46
47
|
clip_structure: Optional[TemplateClipStructure] = None
|
|
47
|
-
__properties: ClassVar[List[str]] = ["id", "username", "conversation_id", "author", "email", "template_name", "creation_date", "last_updated", "shared_to", "is_duplicated", "is_generating", "active_slot_id", "description", "template_with_slots", "slots", "clip_structure"]
|
|
48
|
+
__properties: ClassVar[List[str]] = ["id", "username", "conversation_id", "author", "email", "template_name", "creation_date", "last_updated", "shared_to", "is_duplicated", "is_generating", "active_slot_id", "description", "tags", "template_with_slots", "slots", "clip_structure"]
|
|
48
49
|
|
|
49
50
|
model_config = ConfigDict(
|
|
50
51
|
populate_by_name=True,
|
|
@@ -120,6 +121,7 @@ class ReportTemplate(BaseModel):
|
|
|
120
121
|
"is_generating": obj.get("is_generating"),
|
|
121
122
|
"active_slot_id": obj.get("active_slot_id"),
|
|
122
123
|
"description": obj.get("description"),
|
|
124
|
+
"tags": obj.get("tags"),
|
|
123
125
|
"template_with_slots": obj.get("template_with_slots"),
|
|
124
126
|
"slots": [Slot.from_dict(_item) for _item in obj["slots"]] if obj.get("slots") is not None else None,
|
|
125
127
|
"clip_structure": TemplateClipStructure.from_dict(obj["clip_structure"]) if obj.get("clip_structure") is not None else None
|
|
@@ -33,7 +33,8 @@ class ReportTemplateCreatePayload(BaseModel):
|
|
|
33
33
|
template_name: StrictStr
|
|
34
34
|
template_with_slots: StrictStr
|
|
35
35
|
slots: List[SlotUpdate]
|
|
36
|
-
|
|
36
|
+
tags: Optional[List[StrictStr]] = None
|
|
37
|
+
__properties: ClassVar[List[str]] = ["username", "author", "dataset", "template_name", "template_with_slots", "slots", "tags"]
|
|
37
38
|
|
|
38
39
|
model_config = ConfigDict(
|
|
39
40
|
populate_by_name=True,
|
|
@@ -98,7 +99,8 @@ class ReportTemplateCreatePayload(BaseModel):
|
|
|
98
99
|
"dataset": obj.get("dataset"),
|
|
99
100
|
"template_name": obj.get("template_name"),
|
|
100
101
|
"template_with_slots": obj.get("template_with_slots"),
|
|
101
|
-
"slots": [SlotUpdate.from_dict(_item) for _item in obj["slots"]] if obj.get("slots") is not None else None
|
|
102
|
+
"slots": [SlotUpdate.from_dict(_item) for _item in obj["slots"]] if obj.get("slots") is not None else None,
|
|
103
|
+
"tags": obj.get("tags")
|
|
102
104
|
})
|
|
103
105
|
return _obj
|
|
104
106
|
|
|
@@ -39,7 +39,8 @@ class ReportTemplateSimplified(BaseModel):
|
|
|
39
39
|
is_generating: Optional[StrictBool] = None
|
|
40
40
|
active_slot_id: Optional[StrictInt] = None
|
|
41
41
|
description: Optional[StrictStr] = None
|
|
42
|
-
|
|
42
|
+
tags: Optional[List[StrictStr]] = None
|
|
43
|
+
__properties: ClassVar[List[str]] = ["id", "username", "conversation_id", "author", "email", "template_name", "creation_date", "last_updated", "shared_to", "is_duplicated", "is_generating", "active_slot_id", "description", "tags"]
|
|
43
44
|
|
|
44
45
|
model_config = ConfigDict(
|
|
45
46
|
populate_by_name=True,
|
|
@@ -104,7 +105,8 @@ class ReportTemplateSimplified(BaseModel):
|
|
|
104
105
|
"is_duplicated": obj.get("is_duplicated"),
|
|
105
106
|
"is_generating": obj.get("is_generating"),
|
|
106
107
|
"active_slot_id": obj.get("active_slot_id"),
|
|
107
|
-
"description": obj.get("description")
|
|
108
|
+
"description": obj.get("description"),
|
|
109
|
+
"tags": obj.get("tags")
|
|
108
110
|
})
|
|
109
111
|
return _obj
|
|
110
112
|
|
|
@@ -34,7 +34,8 @@ class ReportTemplateUpdatePayload(BaseModel):
|
|
|
34
34
|
template_with_slots: Optional[StrictStr] = None
|
|
35
35
|
slots: Optional[List[SlotUpdate]] = None
|
|
36
36
|
clip_structure: Optional[TemplateClipStructure] = None
|
|
37
|
-
|
|
37
|
+
tags: Optional[List[StrictStr]] = None
|
|
38
|
+
__properties: ClassVar[List[str]] = ["username", "dataset", "template_name", "template_with_slots", "slots", "clip_structure", "tags"]
|
|
38
39
|
|
|
39
40
|
model_config = ConfigDict(
|
|
40
41
|
populate_by_name=True,
|
|
@@ -102,7 +103,8 @@ class ReportTemplateUpdatePayload(BaseModel):
|
|
|
102
103
|
"template_name": obj.get("template_name"),
|
|
103
104
|
"template_with_slots": obj.get("template_with_slots"),
|
|
104
105
|
"slots": [SlotUpdate.from_dict(_item) for _item in obj["slots"]] if obj.get("slots") is not None else None,
|
|
105
|
-
"clip_structure": TemplateClipStructure.from_dict(obj["clip_structure"]) if obj.get("clip_structure") is not None else None
|
|
106
|
+
"clip_structure": TemplateClipStructure.from_dict(obj["clip_structure"]) if obj.get("clip_structure") is not None else None,
|
|
107
|
+
"tags": obj.get("tags")
|
|
106
108
|
})
|
|
107
109
|
return _obj
|
|
108
110
|
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
# coding: utf-8
|
|
2
|
+
|
|
3
|
+
"""
|
|
4
|
+
QAnswer: Api Documentation
|
|
5
|
+
|
|
6
|
+
APIs provided by QAnswer
|
|
7
|
+
|
|
8
|
+
The version of the OpenAPI document: 1.0
|
|
9
|
+
Generated by OpenAPI Generator (https://openapi-generator.tech)
|
|
10
|
+
|
|
11
|
+
Do not edit the class manually.
|
|
12
|
+
""" # noqa: E501
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
from __future__ import annotations
|
|
16
|
+
import pprint
|
|
17
|
+
import re # noqa: F401
|
|
18
|
+
import json
|
|
19
|
+
|
|
20
|
+
from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr
|
|
21
|
+
from typing import Any, ClassVar, Dict, List, Optional
|
|
22
|
+
from typing_extensions import Annotated
|
|
23
|
+
from typing import Optional, Set
|
|
24
|
+
from typing_extensions import Self
|
|
25
|
+
|
|
26
|
+
class ReportTemplatesSearchPayload(BaseModel):
|
|
27
|
+
"""
|
|
28
|
+
ReportTemplatesSearchPayload
|
|
29
|
+
""" # noqa: E501
|
|
30
|
+
username: StrictStr
|
|
31
|
+
dataset: StrictStr
|
|
32
|
+
author: Optional[StrictStr] = Field(default=None, description="Author of the templates")
|
|
33
|
+
conversation_id: Optional[StrictStr] = Field(default=None, description="conversation id for filtering the templates of the clip")
|
|
34
|
+
search: Optional[StrictStr] = Field(default=None, description="Search term applied to template names")
|
|
35
|
+
is_duplicated: Optional[StrictBool] = Field(default=None, description="Filter templates by duplication state using the template's is_duplicated flag")
|
|
36
|
+
tags: Optional[List[StrictStr]] = Field(default=None, description="Filter templates by tags - returns templates that have at least one of the specified tags")
|
|
37
|
+
page: Optional[Annotated[int, Field(strict=True, ge=1)]] = Field(default=None, description="Page of templates to return")
|
|
38
|
+
page_size: Optional[Annotated[int, Field(le=100, strict=True, ge=1)]] = Field(default=None, description="Number of templates to return per page")
|
|
39
|
+
__properties: ClassVar[List[str]] = ["username", "dataset", "author", "conversation_id", "search", "is_duplicated", "tags", "page", "page_size"]
|
|
40
|
+
|
|
41
|
+
model_config = ConfigDict(
|
|
42
|
+
populate_by_name=True,
|
|
43
|
+
validate_assignment=True,
|
|
44
|
+
protected_namespaces=(),
|
|
45
|
+
)
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
def to_str(self) -> str:
|
|
49
|
+
"""Returns the string representation of the model using alias"""
|
|
50
|
+
return pprint.pformat(self.model_dump(by_alias=True))
|
|
51
|
+
|
|
52
|
+
def to_json(self) -> str:
|
|
53
|
+
"""Returns the JSON representation of the model using alias"""
|
|
54
|
+
# TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
|
|
55
|
+
return json.dumps(self.to_dict())
|
|
56
|
+
|
|
57
|
+
@classmethod
|
|
58
|
+
def from_json(cls, json_str: str) -> Optional[Self]:
|
|
59
|
+
"""Create an instance of ReportTemplatesSearchPayload from a JSON string"""
|
|
60
|
+
return cls.from_dict(json.loads(json_str))
|
|
61
|
+
|
|
62
|
+
def to_dict(self) -> Dict[str, Any]:
|
|
63
|
+
"""Return the dictionary representation of the model using alias.
|
|
64
|
+
|
|
65
|
+
This has the following differences from calling pydantic's
|
|
66
|
+
`self.model_dump(by_alias=True)`:
|
|
67
|
+
|
|
68
|
+
* `None` is only added to the output dict for nullable fields that
|
|
69
|
+
were set at model initialization. Other fields with value `None`
|
|
70
|
+
are ignored.
|
|
71
|
+
"""
|
|
72
|
+
excluded_fields: Set[str] = set([
|
|
73
|
+
])
|
|
74
|
+
|
|
75
|
+
_dict = self.model_dump(
|
|
76
|
+
by_alias=True,
|
|
77
|
+
exclude=excluded_fields,
|
|
78
|
+
exclude_none=True,
|
|
79
|
+
)
|
|
80
|
+
return _dict
|
|
81
|
+
|
|
82
|
+
@classmethod
|
|
83
|
+
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
|
|
84
|
+
"""Create an instance of ReportTemplatesSearchPayload from a dict"""
|
|
85
|
+
if obj is None:
|
|
86
|
+
return None
|
|
87
|
+
|
|
88
|
+
if not isinstance(obj, dict):
|
|
89
|
+
return cls.model_validate(obj)
|
|
90
|
+
|
|
91
|
+
_obj = cls.model_validate({
|
|
92
|
+
"username": obj.get("username"),
|
|
93
|
+
"dataset": obj.get("dataset"),
|
|
94
|
+
"author": obj.get("author"),
|
|
95
|
+
"conversation_id": obj.get("conversation_id"),
|
|
96
|
+
"search": obj.get("search"),
|
|
97
|
+
"is_duplicated": obj.get("is_duplicated"),
|
|
98
|
+
"tags": obj.get("tags"),
|
|
99
|
+
"page": obj.get("page"),
|
|
100
|
+
"page_size": obj.get("page_size")
|
|
101
|
+
})
|
|
102
|
+
return _obj
|
|
103
|
+
|
|
104
|
+
|
|
@@ -43,7 +43,9 @@ class SearchPayload(BaseModel):
|
|
|
43
43
|
index_hashes: Optional[List[Dict[str, Any]]] = Field(default=None, description="The hashes of the indexes to be used for the response.")
|
|
44
44
|
conversation_has_clip: Optional[StrictBool] = Field(default=None, description="Indicates whether the conversation has a clip associated with it.")
|
|
45
45
|
dataset_id: Optional[StrictInt] = Field(default=None, description="The ID of the dataset to be used for the response.")
|
|
46
|
-
|
|
46
|
+
additional_fields: Optional[Dict[str, Any]] = Field(default=None, description="Additional fields that may be required for processing the request.")
|
|
47
|
+
expanded_question: Optional[StrictStr] = Field(default=None, description="The expanded version of the original question, if applicable.")
|
|
48
|
+
__properties: ClassVar[List[str]] = ["question", "username", "dataset", "organizationId", "auto_apply_filters", "apply_map_reduce", "text_fragmentation", "limit", "offset", "oauth_token", "conversation_id", "filters", "exclude_filters", "index_hashes", "conversation_has_clip", "dataset_id", "additional_fields", "expanded_question"]
|
|
47
49
|
|
|
48
50
|
model_config = ConfigDict(
|
|
49
51
|
populate_by_name=True,
|
|
@@ -135,7 +137,9 @@ class SearchPayload(BaseModel):
|
|
|
135
137
|
] if obj.get("exclude_filters") is not None else None,
|
|
136
138
|
"index_hashes": obj.get("index_hashes"),
|
|
137
139
|
"conversation_has_clip": obj.get("conversation_has_clip"),
|
|
138
|
-
"dataset_id": obj.get("dataset_id")
|
|
140
|
+
"dataset_id": obj.get("dataset_id"),
|
|
141
|
+
"additional_fields": obj.get("additional_fields"),
|
|
142
|
+
"expanded_question": obj.get("expanded_question")
|
|
139
143
|
})
|
|
140
144
|
return _obj
|
|
141
145
|
|
|
@@ -32,8 +32,9 @@ class SharePointDownloadRequest(BaseModel):
|
|
|
32
32
|
account_id: Optional[StrictStr] = None
|
|
33
33
|
connector_id: StrictInt
|
|
34
34
|
quota: Optional[StrictInt] = Field(default=None, description="Quota of the user")
|
|
35
|
+
additional_fields: Optional[Dict[str, Any]] = None
|
|
35
36
|
ids: SharePointDownloadByIds
|
|
36
|
-
__properties: ClassVar[List[str]] = ["username", "dataset", "account_id", "connector_id", "quota", "ids"]
|
|
37
|
+
__properties: ClassVar[List[str]] = ["username", "dataset", "account_id", "connector_id", "quota", "additional_fields", "ids"]
|
|
37
38
|
|
|
38
39
|
model_config = ConfigDict(
|
|
39
40
|
populate_by_name=True,
|
|
@@ -94,6 +95,7 @@ class SharePointDownloadRequest(BaseModel):
|
|
|
94
95
|
"account_id": obj.get("account_id"),
|
|
95
96
|
"connector_id": obj.get("connector_id"),
|
|
96
97
|
"quota": obj.get("quota"),
|
|
98
|
+
"additional_fields": obj.get("additional_fields"),
|
|
97
99
|
"ids": SharePointDownloadByIds.from_dict(obj["ids"]) if obj.get("ids") is not None else None
|
|
98
100
|
})
|
|
99
101
|
return _obj
|