qanswer_sdk 3.1212.0__py3-none-any.whl → 3.1244.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.
Files changed (140) hide show
  1. qanswer_sdk/__init__.py +66 -43
  2. qanswer_sdk/api/__init__.py +7 -4
  3. qanswer_sdk/api/admin_api.py +590 -7695
  4. qanswer_sdk/api/ai_assistant_access_rights_api.py +72 -73
  5. qanswer_sdk/api/ai_assistant_api.py +567 -46
  6. qanswer_sdk/api/branding_api.py +4578 -0
  7. qanswer_sdk/api/chatbot_api.py +72 -87
  8. qanswer_sdk/api/{tag_api.py → connector_imap_connector_api.py} +415 -997
  9. qanswer_sdk/api/connector_rdf_api.py +30 -31
  10. qanswer_sdk/api/connectors_api.py +183 -166
  11. qanswer_sdk/api/connectors_data_api.py +345 -1
  12. qanswer_sdk/api/dataset_config_api.py +0 -245
  13. qanswer_sdk/api/llm_api.py +30 -30
  14. qanswer_sdk/api/payment_api.py +17 -16
  15. qanswer_sdk/api/speech_to_text_api.py +2 -2
  16. qanswer_sdk/api/task_chat_api.py +8 -7
  17. qanswer_sdk/api/task_rdf_linker_api.py +35 -36
  18. qanswer_sdk/api/task_rdf_sparql_endpoint_api.py +16 -16
  19. qanswer_sdk/api/task_report_copilot_api.py +895 -281
  20. qanswer_sdk/api/task_search_api.py +8 -7
  21. qanswer_sdk/api/tool_embedder_api.py +4040 -0
  22. qanswer_sdk/api/{user_api.py → tool_llm_api.py} +735 -2749
  23. qanswer_sdk/api/unit_organizations_api.py +4547 -0
  24. qanswer_sdk/api/unit_teams_api.py +3906 -0
  25. qanswer_sdk/api/{organizations_teams_api.py → unit_user_api.py} +1345 -1394
  26. qanswer_sdk/api_client.py +1 -1
  27. qanswer_sdk/configuration.py +1 -1
  28. qanswer_sdk/models/__init__.py +58 -38
  29. qanswer_sdk/models/aggregation.py +2 -2
  30. qanswer_sdk/models/ai_assistant_filter_dto.py +105 -0
  31. qanswer_sdk/models/{user_profile_paginated.py → ai_assistant_list.py} +18 -18
  32. qanswer_sdk/models/{embedding_model.py → available_aggregation.py} +13 -11
  33. qanswer_sdk/models/available_connectors_response.py +2 -2
  34. qanswer_sdk/models/{branding_data.py → branding_app_title.py} +4 -4
  35. qanswer_sdk/models/{api_response.py → branding_system_message.py} +8 -8
  36. qanswer_sdk/models/chat_task_settings.py +12 -12
  37. qanswer_sdk/models/chat_task_update.py +13 -5
  38. qanswer_sdk/models/chatbot_chat_payload.py +19 -2
  39. qanswer_sdk/models/chatbot_conversation_model.py +10 -0
  40. qanswer_sdk/models/chatbot_response.py +22 -2
  41. qanswer_sdk/models/{user_chatbot_setting_payload.py → chatbot_setting_dto.py} +12 -13
  42. qanswer_sdk/models/chatbot_setting_request.py +96 -0
  43. qanswer_sdk/models/{question_completion.py → clip_connector_file_structure.py} +9 -9
  44. qanswer_sdk/models/clip_connector_structure.py +97 -0
  45. qanswer_sdk/models/connector_model.py +2 -2
  46. qanswer_sdk/models/conversation_message.py +4 -12
  47. qanswer_sdk/models/{cost_summary.py → cost_summary_dto.py} +4 -4
  48. qanswer_sdk/models/create_connector_request.py +4 -2
  49. qanswer_sdk/models/create_imap_connector_request.py +105 -0
  50. qanswer_sdk/models/create_pinecone_connector_request.py +3 -1
  51. qanswer_sdk/models/create_sharepoint_connector_from_certificate_request.py +3 -1
  52. qanswer_sdk/models/create_sharepoint_connector_request.py +3 -1
  53. qanswer_sdk/models/dataset_detail_kg.py +27 -1
  54. qanswer_sdk/models/dataset_schema.py +4 -2
  55. qanswer_sdk/models/dataset_update_object.py +3 -1
  56. qanswer_sdk/models/delete_connector_model.py +2 -2
  57. qanswer_sdk/models/delete_connectors_response.py +2 -4
  58. qanswer_sdk/models/{json_nullable_source_metadata.py → duplicate_report_template_response.py} +11 -9
  59. qanswer_sdk/models/{json_nullable_file_failure_reason.py → email_folder.py} +12 -8
  60. qanswer_sdk/models/{embedding_endpoint.py → embedder_detailed_dto.py} +16 -8
  61. qanswer_sdk/models/{tag_payload.py → embedder_dto.py} +11 -7
  62. qanswer_sdk/models/{pageable_object.py → embedder_list_dto.py} +20 -20
  63. qanswer_sdk/models/embedding_endpoint_create.py +3 -1
  64. qanswer_sdk/models/embedding_endpoint_update.py +4 -2
  65. qanswer_sdk/models/{sort_object.py → entity_description.py} +16 -12
  66. qanswer_sdk/models/{dataset_description.py → entity_description_dto.py} +9 -7
  67. qanswer_sdk/models/file_model.py +2 -2
  68. qanswer_sdk/models/imap_add_payload.py +103 -0
  69. qanswer_sdk/models/imap_additional_fields.py +101 -0
  70. qanswer_sdk/models/imap_file_metadata.py +114 -0
  71. qanswer_sdk/models/imap_search_response.py +113 -0
  72. qanswer_sdk/models/llm.py +129 -0
  73. qanswer_sdk/models/llm_consumption.py +118 -0
  74. qanswer_sdk/models/{pageable.py → llm_context_ranges.py} +14 -13
  75. qanswer_sdk/models/{llm_cost.py → llm_cost_filter.py} +11 -7
  76. qanswer_sdk/models/llm_cost_list.py +101 -0
  77. qanswer_sdk/models/llm_detailed_dto.py +179 -0
  78. qanswer_sdk/models/{llm_details.py → llm_dto.py} +14 -18
  79. qanswer_sdk/models/llm_endpoint.py +8 -2
  80. qanswer_sdk/models/llm_endpoint_read_input.py +173 -0
  81. qanswer_sdk/models/llm_endpoint_read_output.py +173 -0
  82. qanswer_sdk/models/llm_filter_dto.py +99 -0
  83. qanswer_sdk/models/llm_list_detailed_dto.py +101 -0
  84. qanswer_sdk/models/llm_list_dto.py +101 -0
  85. qanswer_sdk/models/modify_connector_request.py +5 -11
  86. qanswer_sdk/models/{o_auth_service.py → o_auth_service_dto.py} +4 -4
  87. qanswer_sdk/models/organization_admin.py +95 -0
  88. qanswer_sdk/models/organization_filter_dto.py +97 -0
  89. qanswer_sdk/models/organization_list_dto.py +101 -0
  90. qanswer_sdk/models/organization_llm.py +103 -0
  91. qanswer_sdk/models/{plan.py → plan_dto.py} +4 -4
  92. qanswer_sdk/models/prompt_token_count_details.py +3 -3
  93. qanswer_sdk/models/rag_payload.py +4 -4
  94. qanswer_sdk/models/rag_response.py +4 -2
  95. qanswer_sdk/models/relation_extraction_task_settings.py +12 -10
  96. qanswer_sdk/models/relation_extraction_task_update.py +14 -4
  97. qanswer_sdk/models/report_copilot_slot_task_settings.py +12 -10
  98. qanswer_sdk/models/report_copilot_slot_task_update.py +13 -3
  99. qanswer_sdk/models/report_copilot_task_settings.py +12 -10
  100. qanswer_sdk/models/report_copilot_task_update.py +14 -4
  101. qanswer_sdk/models/{report_copilot_template.py → report_template.py} +17 -7
  102. qanswer_sdk/models/{report_copilot_create_payload.py → report_template_create_payload.py} +4 -4
  103. qanswer_sdk/models/{report_copilot_template_simplified.py → report_template_simplified.py} +11 -7
  104. qanswer_sdk/models/{report_copilot_export_template_as_docx_payload_simplified.py → report_template_simplified_payload.py} +4 -4
  105. qanswer_sdk/models/{report_copilot_update_payload.py → report_template_update_payload.py} +15 -9
  106. qanswer_sdk/models/search_task_settings.py +12 -12
  107. qanswer_sdk/models/search_task_update.py +13 -3
  108. qanswer_sdk/models/{set_logo1_request.py → set_logo2_request.py} +4 -4
  109. qanswer_sdk/models/shared_organization_access.py +7 -3
  110. qanswer_sdk/models/shared_team_access.py +10 -4
  111. qanswer_sdk/models/slot.py +5 -1
  112. qanswer_sdk/models/slot_update.py +5 -1
  113. qanswer_sdk/models/socket_conversation_message.py +3 -11
  114. qanswer_sdk/models/socket_file_metadata.py +17 -11
  115. qanswer_sdk/models/source_metadata.py +109 -0
  116. qanswer_sdk/models/{tag_qa_list_payload.py → subscription_response.py} +22 -21
  117. qanswer_sdk/models/{team_with_count.py → team_admin.py} +8 -8
  118. qanswer_sdk/models/{team_filter.py → team_filter_dto.py} +16 -6
  119. qanswer_sdk/models/team_list_dto.py +101 -0
  120. qanswer_sdk/models/{available_endpoints_response.py → template_clip_structure_input.py} +14 -14
  121. qanswer_sdk/models/{available_embedding_models_response.py → template_clip_structure_output.py} +14 -14
  122. qanswer_sdk/models/test_imap_connection_payload.py +95 -0
  123. qanswer_sdk/models/text2_sparql_payload.py +4 -4
  124. qanswer_sdk/models/text2_sparql_task_settings.py +12 -10
  125. qanswer_sdk/models/text2_sparql_task_update.py +14 -4
  126. qanswer_sdk/models/{user_chatbot_setting_response.py → user_chatbot_setting.py} +24 -24
  127. qanswer_sdk/models/user_dataset.py +38 -2
  128. qanswer_sdk/models/{qa_metadata_payload.py → user_dataset_shared.py} +27 -37
  129. qanswer_sdk/models/{user_filter.py → user_filter_dto.py} +4 -4
  130. qanswer_sdk/models/{user_profile.py → user_profile_dto.py} +10 -10
  131. qanswer_sdk/models/user_profile_list_dto.py +3 -3
  132. qanswer_sdk/models/widget_configs.py +4 -2
  133. {qanswer_sdk-3.1212.0.dist-info → qanswer_sdk-3.1244.0.dist-info}/METADATA +2 -2
  134. {qanswer_sdk-3.1212.0.dist-info → qanswer_sdk-3.1244.0.dist-info}/RECORD +135 -112
  135. qanswer_sdk/api/llm_consumption_controller_api.py +0 -310
  136. qanswer_sdk/models/organization_filter.py +0 -87
  137. qanswer_sdk/models/page_organization.py +0 -123
  138. qanswer_sdk/models/page_team_with_count.py +0 -123
  139. qanswer_sdk/models/tag_qa_payload.py +0 -91
  140. {qanswer_sdk-3.1212.0.dist-info → qanswer_sdk-3.1244.0.dist-info}/WHEEL +0 -0
