mixpeek 0.12.0__py3-none-any.whl → 0.13__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 (270) hide show
  1. mixpeek/__init__.py +5 -79
  2. mixpeek/_hooks/__init__.py +5 -0
  3. mixpeek/_hooks/registration.py +13 -0
  4. mixpeek/_hooks/sdkhooks.py +76 -0
  5. mixpeek/_hooks/types.py +94 -0
  6. mixpeek/_version.py +11 -3
  7. mixpeek/assets.py +1561 -0
  8. mixpeek/basesdk.py +350 -0
  9. mixpeek/collections.py +1029 -0
  10. mixpeek/featureextractors.py +205 -0
  11. mixpeek/features.py +1181 -0
  12. mixpeek/health.py +167 -0
  13. mixpeek/httpclient.py +84 -0
  14. mixpeek/ingest.py +831 -0
  15. mixpeek/interactions.py +221 -0
  16. mixpeek/models/__init__.py +751 -0
  17. mixpeek/models/actionusage.py +16 -0
  18. mixpeek/models/apierror.py +22 -0
  19. mixpeek/models/apikey.py +25 -0
  20. mixpeek/models/apikeyupdate.py +49 -0
  21. mixpeek/models/assetfeatures.py +55 -0
  22. mixpeek/models/assetresponse.py +166 -0
  23. mixpeek/models/assets_model_searchquery.py +21 -0
  24. mixpeek/models/assetupdate.py +28 -0
  25. mixpeek/models/availableindexesresponse.py +23 -0
  26. mixpeek/models/availablemodels.py +12 -0
  27. mixpeek/models/boolindexparams.py +18 -0
  28. mixpeek/models/collectionmodel.py +70 -0
  29. mixpeek/models/collectionresult.py +73 -0
  30. mixpeek/models/create_api_key_organizations_users_user_email_api_keys_postop.py +23 -0
  31. mixpeek/models/create_collection_collections_postop.py +62 -0
  32. mixpeek/models/create_interaction_features_search_interactions_postop.py +59 -0
  33. mixpeek/models/createcollectionrequest.py +59 -0
  34. mixpeek/models/createnamespacerequest.py +62 -0
  35. mixpeek/models/datetimeindexparams.py +18 -0
  36. mixpeek/models/dateusage.py +22 -0
  37. mixpeek/models/db_model_paginationresponse.py +59 -0
  38. mixpeek/models/db_model_taskresponse.py +20 -0
  39. mixpeek/models/delete_api_key_organizations_users_user_email_api_keys_key_name_deleteop.py +23 -0
  40. mixpeek/models/delete_asset_assets_asset_id_deleteop.py +57 -0
  41. mixpeek/models/delete_collection_collections_collection_deleteop.py +59 -0
  42. mixpeek/models/delete_feature_features_feature_id_deleteop.py +57 -0
  43. mixpeek/models/delete_interaction_features_search_interactions_interaction_id_deleteop.py +59 -0
  44. mixpeek/models/delete_namespace_namespaces_namespace_deleteop.py +18 -0
  45. mixpeek/models/delete_user_organizations_users_user_email_deleteop.py +16 -0
  46. mixpeek/models/denseembedding.py +16 -0
  47. mixpeek/models/embeddingrequest.py +59 -0
  48. mixpeek/models/embeddingresponse.py +64 -0
  49. mixpeek/models/errormessage.py +13 -0
  50. mixpeek/models/errorresponse.py +21 -0
  51. mixpeek/models/facedetectsettings.py +52 -0
  52. mixpeek/models/featureextractionembeddingrequest.py +54 -0
  53. mixpeek/models/featureresponse.py +74 -0
  54. mixpeek/models/features_model_paginationresponse.py +59 -0
  55. mixpeek/models/featureupdaterequest.py +21 -0
  56. mixpeek/models/filtercondition.py +74 -0
  57. mixpeek/models/floatindexparams.py +18 -0
  58. mixpeek/models/full_asset_update_assets_asset_id_putop.py +69 -0
  59. mixpeek/models/full_feature_update_features_feature_id_putop.py +69 -0
  60. mixpeek/models/geoindexparams.py +18 -0
  61. mixpeek/models/get_asset_assets_asset_id_getop.py +73 -0
  62. mixpeek/models/get_asset_with_features_assets_asset_id_features_getop.py +73 -0
  63. mixpeek/models/get_collection_collections_collection_getop.py +59 -0
  64. mixpeek/models/get_feature_features_feature_id_getop.py +70 -0
  65. mixpeek/models/get_interaction_features_search_interactions_interaction_id_getop.py +59 -0
  66. mixpeek/models/get_namespace_namespaces_namespace_getop.py +18 -0
  67. mixpeek/models/get_task_tasks_task_id_getop.py +57 -0
  68. mixpeek/models/get_user_organizations_users_user_email_getop.py +16 -0
  69. mixpeek/models/groupbyoptions.py +71 -0
  70. mixpeek/models/groupbyoptionsasset.py +71 -0
  71. mixpeek/models/groupedassetdata.py +18 -0
  72. mixpeek/models/healthcheckresponse.py +13 -0
  73. mixpeek/models/httpvalidationerror.py +21 -0
  74. mixpeek/models/imagedescribesettings.py +82 -0
  75. mixpeek/models/imagedetectsettings.py +53 -0
  76. mixpeek/models/imagereadsettings.py +71 -0
  77. mixpeek/models/imagesettings.py +79 -0
  78. mixpeek/models/ingest_image_url_ingest_images_url_postop.py +59 -0
  79. mixpeek/models/ingest_text_ingest_text_postop.py +59 -0
  80. mixpeek/models/ingest_video_url_ingest_videos_url_postop.py +59 -0
  81. mixpeek/models/inputtype.py +11 -0
  82. mixpeek/models/integerindexparams.py +24 -0
  83. mixpeek/models/interactionresponse.py +87 -0
  84. mixpeek/models/interactiontype.py +11 -0
  85. mixpeek/models/jsonimageoutputsettings.py +55 -0
  86. mixpeek/models/jsontextoutputsettings.py +55 -0
  87. mixpeek/models/jsonvideooutputsettings.py +55 -0
  88. mixpeek/models/keywordindexparams.py +21 -0
  89. mixpeek/models/kill_task_tasks_task_id_deleteop.py +57 -0
  90. mixpeek/models/list_assets_assets_postop.py +77 -0
  91. mixpeek/models/list_collections_collections_getop.py +65 -0
  92. mixpeek/models/list_features_features_postop.py +79 -0
  93. mixpeek/models/list_interactions_features_search_interactions_getop.py +96 -0
  94. mixpeek/models/listassetsrequest.py +75 -0
  95. mixpeek/models/listassetsresponse.py +22 -0
  96. mixpeek/models/listcollectionsresponse.py +22 -0
  97. mixpeek/models/listfeaturesrequest.py +77 -0
  98. mixpeek/models/listfeaturesresponse.py +22 -0
  99. mixpeek/models/logicaloperator_input.py +88 -0
  100. mixpeek/models/logicaloperator_output.py +103 -0
  101. mixpeek/models/logodetectsettings.py +52 -0
  102. mixpeek/models/modality.py +13 -0
  103. mixpeek/models/modeldetails.py +57 -0
  104. mixpeek/models/namespaceresponse.py +54 -0
  105. mixpeek/models/organizationmodel.py +45 -0
  106. mixpeek/models/partial_asset_update_assets_asset_id_patchop.py +69 -0
  107. mixpeek/models/payloadindexconfig.py +94 -0
  108. mixpeek/models/payloadindextype.py +17 -0
  109. mixpeek/models/payloadschematype.py +15 -0
  110. mixpeek/models/percolaterequest.py +57 -0
  111. mixpeek/models/permission.py +10 -0
  112. mixpeek/models/processimageurlinput.py +99 -0
  113. mixpeek/models/processtextinput.py +94 -0
  114. mixpeek/models/processvideourlinput.py +99 -0
  115. mixpeek/models/querysettings.py +56 -0
  116. mixpeek/models/rerankingoptions.py +47 -0
  117. mixpeek/models/search_assets_assets_search_postop.py +59 -0
  118. mixpeek/models/search_features_features_search_postop.py +96 -0
  119. mixpeek/models/search_model_searchquery_input.py +76 -0
  120. mixpeek/models/searchassetsrequest.py +78 -0
  121. mixpeek/models/searchinteraction.py +82 -0
  122. mixpeek/models/searchquery_output.py +79 -0
  123. mixpeek/models/searchrequestfeatures_input.py +151 -0
  124. mixpeek/models/searchrequestfeatures_output.py +151 -0
  125. mixpeek/models/sortoption.py +28 -0
  126. mixpeek/models/sparseembedding.py +21 -0
  127. mixpeek/models/tasks_model_taskresponse.py +24 -0
  128. mixpeek/models/taskstatus.py +16 -0
  129. mixpeek/models/textindexparams.py +31 -0
  130. mixpeek/models/textsettings.py +61 -0
  131. mixpeek/models/tokenizertype.py +11 -0
  132. mixpeek/models/update_api_key_organizations_users_user_email_api_keys_key_name_patchop.py +30 -0
  133. mixpeek/models/update_collection_collections_collection_putop.py +74 -0
  134. mixpeek/models/update_namespace_namespaces_namespace_putop.py +28 -0
  135. mixpeek/models/updateassetrequest.py +60 -0
  136. mixpeek/models/updatenamespacerequest.py +26 -0
  137. mixpeek/models/usage.py +18 -0
  138. mixpeek/models/usermodel_input.py +36 -0
  139. mixpeek/models/usermodel_output.py +36 -0
  140. mixpeek/models/uuidindexparams.py +21 -0
  141. mixpeek/models/validationerror.py +26 -0
  142. mixpeek/models/vectormodel.py +11 -0
  143. mixpeek/models/vectortype.py +9 -0
  144. mixpeek/models/videodescribesettings.py +82 -0
  145. mixpeek/models/videodetectsettings.py +53 -0
  146. mixpeek/models/videoreadsettings.py +71 -0
  147. mixpeek/models/videosettings.py +101 -0
  148. mixpeek/models/videotranscriptionsettings.py +69 -0
  149. mixpeek/namespaces.py +1143 -0
  150. mixpeek/organizations.py +1508 -0
  151. mixpeek/py.typed +1 -0
  152. mixpeek/sdk.py +135 -0
  153. mixpeek/sdkconfiguration.py +45 -0
  154. mixpeek/searchinteractions.py +647 -0
  155. mixpeek/tasks.py +387 -0
  156. mixpeek/types/__init__.py +19 -29
  157. mixpeek/types/basemodel.py +39 -0
  158. mixpeek/utils/__init__.py +97 -0
  159. mixpeek/utils/annotations.py +55 -0
  160. mixpeek/utils/enums.py +34 -0
  161. mixpeek/utils/eventstreaming.py +238 -0
  162. mixpeek/utils/forms.py +202 -0
  163. mixpeek/utils/headers.py +136 -0
  164. mixpeek/utils/logger.py +27 -0
  165. mixpeek/utils/metadata.py +118 -0
  166. mixpeek/utils/queryparams.py +205 -0
  167. mixpeek/utils/requestbodies.py +66 -0
  168. mixpeek/utils/retries.py +217 -0
  169. mixpeek/utils/security.py +174 -0
  170. mixpeek/utils/serializers.py +215 -0
  171. mixpeek/utils/url.py +155 -0
  172. mixpeek/utils/values.py +134 -0
  173. mixpeek-0.13.dist-info/METADATA +439 -0
  174. mixpeek-0.13.dist-info/RECORD +176 -0
  175. {mixpeek-0.12.0.dist-info → mixpeek-0.13.dist-info}/WHEEL +1 -1
  176. py.typed +1 -0
  177. mixpeek/_base_client.py +0 -2041
  178. mixpeek/_client.py +0 -444
  179. mixpeek/_compat.py +0 -221
  180. mixpeek/_constants.py +0 -14
  181. mixpeek/_exceptions.py +0 -108
  182. mixpeek/_files.py +0 -123
  183. mixpeek/_models.py +0 -788
  184. mixpeek/_qs.py +0 -150
  185. mixpeek/_resource.py +0 -43
  186. mixpeek/_response.py +0 -824
  187. mixpeek/_streaming.py +0 -333
  188. mixpeek/_types.py +0 -219
  189. mixpeek/_utils/__init__.py +0 -56
  190. mixpeek/_utils/_logs.py +0 -25
  191. mixpeek/_utils/_proxy.py +0 -62
  192. mixpeek/_utils/_reflection.py +0 -42
  193. mixpeek/_utils/_streams.py +0 -12
  194. mixpeek/_utils/_sync.py +0 -81
  195. mixpeek/_utils/_transform.py +0 -387
  196. mixpeek/_utils/_typing.py +0 -120
  197. mixpeek/_utils/_utils.py +0 -414
  198. mixpeek/lib/.keep +0 -4
  199. mixpeek/resources/__init__.py +0 -117
  200. mixpeek/resources/accounts.py +0 -271
  201. mixpeek/resources/assets/__init__.py +0 -33
  202. mixpeek/resources/assets/assets.py +0 -708
  203. mixpeek/resources/assets/features.py +0 -172
  204. mixpeek/resources/collections.py +0 -283
  205. mixpeek/resources/entities/__init__.py +0 -47
  206. mixpeek/resources/entities/entities.py +0 -134
  207. mixpeek/resources/entities/faces.py +0 -514
  208. mixpeek/resources/entities/labels.py +0 -388
  209. mixpeek/resources/features/__init__.py +0 -33
  210. mixpeek/resources/features/features.py +0 -562
  211. mixpeek/resources/features/search.py +0 -731
  212. mixpeek/resources/healthcheck.py +0 -135
  213. mixpeek/resources/index/__init__.py +0 -47
  214. mixpeek/resources/index/images.py +0 -249
  215. mixpeek/resources/index/index.py +0 -289
  216. mixpeek/resources/index/videos.py +0 -249
  217. mixpeek/resources/tasks.py +0 -258
  218. mixpeek/types/account_update_params.py +0 -28
  219. mixpeek/types/asset_create_params.py +0 -36
  220. mixpeek/types/asset_create_response.py +0 -15
  221. mixpeek/types/asset_response.py +0 -46
  222. mixpeek/types/asset_search_params.py +0 -43
  223. mixpeek/types/asset_search_response.py +0 -15
  224. mixpeek/types/asset_update_params.py +0 -25
  225. mixpeek/types/asset_update_response.py +0 -11
  226. mixpeek/types/assets/__init__.py +0 -3
  227. mixpeek/types/collection_list_params.py +0 -19
  228. mixpeek/types/collection_list_response.py +0 -14
  229. mixpeek/types/entities/__init__.py +0 -13
  230. mixpeek/types/entities/face_create_params.py +0 -21
  231. mixpeek/types/entities/face_list_params.py +0 -18
  232. mixpeek/types/entities/face_list_response.py +0 -15
  233. mixpeek/types/entities/face_response.py +0 -17
  234. mixpeek/types/entities/face_update_params.py +0 -22
  235. mixpeek/types/entities/label_list_params.py +0 -18
  236. mixpeek/types/entities/label_list_response.py +0 -30
  237. mixpeek/types/entities/label_response.py +0 -30
  238. mixpeek/types/entities/label_update_params.py +0 -21
  239. mixpeek/types/feature.py +0 -32
  240. mixpeek/types/feature_list_params.py +0 -37
  241. mixpeek/types/feature_list_response.py +0 -28
  242. mixpeek/types/feature_retrieve_params.py +0 -18
  243. mixpeek/types/feature_update_params.py +0 -16
  244. mixpeek/types/features/__init__.py +0 -8
  245. mixpeek/types/features/search_feedback_params.py +0 -23
  246. mixpeek/types/features/search_file_params.py +0 -29
  247. mixpeek/types/features/search_text_params.py +0 -72
  248. mixpeek/types/features/search_url_params.py +0 -72
  249. mixpeek/types/grouped_asset_data.py +0 -24
  250. mixpeek/types/health_check_response.py +0 -10
  251. mixpeek/types/index/__init__.py +0 -8
  252. mixpeek/types/index/image_url_params.py +0 -135
  253. mixpeek/types/index/image_url_response.py +0 -20
  254. mixpeek/types/index/video_url_params.py +0 -154
  255. mixpeek/types/index/video_url_response.py +0 -20
  256. mixpeek/types/index_text_params.py +0 -77
  257. mixpeek/types/index_text_response.py +0 -14
  258. mixpeek/types/shared/__init__.py +0 -7
  259. mixpeek/types/shared/filter_condition.py +0 -19
  260. mixpeek/types/shared/logical_operator.py +0 -12
  261. mixpeek/types/shared/model_pagination_response.py +0 -21
  262. mixpeek/types/shared/sort_option.py +0 -15
  263. mixpeek/types/shared/task_response.py +0 -15
  264. mixpeek/types/shared_params/__init__.py +0 -4
  265. mixpeek/types/shared_params/logical_operator.py +0 -13
  266. mixpeek/types/shared_params/sort_option.py +0 -15
  267. mixpeek/types/user.py +0 -34
  268. mixpeek-0.12.0.dist-info/METADATA +0 -345
  269. mixpeek-0.12.0.dist-info/RECORD +0 -99
  270. mixpeek-0.12.0.dist-info/licenses/LICENSE +0 -201
