qanswer_sdk 3.1508.0__py3-none-any.whl → 3.1510.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.1508.0.dist-info → qanswer_sdk-3.1510.0.dist-info}/METADATA +2 -2
- {qanswer_sdk-3.1508.0.dist-info → qanswer_sdk-3.1510.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.1508.0.dist-info → qanswer_sdk-3.1510.0.dist-info}/WHEEL +0 -0
qanswer_sdk/models/user.py
CHANGED
|
@@ -62,6 +62,7 @@ class User(BaseModel):
|
|
|
62
62
|
user_chatbot_setting: Optional[UserChatbotSetting] = Field(default=None, alias="userChatbotSetting")
|
|
63
63
|
user_llm_features: Optional[UserLlmFeatures] = Field(default=None, alias="userLlmFeatures")
|
|
64
64
|
logo: Optional[Logo] = None
|
|
65
|
+
selected_org: Optional[Organization] = Field(default=None, alias="selectedOrg")
|
|
65
66
|
user_dataset: Optional[List[UserDataset]] = Field(default=None, alias="userDataset")
|
|
66
67
|
user_dataset_shared: Optional[List[UserDatasetShared]] = Field(default=None, alias="userDatasetShared")
|
|
67
68
|
favorite_dataset: Optional[List[UserDataset]] = Field(default=None, alias="favoriteDataset")
|
|
@@ -79,8 +80,8 @@ class User(BaseModel):
|
|
|
79
80
|
administered_organizations: Optional[List[Organization]] = Field(default=None, alias="administeredOrganizations")
|
|
80
81
|
user_logs: Optional[List[UserLog]] = Field(default=None, alias="userLogs")
|
|
81
82
|
user_info: Optional[UserInfo] = Field(default=None, alias="userInfo")
|
|
82
|
-
|
|
83
|
-
__properties: ClassVar[List[str]] = ["id", "name", "username", "email", "password", "origin", "enabled", "blocked", "created", "updated", "lastLogin", "stripeCustomerId", "pricingPlan", "dataPackage", "pricingPlanSubscription", "questionCreditsStart", "questionCreditsUsed", "quotaQuestionCredits", "quotaDatasetNumber", "quotaDatasetSpaceMb", "creditCapacity", "creditUsage", "language", "runningOutOfQuotaWarned", "runOutOfQuotaWarned", "removeBranding", "roles", "userChatbotSetting", "userLlmFeatures", "logo", "userDataset", "userDatasetShared", "favoriteDataset", "llmConsumptions", "embedderConsumptions", "authorizedTeamAccesses", "requestedTeamAccesses", "authorizedOrganizationAccesses", "requestedOrganizationAccesses", "verificationTokens", "refreshToken", "teams", "administeredTeams", "organizations", "administeredOrganizations", "userLogs", "userInfo", "
|
|
83
|
+
selected_org_id: Optional[StrictInt] = Field(default=None, alias="selectedOrgId")
|
|
84
|
+
__properties: ClassVar[List[str]] = ["id", "name", "username", "email", "password", "origin", "enabled", "blocked", "created", "updated", "lastLogin", "stripeCustomerId", "pricingPlan", "dataPackage", "pricingPlanSubscription", "questionCreditsStart", "questionCreditsUsed", "quotaQuestionCredits", "quotaDatasetNumber", "quotaDatasetSpaceMb", "creditCapacity", "creditUsage", "language", "runningOutOfQuotaWarned", "runOutOfQuotaWarned", "removeBranding", "roles", "userChatbotSetting", "userLlmFeatures", "logo", "selectedOrg", "userDataset", "userDatasetShared", "favoriteDataset", "llmConsumptions", "embedderConsumptions", "authorizedTeamAccesses", "requestedTeamAccesses", "authorizedOrganizationAccesses", "requestedOrganizationAccesses", "verificationTokens", "refreshToken", "teams", "administeredTeams", "organizations", "administeredOrganizations", "userLogs", "userInfo", "selectedOrgId"]
|
|
84
85
|
|
|
85
86
|
@field_validator('pricing_plan')
|
|
86
87
|
def pricing_plan_validate_enum(cls, value):
|
|
@@ -88,8 +89,8 @@ class User(BaseModel):
|
|
|
88
89
|
if value is None:
|
|
89
90
|
return value
|
|
90
91
|
|
|
91
|
-
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']):
|
|
92
|
-
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')")
|
|
92
|
+
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']):
|
|
93
|
+
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')")
|
|
93
94
|
return value
|
|
94
95
|
|
|
95
96
|
@field_validator('language')
|
|
@@ -157,6 +158,9 @@ class User(BaseModel):
|
|
|
157
158
|
# override the default output from pydantic by calling `to_dict()` of logo
|
|
158
159
|
if self.logo:
|
|
159
160
|
_dict['logo'] = self.logo.to_dict()
|
|
161
|
+
# override the default output from pydantic by calling `to_dict()` of selected_org
|
|
162
|
+
if self.selected_org:
|
|
163
|
+
_dict['selectedOrg'] = self.selected_org.to_dict()
|
|
160
164
|
# override the default output from pydantic by calling `to_dict()` of each item in user_dataset (list)
|
|
161
165
|
_items = []
|
|
162
166
|
if self.user_dataset:
|
|
@@ -310,6 +314,7 @@ class User(BaseModel):
|
|
|
310
314
|
"userChatbotSetting": UserChatbotSetting.from_dict(obj["userChatbotSetting"]) if obj.get("userChatbotSetting") is not None else None,
|
|
311
315
|
"userLlmFeatures": UserLlmFeatures.from_dict(obj["userLlmFeatures"]) if obj.get("userLlmFeatures") is not None else None,
|
|
312
316
|
"logo": Logo.from_dict(obj["logo"]) if obj.get("logo") is not None else None,
|
|
317
|
+
"selectedOrg": Organization.from_dict(obj["selectedOrg"]) if obj.get("selectedOrg") is not None else None,
|
|
313
318
|
"userDataset": [UserDataset.from_dict(_item) for _item in obj["userDataset"]] if obj.get("userDataset") is not None else None,
|
|
314
319
|
"userDatasetShared": [UserDatasetShared.from_dict(_item) for _item in obj["userDatasetShared"]] if obj.get("userDatasetShared") is not None else None,
|
|
315
320
|
"favoriteDataset": [UserDataset.from_dict(_item) for _item in obj["favoriteDataset"]] if obj.get("favoriteDataset") is not None else None,
|
|
@@ -327,7 +332,7 @@ class User(BaseModel):
|
|
|
327
332
|
"administeredOrganizations": [Organization.from_dict(_item) for _item in obj["administeredOrganizations"]] if obj.get("administeredOrganizations") is not None else None,
|
|
328
333
|
"userLogs": [UserLog.from_dict(_item) for _item in obj["userLogs"]] if obj.get("userLogs") is not None else None,
|
|
329
334
|
"userInfo": UserInfo.from_dict(obj["userInfo"]) if obj.get("userInfo") is not None else None,
|
|
330
|
-
"
|
|
335
|
+
"selectedOrgId": obj.get("selectedOrgId")
|
|
331
336
|
})
|
|
332
337
|
return _obj
|
|
333
338
|
|
|
@@ -0,0 +1,95 @@
|
|
|
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, StrictFloat, StrictInt, StrictStr
|
|
21
|
+
from typing import Any, ClassVar, Dict, List, Optional, Union
|
|
22
|
+
from typing import Optional, Set
|
|
23
|
+
from typing_extensions import Self
|
|
24
|
+
|
|
25
|
+
class UserCreditsConfigDto(BaseModel):
|
|
26
|
+
"""
|
|
27
|
+
UserCreditsConfigDto
|
|
28
|
+
""" # noqa: E501
|
|
29
|
+
username: Optional[StrictStr] = None
|
|
30
|
+
quota_question_credits: Optional[StrictInt] = Field(default=None, alias="quotaQuestionCredits")
|
|
31
|
+
quota_dataset_number: Optional[StrictInt] = Field(default=None, alias="quotaDatasetNumber")
|
|
32
|
+
quota_dataset_space_mb: Optional[StrictInt] = Field(default=None, alias="quotaDatasetSpaceMb")
|
|
33
|
+
credit_capacity: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, alias="creditCapacity")
|
|
34
|
+
__properties: ClassVar[List[str]] = ["username", "quotaQuestionCredits", "quotaDatasetNumber", "quotaDatasetSpaceMb", "creditCapacity"]
|
|
35
|
+
|
|
36
|
+
model_config = ConfigDict(
|
|
37
|
+
populate_by_name=True,
|
|
38
|
+
validate_assignment=True,
|
|
39
|
+
protected_namespaces=(),
|
|
40
|
+
)
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
def to_str(self) -> str:
|
|
44
|
+
"""Returns the string representation of the model using alias"""
|
|
45
|
+
return pprint.pformat(self.model_dump(by_alias=True))
|
|
46
|
+
|
|
47
|
+
def to_json(self) -> str:
|
|
48
|
+
"""Returns the JSON representation of the model using alias"""
|
|
49
|
+
# TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
|
|
50
|
+
return json.dumps(self.to_dict())
|
|
51
|
+
|
|
52
|
+
@classmethod
|
|
53
|
+
def from_json(cls, json_str: str) -> Optional[Self]:
|
|
54
|
+
"""Create an instance of UserCreditsConfigDto from a JSON string"""
|
|
55
|
+
return cls.from_dict(json.loads(json_str))
|
|
56
|
+
|
|
57
|
+
def to_dict(self) -> Dict[str, Any]:
|
|
58
|
+
"""Return the dictionary representation of the model using alias.
|
|
59
|
+
|
|
60
|
+
This has the following differences from calling pydantic's
|
|
61
|
+
`self.model_dump(by_alias=True)`:
|
|
62
|
+
|
|
63
|
+
* `None` is only added to the output dict for nullable fields that
|
|
64
|
+
were set at model initialization. Other fields with value `None`
|
|
65
|
+
are ignored.
|
|
66
|
+
"""
|
|
67
|
+
excluded_fields: Set[str] = set([
|
|
68
|
+
])
|
|
69
|
+
|
|
70
|
+
_dict = self.model_dump(
|
|
71
|
+
by_alias=True,
|
|
72
|
+
exclude=excluded_fields,
|
|
73
|
+
exclude_none=True,
|
|
74
|
+
)
|
|
75
|
+
return _dict
|
|
76
|
+
|
|
77
|
+
@classmethod
|
|
78
|
+
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
|
|
79
|
+
"""Create an instance of UserCreditsConfigDto from a dict"""
|
|
80
|
+
if obj is None:
|
|
81
|
+
return None
|
|
82
|
+
|
|
83
|
+
if not isinstance(obj, dict):
|
|
84
|
+
return cls.model_validate(obj)
|
|
85
|
+
|
|
86
|
+
_obj = cls.model_validate({
|
|
87
|
+
"username": obj.get("username"),
|
|
88
|
+
"quotaQuestionCredits": obj.get("quotaQuestionCredits"),
|
|
89
|
+
"quotaDatasetNumber": obj.get("quotaDatasetNumber"),
|
|
90
|
+
"quotaDatasetSpaceMb": obj.get("quotaDatasetSpaceMb"),
|
|
91
|
+
"creditCapacity": obj.get("creditCapacity")
|
|
92
|
+
})
|
|
93
|
+
return _obj
|
|
94
|
+
|
|
95
|
+
|
|
@@ -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 datetime import datetime
|
|
21
|
+
from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt
|
|
22
|
+
from typing import Any, ClassVar, Dict, List, Optional, Union
|
|
23
|
+
from typing import Optional, Set
|
|
24
|
+
from typing_extensions import Self
|
|
25
|
+
|
|
26
|
+
class UserCreditsDto(BaseModel):
|
|
27
|
+
"""
|
|
28
|
+
UserCreditsDto
|
|
29
|
+
""" # noqa: E501
|
|
30
|
+
quota_dataset_number: Optional[StrictInt] = Field(default=None, alias="quotaDatasetNumber")
|
|
31
|
+
quota_dataset_number_used: Optional[StrictInt] = Field(default=None, alias="quotaDatasetNumberUsed")
|
|
32
|
+
quota_dataset_space_mb: Optional[StrictInt] = Field(default=None, alias="quotaDatasetSpaceMb")
|
|
33
|
+
quota_dataset_space_mb_used: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, alias="quotaDatasetSpaceMbUsed")
|
|
34
|
+
question_credits_start: Optional[datetime] = Field(default=None, alias="questionCreditsStart")
|
|
35
|
+
quota_question_credits: Optional[StrictInt] = Field(default=None, alias="quotaQuestionCredits")
|
|
36
|
+
quota_question_credits_used: Optional[StrictInt] = Field(default=None, alias="quotaQuestionCreditsUsed")
|
|
37
|
+
credit_capacity: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, alias="creditCapacity")
|
|
38
|
+
credit_usage: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, alias="creditUsage")
|
|
39
|
+
__properties: ClassVar[List[str]] = ["quotaDatasetNumber", "quotaDatasetNumberUsed", "quotaDatasetSpaceMb", "quotaDatasetSpaceMbUsed", "questionCreditsStart", "quotaQuestionCredits", "quotaQuestionCreditsUsed", "creditCapacity", "creditUsage"]
|
|
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 UserCreditsDto 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 UserCreditsDto 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
|
+
"quotaDatasetNumber": obj.get("quotaDatasetNumber"),
|
|
93
|
+
"quotaDatasetNumberUsed": obj.get("quotaDatasetNumberUsed"),
|
|
94
|
+
"quotaDatasetSpaceMb": obj.get("quotaDatasetSpaceMb"),
|
|
95
|
+
"quotaDatasetSpaceMbUsed": obj.get("quotaDatasetSpaceMbUsed"),
|
|
96
|
+
"questionCreditsStart": obj.get("questionCreditsStart"),
|
|
97
|
+
"quotaQuestionCredits": obj.get("quotaQuestionCredits"),
|
|
98
|
+
"quotaQuestionCreditsUsed": obj.get("quotaQuestionCreditsUsed"),
|
|
99
|
+
"creditCapacity": obj.get("creditCapacity"),
|
|
100
|
+
"creditUsage": obj.get("creditUsage")
|
|
101
|
+
})
|
|
102
|
+
return _obj
|
|
103
|
+
|
|
104
|
+
|
|
@@ -46,11 +46,13 @@ class UserDataset(BaseModel):
|
|
|
46
46
|
shared_users: Optional[List[UserDatasetShared]] = Field(default=None, alias="sharedUsers")
|
|
47
47
|
shared_team_accesses: Optional[List[SharedTeamAccess]] = Field(default=None, alias="sharedTeamAccesses")
|
|
48
48
|
shared_organization_accesses: Optional[List[SharedOrganizationAccess]] = Field(default=None, alias="sharedOrganizationAccesses")
|
|
49
|
-
|
|
49
|
+
mcp_tool_selections: Optional[List[UserDatasetMcpToolSelection]] = Field(default=None, alias="mcpToolSelections")
|
|
50
|
+
ai_assistant_restricted_domains: Optional[List[AiAssistantRestrictedDomain]] = Field(default=None, alias="aiAssistantRestrictedDomains")
|
|
50
51
|
entity_description: Optional[EntityDescription] = Field(default=None, alias="entityDescription")
|
|
51
52
|
logo: Optional[Logo] = None
|
|
52
53
|
llm_consumptions: Optional[List[LlmConsumption]] = Field(default=None, alias="llmConsumptions")
|
|
53
|
-
|
|
54
|
+
embedder_consumptions: Optional[List[EmbedderConsumption]] = Field(default=None, alias="embedderConsumptions")
|
|
55
|
+
__properties: ClassVar[List[str]] = ["id", "dataset", "name", "description", "user", "uploaded", "indexed", "access", "accessType", "size", "created", "indexType", "languages", "assistantTemplatePublished", "sharedUsers", "sharedTeamAccesses", "sharedOrganizationAccesses", "mcpToolSelections", "aiAssistantRestrictedDomains", "entityDescription", "logo", "llmConsumptions", "embedderConsumptions"]
|
|
54
56
|
|
|
55
57
|
@field_validator('access_type')
|
|
56
58
|
def access_type_validate_enum(cls, value):
|
|
@@ -125,13 +127,20 @@ class UserDataset(BaseModel):
|
|
|
125
127
|
if _item_shared_organization_accesses:
|
|
126
128
|
_items.append(_item_shared_organization_accesses.to_dict())
|
|
127
129
|
_dict['sharedOrganizationAccesses'] = _items
|
|
128
|
-
# override the default output from pydantic by calling `to_dict()` of each item in
|
|
130
|
+
# override the default output from pydantic by calling `to_dict()` of each item in mcp_tool_selections (list)
|
|
129
131
|
_items = []
|
|
130
|
-
if self.
|
|
131
|
-
for
|
|
132
|
-
if
|
|
133
|
-
_items.append(
|
|
134
|
-
_dict['
|
|
132
|
+
if self.mcp_tool_selections:
|
|
133
|
+
for _item_mcp_tool_selections in self.mcp_tool_selections:
|
|
134
|
+
if _item_mcp_tool_selections:
|
|
135
|
+
_items.append(_item_mcp_tool_selections.to_dict())
|
|
136
|
+
_dict['mcpToolSelections'] = _items
|
|
137
|
+
# override the default output from pydantic by calling `to_dict()` of each item in ai_assistant_restricted_domains (list)
|
|
138
|
+
_items = []
|
|
139
|
+
if self.ai_assistant_restricted_domains:
|
|
140
|
+
for _item_ai_assistant_restricted_domains in self.ai_assistant_restricted_domains:
|
|
141
|
+
if _item_ai_assistant_restricted_domains:
|
|
142
|
+
_items.append(_item_ai_assistant_restricted_domains.to_dict())
|
|
143
|
+
_dict['aiAssistantRestrictedDomains'] = _items
|
|
135
144
|
# override the default output from pydantic by calling `to_dict()` of entity_description
|
|
136
145
|
if self.entity_description:
|
|
137
146
|
_dict['entityDescription'] = self.entity_description.to_dict()
|
|
@@ -145,6 +154,13 @@ class UserDataset(BaseModel):
|
|
|
145
154
|
if _item_llm_consumptions:
|
|
146
155
|
_items.append(_item_llm_consumptions.to_dict())
|
|
147
156
|
_dict['llmConsumptions'] = _items
|
|
157
|
+
# override the default output from pydantic by calling `to_dict()` of each item in embedder_consumptions (list)
|
|
158
|
+
_items = []
|
|
159
|
+
if self.embedder_consumptions:
|
|
160
|
+
for _item_embedder_consumptions in self.embedder_consumptions:
|
|
161
|
+
if _item_embedder_consumptions:
|
|
162
|
+
_items.append(_item_embedder_consumptions.to_dict())
|
|
163
|
+
_dict['embedderConsumptions'] = _items
|
|
148
164
|
return _dict
|
|
149
165
|
|
|
150
166
|
@classmethod
|
|
@@ -174,18 +190,22 @@ class UserDataset(BaseModel):
|
|
|
174
190
|
"sharedUsers": [UserDatasetShared.from_dict(_item) for _item in obj["sharedUsers"]] if obj.get("sharedUsers") is not None else None,
|
|
175
191
|
"sharedTeamAccesses": [SharedTeamAccess.from_dict(_item) for _item in obj["sharedTeamAccesses"]] if obj.get("sharedTeamAccesses") is not None else None,
|
|
176
192
|
"sharedOrganizationAccesses": [SharedOrganizationAccess.from_dict(_item) for _item in obj["sharedOrganizationAccesses"]] if obj.get("sharedOrganizationAccesses") is not None else None,
|
|
177
|
-
"
|
|
193
|
+
"mcpToolSelections": [UserDatasetMcpToolSelection.from_dict(_item) for _item in obj["mcpToolSelections"]] if obj.get("mcpToolSelections") is not None else None,
|
|
194
|
+
"aiAssistantRestrictedDomains": [AiAssistantRestrictedDomain.from_dict(_item) for _item in obj["aiAssistantRestrictedDomains"]] if obj.get("aiAssistantRestrictedDomains") is not None else None,
|
|
178
195
|
"entityDescription": EntityDescription.from_dict(obj["entityDescription"]) if obj.get("entityDescription") is not None else None,
|
|
179
196
|
"logo": Logo.from_dict(obj["logo"]) if obj.get("logo") is not None else None,
|
|
180
|
-
"llmConsumptions": [LlmConsumption.from_dict(_item) for _item in obj["llmConsumptions"]] if obj.get("llmConsumptions") is not None else None
|
|
197
|
+
"llmConsumptions": [LlmConsumption.from_dict(_item) for _item in obj["llmConsumptions"]] if obj.get("llmConsumptions") is not None else None,
|
|
198
|
+
"embedderConsumptions": [EmbedderConsumption.from_dict(_item) for _item in obj["embedderConsumptions"]] if obj.get("embedderConsumptions") is not None else None
|
|
181
199
|
})
|
|
182
200
|
return _obj
|
|
183
201
|
|
|
202
|
+
from qanswer_sdk.models.ai_assistant_restricted_domain import AiAssistantRestrictedDomain
|
|
203
|
+
from qanswer_sdk.models.embedder_consumption import EmbedderConsumption
|
|
184
204
|
from qanswer_sdk.models.llm_consumption import LlmConsumption
|
|
185
205
|
from qanswer_sdk.models.shared_organization_access import SharedOrganizationAccess
|
|
186
206
|
from qanswer_sdk.models.shared_team_access import SharedTeamAccess
|
|
187
207
|
from qanswer_sdk.models.user import User
|
|
188
|
-
from qanswer_sdk.models.
|
|
208
|
+
from qanswer_sdk.models.user_dataset_mcp_tool_selection import UserDatasetMcpToolSelection
|
|
189
209
|
from qanswer_sdk.models.user_dataset_shared import UserDatasetShared
|
|
190
210
|
# TODO: Rewrite to not use raise_errors
|
|
191
211
|
UserDataset.model_rebuild(raise_errors=False)
|
|
@@ -17,22 +17,25 @@ 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, StrictStr
|
|
21
22
|
from typing import Any, ClassVar, Dict, List, Optional
|
|
22
|
-
from qanswer_sdk.models.relation_value_output import RelationValueOutput
|
|
23
|
-
from qanswer_sdk.models.subject_model import SubjectModel
|
|
24
23
|
from typing import Optional, Set
|
|
25
24
|
from typing_extensions import Self
|
|
26
25
|
|
|
27
|
-
class
|
|
26
|
+
class UserDatasetMcpToolSelection(BaseModel):
|
|
28
27
|
"""
|
|
29
|
-
|
|
28
|
+
UserDatasetMcpToolSelection
|
|
30
29
|
""" # noqa: E501
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
30
|
+
id: Optional[StrictInt] = None
|
|
31
|
+
user_dataset: Optional[UserDataset] = Field(default=None, alias="userDataset")
|
|
32
|
+
mcp_tool: Optional[McpTool] = Field(default=None, alias="mcpTool")
|
|
33
|
+
enabled: Optional[StrictBool] = None
|
|
34
|
+
ask_for_confirmation: Optional[StrictBool] = Field(default=None, alias="askForConfirmation")
|
|
35
|
+
created: Optional[datetime] = None
|
|
36
|
+
updated: Optional[datetime] = None
|
|
37
|
+
server_uid: Optional[StrictStr] = Field(default=None, alias="serverUid")
|
|
38
|
+
__properties: ClassVar[List[str]] = ["id", "userDataset", "mcpTool", "enabled", "askForConfirmation", "created", "updated", "serverUid"]
|
|
36
39
|
|
|
37
40
|
model_config = ConfigDict(
|
|
38
41
|
populate_by_name=True,
|
|
@@ -52,7 +55,7 @@ class RelationExtractionRowOutput(BaseModel):
|
|
|
52
55
|
|
|
53
56
|
@classmethod
|
|
54
57
|
def from_json(cls, json_str: str) -> Optional[Self]:
|
|
55
|
-
"""Create an instance of
|
|
58
|
+
"""Create an instance of UserDatasetMcpToolSelection from a JSON string"""
|
|
56
59
|
return cls.from_dict(json.loads(json_str))
|
|
57
60
|
|
|
58
61
|
def to_dict(self) -> Dict[str, Any]:
|
|
@@ -73,21 +76,17 @@ class RelationExtractionRowOutput(BaseModel):
|
|
|
73
76
|
exclude=excluded_fields,
|
|
74
77
|
exclude_none=True,
|
|
75
78
|
)
|
|
76
|
-
# override the default output from pydantic by calling `to_dict()` of
|
|
77
|
-
if self.
|
|
78
|
-
_dict['
|
|
79
|
-
# override the default output from pydantic by calling `to_dict()` of
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
for _item_relations in self.relations:
|
|
83
|
-
if _item_relations:
|
|
84
|
-
_items.append(_item_relations.to_dict())
|
|
85
|
-
_dict['relations'] = _items
|
|
79
|
+
# override the default output from pydantic by calling `to_dict()` of user_dataset
|
|
80
|
+
if self.user_dataset:
|
|
81
|
+
_dict['userDataset'] = self.user_dataset.to_dict()
|
|
82
|
+
# override the default output from pydantic by calling `to_dict()` of mcp_tool
|
|
83
|
+
if self.mcp_tool:
|
|
84
|
+
_dict['mcpTool'] = self.mcp_tool.to_dict()
|
|
86
85
|
return _dict
|
|
87
86
|
|
|
88
87
|
@classmethod
|
|
89
88
|
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
|
|
90
|
-
"""Create an instance of
|
|
89
|
+
"""Create an instance of UserDatasetMcpToolSelection from a dict"""
|
|
91
90
|
if obj is None:
|
|
92
91
|
return None
|
|
93
92
|
|
|
@@ -95,11 +94,19 @@ class RelationExtractionRowOutput(BaseModel):
|
|
|
95
94
|
return cls.model_validate(obj)
|
|
96
95
|
|
|
97
96
|
_obj = cls.model_validate({
|
|
98
|
-
"
|
|
99
|
-
"
|
|
100
|
-
"
|
|
101
|
-
"
|
|
97
|
+
"id": obj.get("id"),
|
|
98
|
+
"userDataset": UserDataset.from_dict(obj["userDataset"]) if obj.get("userDataset") is not None else None,
|
|
99
|
+
"mcpTool": McpTool.from_dict(obj["mcpTool"]) if obj.get("mcpTool") is not None else None,
|
|
100
|
+
"enabled": obj.get("enabled"),
|
|
101
|
+
"askForConfirmation": obj.get("askForConfirmation"),
|
|
102
|
+
"created": obj.get("created"),
|
|
103
|
+
"updated": obj.get("updated"),
|
|
104
|
+
"serverUid": obj.get("serverUid")
|
|
102
105
|
})
|
|
103
106
|
return _obj
|
|
104
107
|
|
|
108
|
+
from qanswer_sdk.models.mcp_tool import McpTool
|
|
109
|
+
from qanswer_sdk.models.user_dataset import UserDataset
|
|
110
|
+
# TODO: Rewrite to not use raise_errors
|
|
111
|
+
UserDatasetMcpToolSelection.model_rebuild(raise_errors=False)
|
|
105
112
|
|
|
@@ -30,11 +30,12 @@ class UserDatasetMcpToolSelectionDto(BaseModel):
|
|
|
30
30
|
id: Optional[StrictInt] = None
|
|
31
31
|
assistant_id: Optional[StrictInt] = Field(default=None, alias="assistantId")
|
|
32
32
|
tool_uid: Optional[StrictStr] = Field(default=None, alias="toolUid")
|
|
33
|
+
server_uid: Optional[StrictStr] = Field(default=None, alias="serverUid")
|
|
33
34
|
enabled: Optional[StrictBool] = None
|
|
34
35
|
ask_for_confirmation: Optional[StrictBool] = Field(default=None, alias="askForConfirmation")
|
|
35
36
|
created: Optional[datetime] = None
|
|
36
37
|
updated: Optional[datetime] = None
|
|
37
|
-
__properties: ClassVar[List[str]] = ["id", "assistantId", "toolUid", "enabled", "askForConfirmation", "created", "updated"]
|
|
38
|
+
__properties: ClassVar[List[str]] = ["id", "assistantId", "toolUid", "serverUid", "enabled", "askForConfirmation", "created", "updated"]
|
|
38
39
|
|
|
39
40
|
model_config = ConfigDict(
|
|
40
41
|
populate_by_name=True,
|
|
@@ -90,6 +91,7 @@ class UserDatasetMcpToolSelectionDto(BaseModel):
|
|
|
90
91
|
"id": obj.get("id"),
|
|
91
92
|
"assistantId": obj.get("assistantId"),
|
|
92
93
|
"toolUid": obj.get("toolUid"),
|
|
94
|
+
"serverUid": obj.get("serverUid"),
|
|
93
95
|
"enabled": obj.get("enabled"),
|
|
94
96
|
"askForConfirmation": obj.get("askForConfirmation"),
|
|
95
97
|
"created": obj.get("created"),
|
|
@@ -34,7 +34,8 @@ class UserFilterDto(BaseModel):
|
|
|
34
34
|
size: Optional[StrictInt] = None
|
|
35
35
|
sort_by: Optional[StrictStr] = Field(default=None, alias="sortBy")
|
|
36
36
|
sort_dir: Optional[StrictStr] = Field(default=None, alias="sortDir")
|
|
37
|
-
|
|
37
|
+
only_org_id: Optional[StrictInt] = Field(default=None, alias="onlyOrgId")
|
|
38
|
+
__properties: ClassVar[List[str]] = ["search", "userId", "organizationId", "teamId", "page", "size", "sortBy", "sortDir", "onlyOrgId"]
|
|
38
39
|
|
|
39
40
|
model_config = ConfigDict(
|
|
40
41
|
populate_by_name=True,
|
|
@@ -94,7 +95,8 @@ class UserFilterDto(BaseModel):
|
|
|
94
95
|
"page": obj.get("page"),
|
|
95
96
|
"size": obj.get("size"),
|
|
96
97
|
"sortBy": obj.get("sortBy"),
|
|
97
|
-
"sortDir": obj.get("sortDir")
|
|
98
|
+
"sortDir": obj.get("sortDir"),
|
|
99
|
+
"onlyOrgId": obj.get("onlyOrgId")
|
|
98
100
|
})
|
|
99
101
|
return _obj
|
|
100
102
|
|
|
@@ -17,22 +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.relation_value_input import RelationValueInput
|
|
23
|
-
from qanswer_sdk.models.subject_model import SubjectModel
|
|
24
23
|
from typing import Optional, Set
|
|
25
24
|
from typing_extensions import Self
|
|
26
25
|
|
|
27
|
-
class
|
|
26
|
+
class UserMcpToolSelection(BaseModel):
|
|
28
27
|
"""
|
|
29
|
-
|
|
28
|
+
UserMcpToolSelection
|
|
30
29
|
""" # noqa: E501
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
30
|
+
id: Optional[StrictInt] = None
|
|
31
|
+
user: Optional[User] = None
|
|
32
|
+
mcp_tool: Optional[McpTool] = Field(default=None, alias="mcpTool")
|
|
33
|
+
enabled: Optional[StrictBool] = None
|
|
34
|
+
ask_for_confirmation: Optional[StrictBool] = Field(default=None, alias="askForConfirmation")
|
|
35
|
+
created: Optional[datetime] = None
|
|
36
|
+
updated: Optional[datetime] = None
|
|
37
|
+
__properties: ClassVar[List[str]] = ["id", "user", "mcpTool", "enabled", "askForConfirmation", "created", "updated"]
|
|
36
38
|
|
|
37
39
|
model_config = ConfigDict(
|
|
38
40
|
populate_by_name=True,
|
|
@@ -52,7 +54,7 @@ class RelationExtractionRowInput(BaseModel):
|
|
|
52
54
|
|
|
53
55
|
@classmethod
|
|
54
56
|
def from_json(cls, json_str: str) -> Optional[Self]:
|
|
55
|
-
"""Create an instance of
|
|
57
|
+
"""Create an instance of UserMcpToolSelection from a JSON string"""
|
|
56
58
|
return cls.from_dict(json.loads(json_str))
|
|
57
59
|
|
|
58
60
|
def to_dict(self) -> Dict[str, Any]:
|
|
@@ -73,21 +75,17 @@ class RelationExtractionRowInput(BaseModel):
|
|
|
73
75
|
exclude=excluded_fields,
|
|
74
76
|
exclude_none=True,
|
|
75
77
|
)
|
|
76
|
-
# override the default output from pydantic by calling `to_dict()` of
|
|
77
|
-
if self.
|
|
78
|
-
_dict['
|
|
79
|
-
# override the default output from pydantic by calling `to_dict()` of
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
for _item_relations in self.relations:
|
|
83
|
-
if _item_relations:
|
|
84
|
-
_items.append(_item_relations.to_dict())
|
|
85
|
-
_dict['relations'] = _items
|
|
78
|
+
# override the default output from pydantic by calling `to_dict()` of user
|
|
79
|
+
if self.user:
|
|
80
|
+
_dict['user'] = self.user.to_dict()
|
|
81
|
+
# override the default output from pydantic by calling `to_dict()` of mcp_tool
|
|
82
|
+
if self.mcp_tool:
|
|
83
|
+
_dict['mcpTool'] = self.mcp_tool.to_dict()
|
|
86
84
|
return _dict
|
|
87
85
|
|
|
88
86
|
@classmethod
|
|
89
87
|
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
|
|
90
|
-
"""Create an instance of
|
|
88
|
+
"""Create an instance of UserMcpToolSelection from a dict"""
|
|
91
89
|
if obj is None:
|
|
92
90
|
return None
|
|
93
91
|
|
|
@@ -95,11 +93,18 @@ class RelationExtractionRowInput(BaseModel):
|
|
|
95
93
|
return cls.model_validate(obj)
|
|
96
94
|
|
|
97
95
|
_obj = cls.model_validate({
|
|
98
|
-
"
|
|
99
|
-
"
|
|
100
|
-
"
|
|
101
|
-
"
|
|
96
|
+
"id": obj.get("id"),
|
|
97
|
+
"user": User.from_dict(obj["user"]) if obj.get("user") is not None else None,
|
|
98
|
+
"mcpTool": McpTool.from_dict(obj["mcpTool"]) if obj.get("mcpTool") is not None else None,
|
|
99
|
+
"enabled": obj.get("enabled"),
|
|
100
|
+
"askForConfirmation": obj.get("askForConfirmation"),
|
|
101
|
+
"created": obj.get("created"),
|
|
102
|
+
"updated": obj.get("updated")
|
|
102
103
|
})
|
|
103
104
|
return _obj
|
|
104
105
|
|
|
106
|
+
from qanswer_sdk.models.mcp_tool import McpTool
|
|
107
|
+
from qanswer_sdk.models.user import User
|
|
108
|
+
# TODO: Rewrite to not use raise_errors
|
|
109
|
+
UserMcpToolSelection.model_rebuild(raise_errors=False)
|
|
105
110
|
|
|
@@ -29,11 +29,12 @@ class UserMcpToolSelectionDto(BaseModel):
|
|
|
29
29
|
""" # noqa: E501
|
|
30
30
|
id: Optional[StrictInt] = None
|
|
31
31
|
tool_uid: Optional[StrictStr] = Field(default=None, alias="toolUid")
|
|
32
|
+
server_uid: Optional[StrictStr] = Field(default=None, alias="serverUid")
|
|
32
33
|
enabled: Optional[StrictBool] = None
|
|
33
34
|
ask_for_confirmation: Optional[StrictBool] = Field(default=None, alias="askForConfirmation")
|
|
34
35
|
created: Optional[datetime] = None
|
|
35
36
|
updated: Optional[datetime] = None
|
|
36
|
-
__properties: ClassVar[List[str]] = ["id", "toolUid", "enabled", "askForConfirmation", "created", "updated"]
|
|
37
|
+
__properties: ClassVar[List[str]] = ["id", "toolUid", "serverUid", "enabled", "askForConfirmation", "created", "updated"]
|
|
37
38
|
|
|
38
39
|
model_config = ConfigDict(
|
|
39
40
|
populate_by_name=True,
|
|
@@ -88,6 +89,7 @@ class UserMcpToolSelectionDto(BaseModel):
|
|
|
88
89
|
_obj = cls.model_validate({
|
|
89
90
|
"id": obj.get("id"),
|
|
90
91
|
"toolUid": obj.get("toolUid"),
|
|
92
|
+
"serverUid": obj.get("serverUid"),
|
|
91
93
|
"enabled": obj.get("enabled"),
|
|
92
94
|
"askForConfirmation": obj.get("askForConfirmation"),
|
|
93
95
|
"created": obj.get("created"),
|