mixpeek 0.20.20__py3-none-any.whl → 0.21.6__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 (228) hide show
  1. mixpeek/_version.py +3 -3
  2. mixpeek/{assets.py → bucketobjects.py} +309 -793
  3. mixpeek/buckets.py +1292 -0
  4. mixpeek/clusters.py +306 -0
  5. mixpeek/collectioncache.py +820 -0
  6. mixpeek/{taxonomyentities.py → collectiondocuments.py} +305 -559
  7. mixpeek/collections.py +120 -994
  8. mixpeek/features.py +45 -991
  9. mixpeek/models/__init__.py +625 -570
  10. mixpeek/models/aggregationtype.py +13 -0
  11. mixpeek/models/apikeyupdate.py +1 -1
  12. mixpeek/models/attributebasedconfig.py +21 -0
  13. mixpeek/models/automaticnaming.py +29 -0
  14. mixpeek/models/basicfeatureextractor.py +35 -0
  15. mixpeek/models/{classify_features_v1_entities_taxonomies_taxonomy_classify_postop.py → batch_delete_documents_v1_collections_collection_identifier_documents_batch_deleteop.py} +17 -15
  16. mixpeek/models/{update_collection_v1_collections_collection_putop.py → batch_update_documents_v1_collections_collection_identifier_documents_batch_putop.py} +29 -19
  17. mixpeek/models/blobdetails.py +72 -0
  18. mixpeek/models/blobmodel.py +107 -0
  19. mixpeek/models/bucketcreaterequest.py +75 -0
  20. mixpeek/models/bucketresponse.py +90 -0
  21. mixpeek/models/bucketschema_input.py +37 -0
  22. mixpeek/models/bucketschema_output.py +37 -0
  23. mixpeek/models/{featureresponse.py → bucketschemafield_input.py} +45 -18
  24. mixpeek/models/bucketschemafield_output.py +101 -0
  25. mixpeek/models/bucketschemafieldtype.py +29 -0
  26. mixpeek/models/bucketupdaterequest.py +68 -0
  27. mixpeek/models/cachestats.py +40 -0
  28. mixpeek/models/{list_collections_v1_collections_getop.py → cleanup_cache_v1_collections_cache_cleanup_postop.py} +23 -12
  29. mixpeek/models/{inputtype.py → clusteringmethod.py} +3 -5
  30. mixpeek/models/clustertype.py +9 -0
  31. mixpeek/models/collectioncacheconfig_input.py +92 -0
  32. mixpeek/models/collectioncacheconfig_output.py +92 -0
  33. mixpeek/models/collectionconfig.py +32 -0
  34. mixpeek/models/collectionmodel.py +79 -8
  35. mixpeek/models/{create_taxonomy_v1_entities_taxonomies_postop.py → create_bucket_v1_buckets_create_postop.py} +7 -7
  36. mixpeek/models/{search_assets_v1_assets_search_postop.py → create_cluster_v1_clusters_postop.py} +7 -7
  37. mixpeek/models/{create_collection_v1_collections_postop.py → create_collection_v1_collections_create_postop.py} +3 -3
  38. mixpeek/models/{ingest_video_url_v1_ingest_videos_url_postop.py → create_interaction_v1_retrievers_interactions_postop.py} +7 -7
  39. mixpeek/models/{partial_asset_update_v1_assets_asset_id_patchop.py → create_object_v1_buckets_bucket_identifier_objects_create_postop.py} +11 -9
  40. mixpeek/models/{ingest_text_v1_ingest_text_postop.py → create_retriever_v1_retrievers_retrievers_postop.py} +10 -7
  41. mixpeek/models/{ingest_image_url_v1_ingest_images_url_postop.py → create_taxonomy_v1_taxonomies_postop.py} +7 -7
  42. mixpeek/models/createblobrequest.py +80 -0
  43. mixpeek/models/createclusterrequest.py +74 -0
  44. mixpeek/models/createcollectionrequest.py +72 -3
  45. mixpeek/models/createnamespacerequest.py +14 -8
  46. mixpeek/models/createobjectrequest.py +75 -0
  47. mixpeek/models/createretrieverrequest.py +90 -0
  48. mixpeek/models/{taxonomyupdate.py → createtaxonomyrequest.py} +15 -13
  49. mixpeek/models/{delete_asset_v1_assets_asset_id_deleteop.py → delete_bucket_v1_buckets_bucket_identifier_deleteop.py} +5 -5
  50. mixpeek/models/{delete_classifications_v1_entities_taxonomies_taxonomy_classifications_classification_id_deleteop.py → delete_document_v1_collections_collection_identifier_documents_document_id_deleteop.py} +11 -11
  51. mixpeek/models/{get_taxonomy_v1_entities_taxonomies_taxonomy_getop.py → delete_interaction_v1_retrievers_interactions_interaction_id_deleteop.py} +7 -7
  52. mixpeek/models/delete_object_v1_buckets_bucket_identifier_objects_object_identifier_deleteop.py +70 -0
  53. mixpeek/models/{featureextractionembeddingrequest.py → documenthandlingconfig.py} +12 -15
  54. mixpeek/models/documentinputhandling.py +11 -0
  55. mixpeek/models/{jsontextoutputsettings.py → documentlistresponse.py} +15 -14
  56. mixpeek/models/documentoutputhandling.py +10 -0
  57. mixpeek/models/documentoutputtype.py +11 -0
  58. mixpeek/models/documentresponse.py +87 -0
  59. mixpeek/models/{nodeupdate.py → documentupdate.py} +22 -13
  60. mixpeek/models/enrichmentfield.py +25 -0
  61. mixpeek/models/errordetail.py +1 -1
  62. mixpeek/models/{update_node_v1_entities_taxonomies_nodes_node_patchop.py → execute_retriever_v1_retrievers_retrievers_retriever_id_execute_postop.py} +11 -11
  63. mixpeek/models/featureextractorconfig.py +116 -0
  64. mixpeek/models/featureextractordefinition.py +192 -0
  65. mixpeek/models/filtercondition.py +25 -25
  66. mixpeek/models/filteroperator.py +24 -0
  67. mixpeek/models/generativemodels.py +10 -0
  68. mixpeek/models/{delete_feature_v1_features_feature_id_deleteop.py → get_bucket_v1_buckets_bucket_identifier_getop.py} +5 -5
  69. mixpeek/models/{list_taxonomies_v1_entities_taxonomies_getop.py → get_cache_stats_v1_collections_cache_stats_getop.py} +16 -14
  70. mixpeek/models/get_collection_v1_collections_collection_id_getop.py +59 -0
  71. mixpeek/models/get_document_v1_collections_collection_identifier_documents_document_id_getop.py +70 -0
  72. mixpeek/models/get_feature_extractor_v1_features_extractors_feature_id_getop.py +16 -0
  73. mixpeek/models/get_interaction_v1_retrievers_interactions_interaction_id_getop.py +57 -0
  74. mixpeek/models/{delete_collection_v1_collections_collection_deleteop.py → get_object_v1_buckets_bucket_identifier_objects_object_identifier_getop.py} +16 -7
  75. mixpeek/models/get_research_v1_research_getop.py +52 -0
  76. mixpeek/models/get_retriever_stages_v1_retrievers_stages_getop.py +52 -0
  77. mixpeek/models/{delete_taxonomy_v1_entities_taxonomies_taxonomy_deleteop.py → get_retriever_v1_retrievers_retrievers_retriever_id_getop.py} +5 -7
  78. mixpeek/models/get_task_v1_tasks_task_id_getop.py +1 -1
  79. mixpeek/models/getusagerequestmodel.py +91 -0
  80. mixpeek/models/hdbscanparameters.py +26 -0
  81. mixpeek/models/interactionresponse.py +86 -0
  82. mixpeek/models/interactiontype.py +22 -0
  83. mixpeek/models/{search_features_v1_features_search_postop.py → invalidate_cache_v1_collections_cache_invalidate_postop.py} +60 -34
  84. mixpeek/models/invalidationevent.py +67 -0
  85. mixpeek/models/invalidationstrategy.py +12 -0
  86. mixpeek/models/kill_task_v1_tasks_task_id_deleteop.py +1 -1
  87. mixpeek/models/list_active_tasks_v1_tasks_getop.py +1 -1
  88. mixpeek/models/{list_assets_v1_assets_postop.py → list_buckets_v1_buckets_postop.py} +18 -18
  89. mixpeek/models/{list_features_v1_features_postop.py → list_documents_v1_collections_collection_identifier_documents_getop.py} +54 -19
  90. mixpeek/models/list_interactions_v1_retrievers_interactions_getop.py +96 -0
  91. mixpeek/models/{list_classifications_v1_entities_taxonomies_taxonomy_classifications_postop.py → list_objects_v1_buckets_bucket_identifier_objects_postop.py} +22 -29
  92. mixpeek/models/{groupbyoptionsasset.py → listbucketsrequest.py} +19 -28
  93. mixpeek/models/listbucketsresponse.py +23 -0
  94. mixpeek/models/{groupbyoptions.py → listobjectsrequest.py} +19 -28
  95. mixpeek/models/listobjectsresponse.py +25 -0
  96. mixpeek/models/listtasksresponse.py +3 -6
  97. mixpeek/models/{logicaloperator.py → logicaloperator_input.py} +42 -24
  98. mixpeek/models/logicaloperator_output.py +121 -0
  99. mixpeek/models/multivectorindex.py +25 -0
  100. mixpeek/models/namespaceresponse.py +1 -1
  101. mixpeek/models/namespaceusage.py +45 -0
  102. mixpeek/models/namingmethod.py +8 -0
  103. mixpeek/models/objectresponse.py +124 -0
  104. mixpeek/models/{db_model_paginationresponse.py → paginationresponse.py} +3 -3
  105. mixpeek/models/payloadindexconfig.py +1 -1
  106. mixpeek/models/plan.py +82 -0
  107. mixpeek/models/recomputestrategy.py +12 -0
  108. mixpeek/models/resourcetotals.py +39 -0
  109. mixpeek/models/{jsonvideooutputsettings.py → retrieverbinding.py} +19 -11
  110. mixpeek/models/{logodetectsettings.py → retrievercacheconfig.py} +20 -11
  111. mixpeek/models/retrievermodel.py +95 -0
  112. mixpeek/models/retrieverqueryrequest.py +114 -0
  113. mixpeek/models/retrieverresponse.py +24 -0
  114. mixpeek/models/searchinteraction.py +81 -0
  115. mixpeek/models/singlelineageentry.py +99 -0
  116. mixpeek/models/sortdirection.py +11 -0
  117. mixpeek/models/sortoption.py +20 -12
  118. mixpeek/models/sourceconfig_input.py +72 -0
  119. mixpeek/models/sourceconfig_output.py +75 -0
  120. mixpeek/models/sourcetype.py +11 -0
  121. mixpeek/models/stageconfig_input.py +111 -0
  122. mixpeek/models/stageconfig_output.py +114 -0
  123. mixpeek/models/stagedefinition.py +110 -0
  124. mixpeek/models/{jsonimageoutputsettings.py → stageresponse.py} +21 -11
  125. mixpeek/models/taskresponse.py +1 -1
  126. mixpeek/models/taskstatus.py +1 -0
  127. mixpeek/models/{assetfeatures.py → taxonomyapplicationconfig.py} +23 -15
  128. mixpeek/models/taxonomyconfig.py +19 -0
  129. mixpeek/models/timeseriesdatapoint.py +25 -0
  130. mixpeek/models/timeseriesusage.py +36 -0
  131. mixpeek/models/{full_asset_update_v1_assets_asset_id_putop.py → update_bucket_v1_buckets_bucket_identifier_putop.py} +9 -9
  132. mixpeek/models/{update_taxonomy_v1_entities_taxonomies_taxonomy_patchop.py → update_document_v1_collections_collection_identifier_documents_document_id_putop.py} +25 -13
  133. mixpeek/models/{full_feature_update_v1_features_feature_id_putop.py → update_object_v1_buckets_bucket_identifier_objects_object_identifier_putop.py} +20 -9
  134. mixpeek/models/updatenamespacerequest.py +1 -1
  135. mixpeek/models/updateobjectrequest.py +75 -0
  136. mixpeek/models/usageresponse.py +86 -0
  137. mixpeek/models/usagesummary.py +39 -0
  138. mixpeek/models/usagetimerange.py +16 -0
  139. mixpeek/models/usermodel_input.py +3 -0
  140. mixpeek/models/usermodel_output.py +3 -0
  141. mixpeek/models/vectorbasedconfig.py +60 -0
  142. mixpeek/models/{collectionresult.py → vectorindex.py} +20 -15
  143. mixpeek/models/vectorindexdefinition.py +43 -0
  144. mixpeek/models/vectortype.py +4 -1
  145. mixpeek/namespaces.py +26 -480
  146. mixpeek/organizationnotifications.py +214 -0
  147. mixpeek/organizations.py +6 -210
  148. mixpeek/{featureextractors.py → organizationsusage.py} +31 -39
  149. mixpeek/research.py +228 -0
  150. mixpeek/retrieverinteractions.py +1036 -0
  151. mixpeek/{ingestassets.py → retrievers.py} +209 -271
  152. mixpeek/retrieverstages.py +232 -0
  153. mixpeek/sdk.py +40 -23
  154. mixpeek/taxonomies.py +43 -513
  155. mixpeek/types/basemodel.py +3 -3
  156. mixpeek/utils/enums.py +67 -27
  157. {mixpeek-0.20.20.dist-info → mixpeek-0.21.6.dist-info}/METADATA +68 -50
  158. mixpeek-0.21.6.dist-info/RECORD +216 -0
  159. {mixpeek-0.20.20.dist-info → mixpeek-0.21.6.dist-info}/WHEEL +1 -1
  160. mixpeek/models/actionusage.py +0 -16
  161. mixpeek/models/assetresponse.py +0 -166
  162. mixpeek/models/assets_model_searchquery.py +0 -21
  163. mixpeek/models/assetupdate.py +0 -28
  164. mixpeek/models/assignmentconfig.py +0 -67
  165. mixpeek/models/assignmentmode.py +0 -11
  166. mixpeek/models/availablemodels.py +0 -16
  167. mixpeek/models/availablemodelsresponse.py +0 -27
  168. mixpeek/models/classificationmatch.py +0 -77
  169. mixpeek/models/classificationwithfeature.py +0 -73
  170. mixpeek/models/collectiondetailsresponse.py +0 -83
  171. mixpeek/models/dateusage.py +0 -22
  172. mixpeek/models/denseembedding.py +0 -16
  173. mixpeek/models/discoverrequest.py +0 -64
  174. mixpeek/models/embeddingconfig.py +0 -33
  175. mixpeek/models/embeddingrequest.py +0 -92
  176. mixpeek/models/embeddingresponse.py +0 -64
  177. mixpeek/models/entitysettings.py +0 -50
  178. mixpeek/models/featureoptions.py +0 -25
  179. mixpeek/models/features_model_paginationresponse.py +0 -59
  180. mixpeek/models/featureupdaterequest.py +0 -21
  181. mixpeek/models/get_asset_v1_assets_asset_id_getop.py +0 -73
  182. mixpeek/models/get_asset_with_features_v1_assets_asset_id_features_getop.py +0 -73
  183. mixpeek/models/get_collection_details_v1_collections_collection_details_getop.py +0 -59
  184. mixpeek/models/get_collection_details_v1_collections_collection_getop.py +0 -59
  185. mixpeek/models/get_feature_v1_features_feature_id_getop.py +0 -70
  186. mixpeek/models/get_taxonomy_node_v1_entities_taxonomies_nodes_node_getop.py +0 -59
  187. mixpeek/models/groupedassetdata.py +0 -18
  188. mixpeek/models/imagedescribesettings.py +0 -82
  189. mixpeek/models/imagedetectsettings.py +0 -47
  190. mixpeek/models/imagereadsettings.py +0 -71
  191. mixpeek/models/imagesettings.py +0 -92
  192. mixpeek/models/listassetsrequest.py +0 -75
  193. mixpeek/models/listassetsresponse.py +0 -22
  194. mixpeek/models/listclassificationsrequest.py +0 -69
  195. mixpeek/models/listclassificationsresponse.py +0 -31
  196. mixpeek/models/listcollectionsresponse.py +0 -22
  197. mixpeek/models/listfeaturesrequest.py +0 -77
  198. mixpeek/models/listfeaturesresponse.py +0 -22
  199. mixpeek/models/listtaxonomiesresponse.py +0 -24
  200. mixpeek/models/modality.py +0 -13
  201. mixpeek/models/modeldetails.py +0 -61
  202. mixpeek/models/nodeoptions.py +0 -16
  203. mixpeek/models/patch_namespace_v1_namespaces_namespace_patchop.py +0 -28
  204. mixpeek/models/payloadindextype.py +0 -17
  205. mixpeek/models/processimageurlinput.py +0 -87
  206. mixpeek/models/processtextinput.py +0 -82
  207. mixpeek/models/processvideourlinput.py +0 -87
  208. mixpeek/models/querysettings.py +0 -56
  209. mixpeek/models/rerankingoptions.py +0 -47
  210. mixpeek/models/search_model_searchquery.py +0 -76
  211. mixpeek/models/searchassetsrequest.py +0 -78
  212. mixpeek/models/searchrequestfeatures.py +0 -153
  213. mixpeek/models/sparseembedding.py +0 -21
  214. mixpeek/models/taxonomycreate.py +0 -20
  215. mixpeek/models/taxonomyextractionconfig.py +0 -26
  216. mixpeek/models/taxonomymodel.py +0 -27
  217. mixpeek/models/taxonomynode.py +0 -101
  218. mixpeek/models/taxonomynodecreate.py +0 -63
  219. mixpeek/models/textsettings.py +0 -67
  220. mixpeek/models/updateassetrequest.py +0 -60
  221. mixpeek/models/usage.py +0 -18
  222. mixpeek/models/vectormodel.py +0 -15
  223. mixpeek/models/videodescribesettings.py +0 -82
  224. mixpeek/models/videodetectsettings.py +0 -47
  225. mixpeek/models/videoreadsettings.py +0 -71
  226. mixpeek/models/videosettings.py +0 -115
  227. mixpeek/models/videotranscriptionsettings.py +0 -69
  228. mixpeek-0.20.20.dist-info/RECORD +0 -201