@@ -1,731 +0,0 @@
1
- # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
-
3
- from __future__ import annotations
4
-
5
- from typing import List, Mapping, Optional, cast
6
- from typing_extensions import Literal
7
-
8
- import httpx
9
-
10
- from ..._types import NOT_GIVEN, Body, Query, Headers, NotGiven, FileTypes
11
- from ..._utils import (
12
- extract_files,
13
- maybe_transform,
14
- strip_not_given,
15
- deepcopy_minimal,
16
- async_maybe_transform,
17
- )
18
- from ..._compat import cached_property
19
- from ..._resource import SyncAPIResource, AsyncAPIResource
20
- from ..._response import (
21
- to_raw_response_wrapper,
22
- to_streamed_response_wrapper,
23
- async_to_raw_response_wrapper,
24
- async_to_streamed_response_wrapper,
25
- )
26
- from ..._base_client import make_request_options
27
- from ...types.features import search_url_params, search_file_params, search_text_params, search_feedback_params
28
- from ...types.shared_params.sort_option import SortOption
29
- from ...types.shared_params.logical_operator import LogicalOperator
30
-
31
- __all__ = ["SearchResource", "AsyncSearchResource"]
32
-
33
-
34
- class SearchResource(SyncAPIResource):
35
- @cached_property
36
- def with_raw_response(self) -> SearchResourceWithRawResponse:
37
- """
38
- This property can be used as a prefix for any HTTP method call to return the
39
- the raw response object instead of the parsed content.
40
-
41
- For more information, see https://www.github.com/mixpeek/python-client#accessing-raw-response-data-eg-headers
42
- """
43
- return SearchResourceWithRawResponse(self)
44
-
45
- @cached_property
46
- def with_streaming_response(self) -> SearchResourceWithStreamingResponse:
47
- """
48
- An alternative to `.with_raw_response` that doesn't eagerly read the response body.
49
-
50
- For more information, see https://www.github.com/mixpeek/python-client#with_streaming_response
51
- """
52
- return SearchResourceWithStreamingResponse(self)
53
-
54
- def feedback(
55
- self,
56
- *,
57
- feature_id: str,
58
- is_relevant: bool,
59
- search_id: str,
60
- feedback_text: Optional[str] | NotGiven = NOT_GIVEN,
61
- index_id: str | NotGiven = NOT_GIVEN,
62
- # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
63
- # The extra values given here take precedence over values defined on the client or passed to this method.
64
- extra_headers: Headers | None = None,
65
- extra_query: Query | None = None,
66
- extra_body: Body | None = None,
67
- timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
68
- ) -> object:
69
- """
70
- Submit feedback for search results to improve future searches
71
-
72
- Args:
73
- index_id: filter by organization
74
-
75
- extra_headers: Send extra headers
76
-
77
- extra_query: Add additional query parameters to the request
78
-
79
- extra_body: Add additional JSON properties to the request
80
-
81
- timeout: Override the client-level default timeout for this request, in seconds
82
- """
83
- extra_headers = {**strip_not_given({"index-id": index_id}), **(extra_headers or {})}
84
- return self._post(
85
- "/features/search/feedback",
86
- body=maybe_transform(
87
- {
88
- "feature_id": feature_id,
89
- "is_relevant": is_relevant,
90
- "search_id": search_id,
91
- "feedback_text": feedback_text,
92
- },
93
- search_feedback_params.SearchFeedbackParams,
94
- ),
95
- options=make_request_options(
96
- extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
97
- ),
98
- cast_to=object,
99
- )
100
-
101
- def file(
102
- self,
103
- *,
104
- file: FileTypes,
105
- offset_position: Optional[int] | NotGiven = NOT_GIVEN,
106
- page_size: int | NotGiven = NOT_GIVEN,
107
- filters: str | NotGiven = NOT_GIVEN,
108
- index_id: str | NotGiven = NOT_GIVEN,
109
- # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
110
- # The extra values given here take precedence over values defined on the client or passed to this method.
111
- extra_headers: Headers | None = None,
112
- extra_query: Query | None = None,
113
- extra_body: Body | None = None,
114
- timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
115
- ) -> object:
116
- """
117
- Search Features By File
118
-
119
- Args:
120
- offset_position: The position to start returning results from. Used for pagination. Does not work
121
- with group_by
122
-
123
- page_size: Number of results to return per page.
124
-
125
- index_id: filter by organization
126
-
127
- extra_headers: Send extra headers
128
-
129
- extra_query: Add additional query parameters to the request
130
-
131
- extra_body: Add additional JSON properties to the request
132
-
133
- timeout: Override the client-level default timeout for this request, in seconds
134
- """
135
- extra_headers = {**strip_not_given({"index-id": index_id}), **(extra_headers or {})}
136
- body = deepcopy_minimal(
137
- {
138
- "file": file,
139
- "filters": filters,
140
- }
141
- )
142
- files = extract_files(cast(Mapping[str, object], body), paths=[["file"]])
143
- # It should be noted that the actual Content-Type header that will be
144
- # sent to the server will contain a `boundary` parameter, e.g.
145
- # multipart/form-data; boundary=---abc--
146
- extra_headers = {"Content-Type": "multipart/form-data", **(extra_headers or {})}
147
- return self._post(
148
- "/features/search/file",
149
- body=maybe_transform(body, search_file_params.SearchFileParams),
150
- files=files,
151
- options=make_request_options(
152
- extra_headers=extra_headers,
153
- extra_query=extra_query,
154
- extra_body=extra_body,
155
- timeout=timeout,
156
- query=maybe_transform(
157
- {
158
- "offset_position": offset_position,
159
- "page_size": page_size,
160
- },
161
- search_file_params.SearchFileParams,
162
- ),
163
- ),
164
- cast_to=object,
165
- )
166
-
167
- def text(
168
- self,
169
- *,
170
- collection_ids: List[str],
171
- offset_position: Optional[int] | NotGiven = NOT_GIVEN,
172
- page_size: int | NotGiven = NOT_GIVEN,
173
- filters: Optional[LogicalOperator] | NotGiven = NOT_GIVEN,
174
- group_by: Optional[search_text_params.GroupBy] | NotGiven = NOT_GIVEN,
175
- model_id: Optional[Literal["vuse-generic-v1", "multimodal-v1", "image-embed-v1"]] | NotGiven = NOT_GIVEN,
176
- query: Optional[str] | NotGiven = NOT_GIVEN,
177
- search_type: Literal["semantic", "fulltext"] | NotGiven = NOT_GIVEN,
178
- select: Optional[List[str]] | NotGiven = NOT_GIVEN,
179
- sort: Optional[SortOption] | NotGiven = NOT_GIVEN,
180
- index_id: str | NotGiven = NOT_GIVEN,
181
- # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
182
- # The extra values given here take precedence over values defined on the client or passed to this method.
183
- extra_headers: Headers | None = None,
184
- extra_query: Query | None = None,
185
- extra_body: Body | None = None,
186
- timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
187
- ) -> object:
188
- """
189
- Search Features By Text
190
-
191
- Args:
192
- collection_ids: List of Collection IDs to search within, required
193
-
194
- offset_position: The position to start returning results from. Used for pagination. Does not work
195
- with group_by
196
-
197
- page_size: Number of results to return per page.
198
-
199
- filters: Complex nested query filters
200
-
201
- group_by: Grouping options for search results
202
-
203
- model_id: Embedding model to use
204
-
205
- query: Text query for the search
206
-
207
- search_type: Type of search to perform
208
-
209
- select: List of fields to return in results, supports dot notation. If None, all fields
210
- are returned.
211
-
212
- sort: List of fields to sort by, with direction (asc or desc). Supports dot notation
213
- for nested fields.
214
-
215
- index_id: filter by organization
216
-
217
- extra_headers: Send extra headers
218
-
219
- extra_query: Add additional query parameters to the request
220
-
221
- extra_body: Add additional JSON properties to the request
222
-
223
- timeout: Override the client-level default timeout for this request, in seconds
224
- """
225
- extra_headers = {**strip_not_given({"index-id": index_id}), **(extra_headers or {})}
226
- return self._post(
227
- "/features/search/text",
228
- body=maybe_transform(
229
- {
230
- "collection_ids": collection_ids,
231
- "filters": filters,
232
- "group_by": group_by,
233
- "model_id": model_id,
234
- "query": query,
235
- "search_type": search_type,
236
- "select": select,
237
- "sort": sort,
238
- },
239
- search_text_params.SearchTextParams,
240
- ),
241
- options=make_request_options(
242
- extra_headers=extra_headers,
243
- extra_query=extra_query,
244
- extra_body=extra_body,
245
- timeout=timeout,
246
- query=maybe_transform(
247
- {
248
- "offset_position": offset_position,
249
- "page_size": page_size,
250
- },
251
- search_text_params.SearchTextParams,
252
- ),
253
- ),
254
- cast_to=object,
255
- )
256
-
257
- def url(
258
- self,
259
- *,
260
- collection_ids: List[str],
261
- url: str,
262
- offset_position: Optional[int] | NotGiven = NOT_GIVEN,
263
- page_size: int | NotGiven = NOT_GIVEN,
264
- filters: Optional[LogicalOperator] | NotGiven = NOT_GIVEN,
265
- group_by: Optional[search_url_params.GroupBy] | NotGiven = NOT_GIVEN,
266
- model_id: Optional[Literal["vuse-generic-v1", "multimodal-v1", "image-embed-v1"]] | NotGiven = NOT_GIVEN,
267
- search_type: Literal["semantic", "fulltext"] | NotGiven = NOT_GIVEN,
268
- select: Optional[List[str]] | NotGiven = NOT_GIVEN,
269
- sort: Optional[SortOption] | NotGiven = NOT_GIVEN,
270
- index_id: str | NotGiven = NOT_GIVEN,
271
- # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
272
- # The extra values given here take precedence over values defined on the client or passed to this method.
273
- extra_headers: Headers | None = None,
274
- extra_query: Query | None = None,
275
- extra_body: Body | None = None,
276
- timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
277
- ) -> object:
278
- """
279
- Search Features By Url
280
-
281
- Args:
282
- collection_ids: List of Collection IDs to search within, required
283
-
284
- url: Url to fetch and search
285
-
286
- offset_position: The position to start returning results from. Used for pagination. Does not work
287
- with group_by
288
-
289
- page_size: Number of results to return per page.
290
-
291
- filters: Complex nested query filters
292
-
293
- group_by: Grouping options for search results
294
-
295
- model_id: Embedding model to use
296
-
297
- search_type: Type of search to perform
298
-
299
- select: List of fields to return in results, supports dot notation. If None, all fields
300
- are returned.
301
-
302
- sort: List of fields to sort by, with direction (asc or desc). Supports dot notation
303
- for nested fields.
304
-
305
- index_id: filter by organization
306
-
307
- extra_headers: Send extra headers
308
-
309
- extra_query: Add additional query parameters to the request
310
-
311
- extra_body: Add additional JSON properties to the request
312
-
313
- timeout: Override the client-level default timeout for this request, in seconds
314
- """
315
- extra_headers = {**strip_not_given({"index-id": index_id}), **(extra_headers or {})}
316
- return self._post(
317
- "/features/search/url",
318
- body=maybe_transform(
319
- {
320
- "collection_ids": collection_ids,
321
- "url": url,
322
- "filters": filters,
323
- "group_by": group_by,
324
- "model_id": model_id,
325
- "search_type": search_type,
326
- "select": select,
327
- "sort": sort,
328
- },
329
- search_url_params.SearchURLParams,
330
- ),
331
- options=make_request_options(
332
- extra_headers=extra_headers,
333
- extra_query=extra_query,
334
- extra_body=extra_body,
335
- timeout=timeout,
336
- query=maybe_transform(
337
- {
338
- "offset_position": offset_position,
339
- "page_size": page_size,
340
- },
341
- search_url_params.SearchURLParams,
342
- ),
343
- ),
344
- cast_to=object,
345
- )
346
-
347
-
348
- class AsyncSearchResource(AsyncAPIResource):
349
- @cached_property
350
- def with_raw_response(self) -> AsyncSearchResourceWithRawResponse:
351
- """
352
- This property can be used as a prefix for any HTTP method call to return the
353
- the raw response object instead of the parsed content.
354
-
355
- For more information, see https://www.github.com/mixpeek/python-client#accessing-raw-response-data-eg-headers
356
- """
357
- return AsyncSearchResourceWithRawResponse(self)
358
-
359
- @cached_property
360
- def with_streaming_response(self) -> AsyncSearchResourceWithStreamingResponse:
361
- """
362
- An alternative to `.with_raw_response` that doesn't eagerly read the response body.
363
-
364
- For more information, see https://www.github.com/mixpeek/python-client#with_streaming_response
365
- """
366
- return AsyncSearchResourceWithStreamingResponse(self)
367
-
368
- async def feedback(
369
- self,
370
- *,
371
- feature_id: str,
372
- is_relevant: bool,
373
- search_id: str,
374
- feedback_text: Optional[str] | NotGiven = NOT_GIVEN,
375
- index_id: str | NotGiven = NOT_GIVEN,
376
- # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
377
- # The extra values given here take precedence over values defined on the client or passed to this method.
378
- extra_headers: Headers | None = None,
379
- extra_query: Query | None = None,
380
- extra_body: Body | None = None,
381
- timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
382
- ) -> object:
383
- """
384
- Submit feedback for search results to improve future searches
385
-
386
- Args:
387
- index_id: filter by organization
388
-
389
- extra_headers: Send extra headers
390
-
391
- extra_query: Add additional query parameters to the request
392
-
393
- extra_body: Add additional JSON properties to the request
394
-
395
- timeout: Override the client-level default timeout for this request, in seconds
396
- """
397
- extra_headers = {**strip_not_given({"index-id": index_id}), **(extra_headers or {})}
398
- return await self._post(
399
- "/features/search/feedback",
400
- body=await async_maybe_transform(
401
- {
402
- "feature_id": feature_id,
403
- "is_relevant": is_relevant,
404
- "search_id": search_id,
405
- "feedback_text": feedback_text,
406
- },
407
- search_feedback_params.SearchFeedbackParams,
408
- ),
409
- options=make_request_options(
410
- extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
411
- ),
412
- cast_to=object,
413
- )
414
-
415
- async def file(
416
- self,
417
- *,
418
- file: FileTypes,
419
- offset_position: Optional[int] | NotGiven = NOT_GIVEN,
420
- page_size: int | NotGiven = NOT_GIVEN,
421
- filters: str | NotGiven = NOT_GIVEN,
422
- index_id: str | NotGiven = NOT_GIVEN,
423
- # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
424
- # The extra values given here take precedence over values defined on the client or passed to this method.
425
- extra_headers: Headers | None = None,
426
- extra_query: Query | None = None,
427
- extra_body: Body | None = None,
428
- timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
429
- ) -> object:
430
- """
431
- Search Features By File
432
-
433
- Args:
434
- offset_position: The position to start returning results from. Used for pagination. Does not work
435
- with group_by
436
-
437
- page_size: Number of results to return per page.
438
-
439
- index_id: filter by organization
440
-
441
- extra_headers: Send extra headers
442
-
443
- extra_query: Add additional query parameters to the request
444
-
445
- extra_body: Add additional JSON properties to the request
446
-
447
- timeout: Override the client-level default timeout for this request, in seconds
448
- """
449
- extra_headers = {**strip_not_given({"index-id": index_id}), **(extra_headers or {})}
450
- body = deepcopy_minimal(
451
- {
452
- "file": file,
453
- "filters": filters,
454
- }
455
- )
456
- files = extract_files(cast(Mapping[str, object], body), paths=[["file"]])
457
- # It should be noted that the actual Content-Type header that will be
458
- # sent to the server will contain a `boundary` parameter, e.g.
459
- # multipart/form-data; boundary=---abc--
460
- extra_headers = {"Content-Type": "multipart/form-data", **(extra_headers or {})}
461
- return await self._post(
462
- "/features/search/file",
463
- body=await async_maybe_transform(body, search_file_params.SearchFileParams),
464
- files=files,
465
- options=make_request_options(
466
- extra_headers=extra_headers,
467
- extra_query=extra_query,
468
- extra_body=extra_body,
469
- timeout=timeout,
470
- query=await async_maybe_transform(
471
- {
472
- "offset_position": offset_position,
473
- "page_size": page_size,
474
- },
475
- search_file_params.SearchFileParams,
476
- ),
477
- ),
478
- cast_to=object,
479
- )
480
-
481
- async def text(
482
- self,
483
- *,
484
- collection_ids: List[str],
485
- offset_position: Optional[int] | NotGiven = NOT_GIVEN,
486
- page_size: int | NotGiven = NOT_GIVEN,
487
- filters: Optional[LogicalOperator] | NotGiven = NOT_GIVEN,
488
- group_by: Optional[search_text_params.GroupBy] | NotGiven = NOT_GIVEN,
489
- model_id: Optional[Literal["vuse-generic-v1", "multimodal-v1", "image-embed-v1"]] | NotGiven = NOT_GIVEN,
490
- query: Optional[str] | NotGiven = NOT_GIVEN,
491
- search_type: Literal["semantic", "fulltext"] | NotGiven = NOT_GIVEN,
492
- select: Optional[List[str]] | NotGiven = NOT_GIVEN,
493
- sort: Optional[SortOption] | NotGiven = NOT_GIVEN,
494
- index_id: str | NotGiven = NOT_GIVEN,
495
- # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
496
- # The extra values given here take precedence over values defined on the client or passed to this method.
497
- extra_headers: Headers | None = None,
498
- extra_query: Query | None = None,
499
- extra_body: Body | None = None,
500
- timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
501
- ) -> object:
502
- """
503
- Search Features By Text
504
-
505
- Args:
506
- collection_ids: List of Collection IDs to search within, required
507
-
508
- offset_position: The position to start returning results from. Used for pagination. Does not work
509
- with group_by
510
-
511
- page_size: Number of results to return per page.
512
-
513
- filters: Complex nested query filters
514
-
515
- group_by: Grouping options for search results
516
-
517
- model_id: Embedding model to use
518
-
519
- query: Text query for the search
520
-
521
- search_type: Type of search to perform
522
-
523
- select: List of fields to return in results, supports dot notation. If None, all fields
524
- are returned.
525
-
526
- sort: List of fields to sort by, with direction (asc or desc). Supports dot notation
527
- for nested fields.
528
-
529
- index_id: filter by organization
530
-
531
- extra_headers: Send extra headers
532
-
533
- extra_query: Add additional query parameters to the request
534
-
535
- extra_body: Add additional JSON properties to the request
536
-
537
- timeout: Override the client-level default timeout for this request, in seconds
538
- """
539
- extra_headers = {**strip_not_given({"index-id": index_id}), **(extra_headers or {})}
540
- return await self._post(
541
- "/features/search/text",
542
- body=await async_maybe_transform(
543
- {
544
- "collection_ids": collection_ids,
545
- "filters": filters,
546
- "group_by": group_by,
547
- "model_id": model_id,
548
- "query": query,
549
- "search_type": search_type,
550
- "select": select,
551
- "sort": sort,
552
- },
553
- search_text_params.SearchTextParams,
554
- ),
555
- options=make_request_options(
556
- extra_headers=extra_headers,
557
- extra_query=extra_query,
558
- extra_body=extra_body,
559
- timeout=timeout,
560
- query=await async_maybe_transform(
561
- {
562
- "offset_position": offset_position,
563
- "page_size": page_size,
564
- },
565
- search_text_params.SearchTextParams,
566
- ),
567
- ),
568
- cast_to=object,
569
- )
570
-
571
- async def url(
572
- self,
573
- *,
574
- collection_ids: List[str],
575
- url: str,
576
- offset_position: Optional[int] | NotGiven = NOT_GIVEN,
577
- page_size: int | NotGiven = NOT_GIVEN,
578
- filters: Optional[LogicalOperator] | NotGiven = NOT_GIVEN,
579
- group_by: Optional[search_url_params.GroupBy] | NotGiven = NOT_GIVEN,
580
- model_id: Optional[Literal["vuse-generic-v1", "multimodal-v1", "image-embed-v1"]] | NotGiven = NOT_GIVEN,
581
- search_type: Literal["semantic", "fulltext"] | NotGiven = NOT_GIVEN,
582
- select: Optional[List[str]] | NotGiven = NOT_GIVEN,
583
- sort: Optional[SortOption] | NotGiven = NOT_GIVEN,
584
- index_id: str | NotGiven = NOT_GIVEN,
585
- # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
586
- # The extra values given here take precedence over values defined on the client or passed to this method.
587
- extra_headers: Headers | None = None,
588
- extra_query: Query | None = None,
589
- extra_body: Body | None = None,
590
- timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
591
- ) -> object:
592
- """
593
- Search Features By Url
594
-
595
- Args:
596
- collection_ids: List of Collection IDs to search within, required
597
-
598
- url: Url to fetch and search
599
-
600
- offset_position: The position to start returning results from. Used for pagination. Does not work
601
- with group_by
602
-
603
- page_size: Number of results to return per page.
604
-
605
- filters: Complex nested query filters
606
-
607
- group_by: Grouping options for search results
608
-
609
- model_id: Embedding model to use
610
-
611
- search_type: Type of search to perform
612
-
613
- select: List of fields to return in results, supports dot notation. If None, all fields
614
- are returned.
615
-
616
- sort: List of fields to sort by, with direction (asc or desc). Supports dot notation
617
- for nested fields.
618
-
619
- index_id: filter by organization
620
-
621
- extra_headers: Send extra headers
622
-
623
- extra_query: Add additional query parameters to the request
624
-
625
- extra_body: Add additional JSON properties to the request
626
-
627
- timeout: Override the client-level default timeout for this request, in seconds
628
- """
629
- extra_headers = {**strip_not_given({"index-id": index_id}), **(extra_headers or {})}
630
- return await self._post(
631
- "/features/search/url",
632
- body=await async_maybe_transform(
633
- {
634
- "collection_ids": collection_ids,
635
- "url": url,
636
- "filters": filters,
637
- "group_by": group_by,
638
- "model_id": model_id,
639
- "search_type": search_type,
640
- "select": select,
641
- "sort": sort,
642
- },
643
- search_url_params.SearchURLParams,
644
- ),
645
- options=make_request_options(
646
- extra_headers=extra_headers,
647
- extra_query=extra_query,
648
- extra_body=extra_body,
649
- timeout=timeout,
650
- query=await async_maybe_transform(
651
- {
652
- "offset_position": offset_position,
653
- "page_size": page_size,
654
- },
655
- search_url_params.SearchURLParams,
656
- ),
657
- ),
658
- cast_to=object,
659
- )
660
-
661
-
662
- class SearchResourceWithRawResponse:
663
- def __init__(self, search: SearchResource) -> None:
664
- self._search = search
665
-
666
- self.feedback = to_raw_response_wrapper(
667
- search.feedback,
668
- )
669
- self.file = to_raw_response_wrapper(
670
- search.file,
671
- )
672
- self.text = to_raw_response_wrapper(
673
- search.text,
674
- )
675
- self.url = to_raw_response_wrapper(
676
- search.url,
677
- )
678
-
679
-
680
- class AsyncSearchResourceWithRawResponse:
681
- def __init__(self, search: AsyncSearchResource) -> None:
682
- self._search = search
683
-
684
- self.feedback = async_to_raw_response_wrapper(
685
- search.feedback,
686
- )
687
- self.file = async_to_raw_response_wrapper(
688
- search.file,
689
- )
690
- self.text = async_to_raw_response_wrapper(
691
- search.text,
692
- )
693
- self.url = async_to_raw_response_wrapper(
694
- search.url,
695
- )
696
-
697
-
698
- class SearchResourceWithStreamingResponse:
699
- def __init__(self, search: SearchResource) -> None:
700
- self._search = search
701
-
702
- self.feedback = to_streamed_response_wrapper(
703
- search.feedback,
704
- )
705
- self.file = to_streamed_response_wrapper(
706
- search.file,
707
- )
708
- self.text = to_streamed_response_wrapper(
709
- search.text,
710
- )
711
- self.url = to_streamed_response_wrapper(
712
- search.url,
713
- )
714
-
715
-
716
- class AsyncSearchResourceWithStreamingResponse:
717
- def __init__(self, search: AsyncSearchResource) -> None:
718
- self._search = search
719
-
720
- self.feedback = async_to_streamed_response_wrapper(
721
- search.feedback,
722
- )
723
- self.file = async_to_streamed_response_wrapper(
724
- search.file,
725
- )
726
- self.text = async_to_streamed_response_wrapper(
727
- search.text,
728
- )
729
- self.url = async_to_streamed_response_wrapper(
730
- search.url,
731
- )