mixpeek 0.11.2__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 (189) hide show
  1. mixpeek/__init__.py +9 -1
  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 +12 -0
  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 +21 -0
  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.11.2.dist-info → mixpeek-0.13.dist-info}/WHEEL +1 -2
  176. py.typed +1 -0
  177. mixpeek/client.py +0 -27
  178. mixpeek/endpoints/__init__.py +0 -0
  179. mixpeek/endpoints/collections.py +0 -86
  180. mixpeek/endpoints/embed.py +0 -66
  181. mixpeek/endpoints/index.py +0 -51
  182. mixpeek/endpoints/register.py +0 -34
  183. mixpeek/endpoints/search.py +0 -44
  184. mixpeek/endpoints/tasks.py +0 -26
  185. mixpeek/endpoints/tools.py +0 -138
  186. mixpeek/exceptions.py +0 -13
  187. mixpeek-0.11.2.dist-info/METADATA +0 -375
  188. mixpeek-0.11.2.dist-info/RECORD +0 -15
  189. mixpeek-0.11.2.dist-info/top_level.txt +0 -1
@@ -0,0 +1,71 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from .vectormodel import VectorModel
5
+ from mixpeek.types import BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL
6
+ from pydantic import model_serializer
7
+ from typing import Optional
8
+ from typing_extensions import NotRequired, TypedDict
9
+
10
+
11
+ class JSONOutputTypedDict(TypedDict):
12
+ r"""JSON format for the response"""
13
+
14
+
15
+ class JSONOutput(BaseModel):
16
+ r"""JSON format for the response"""
17
+
18
+
19
+ class VideoReadSettingsTypedDict(TypedDict):
20
+ enabled: NotRequired[bool]
21
+ r"""Enable video reading"""
22
+ prompt: NotRequired[Nullable[str]]
23
+ r"""Prompt for reading on-screen text"""
24
+ json_output: NotRequired[JSONOutputTypedDict]
25
+ r"""JSON format for the response"""
26
+ vector_index: NotRequired[Nullable[VectorModel]]
27
+ r"""Name of the vector model to use for embedding the text output. If vector_index is duplicated, the vector will be overwritten."""
28
+
29
+
30
+ class VideoReadSettings(BaseModel):
31
+ enabled: Optional[bool] = True
32
+ r"""Enable video reading"""
33
+
34
+ prompt: OptionalNullable[str] = UNSET
35
+ r"""Prompt for reading on-screen text"""
36
+
37
+ json_output: Optional[JSONOutput] = None
38
+ r"""JSON format for the response"""
39
+
40
+ vector_index: OptionalNullable[VectorModel] = UNSET
41
+ r"""Name of the vector model to use for embedding the text output. If vector_index is duplicated, the vector will be overwritten."""
42
+
43
+ @model_serializer(mode="wrap")
44
+ def serialize_model(self, handler):
45
+ optional_fields = ["enabled", "prompt", "json_output", "vector_index"]
46
+ nullable_fields = ["prompt", "vector_index"]
47
+ null_default_fields = []
48
+
49
+ serialized = handler(self)
50
+
51
+ m = {}
52
+
53
+ for n, f in self.model_fields.items():
54
+ k = f.alias or n
55
+ val = serialized.get(k)
56
+ serialized.pop(k, None)
57
+
58
+ optional_nullable = k in optional_fields and k in nullable_fields
59
+ is_set = (
60
+ self.__pydantic_fields_set__.intersection({n})
61
+ or k in null_default_fields
62
+ ) # pylint: disable=no-member
63
+
64
+ if val is not None and val != UNSET_SENTINEL:
65
+ m[k] = val
66
+ elif val != UNSET_SENTINEL and (
67
+ not k in optional_fields or (optional_nullable and is_set)
68
+ ):
69
+ m[k] = val
70
+
71
+ return m
@@ -0,0 +1,101 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from .embeddingrequest import EmbeddingRequest, EmbeddingRequestTypedDict
5
+ from .jsonvideooutputsettings import (
6
+ JSONVideoOutputSettings,
7
+ JSONVideoOutputSettingsTypedDict,
8
+ )
9
+ from .videodescribesettings import VideoDescribeSettings, VideoDescribeSettingsTypedDict
10
+ from .videodetectsettings import VideoDetectSettings, VideoDetectSettingsTypedDict
11
+ from .videoreadsettings import VideoReadSettings, VideoReadSettingsTypedDict
12
+ from .videotranscriptionsettings import (
13
+ VideoTranscriptionSettings,
14
+ VideoTranscriptionSettingsTypedDict,
15
+ )
16
+ from mixpeek.types import BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL
17
+ from pydantic import model_serializer
18
+ from typing import List, Optional
19
+ from typing_extensions import NotRequired, TypedDict
20
+
21
+
22
+ class VideoSettingsTypedDict(TypedDict):
23
+ interval_sec: NotRequired[int]
24
+ r"""Interval in seconds for processing video. Must be greater than or equal to 5, less than 120."""
25
+ read: NotRequired[Nullable[VideoReadSettingsTypedDict]]
26
+ r"""Settings for reading and analyzing video content."""
27
+ embed: NotRequired[List[EmbeddingRequestTypedDict]]
28
+ r"""List of embedding settings for generating multiple embeddings. For now, if url is provided, value must be None.
29
+ Default: [{type: 'url', vector_index: 'multimodal'}] if none provided.
30
+ """
31
+ transcribe: NotRequired[Nullable[VideoTranscriptionSettingsTypedDict]]
32
+ r"""Settings for transcribing video audio."""
33
+ describe: NotRequired[Nullable[VideoDescribeSettingsTypedDict]]
34
+ r"""Settings for generating video descriptions."""
35
+ detect: NotRequired[Nullable[VideoDetectSettingsTypedDict]]
36
+ r"""Settings for object detection in video frames."""
37
+ json_output: NotRequired[Nullable[JSONVideoOutputSettingsTypedDict]]
38
+ r"""Settings for structured JSON output of video analysis."""
39
+
40
+
41
+ class VideoSettings(BaseModel):
42
+ interval_sec: Optional[int] = 10
43
+ r"""Interval in seconds for processing video. Must be greater than or equal to 5, less than 120."""
44
+
45
+ read: OptionalNullable[VideoReadSettings] = UNSET
46
+ r"""Settings for reading and analyzing video content."""
47
+
48
+ embed: Optional[List[EmbeddingRequest]] = None
49
+ r"""List of embedding settings for generating multiple embeddings. For now, if url is provided, value must be None.
50
+ Default: [{type: 'url', vector_index: 'multimodal'}] if none provided.
51
+ """
52
+
53
+ transcribe: OptionalNullable[VideoTranscriptionSettings] = UNSET
54
+ r"""Settings for transcribing video audio."""
55
+
56
+ describe: OptionalNullable[VideoDescribeSettings] = UNSET
57
+ r"""Settings for generating video descriptions."""
58
+
59
+ detect: OptionalNullable[VideoDetectSettings] = UNSET
60
+ r"""Settings for object detection in video frames."""
61
+
62
+ json_output: OptionalNullable[JSONVideoOutputSettings] = UNSET
63
+ r"""Settings for structured JSON output of video analysis."""
64
+
65
+ @model_serializer(mode="wrap")
66
+ def serialize_model(self, handler):
67
+ optional_fields = [
68
+ "interval_sec",
69
+ "read",
70
+ "embed",
71
+ "transcribe",
72
+ "describe",
73
+ "detect",
74
+ "json_output",
75
+ ]
76
+ nullable_fields = ["read", "transcribe", "describe", "detect", "json_output"]
77
+ null_default_fields = []
78
+
79
+ serialized = handler(self)
80
+
81
+ m = {}
82
+
83
+ for n, f in self.model_fields.items():
84
+ k = f.alias or n
85
+ val = serialized.get(k)
86
+ serialized.pop(k, None)
87
+
88
+ optional_nullable = k in optional_fields and k in nullable_fields
89
+ is_set = (
90
+ self.__pydantic_fields_set__.intersection({n})
91
+ or k in null_default_fields
92
+ ) # pylint: disable=no-member
93
+
94
+ if val is not None and val != UNSET_SENTINEL:
95
+ m[k] = val
96
+ elif val != UNSET_SENTINEL and (
97
+ not k in optional_fields or (optional_nullable and is_set)
98
+ ):
99
+ m[k] = val
100
+
101
+ return m
@@ -0,0 +1,69 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from .vectormodel import VectorModel
5
+ from mixpeek.types import BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL
6
+ from pydantic import model_serializer
7
+ from typing import Optional
8
+ from typing_extensions import NotRequired, TypedDict
9
+
10
+
11
+ class VideoTranscriptionSettingsJSONOutputTypedDict(TypedDict):
12
+ r"""JSON format for the response"""
13
+
14
+
15
+ class VideoTranscriptionSettingsJSONOutput(BaseModel):
16
+ r"""JSON format for the response"""
17
+
18
+
19
+ class VideoTranscriptionSettingsTypedDict(TypedDict):
20
+ enabled: NotRequired[bool]
21
+ r"""Enable video transcription"""
22
+ prompt: NotRequired[Nullable[str]]
23
+ json_output: NotRequired[VideoTranscriptionSettingsJSONOutputTypedDict]
24
+ r"""JSON format for the response"""
25
+ vector_index: NotRequired[Nullable[VectorModel]]
26
+ r"""Name of the vector model to use for embedding the text output. If vector_index is duplicated, the vector will be overwritten."""
27
+
28
+
29
+ class VideoTranscriptionSettings(BaseModel):
30
+ enabled: Optional[bool] = True
31
+ r"""Enable video transcription"""
32
+
33
+ prompt: OptionalNullable[str] = UNSET
34
+
35
+ json_output: Optional[VideoTranscriptionSettingsJSONOutput] = None
36
+ r"""JSON format for the response"""
37
+
38
+ vector_index: OptionalNullable[VectorModel] = UNSET
39
+ r"""Name of the vector model to use for embedding the text output. If vector_index is duplicated, the vector will be overwritten."""
40
+
41
+ @model_serializer(mode="wrap")
42
+ def serialize_model(self, handler):
43
+ optional_fields = ["enabled", "prompt", "json_output", "vector_index"]
44
+ nullable_fields = ["prompt", "vector_index"]
45
+ null_default_fields = []
46
+
47
+ serialized = handler(self)
48
+
49
+ m = {}
50
+
51
+ for n, f in self.model_fields.items():
52
+ k = f.alias or n
53
+ val = serialized.get(k)
54
+ serialized.pop(k, None)
55
+
56
+ optional_nullable = k in optional_fields and k in nullable_fields
57
+ is_set = (
58
+ self.__pydantic_fields_set__.intersection({n})
59
+ or k in null_default_fields
60
+ ) # pylint: disable=no-member
61
+
62
+ if val is not None and val != UNSET_SENTINEL:
63
+ m[k] = val
64
+ elif val != UNSET_SENTINEL and (
65
+ not k in optional_fields or (optional_nullable and is_set)
66
+ ):
67
+ m[k] = val
68
+
69
+ return m