@@ -1,166 +0,0 @@
1
- """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
-
3
- from __future__ import annotations
4
- from datetime import datetime
5
- from mixpeek.types import BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL
6
- from pydantic import model_serializer
7
- from typing import Any
8
- from typing_extensions import NotRequired, TypedDict
9
-
10
-
11
- class FileDataTypedDict(TypedDict):
12
- pass
13
-
14
-
15
- class FileData(BaseModel):
16
- pass
17
-
18
-
19
- class MetadataTypedDict(TypedDict):
20
- pass
21
-
22
-
23
- class Metadata(BaseModel):
24
- pass
25
-
26
-
27
- class AssetResponseTypedDict(TypedDict):
28
- asset_id: NotRequired[Nullable[str]]
29
- r"""The unique identifier for the asset"""
30
- collection_id: NotRequired[Nullable[str]]
31
- r"""The ID of the collection the asset belongs to"""
32
- status: NotRequired[Nullable[str]]
33
- r"""The current status of the asset processing"""
34
- file_data: NotRequired[Nullable[FileDataTypedDict]]
35
- r"""File data associated with the asset"""
36
- metadata: NotRequired[Nullable[MetadataTypedDict]]
37
- r"""Additional metadata associated with the asset"""
38
- error: NotRequired[Nullable[Any]]
39
- r"""The error message if the asset processing failed"""
40
- modality: NotRequired[Nullable[str]]
41
- r"""The type of media"""
42
- task_id: NotRequired[Nullable[str]]
43
- r"""The task ID"""
44
- file_hash: NotRequired[Nullable[str]]
45
- r"""The unique hash of the"""
46
- updated_at: NotRequired[Nullable[datetime]]
47
- r"""The timestamp when the asset was last updated"""
48
- created_at: NotRequired[Nullable[datetime]]
49
- r"""The timestamp when the asset was created"""
50
- score: NotRequired[Nullable[float]]
51
- r"""The relevance score of the asset"""
52
- url: NotRequired[Nullable[str]]
53
- r"""The presigned URL for accessing the asset"""
54
- preview_url: NotRequired[Nullable[str]]
55
- r"""The presigned URL for accessing the asset preview"""
56
- duplicate_of: NotRequired[Nullable[str]]
57
- r"""The asset_id of the asset that this asset is a duplicate of"""
58
-
59
-
60
- class AssetResponse(BaseModel):
61
- asset_id: OptionalNullable[str] = UNSET
62
- r"""The unique identifier for the asset"""
63
-
64
- collection_id: OptionalNullable[str] = UNSET
65
- r"""The ID of the collection the asset belongs to"""
66
-
67
- status: OptionalNullable[str] = UNSET
68
- r"""The current status of the asset processing"""
69
-
70
- file_data: OptionalNullable[FileData] = UNSET
71
- r"""File data associated with the asset"""
72
-
73
- metadata: OptionalNullable[Metadata] = UNSET
74
- r"""Additional metadata associated with the asset"""
75
-
76
- error: OptionalNullable[Any] = UNSET
77
- r"""The error message if the asset processing failed"""
78
-
79
- modality: OptionalNullable[str] = UNSET
80
- r"""The type of media"""
81
-
82
- task_id: OptionalNullable[str] = UNSET
83
- r"""The task ID"""
84
-
85
- file_hash: OptionalNullable[str] = UNSET
86
- r"""The unique hash of the"""
87
-
88
- updated_at: OptionalNullable[datetime] = UNSET
89
- r"""The timestamp when the asset was last updated"""
90
-
91
- created_at: OptionalNullable[datetime] = UNSET
92
- r"""The timestamp when the asset was created"""
93
-
94
- score: OptionalNullable[float] = UNSET
95
- r"""The relevance score of the asset"""
96
-
97
- url: OptionalNullable[str] = UNSET
98
- r"""The presigned URL for accessing the asset"""
99
-
100
- preview_url: OptionalNullable[str] = UNSET
101
- r"""The presigned URL for accessing the asset preview"""
102
-
103
- duplicate_of: OptionalNullable[str] = UNSET
104
- r"""The asset_id of the asset that this asset is a duplicate of"""
105
-
106
- @model_serializer(mode="wrap")
107
- def serialize_model(self, handler):
108
- optional_fields = [
109
- "asset_id",
110
- "collection_id",
111
- "status",
112
- "file_data",
113
- "metadata",
114
- "error",
115
- "modality",
116
- "task_id",
117
- "file_hash",
118
- "updated_at",
119
- "created_at",
120
- "score",
121
- "url",
122
- "preview_url",
123
- "duplicate_of",
124
- ]
125
- nullable_fields = [
126
- "asset_id",
127
- "collection_id",
128
- "status",
129
- "file_data",
130
- "metadata",
131
- "error",
132
- "modality",
133
- "task_id",
134
- "file_hash",
135
- "updated_at",
136
- "created_at",
137
- "score",
138
- "url",
139
- "preview_url",
140
- "duplicate_of",
141
- ]
142
- null_default_fields = []
143
-
144
- serialized = handler(self)
145
-
146
- m = {}
147
-
148
- for n, f in self.model_fields.items():
149
- k = f.alias or n
150
- val = serialized.get(k)
151
- serialized.pop(k, None)
152
-
153
- optional_nullable = k in optional_fields and k in nullable_fields
154
- is_set = (
155
- self.__pydantic_fields_set__.intersection({n})
156
- or k in null_default_fields
157
- ) # pylint: disable=no-member
158
-
159
- if val is not None and val != UNSET_SENTINEL:
160
- m[k] = val
161
- elif val != UNSET_SENTINEL and (
162
- not k in optional_fields or (optional_nullable and is_set)
163
- ):
164
- m[k] = val
165
-
166
- return m
@@ -1,21 +0,0 @@
1
- """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
-
3
- from __future__ import annotations
4
- from mixpeek.types import BaseModel
5
- from typing import List
6
- from typing_extensions import TypedDict
7
-
8
-
9
- class AssetsModelSearchQueryTypedDict(TypedDict):
10
- key: List[str]
11
- r"""Fields to search in. Can be a list of field names or '*' for all fields"""
12
- value: str
13
- r"""The search term to look for in the specified fields"""
14
-
15
-
16
- class AssetsModelSearchQuery(BaseModel):
17
- key: List[str]
18
- r"""Fields to search in. Can be a list of field names or '*' for all fields"""
19
-
20
- value: str
21
- r"""The search term to look for in the specified fields"""
@@ -1,28 +0,0 @@
1
- """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
-
3
- from __future__ import annotations
4
- from enum import Enum
5
- from mixpeek.types import BaseModel
6
- from typing_extensions import TypedDict
7
-
8
-
9
- class Mode(str, Enum):
10
- r"""Update mode: 'replace' or 'append'"""
11
-
12
- REPLACE = "replace"
13
- APPEND = "append"
14
-
15
-
16
- class AssetUpdateTypedDict(TypedDict):
17
- asset_id: str
18
- r"""Unique identifier for the asset to be updated"""
19
- mode: Mode
20
- r"""Update mode: 'replace' or 'append'"""
21
-
22
-
23
- class AssetUpdate(BaseModel):
24
- asset_id: str
25
- r"""Unique identifier for the asset to be updated"""
26
-
27
- mode: Mode
28
- r"""Update mode: 'replace' or 'append'"""
@@ -1,67 +0,0 @@
1
- """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
-
3
- from __future__ import annotations
4
- from .assignmentmode import AssignmentMode
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 AssignmentConfigTypedDict(TypedDict):
12
- r"""Configuration for how classifications should be assigned to features"""
13
-
14
- enabled: NotRequired[bool]
15
- r"""Whether to assign the taxonomy to the feature"""
16
- mode: NotRequired[AssignmentMode]
17
- r"""Mode for how classifications should be assigned"""
18
- append: NotRequired[bool]
19
- r"""Whether to append the classification to the feature, if false, replaces any existing classification"""
20
- confidence_threshold: NotRequired[Nullable[float]]
21
- r"""Minimum confidence score required for classification (only used in threshold mode)"""
22
-
23
-
24
- class AssignmentConfig(BaseModel):
25
- r"""Configuration for how classifications should be assigned to features"""
26
-
27
- enabled: Optional[bool] = False
28
- r"""Whether to assign the taxonomy to the feature"""
29
-
30
- mode: Optional[AssignmentMode] = None
31
- r"""Mode for how classifications should be assigned"""
32
-
33
- append: Optional[bool] = False
34
- r"""Whether to append the classification to the feature, if false, replaces any existing classification"""
35
-
36
- confidence_threshold: OptionalNullable[float] = UNSET
37
- r"""Minimum confidence score required for classification (only used in threshold mode)"""
38
-
39
- @model_serializer(mode="wrap")
40
- def serialize_model(self, handler):
41
- optional_fields = ["enabled", "mode", "append", "confidence_threshold"]
42
- nullable_fields = ["confidence_threshold"]
43
- null_default_fields = []
44
-
45
- serialized = handler(self)
46
-
47
- m = {}
48
-
49
- for n, f in self.model_fields.items():
50
- k = f.alias or n
51
- val = serialized.get(k)
52
- serialized.pop(k, None)
53
-
54
- optional_nullable = k in optional_fields and k in nullable_fields
55
- is_set = (
56
- self.__pydantic_fields_set__.intersection({n})
57
- or k in null_default_fields
58
- ) # pylint: disable=no-member
59
-
60
- if val is not None and val != UNSET_SENTINEL:
61
- m[k] = val
62
- elif val != UNSET_SENTINEL and (
63
- not k in optional_fields or (optional_nullable and is_set)
64
- ):
65
- m[k] = val
66
-
67
- return m
@@ -1,11 +0,0 @@
1
- """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
-
3
- from __future__ import annotations
4
- from enum import Enum
5
-
6
-
7
- class AssignmentMode(str, Enum):
8
- r"""Mode for how classifications should be assigned"""
9
-
10
- THRESHOLD = "threshold"
11
- NEAREST = "nearest"
@@ -1,16 +0,0 @@
1
- """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
-
3
- from __future__ import annotations
4
- from enum import Enum
5
-
6
-
7
- class AvailableModels(str, Enum):
8
- IMAGE = "image"
9
- MULTIMODAL = "multimodal"
10
- TEXT = "text"
11
- VIDEO = "video"
12
- KEYWORD = "keyword"
13
- NAVER_SPLADE_V3 = "naver-splade-v3"
14
- VERTEX_MULTIMODAL = "vertex-multimodal"
15
- OPENAI_CLIP_VIT_BASE_PATCH32 = "openai-clip-vit-base-patch32"
16
- BAAI_BGE_M3 = "baai-bge-m3"
@@ -1,27 +0,0 @@
1
- """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
-
3
- from __future__ import annotations
4
- from .modeldetails import ModelDetails, ModelDetailsTypedDict
5
- from .payloadindextype import PayloadIndexType, PayloadIndexTypeTypedDict
6
- from mixpeek.types import BaseModel
7
- from typing import Dict, List
8
- from typing_extensions import TypedDict
9
-
10
-
11
- class AvailableModelsResponseTypedDict(TypedDict):
12
- r"""Response schema for available models endpoint"""
13
-
14
- embedding_models: Dict[str, ModelDetailsTypedDict]
15
- r"""Dictionary mapping model names to their detailed specifications"""
16
- payload_indexes: List[PayloadIndexTypeTypedDict]
17
- r"""List of available payload index types that can be used for filtering"""
18
-
19
-
20
- class AvailableModelsResponse(BaseModel):
21
- r"""Response schema for available models endpoint"""
22
-
23
- embedding_models: Dict[str, ModelDetails]
24
- r"""Dictionary mapping model names to their detailed specifications"""
25
-
26
- payload_indexes: List[PayloadIndexType]
27
- r"""List of available payload index types that can be used for filtering"""
@@ -1,77 +0,0 @@
1
- """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
-
3
- from __future__ import annotations
4
- from .taxonomynode import TaxonomyNode, TaxonomyNodeTypedDict
5
- from mixpeek.types import BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL
6
- from pydantic import model_serializer
7
- from typing import List
8
- from typing_extensions import NotRequired, TypedDict
9
-
10
-
11
- class ClassificationMatchTypedDict(TypedDict):
12
- r"""Individual node match with score"""
13
-
14
- taxonomy_id: str
15
- r"""ID of the matched taxonomy"""
16
- node_id: str
17
- r"""ID of the matched taxonomy node"""
18
- score: float
19
- r"""Confidence score of the match"""
20
- depth: int
21
- r"""Depth of the node in the taxonomy"""
22
- order: List[int]
23
- r"""Order of the node in the taxonomy"""
24
- node: NotRequired[Nullable[TaxonomyNodeTypedDict]]
25
- r"""Full node object if requested"""
26
-
27
-
28
- class ClassificationMatch(BaseModel):
29
- r"""Individual node match with score"""
30
-
31
- taxonomy_id: str
32
- r"""ID of the matched taxonomy"""
33
-
34
- node_id: str
35
- r"""ID of the matched taxonomy node"""
36
-
37
- score: float
38
- r"""Confidence score of the match"""
39
-
40
- depth: int
41
- r"""Depth of the node in the taxonomy"""
42
-
43
- order: List[int]
44
- r"""Order of the node in the taxonomy"""
45
-
46
- node: OptionalNullable[TaxonomyNode] = UNSET
47
- r"""Full node object if requested"""
48
-
49
- @model_serializer(mode="wrap")
50
- def serialize_model(self, handler):
51
- optional_fields = ["node"]
52
- nullable_fields = ["node"]
53
- null_default_fields = []
54
-
55
- serialized = handler(self)
56
-
57
- m = {}
58
-
59
- for n, f in self.model_fields.items():
60
- k = f.alias or n
61
- val = serialized.get(k)
62
- serialized.pop(k, None)
63
-
64
- optional_nullable = k in optional_fields and k in nullable_fields
65
- is_set = (
66
- self.__pydantic_fields_set__.intersection({n})
67
- or k in null_default_fields
68
- ) # pylint: disable=no-member
69
-
70
- if val is not None and val != UNSET_SENTINEL:
71
- m[k] = val
72
- elif val != UNSET_SENTINEL and (
73
- not k in optional_fields or (optional_nullable and is_set)
74
- ):
75
- m[k] = val
76
-
77
- return m
@@ -1,73 +0,0 @@
1
- """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
-
3
- from __future__ import annotations
4
- from .classificationmatch import ClassificationMatch, ClassificationMatchTypedDict
5
- from .featureresponse import FeatureResponse, FeatureResponseTypedDict
6
- from mixpeek.types import BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL
7
- from pydantic import model_serializer
8
- from typing import List
9
- from typing_extensions import NotRequired, TypedDict
10
-
11
-
12
- class ClassificationWithFeatureTypedDict(TypedDict):
13
- r"""Classification entry with optional full feature and node data"""
14
-
15
- feature_id: str
16
- r"""ID of the classified feature"""
17
- classification_id: str
18
- r"""ID of the classification run"""
19
- taxonomy_id: str
20
- r"""ID of the taxonomy used"""
21
- matches: List[ClassificationMatchTypedDict]
22
- r"""List of node matches with scores"""
23
- feature: NotRequired[Nullable[FeatureResponseTypedDict]]
24
- r"""Full feature object if requested"""
25
-
26
-
27
- class ClassificationWithFeature(BaseModel):
28
- r"""Classification entry with optional full feature and node data"""
29
-
30
- feature_id: str
31
- r"""ID of the classified feature"""
32
-
33
- classification_id: str
34
- r"""ID of the classification run"""
35
-
36
- taxonomy_id: str
37
- r"""ID of the taxonomy used"""
38
-
39
- matches: List[ClassificationMatch]
40
- r"""List of node matches with scores"""
41
-
42
- feature: OptionalNullable[FeatureResponse] = UNSET
43
- r"""Full feature object if requested"""
44
-
45
- @model_serializer(mode="wrap")
46
- def serialize_model(self, handler):
47
- optional_fields = ["feature"]
48
- nullable_fields = ["feature"]
49
- null_default_fields = []
50
-
51
- serialized = handler(self)
52
-
53
- m = {}
54
-
55
- for n, f in self.model_fields.items():
56
- k = f.alias or n
57
- val = serialized.get(k)
58
- serialized.pop(k, None)
59
-
60
- optional_nullable = k in optional_fields and k in nullable_fields
61
- is_set = (
62
- self.__pydantic_fields_set__.intersection({n})
63
- or k in null_default_fields
64
- ) # pylint: disable=no-member
65
-
66
- if val is not None and val != UNSET_SENTINEL:
67
- m[k] = val
68
- elif val != UNSET_SENTINEL and (
69
- not k in optional_fields or (optional_nullable and is_set)
70
- ):
71
- m[k] = val
72
-
73
- return m
@@ -1,83 +0,0 @@
1
- """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
-
3
- from __future__ import annotations
4
- from datetime import datetime
5
- from mixpeek.types import BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL
6
- from pydantic import model_serializer
7
- from typing_extensions import NotRequired, TypedDict
8
-
9
-
10
- class CollectionDetailsResponseMetadataTypedDict(TypedDict):
11
- pass
12
-
13
-
14
- class CollectionDetailsResponseMetadata(BaseModel):
15
- pass
16
-
17
-
18
- class CollectionDetailsResponseTypedDict(TypedDict):
19
- collection_id: str
20
- collection_name: str
21
- count: NotRequired[Nullable[int]]
22
- last_updated: NotRequired[Nullable[datetime]]
23
- preview_url: NotRequired[Nullable[str]]
24
- metadata: NotRequired[Nullable[CollectionDetailsResponseMetadataTypedDict]]
25
- unique_hashes: NotRequired[Nullable[int]]
26
-
27
-
28
- class CollectionDetailsResponse(BaseModel):
29
- collection_id: str
30
-
31
- collection_name: str
32
-
33
- count: OptionalNullable[int] = UNSET
34
-
35
- last_updated: OptionalNullable[datetime] = UNSET
36
-
37
- preview_url: OptionalNullable[str] = UNSET
38
-
39
- metadata: OptionalNullable[CollectionDetailsResponseMetadata] = UNSET
40
-
41
- unique_hashes: OptionalNullable[int] = UNSET
42
-
43
- @model_serializer(mode="wrap")
44
- def serialize_model(self, handler):
45
- optional_fields = [
46
- "count",
47
- "last_updated",
48
- "preview_url",
49
- "metadata",
50
- "unique_hashes",
51
- ]
52
- nullable_fields = [
53
- "count",
54
- "last_updated",
55
- "preview_url",
56
- "metadata",
57
- "unique_hashes",
58
- ]
59
- null_default_fields = []
60
-
61
- serialized = handler(self)
62
-
63
- m = {}
64
-
65
- for n, f in self.model_fields.items():
66
- k = f.alias or n
67
- val = serialized.get(k)
68
- serialized.pop(k, None)
69
-
70
- optional_nullable = k in optional_fields and k in nullable_fields
71
- is_set = (
72
- self.__pydantic_fields_set__.intersection({n})
73
- or k in null_default_fields
74
- ) # pylint: disable=no-member
75
-
76
- if val is not None and val != UNSET_SENTINEL:
77
- m[k] = val
78
- elif val != UNSET_SENTINEL and (
79
- not k in optional_fields or (optional_nullable and is_set)
80
- ):
81
- m[k] = val
82
-
83
- return m
@@ -1,22 +0,0 @@
1
- """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
-
3
- from __future__ import annotations
4
- from .actionusage import ActionUsage, ActionUsageTypedDict
5
- from mixpeek.types import BaseModel
6
- import pydantic
7
- from typing import List
8
- from typing_extensions import Annotated, TypedDict
9
-
10
-
11
- class DateUsageTypedDict(TypedDict):
12
- date_: str
13
- credits: int
14
- actions: List[ActionUsageTypedDict]
15
-
16
-
17
- class DateUsage(BaseModel):
18
- date_: Annotated[str, pydantic.Field(alias="date")]
19
-
20
- credits: int
21
-
22
- actions: List[ActionUsage]
@@ -1,16 +0,0 @@
1
- """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
-
3
- from __future__ import annotations
4
- from mixpeek.types import BaseModel
5
- from typing import List
6
- from typing_extensions import TypedDict
7
-
8
-
9
- class DenseEmbeddingTypedDict(TypedDict):
10
- vector: List[float]
11
- r"""Dense vector representation"""
12
-
13
-
14
- class DenseEmbedding(BaseModel):
15
- vector: List[float]
16
- r"""Dense vector representation"""
@@ -1,64 +0,0 @@
1
- """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
-
3
- from __future__ import annotations
4
- from .assignmentconfig import AssignmentConfig, AssignmentConfigTypedDict
5
- from .logicaloperator import LogicalOperator, LogicalOperatorTypedDict
6
- from mixpeek.types import BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL
7
- from pydantic import model_serializer
8
- from typing import List, Optional
9
- from typing_extensions import NotRequired, TypedDict
10
-
11
-
12
- class DiscoverRequestTypedDict(TypedDict):
13
- collections: List[str]
14
- r"""List of collection names or ids to search for features"""
15
- filters: NotRequired[Nullable[LogicalOperatorTypedDict]]
16
- r"""Filters to apply to the discovery task"""
17
- assignment: NotRequired[AssignmentConfigTypedDict]
18
- r"""Configuration for how classifications should be assigned to features"""
19
- limit: NotRequired[Nullable[int]]
20
- r"""Number of feature samples to process, if None, all features that match the filters are processed"""
21
-
22
-
23
- class DiscoverRequest(BaseModel):
24
- collections: List[str]
25
- r"""List of collection names or ids to search for features"""
26
-
27
- filters: OptionalNullable[LogicalOperator] = UNSET
28
- r"""Filters to apply to the discovery task"""
29
-
30
- assignment: Optional[AssignmentConfig] = None
31
- r"""Configuration for how classifications should be assigned to features"""
32
-
33
- limit: OptionalNullable[int] = UNSET
34
- r"""Number of feature samples to process, if None, all features that match the filters are processed"""
35
-
36
- @model_serializer(mode="wrap")
37
- def serialize_model(self, handler):
38
- optional_fields = ["filters", "assignment", "limit"]
39
- nullable_fields = ["filters", "limit"]
40
- null_default_fields = []
41
-
42
- serialized = handler(self)
43
-
44
- m = {}
45
-
46
- for n, f in self.model_fields.items():
47
- k = f.alias or n
48
- val = serialized.get(k)
49
- serialized.pop(k, None)
50
-
51
- optional_nullable = k in optional_fields and k in nullable_fields
52
- is_set = (
53
- self.__pydantic_fields_set__.intersection({n})
54
- or k in null_default_fields
55
- ) # pylint: disable=no-member
56
-
57
- if val is not None and val != UNSET_SENTINEL:
58
- m[k] = val
59
- elif val != UNSET_SENTINEL and (
60
- not k in optional_fields or (optional_nullable and is_set)
61
- ):
62
- m[k] = val
63
-
64
- return m