@@ -20,14 +20,15 @@ from pydantic import Field, StrictBool, StrictBytes, StrictFloat, StrictInt, Str
20
20
  from typing import List, Optional, Tuple, Union
21
21
  from typing_extensions import Annotated
22
22
  from qanswer_sdk.models.ai_assistant_dto import AiAssistantDto
23
- from qanswer_sdk.models.api_response import ApiResponse
23
+ from qanswer_sdk.models.ai_assistant_filter_dto import AiAssistantFilterDto
24
+ from qanswer_sdk.models.ai_assistant_list import AiAssistantList
24
25
  from qanswer_sdk.models.available_space_quota_for_dataset import AvailableSpaceQuotaForDataset
25
- from qanswer_sdk.models.dataset_description import DatasetDescription
26
26
  from qanswer_sdk.models.dataset_detail import DatasetDetail
27
27
  from qanswer_sdk.models.dataset_schema import DatasetSchema
28
28
  from qanswer_sdk.models.dataset_update_object import DatasetUpdateObject
29
29
  from qanswer_sdk.models.dataset_users_response import DatasetUsersResponse
30
30
  from qanswer_sdk.models.default_prompt import DefaultPrompt
31
+ from qanswer_sdk.models.entity_description_dto import EntityDescriptionDto
31
32
 
32
33
  from qanswer_sdk.api_client import ApiClient, RequestSerialized
33
34
  from qanswer_sdk.api_response import ApiResponse
@@ -1846,7 +1847,7 @@ class AiAssistantApi:
1846
1847
  _content_type: Optional[StrictStr] = None,
1847
1848
  _headers: Optional[Dict[StrictStr, Any]] = None,
1848
1849
  _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1849
- ) -> DatasetDescription:
1850
+ ) -> EntityDescriptionDto:
1850
1851
  """To store the description of a dataset
1851
1852
 
1852
1853
 
@@ -1889,7 +1890,7 @@ class AiAssistantApi:
1889
1890
  )
1890
1891
 
1891
1892
  _response_types_map: Dict[str, Optional[str]] = {
1892
- '200': "DatasetDescription",
1893
+ '200': "EntityDescriptionDto",
1893
1894
  }
1894
1895
  response_data = self.api_client.call_api(
1895
1896
  *_param,
@@ -1920,7 +1921,7 @@ class AiAssistantApi:
1920
1921
  _content_type: Optional[StrictStr] = None,
1921
1922
  _headers: Optional[Dict[StrictStr, Any]] = None,
1922
1923
  _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1923
- ) -> ApiResponse[DatasetDescription]:
1924
+ ) -> ApiResponse[EntityDescriptionDto]:
1924
1925
  """To store the description of a dataset
1925
1926
 
1926
1927
 
@@ -1963,7 +1964,7 @@ class AiAssistantApi:
1963
1964
  )
1964
1965
 
1965
1966
  _response_types_map: Dict[str, Optional[str]] = {
1966
- '200': "DatasetDescription",
1967
+ '200': "EntityDescriptionDto",
1967
1968
  }
1968
1969
  response_data = self.api_client.call_api(
1969
1970
  *_param,
@@ -2037,7 +2038,7 @@ class AiAssistantApi:
2037
2038
  )
2038
2039
 
2039
2040
  _response_types_map: Dict[str, Optional[str]] = {
2040
- '200': "DatasetDescription",
2041
+ '200': "EntityDescriptionDto",
2041
2042
  }
2042
2043
  response_data = self.api_client.call_api(
2043
2044
  *_param,
@@ -2659,7 +2660,7 @@ class AiAssistantApi:
2659
2660
 
2660
2661
 
2661
2662
  @validate_call
2662
- def get_logo1(
2663
+ def get_logo2(
2663
2664
  self,
2664
2665
  username: StrictStr,
2665
2666
  dataset: StrictStr,
@@ -2708,7 +2709,7 @@ class AiAssistantApi:
2708
2709
  :return: Returns the result object.
2709
2710
  """ # noqa: E501
2710
2711
 
2711
- _param = self._get_logo1_serialize(
2712
+ _param = self._get_logo2_serialize(
2712
2713
  username=username,
2713
2714
  dataset=dataset,
2714
2715
  q_answer_api_key=q_answer_api_key,
@@ -2733,7 +2734,7 @@ class AiAssistantApi:
2733
2734
 
2734
2735
 
2735
2736
  @validate_call
2736
- def get_logo1_with_http_info(
2737
+ def get_logo2_with_http_info(
2737
2738
  self,
2738
2739
  username: StrictStr,
2739
2740
  dataset: StrictStr,
@@ -2782,7 +2783,7 @@ class AiAssistantApi:
2782
2783
  :return: Returns the result object.
2783
2784
  """ # noqa: E501
2784
2785
 
2785
- _param = self._get_logo1_serialize(
2786
+ _param = self._get_logo2_serialize(
2786
2787
  username=username,
2787
2788
  dataset=dataset,
2788
2789
  q_answer_api_key=q_answer_api_key,
@@ -2807,7 +2808,7 @@ class AiAssistantApi:
2807
2808
 
2808
2809
 
2809
2810
  @validate_call
2810
- def get_logo1_without_preload_content(
2811
+ def get_logo2_without_preload_content(
2811
2812
  self,
2812
2813
  username: StrictStr,
2813
2814
  dataset: StrictStr,
@@ -2856,7 +2857,7 @@ class AiAssistantApi:
2856
2857
  :return: Returns the result object.
2857
2858
  """ # noqa: E501
2858
2859
 
2859
- _param = self._get_logo1_serialize(
2860
+ _param = self._get_logo2_serialize(
2860
2861
  username=username,
2861
2862
  dataset=dataset,
2862
2863
  q_answer_api_key=q_answer_api_key,
@@ -2876,7 +2877,7 @@ class AiAssistantApi:
2876
2877
  return response_data.response
2877
2878
 
2878
2879
 
2879
- def _get_logo1_serialize(
2880
+ def _get_logo2_serialize(
2880
2881
  self,
2881
2882
  username,
2882
2883
  dataset,
@@ -2951,6 +2952,265 @@ class AiAssistantApi:
2951
2952
 
2952
2953
 
2953
2954
 
2955
+ @validate_call
2956
+ def get_logo_by_id(
2957
+ self,
2958
+ ai_assistant_id: StrictInt,
2959
+ _request_timeout: Union[
2960
+ None,
2961
+ Annotated[StrictFloat, Field(gt=0)],
2962
+ Tuple[
2963
+ Annotated[StrictFloat, Field(gt=0)],
2964
+ Annotated[StrictFloat, Field(gt=0)]
2965
+ ]
2966
+ ] = None,
2967
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
2968
+ _content_type: Optional[StrictStr] = None,
2969
+ _headers: Optional[Dict[StrictStr, Any]] = None,
2970
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
2971
+ ) -> bytearray:
2972
+ """Get the logo of an ai assistant
2973
+
2974
+
2975
+ :param ai_assistant_id: (required)
2976
+ :type ai_assistant_id: int
2977
+ :param _request_timeout: timeout setting for this request. If one
2978
+ number provided, it will be total request
2979
+ timeout. It can also be a pair (tuple) of
2980
+ (connection, read) timeouts.
2981
+ :type _request_timeout: int, tuple(int, int), optional
2982
+ :param _request_auth: set to override the auth_settings for an a single
2983
+ request; this effectively ignores the
2984
+ authentication in the spec for a single request.
2985
+ :type _request_auth: dict, optional
2986
+ :param _content_type: force content-type for the request.
2987
+ :type _content_type: str, Optional
2988
+ :param _headers: set to override the headers for a single
2989
+ request; this effectively ignores the headers
2990
+ in the spec for a single request.
2991
+ :type _headers: dict, optional
2992
+ :param _host_index: set to override the host_index for a single
2993
+ request; this effectively ignores the host_index
2994
+ in the spec for a single request.
2995
+ :type _host_index: int, optional
2996
+ :return: Returns the result object.
2997
+ """ # noqa: E501
2998
+
2999
+ _param = self._get_logo_by_id_serialize(
3000
+ ai_assistant_id=ai_assistant_id,
3001
+ _request_auth=_request_auth,
3002
+ _content_type=_content_type,
3003
+ _headers=_headers,
3004
+ _host_index=_host_index
3005
+ )
3006
+
3007
+ _response_types_map: Dict[str, Optional[str]] = {
3008
+ '200': "bytearray",
3009
+ }
3010
+ response_data = self.api_client.call_api(
3011
+ *_param,
3012
+ _request_timeout=_request_timeout
3013
+ )
3014
+ response_data.read()
3015
+ return self.api_client.response_deserialize(
3016
+ response_data=response_data,
3017
+ response_types_map=_response_types_map,
3018
+ ).data
3019
+
3020
+
3021
+ @validate_call
3022
+ def get_logo_by_id_with_http_info(
3023
+ self,
3024
+ ai_assistant_id: StrictInt,
3025
+ _request_timeout: Union[
3026
+ None,
3027
+ Annotated[StrictFloat, Field(gt=0)],
3028
+ Tuple[
3029
+ Annotated[StrictFloat, Field(gt=0)],
3030
+ Annotated[StrictFloat, Field(gt=0)]
3031
+ ]
3032
+ ] = None,
3033
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
3034
+ _content_type: Optional[StrictStr] = None,
3035
+ _headers: Optional[Dict[StrictStr, Any]] = None,
3036
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
3037
+ ) -> ApiResponse[bytearray]:
3038
+ """Get the logo of an ai assistant
3039
+
3040
+
3041
+ :param ai_assistant_id: (required)
3042
+ :type ai_assistant_id: int
3043
+ :param _request_timeout: timeout setting for this request. If one
3044
+ number provided, it will be total request
3045
+ timeout. It can also be a pair (tuple) of
3046
+ (connection, read) timeouts.
3047
+ :type _request_timeout: int, tuple(int, int), optional
3048
+ :param _request_auth: set to override the auth_settings for an a single
3049
+ request; this effectively ignores the
3050
+ authentication in the spec for a single request.
3051
+ :type _request_auth: dict, optional
3052
+ :param _content_type: force content-type for the request.
3053
+ :type _content_type: str, Optional
3054
+ :param _headers: set to override the headers for a single
3055
+ request; this effectively ignores the headers
3056
+ in the spec for a single request.
3057
+ :type _headers: dict, optional
3058
+ :param _host_index: set to override the host_index for a single
3059
+ request; this effectively ignores the host_index
3060
+ in the spec for a single request.
3061
+ :type _host_index: int, optional
3062
+ :return: Returns the result object.
3063
+ """ # noqa: E501
3064
+
3065
+ _param = self._get_logo_by_id_serialize(
3066
+ ai_assistant_id=ai_assistant_id,
3067
+ _request_auth=_request_auth,
3068
+ _content_type=_content_type,
3069
+ _headers=_headers,
3070
+ _host_index=_host_index
3071
+ )
3072
+
3073
+ _response_types_map: Dict[str, Optional[str]] = {
3074
+ '200': "bytearray",
3075
+ }
3076
+ response_data = self.api_client.call_api(
3077
+ *_param,
3078
+ _request_timeout=_request_timeout
3079
+ )
3080
+ response_data.read()
3081
+ return self.api_client.response_deserialize(
3082
+ response_data=response_data,
3083
+ response_types_map=_response_types_map,
3084
+ )
3085
+
3086
+
3087
+ @validate_call
3088
+ def get_logo_by_id_without_preload_content(
3089
+ self,
3090
+ ai_assistant_id: StrictInt,
3091
+ _request_timeout: Union[
3092
+ None,
3093
+ Annotated[StrictFloat, Field(gt=0)],
3094
+ Tuple[
3095
+ Annotated[StrictFloat, Field(gt=0)],
3096
+ Annotated[StrictFloat, Field(gt=0)]
3097
+ ]
3098
+ ] = None,
3099
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
3100
+ _content_type: Optional[StrictStr] = None,
3101
+ _headers: Optional[Dict[StrictStr, Any]] = None,
3102
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
3103
+ ) -> RESTResponseType:
3104
+ """Get the logo of an ai assistant
3105
+
3106
+
3107
+ :param ai_assistant_id: (required)
3108
+ :type ai_assistant_id: int
3109
+ :param _request_timeout: timeout setting for this request. If one
3110
+ number provided, it will be total request
3111
+ timeout. It can also be a pair (tuple) of
3112
+ (connection, read) timeouts.
3113
+ :type _request_timeout: int, tuple(int, int), optional
3114
+ :param _request_auth: set to override the auth_settings for an a single
3115
+ request; this effectively ignores the
3116
+ authentication in the spec for a single request.
3117
+ :type _request_auth: dict, optional
3118
+ :param _content_type: force content-type for the request.
3119
+ :type _content_type: str, Optional
3120
+ :param _headers: set to override the headers for a single
3121
+ request; this effectively ignores the headers
3122
+ in the spec for a single request.
3123
+ :type _headers: dict, optional
3124
+ :param _host_index: set to override the host_index for a single
3125
+ request; this effectively ignores the host_index
3126
+ in the spec for a single request.
3127
+ :type _host_index: int, optional
3128
+ :return: Returns the result object.
3129
+ """ # noqa: E501
3130
+
3131
+ _param = self._get_logo_by_id_serialize(
3132
+ ai_assistant_id=ai_assistant_id,
3133
+ _request_auth=_request_auth,
3134
+ _content_type=_content_type,
3135
+ _headers=_headers,
3136
+ _host_index=_host_index
3137
+ )
3138
+
3139
+ _response_types_map: Dict[str, Optional[str]] = {
3140
+ '200': "bytearray",
3141
+ }
3142
+ response_data = self.api_client.call_api(
3143
+ *_param,
3144
+ _request_timeout=_request_timeout
3145
+ )
3146
+ return response_data.response
3147
+
3148
+
3149
+ def _get_logo_by_id_serialize(
3150
+ self,
3151
+ ai_assistant_id,
3152
+ _request_auth,
3153
+ _content_type,
3154
+ _headers,
3155
+ _host_index,
3156
+ ) -> RequestSerialized:
3157
+
3158
+ _host = None
3159
+
3160
+ _collection_formats: Dict[str, str] = {
3161
+ }
3162
+
3163
+ _path_params: Dict[str, str] = {}
3164
+ _query_params: List[Tuple[str, str]] = []
3165
+ _header_params: Dict[str, Optional[str]] = _headers or {}
3166
+ _form_params: List[Tuple[str, str]] = []
3167
+ _files: Dict[
3168
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
3169
+ ] = {}
3170
+ _body_params: Optional[bytes] = None
3171
+
3172
+ # process the path parameters
3173
+ if ai_assistant_id is not None:
3174
+ _path_params['ai_assistant_id'] = ai_assistant_id
3175
+ # process the query parameters
3176
+ # process the header parameters
3177
+ # process the form parameters
3178
+ # process the body parameter
3179
+
3180
+
3181
+ # set the HTTP header `Accept`
3182
+ if 'Accept' not in _header_params:
3183
+ _header_params['Accept'] = self.api_client.select_header_accept(
3184
+ [
3185
+ 'image/png'
3186
+ ]
3187
+ )
3188
+
3189
+
3190
+ # authentication setting
3191
+ _auth_settings: List[str] = [
3192
+ 'QAnswer-Api-Key',
3193
+ 'Bearer'
3194
+ ]
3195
+
3196
+ return self.api_client.param_serialize(
3197
+ method='GET',
3198
+ resource_path='/api/ai-assistant/{ai_assistant_id}/logo',
3199
+ path_params=_path_params,
3200
+ query_params=_query_params,
3201
+ header_params=_header_params,
3202
+ body=_body_params,
3203
+ post_params=_form_params,
3204
+ files=_files,
3205
+ auth_settings=_auth_settings,
3206
+ collection_formats=_collection_formats,
3207
+ _host=_host,
3208
+ _request_auth=_request_auth
3209
+ )
3210
+
3211
+
3212
+
3213
+
2954
3214
  @validate_call
2955
3215
  def remove2(
2956
3216
  self,
@@ -2967,7 +3227,7 @@ class AiAssistantApi:
2967
3227
  _content_type: Optional[StrictStr] = None,
2968
3228
  _headers: Optional[Dict[StrictStr, Any]] = None,
2969
3229
  _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
2970
- ) -> ApiResponse:
3230
+ ) -> str:
2971
3231
  """To remove a specific dataset
2972
3232
 
2973
3233
 
@@ -3004,7 +3264,7 @@ class AiAssistantApi:
3004
3264
  )
3005
3265
 
3006
3266
  _response_types_map: Dict[str, Optional[str]] = {
3007
- '200': "ApiResponse",
3267
+ '200': "str",
3008
3268
  }
3009
3269
  response_data = self.api_client.call_api(
3010
3270
  *_param,
@@ -3033,7 +3293,7 @@ class AiAssistantApi:
3033
3293
  _content_type: Optional[StrictStr] = None,
3034
3294
  _headers: Optional[Dict[StrictStr, Any]] = None,
3035
3295
  _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
3036
- ) -> ApiResponse[ApiResponse]:
3296
+ ) -> ApiResponse[str]:
3037
3297
  """To remove a specific dataset
3038
3298
 
3039
3299
 
@@ -3070,7 +3330,7 @@ class AiAssistantApi:
3070
3330
  )
3071
3331
 
3072
3332
  _response_types_map: Dict[str, Optional[str]] = {
3073
- '200': "ApiResponse",
3333
+ '200': "str",
3074
3334
  }
3075
3335
  response_data = self.api_client.call_api(
3076
3336
  *_param,
@@ -3136,7 +3396,7 @@ class AiAssistantApi:
3136
3396
  )
3137
3397
 
3138
3398
  _response_types_map: Dict[str, Optional[str]] = {
3139
- '200': "ApiResponse",
3399
+ '200': "str",
3140
3400
  }
3141
3401
  response_data = self.api_client.call_api(
3142
3402
  *_param,
@@ -3498,12 +3758,273 @@ class AiAssistantApi:
3498
3758
 
3499
3759
 
3500
3760
 
3761
+ @validate_call
3762
+ def search3(
3763
+ self,
3764
+ filter: AiAssistantFilterDto,
3765
+ _request_timeout: Union[
3766
+ None,
3767
+ Annotated[StrictFloat, Field(gt=0)],
3768
+ Tuple[
3769
+ Annotated[StrictFloat, Field(gt=0)],
3770
+ Annotated[StrictFloat, Field(gt=0)]
3771
+ ]
3772
+ ] = None,
3773
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
3774
+ _content_type: Optional[StrictStr] = None,
3775
+ _headers: Optional[Dict[StrictStr, Any]] = None,
3776
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
3777
+ ) -> AiAssistantList:
3778
+ """Search over all ai assistants
3779
+
3780
+
3781
+ :param filter: (required)
3782
+ :type filter: AiAssistantFilterDto
3783
+ :param _request_timeout: timeout setting for this request. If one
3784
+ number provided, it will be total request
3785
+ timeout. It can also be a pair (tuple) of
3786
+ (connection, read) timeouts.
3787
+ :type _request_timeout: int, tuple(int, int), optional
3788
+ :param _request_auth: set to override the auth_settings for an a single
3789
+ request; this effectively ignores the
3790
+ authentication in the spec for a single request.
3791
+ :type _request_auth: dict, optional
3792
+ :param _content_type: force content-type for the request.
3793
+ :type _content_type: str, Optional
3794
+ :param _headers: set to override the headers for a single
3795
+ request; this effectively ignores the headers
3796
+ in the spec for a single request.
3797
+ :type _headers: dict, optional
3798
+ :param _host_index: set to override the host_index for a single
3799
+ request; this effectively ignores the host_index
3800
+ in the spec for a single request.
3801
+ :type _host_index: int, optional
3802
+ :return: Returns the result object.
3803
+ """ # noqa: E501
3804
+
3805
+ _param = self._search3_serialize(
3806
+ filter=filter,
3807
+ _request_auth=_request_auth,
3808
+ _content_type=_content_type,
3809
+ _headers=_headers,
3810
+ _host_index=_host_index
3811
+ )
3812
+
3813
+ _response_types_map: Dict[str, Optional[str]] = {
3814
+ '200': "AiAssistantList",
3815
+ }
3816
+ response_data = self.api_client.call_api(
3817
+ *_param,
3818
+ _request_timeout=_request_timeout
3819
+ )
3820
+ response_data.read()
3821
+ return self.api_client.response_deserialize(
3822
+ response_data=response_data,
3823
+ response_types_map=_response_types_map,
3824
+ ).data
3825
+
3826
+
3827
+ @validate_call
3828
+ def search3_with_http_info(
3829
+ self,
3830
+ filter: AiAssistantFilterDto,
3831
+ _request_timeout: Union[
3832
+ None,
3833
+ Annotated[StrictFloat, Field(gt=0)],
3834
+ Tuple[
3835
+ Annotated[StrictFloat, Field(gt=0)],
3836
+ Annotated[StrictFloat, Field(gt=0)]
3837
+ ]
3838
+ ] = None,
3839
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
3840
+ _content_type: Optional[StrictStr] = None,
3841
+ _headers: Optional[Dict[StrictStr, Any]] = None,
3842
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
3843
+ ) -> ApiResponse[AiAssistantList]:
3844
+ """Search over all ai assistants
3845
+
3846
+
3847
+ :param filter: (required)
3848
+ :type filter: AiAssistantFilterDto
3849
+ :param _request_timeout: timeout setting for this request. If one
3850
+ number provided, it will be total request
3851
+ timeout. It can also be a pair (tuple) of
3852
+ (connection, read) timeouts.
3853
+ :type _request_timeout: int, tuple(int, int), optional
3854
+ :param _request_auth: set to override the auth_settings for an a single
3855
+ request; this effectively ignores the
3856
+ authentication in the spec for a single request.
3857
+ :type _request_auth: dict, optional
3858
+ :param _content_type: force content-type for the request.
3859
+ :type _content_type: str, Optional
3860
+ :param _headers: set to override the headers for a single
3861
+ request; this effectively ignores the headers
3862
+ in the spec for a single request.
3863
+ :type _headers: dict, optional
3864
+ :param _host_index: set to override the host_index for a single
3865
+ request; this effectively ignores the host_index
3866
+ in the spec for a single request.
3867
+ :type _host_index: int, optional
3868
+ :return: Returns the result object.
3869
+ """ # noqa: E501
3870
+
3871
+ _param = self._search3_serialize(
3872
+ filter=filter,
3873
+ _request_auth=_request_auth,
3874
+ _content_type=_content_type,
3875
+ _headers=_headers,
3876
+ _host_index=_host_index
3877
+ )
3878
+
3879
+ _response_types_map: Dict[str, Optional[str]] = {
3880
+ '200': "AiAssistantList",
3881
+ }
3882
+ response_data = self.api_client.call_api(
3883
+ *_param,
3884
+ _request_timeout=_request_timeout
3885
+ )
3886
+ response_data.read()
3887
+ return self.api_client.response_deserialize(
3888
+ response_data=response_data,
3889
+ response_types_map=_response_types_map,
3890
+ )
3891
+
3892
+
3893
+ @validate_call
3894
+ def search3_without_preload_content(
3895
+ self,
3896
+ filter: AiAssistantFilterDto,
3897
+ _request_timeout: Union[
3898
+ None,
3899
+ Annotated[StrictFloat, Field(gt=0)],
3900
+ Tuple[
3901
+ Annotated[StrictFloat, Field(gt=0)],
3902
+ Annotated[StrictFloat, Field(gt=0)]
3903
+ ]
3904
+ ] = None,
3905
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
3906
+ _content_type: Optional[StrictStr] = None,
3907
+ _headers: Optional[Dict[StrictStr, Any]] = None,
3908
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
3909
+ ) -> RESTResponseType:
3910
+ """Search over all ai assistants
3911
+
3912
+
3913
+ :param filter: (required)
3914
+ :type filter: AiAssistantFilterDto
3915
+ :param _request_timeout: timeout setting for this request. If one
3916
+ number provided, it will be total request
3917
+ timeout. It can also be a pair (tuple) of
3918
+ (connection, read) timeouts.
3919
+ :type _request_timeout: int, tuple(int, int), optional
3920
+ :param _request_auth: set to override the auth_settings for an a single
3921
+ request; this effectively ignores the
3922
+ authentication in the spec for a single request.
3923
+ :type _request_auth: dict, optional
3924
+ :param _content_type: force content-type for the request.
3925
+ :type _content_type: str, Optional
3926
+ :param _headers: set to override the headers for a single
3927
+ request; this effectively ignores the headers
3928
+ in the spec for a single request.
3929
+ :type _headers: dict, optional
3930
+ :param _host_index: set to override the host_index for a single
3931
+ request; this effectively ignores the host_index
3932
+ in the spec for a single request.
3933
+ :type _host_index: int, optional
3934
+ :return: Returns the result object.
3935
+ """ # noqa: E501
3936
+
3937
+ _param = self._search3_serialize(
3938
+ filter=filter,
3939
+ _request_auth=_request_auth,
3940
+ _content_type=_content_type,
3941
+ _headers=_headers,
3942
+ _host_index=_host_index
3943
+ )
3944
+
3945
+ _response_types_map: Dict[str, Optional[str]] = {
3946
+ '200': "AiAssistantList",
3947
+ }
3948
+ response_data = self.api_client.call_api(
3949
+ *_param,
3950
+ _request_timeout=_request_timeout
3951
+ )
3952
+ return response_data.response
3953
+
3954
+
3955
+ def _search3_serialize(
3956
+ self,
3957
+ filter,
3958
+ _request_auth,
3959
+ _content_type,
3960
+ _headers,
3961
+ _host_index,
3962
+ ) -> RequestSerialized:
3963
+
3964
+ _host = None
3965
+
3966
+ _collection_formats: Dict[str, str] = {
3967
+ }
3968
+
3969
+ _path_params: Dict[str, str] = {}
3970
+ _query_params: List[Tuple[str, str]] = []
3971
+ _header_params: Dict[str, Optional[str]] = _headers or {}
3972
+ _form_params: List[Tuple[str, str]] = []
3973
+ _files: Dict[
3974
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
3975
+ ] = {}
3976
+ _body_params: Optional[bytes] = None
3977
+
3978
+ # process the path parameters
3979
+ # process the query parameters
3980
+ if filter is not None:
3981
+
3982
+ _query_params.append(('filter', filter))
3983
+
3984
+ # process the header parameters
3985
+ # process the form parameters
3986
+ # process the body parameter
3987
+
3988
+
3989
+ # set the HTTP header `Accept`
3990
+ if 'Accept' not in _header_params:
3991
+ _header_params['Accept'] = self.api_client.select_header_accept(
3992
+ [
3993
+ '*/*'
3994
+ ]
3995
+ )
3996
+
3997
+
3998
+ # authentication setting
3999
+ _auth_settings: List[str] = [
4000
+ 'QAnswer-Api-Key',
4001
+ 'Bearer'
4002
+ ]
4003
+
4004
+ return self.api_client.param_serialize(
4005
+ method='GET',
4006
+ resource_path='/api/ai-assistant/search',
4007
+ path_params=_path_params,
4008
+ query_params=_query_params,
4009
+ header_params=_header_params,
4010
+ body=_body_params,
4011
+ post_params=_form_params,
4012
+ files=_files,
4013
+ auth_settings=_auth_settings,
4014
+ collection_formats=_collection_formats,
4015
+ _host=_host,
4016
+ _request_auth=_request_auth
4017
+ )
4018
+
4019
+
4020
+
4021
+
3501
4022
  @validate_call
3502
4023
  def set_description(
3503
4024
  self,
3504
4025
  username: StrictStr,
3505
4026
  dataset: StrictStr,
3506
- dataset_description: DatasetDescription,
4027
+ entity_description_dto: EntityDescriptionDto,
3507
4028
  q_answer_api_key: Optional[StrictStr] = None,
3508
4029
  _request_timeout: Union[
3509
4030
  None,
@@ -3517,7 +4038,7 @@ class AiAssistantApi:
3517
4038
  _content_type: Optional[StrictStr] = None,
3518
4039
  _headers: Optional[Dict[StrictStr, Any]] = None,
3519
4040
  _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
3520
- ) -> ApiResponse:
4041
+ ) -> str:
3521
4042
  """To store the description of a dataset
3522
4043
 
3523
4044
 
@@ -3525,8 +4046,8 @@ class AiAssistantApi:
3525
4046
  :type username: str
3526
4047
  :param dataset: (required)
3527
4048
  :type dataset: str
3528
- :param dataset_description: (required)
3529
- :type dataset_description: DatasetDescription
4049
+ :param entity_description_dto: (required)
4050
+ :type entity_description_dto: EntityDescriptionDto
3530
4051
  :param q_answer_api_key:
3531
4052
  :type q_answer_api_key: str
3532
4053
  :param _request_timeout: timeout setting for this request. If one
@@ -3554,7 +4075,7 @@ class AiAssistantApi:
3554
4075
  _param = self._set_description_serialize(
3555
4076
  username=username,
3556
4077
  dataset=dataset,
3557
- dataset_description=dataset_description,
4078
+ entity_description_dto=entity_description_dto,
3558
4079
  q_answer_api_key=q_answer_api_key,
3559
4080
  _request_auth=_request_auth,
3560
4081
  _content_type=_content_type,
@@ -3563,7 +4084,7 @@ class AiAssistantApi:
3563
4084
  )
3564
4085
 
3565
4086
  _response_types_map: Dict[str, Optional[str]] = {
3566
- '200': "ApiResponse",
4087
+ '200': "str",
3567
4088
  }
3568
4089
  response_data = self.api_client.call_api(
3569
4090
  *_param,
@@ -3581,7 +4102,7 @@ class AiAssistantApi:
3581
4102
  self,
3582
4103
  username: StrictStr,
3583
4104
  dataset: StrictStr,
3584
- dataset_description: DatasetDescription,
4105
+ entity_description_dto: EntityDescriptionDto,
3585
4106
  q_answer_api_key: Optional[StrictStr] = None,
3586
4107
  _request_timeout: Union[
3587
4108
  None,
@@ -3595,7 +4116,7 @@ class AiAssistantApi:
3595
4116
  _content_type: Optional[StrictStr] = None,
3596
4117
  _headers: Optional[Dict[StrictStr, Any]] = None,
3597
4118
  _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
3598
- ) -> ApiResponse[ApiResponse]:
4119
+ ) -> ApiResponse[str]:
3599
4120
  """To store the description of a dataset
3600
4121
 
3601
4122
 
@@ -3603,8 +4124,8 @@ class AiAssistantApi:
3603
4124
  :type username: str
3604
4125
  :param dataset: (required)
3605
4126
  :type dataset: str
3606
- :param dataset_description: (required)
3607
- :type dataset_description: DatasetDescription
4127
+ :param entity_description_dto: (required)
4128
+ :type entity_description_dto: EntityDescriptionDto
3608
4129
  :param q_answer_api_key:
3609
4130
  :type q_answer_api_key: str
3610
4131
  :param _request_timeout: timeout setting for this request. If one
@@ -3632,7 +4153,7 @@ class AiAssistantApi:
3632
4153
  _param = self._set_description_serialize(
3633
4154
  username=username,
3634
4155
  dataset=dataset,
3635
- dataset_description=dataset_description,
4156
+ entity_description_dto=entity_description_dto,
3636
4157
  q_answer_api_key=q_answer_api_key,
3637
4158
  _request_auth=_request_auth,
3638
4159
  _content_type=_content_type,
@@ -3641,7 +4162,7 @@ class AiAssistantApi:
3641
4162
  )
3642
4163
 
3643
4164
  _response_types_map: Dict[str, Optional[str]] = {
3644
- '200': "ApiResponse",
4165
+ '200': "str",
3645
4166
  }
3646
4167
  response_data = self.api_client.call_api(
3647
4168
  *_param,
@@ -3659,7 +4180,7 @@ class AiAssistantApi:
3659
4180
  self,
3660
4181
  username: StrictStr,
3661
4182
  dataset: StrictStr,
3662
- dataset_description: DatasetDescription,
4183
+ entity_description_dto: EntityDescriptionDto,
3663
4184
  q_answer_api_key: Optional[StrictStr] = None,
3664
4185
  _request_timeout: Union[
3665
4186
  None,
@@ -3681,8 +4202,8 @@ class AiAssistantApi:
3681
4202
  :type username: str
3682
4203
  :param dataset: (required)
3683
4204
  :type dataset: str
3684
- :param dataset_description: (required)
3685
- :type dataset_description: DatasetDescription
4205
+ :param entity_description_dto: (required)
4206
+ :type entity_description_dto: EntityDescriptionDto
3686
4207
  :param q_answer_api_key:
3687
4208
  :type q_answer_api_key: str
3688
4209
  :param _request_timeout: timeout setting for this request. If one
@@ -3710,7 +4231,7 @@ class AiAssistantApi:
3710
4231
  _param = self._set_description_serialize(
3711
4232
  username=username,
3712
4233
  dataset=dataset,
3713
- dataset_description=dataset_description,
4234
+ entity_description_dto=entity_description_dto,
3714
4235
  q_answer_api_key=q_answer_api_key,
3715
4236
  _request_auth=_request_auth,
3716
4237
  _content_type=_content_type,
@@ -3719,7 +4240,7 @@ class AiAssistantApi:
3719
4240
  )
3720
4241
 
3721
4242
  _response_types_map: Dict[str, Optional[str]] = {
3722
- '200': "ApiResponse",
4243
+ '200': "str",
3723
4244
  }
3724
4245
  response_data = self.api_client.call_api(
3725
4246
  *_param,
@@ -3732,7 +4253,7 @@ class AiAssistantApi:
3732
4253
  self,
3733
4254
  username,
3734
4255
  dataset,
3735
- dataset_description,
4256
+ entity_description_dto,
3736
4257
  q_answer_api_key,
3737
4258
  _request_auth,
3738
4259
  _content_type,
@@ -3769,8 +4290,8 @@ class AiAssistantApi:
3769
4290
  _header_params['QAnswer-Api-Key'] = q_answer_api_key
3770
4291
  # process the form parameters
3771
4292
  # process the body parameter
3772
- if dataset_description is not None:
3773
- _body_params = dataset_description
4293
+ if entity_description_dto is not None:
4294
+ _body_params = entity_description_dto
3774
4295
 
3775
4296
 
3776
4297
  # set the HTTP header `Accept`
@@ -3820,7 +4341,7 @@ class AiAssistantApi:
3820
4341
 
3821
4342
 
3822
4343
  @validate_call
3823
- def set_logo1(
4344
+ def set_logo2(
3824
4345
  self,
3825
4346
  username: StrictStr,
3826
4347
  dataset: StrictStr,
@@ -3872,7 +4393,7 @@ class AiAssistantApi:
3872
4393
  :return: Returns the result object.
3873
4394
  """ # noqa: E501
3874
4395
 
3875
- _param = self._set_logo1_serialize(
4396
+ _param = self._set_logo2_serialize(
3876
4397
  username=username,
3877
4398
  dataset=dataset,
3878
4399
  file=file,
@@ -3898,7 +4419,7 @@ class AiAssistantApi:
3898
4419
 
3899
4420
 
3900
4421
  @validate_call
3901
- def set_logo1_with_http_info(
4422
+ def set_logo2_with_http_info(
3902
4423
  self,
3903
4424
  username: StrictStr,
3904
4425
  dataset: StrictStr,
@@ -3950,7 +4471,7 @@ class AiAssistantApi:
3950
4471
  :return: Returns the result object.
3951
4472
  """ # noqa: E501
3952
4473
 
3953
- _param = self._set_logo1_serialize(
4474
+ _param = self._set_logo2_serialize(
3954
4475
  username=username,
3955
4476
  dataset=dataset,
3956
4477
  file=file,
@@ -3976,7 +4497,7 @@ class AiAssistantApi:
3976
4497
 
3977
4498
 
3978
4499
  @validate_call
3979
- def set_logo1_without_preload_content(
4500
+ def set_logo2_without_preload_content(
3980
4501
  self,
3981
4502
  username: StrictStr,
3982
4503
  dataset: StrictStr,
@@ -4028,7 +4549,7 @@ class AiAssistantApi:
4028
4549
  :return: Returns the result object.
4029
4550
  """ # noqa: E501
4030
4551
 
4031
- _param = self._set_logo1_serialize(
4552
+ _param = self._set_logo2_serialize(
4032
4553
  username=username,
4033
4554
  dataset=dataset,
4034
4555
  file=file,
@@ -4049,7 +4570,7 @@ class AiAssistantApi:
4049
4570
  return response_data.response
4050
4571
 
4051
4572
 
4052
- def _set_logo1_serialize(
4573
+ def _set_logo2_serialize(
4053
4574
  self,
4054
4575
  username,
4055
4576
  dataset,