mixpeek 0.20.19__py3-none-any.whl → 0.21.1__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 → bucket_objects.py} +309 -793
  3. mixpeek/buckets.py +1292 -0
  4. mixpeek/clusters.py +306 -0
  5. mixpeek/collection_cache.py +820 -0
  6. mixpeek/{taxonomyentities.py → collection_documents.py} +305 -559
  7. mixpeek/collections.py +122 -996
  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/organization_notifications.py +214 -0
  147. mixpeek/organizations.py +6 -210
  148. mixpeek/{featureextractors.py → organizations_usage.py} +31 -39
  149. mixpeek/research.py +228 -0
  150. mixpeek/retriever_interactions.py +1036 -0
  151. mixpeek/retriever_stages.py +232 -0
  152. mixpeek/{ingestassets.py → retrievers.py} +209 -271
  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.19.dist-info → mixpeek-0.21.1.dist-info}/METADATA +68 -50
  158. mixpeek-0.21.1.dist-info/RECORD +216 -0
  159. {mixpeek-0.20.19.dist-info → mixpeek-0.21.1.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.19.dist-info/RECORD +0 -201
@@ -0,0 +1,37 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from .bucketschemafield_output import (
5
+ BucketSchemaFieldOutput,
6
+ BucketSchemaFieldOutputTypedDict,
7
+ )
8
+ from mixpeek.types import BaseModel
9
+ import pydantic
10
+ from pydantic import ConfigDict
11
+ from typing import Any, Dict
12
+ from typing_extensions import TypedDict
13
+
14
+
15
+ class BucketSchemaOutputTypedDict(TypedDict):
16
+ r"""Schema definition for bucket objects"""
17
+
18
+ properties: Dict[str, BucketSchemaFieldOutputTypedDict]
19
+
20
+
21
+ class BucketSchemaOutput(BaseModel):
22
+ r"""Schema definition for bucket objects"""
23
+
24
+ model_config = ConfigDict(
25
+ populate_by_name=True, arbitrary_types_allowed=True, extra="allow"
26
+ )
27
+ __pydantic_extra__: Dict[str, Any] = pydantic.Field(init=False)
28
+
29
+ properties: Dict[str, BucketSchemaFieldOutput]
30
+
31
+ @property
32
+ def additional_properties(self):
33
+ return self.__pydantic_extra__
34
+
35
+ @additional_properties.setter
36
+ def additional_properties(self, value):
37
+ self.__pydantic_extra__ = value # pyright: ignore[reportIncompatibleVariableOverride]
@@ -1,36 +1,49 @@
1
1
  """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
2
 
3
3
  from __future__ import annotations
4
+ from .bucketschemafieldtype import BucketSchemaFieldType
4
5
  from mixpeek.types import BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL
5
6
  import pydantic
6
7
  from pydantic import ConfigDict, model_serializer
7
- from typing import Any, Dict
8
+ from typing import Any, Dict, List
8
9
  from typing_extensions import NotRequired, TypedDict
9
10
 
10
11
 
11
- class FeatureResponseTypedDict(TypedDict):
12
- url: NotRequired[Nullable[str]]
13
- r"""The presigned URL for accessing the asset"""
14
- preview_url: NotRequired[Nullable[str]]
15
- r"""The presigned URL for accessing the asset preview"""
16
- duplicate_of: NotRequired[Nullable[str]]
17
- r"""The asset_id of the asset that this asset is a duplicate of"""
12
+ class BucketSchemaFieldInputTypedDict(TypedDict):
13
+ r"""Schema field definition for bucket objects"""
18
14
 
15
+ type: BucketSchemaFieldType
16
+ r"""Enum for field types in bucket schemas"""
17
+ default: NotRequired[Nullable[Any]]
18
+ items: NotRequired[Nullable[BucketSchemaFieldInputTypedDict]]
19
+ properties: NotRequired[Nullable[Dict[str, BucketSchemaFieldInputTypedDict]]]
20
+ example: NotRequired[Nullable[Any]]
21
+ description: NotRequired[Nullable[str]]
22
+ enum: NotRequired[Nullable[List[Any]]]
23
+
24
+
25
+ class BucketSchemaFieldInput(BaseModel):
26
+ r"""Schema field definition for bucket objects"""
19
27
 
20
- class FeatureResponse(BaseModel):
21
28
  model_config = ConfigDict(
22
29
  populate_by_name=True, arbitrary_types_allowed=True, extra="allow"
23
30
  )
24
31
  __pydantic_extra__: Dict[str, Any] = pydantic.Field(init=False)
25
32
 
26
- url: OptionalNullable[str] = UNSET
27
- r"""The presigned URL for accessing the asset"""
33
+ type: BucketSchemaFieldType
34
+ r"""Enum for field types in bucket schemas"""
35
+
36
+ default: OptionalNullable[Any] = UNSET
37
+
38
+ items: OptionalNullable[BucketSchemaFieldInput] = UNSET
39
+
40
+ properties: OptionalNullable[Dict[str, BucketSchemaFieldInput]] = UNSET
41
+
42
+ example: OptionalNullable[Any] = UNSET
28
43
 
29
- preview_url: OptionalNullable[str] = UNSET
30
- r"""The presigned URL for accessing the asset preview"""
44
+ description: OptionalNullable[str] = UNSET
31
45
 
32
- duplicate_of: OptionalNullable[str] = UNSET
33
- r"""The asset_id of the asset that this asset is a duplicate of"""
46
+ enum: OptionalNullable[List[Any]] = UNSET
34
47
 
35
48
  @property
36
49
  def additional_properties(self):
@@ -42,15 +55,29 @@ class FeatureResponse(BaseModel):
42
55
 
43
56
  @model_serializer(mode="wrap")
44
57
  def serialize_model(self, handler):
45
- optional_fields = ["url", "preview_url", "duplicate_of"]
46
- nullable_fields = ["url", "preview_url", "duplicate_of"]
58
+ optional_fields = [
59
+ "default",
60
+ "items",
61
+ "properties",
62
+ "example",
63
+ "description",
64
+ "enum",
65
+ ]
66
+ nullable_fields = [
67
+ "default",
68
+ "items",
69
+ "properties",
70
+ "example",
71
+ "description",
72
+ "enum",
73
+ ]
47
74
  null_default_fields = []
48
75
 
49
76
  serialized = handler(self)
50
77
 
51
78
  m = {}
52
79
 
53
- for n, f in self.model_fields.items():
80
+ for n, f in type(self).model_fields.items():
54
81
  k = f.alias or n
55
82
  val = serialized.get(k)
56
83
  serialized.pop(k, None)
@@ -0,0 +1,101 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from .bucketschemafieldtype import BucketSchemaFieldType
5
+ from mixpeek.types import BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL
6
+ import pydantic
7
+ from pydantic import ConfigDict, model_serializer
8
+ from typing import Any, Dict, List
9
+ from typing_extensions import NotRequired, TypedDict
10
+
11
+
12
+ class BucketSchemaFieldOutputTypedDict(TypedDict):
13
+ r"""Schema field definition for bucket objects"""
14
+
15
+ type: BucketSchemaFieldType
16
+ r"""Enum for field types in bucket schemas"""
17
+ default: NotRequired[Nullable[Any]]
18
+ items: NotRequired[Nullable[BucketSchemaFieldOutputTypedDict]]
19
+ properties: NotRequired[Nullable[Dict[str, BucketSchemaFieldOutputTypedDict]]]
20
+ example: NotRequired[Nullable[Any]]
21
+ description: NotRequired[Nullable[str]]
22
+ enum: NotRequired[Nullable[List[Any]]]
23
+
24
+
25
+ class BucketSchemaFieldOutput(BaseModel):
26
+ r"""Schema field definition for bucket objects"""
27
+
28
+ model_config = ConfigDict(
29
+ populate_by_name=True, arbitrary_types_allowed=True, extra="allow"
30
+ )
31
+ __pydantic_extra__: Dict[str, Any] = pydantic.Field(init=False)
32
+
33
+ type: BucketSchemaFieldType
34
+ r"""Enum for field types in bucket schemas"""
35
+
36
+ default: OptionalNullable[Any] = UNSET
37
+
38
+ items: OptionalNullable[BucketSchemaFieldOutput] = UNSET
39
+
40
+ properties: OptionalNullable[Dict[str, BucketSchemaFieldOutput]] = UNSET
41
+
42
+ example: OptionalNullable[Any] = UNSET
43
+
44
+ description: OptionalNullable[str] = UNSET
45
+
46
+ enum: OptionalNullable[List[Any]] = UNSET
47
+
48
+ @property
49
+ def additional_properties(self):
50
+ return self.__pydantic_extra__
51
+
52
+ @additional_properties.setter
53
+ def additional_properties(self, value):
54
+ self.__pydantic_extra__ = value # pyright: ignore[reportIncompatibleVariableOverride]
55
+
56
+ @model_serializer(mode="wrap")
57
+ def serialize_model(self, handler):
58
+ optional_fields = [
59
+ "default",
60
+ "items",
61
+ "properties",
62
+ "example",
63
+ "description",
64
+ "enum",
65
+ ]
66
+ nullable_fields = [
67
+ "default",
68
+ "items",
69
+ "properties",
70
+ "example",
71
+ "description",
72
+ "enum",
73
+ ]
74
+ null_default_fields = []
75
+
76
+ serialized = handler(self)
77
+
78
+ m = {}
79
+
80
+ for n, f in type(self).model_fields.items():
81
+ k = f.alias or n
82
+ val = serialized.get(k)
83
+ serialized.pop(k, None)
84
+
85
+ optional_nullable = k in optional_fields and k in nullable_fields
86
+ is_set = (
87
+ self.__pydantic_fields_set__.intersection({n})
88
+ or k in null_default_fields
89
+ ) # pylint: disable=no-member
90
+
91
+ if val is not None and val != UNSET_SENTINEL:
92
+ m[k] = val
93
+ elif val != UNSET_SENTINEL and (
94
+ not k in optional_fields or (optional_nullable and is_set)
95
+ ):
96
+ m[k] = val
97
+
98
+ for k, v in serialized.items():
99
+ m[k] = v
100
+
101
+ return m
@@ -0,0 +1,29 @@
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 BucketSchemaFieldType(str, Enum):
8
+ r"""Enum for field types in bucket schemas"""
9
+
10
+ STRING = "string"
11
+ NUMBER = "number"
12
+ INTEGER = "integer"
13
+ BOOLEAN = "boolean"
14
+ OBJECT = "object"
15
+ ARRAY = "array"
16
+ DATE = "date"
17
+ DATETIME = "datetime"
18
+ JSON = "json"
19
+ TEXT = "text"
20
+ IMAGE = "image"
21
+ AUDIO = "audio"
22
+ VIDEO = "video"
23
+ PDF = "pdf"
24
+ DOCUMENT = "document"
25
+ SPREADSHEET = "spreadsheet"
26
+ PRESENTATION = "presentation"
27
+ DENSE_VECTOR = "dense_vector"
28
+ SPARSE_VECTOR = "sparse_vector"
29
+ INT8_VECTOR = "int8_vector"
@@ -0,0 +1,68 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from mixpeek.types import BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL
5
+ from pydantic import model_serializer
6
+ from typing_extensions import NotRequired, TypedDict
7
+
8
+
9
+ class MetadataTypedDict(TypedDict):
10
+ pass
11
+
12
+
13
+ class Metadata(BaseModel):
14
+ pass
15
+
16
+
17
+ class BucketUpdateRequestTypedDict(TypedDict):
18
+ r"""Request model for updating an existing bucket"""
19
+
20
+ bucket_name: NotRequired[Nullable[str]]
21
+ r"""Human-readable name for the bucket"""
22
+ description: NotRequired[Nullable[str]]
23
+ r"""Description of the bucket"""
24
+ metadata: NotRequired[Nullable[MetadataTypedDict]]
25
+ r"""Additional metadata for the bucket"""
26
+
27
+
28
+ class BucketUpdateRequest(BaseModel):
29
+ r"""Request model for updating an existing bucket"""
30
+
31
+ bucket_name: OptionalNullable[str] = UNSET
32
+ r"""Human-readable name for the bucket"""
33
+
34
+ description: OptionalNullable[str] = UNSET
35
+ r"""Description of the bucket"""
36
+
37
+ metadata: OptionalNullable[Metadata] = UNSET
38
+ r"""Additional metadata for the bucket"""
39
+
40
+ @model_serializer(mode="wrap")
41
+ def serialize_model(self, handler):
42
+ optional_fields = ["bucket_name", "description", "metadata"]
43
+ nullable_fields = ["bucket_name", "description", "metadata"]
44
+ null_default_fields = []
45
+
46
+ serialized = handler(self)
47
+
48
+ m = {}
49
+
50
+ for n, f in type(self).model_fields.items():
51
+ k = f.alias or n
52
+ val = serialized.get(k)
53
+ serialized.pop(k, None)
54
+
55
+ optional_nullable = k in optional_fields and k in nullable_fields
56
+ is_set = (
57
+ self.__pydantic_fields_set__.intersection({n})
58
+ or k in null_default_fields
59
+ ) # pylint: disable=no-member
60
+
61
+ if val is not None and val != UNSET_SENTINEL:
62
+ m[k] = val
63
+ elif val != UNSET_SENTINEL and (
64
+ not k in optional_fields or (optional_nullable and is_set)
65
+ ):
66
+ m[k] = val
67
+
68
+ return m
@@ -0,0 +1,40 @@
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 Dict, Optional
6
+ from typing_extensions import NotRequired, TypedDict
7
+
8
+
9
+ class CacheStatsTypedDict(TypedDict):
10
+ r"""Statistics about cache usage"""
11
+
12
+ hits: NotRequired[int]
13
+ r"""Number of cache hits"""
14
+ misses: NotRequired[int]
15
+ r"""Number of cache misses"""
16
+ size: NotRequired[int]
17
+ r"""Number of entries in cache"""
18
+ hit_ratio: NotRequired[float]
19
+ r"""Cache hit ratio"""
20
+ retriever_stats: NotRequired[Dict[str, Dict[str, int]]]
21
+ r"""Statistics per retriever"""
22
+
23
+
24
+ class CacheStats(BaseModel):
25
+ r"""Statistics about cache usage"""
26
+
27
+ hits: Optional[int] = 0
28
+ r"""Number of cache hits"""
29
+
30
+ misses: Optional[int] = 0
31
+ r"""Number of cache misses"""
32
+
33
+ size: Optional[int] = 0
34
+ r"""Number of entries in cache"""
35
+
36
+ hit_ratio: Optional[float] = 0
37
+ r"""Cache hit ratio"""
38
+
39
+ retriever_stats: Optional[Dict[str, Dict[str, int]]] = None
40
+ r"""Statistics per retriever"""
@@ -9,23 +9,34 @@ from typing import Optional
9
9
  from typing_extensions import Annotated, NotRequired, TypedDict
10
10
 
11
11
 
12
- class ListCollectionsV1CollectionsGetRequestTypedDict(TypedDict):
13
- page: NotRequired[Nullable[int]]
14
- page_size: NotRequired[int]
12
+ class CleanupCacheV1CollectionsCacheCleanupPostRequestTypedDict(TypedDict):
13
+ internal_id: str
14
+ batch_size: NotRequired[int]
15
+ redis_url: NotRequired[Nullable[str]]
16
+ prefix: NotRequired[Nullable[str]]
15
17
  x_namespace: NotRequired[Nullable[str]]
16
18
  r"""Optional namespace for data isolation. This can be a namespace name or namespace ID. Example: 'netflix_prod' or 'ns_1234567890'. To create a namespace, use the /namespaces endpoint."""
17
19
 
18
20
 
19
- class ListCollectionsV1CollectionsGetRequest(BaseModel):
20
- page: Annotated[
21
- OptionalNullable[int],
21
+ class CleanupCacheV1CollectionsCacheCleanupPostRequest(BaseModel):
22
+ internal_id: Annotated[
23
+ str, FieldMetadata(query=QueryParamMetadata(style="form", explode=True))
24
+ ]
25
+
26
+ batch_size: Annotated[
27
+ Optional[int],
28
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
29
+ ] = 1000
30
+
31
+ redis_url: Annotated[
32
+ OptionalNullable[str],
22
33
  FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
23
34
  ] = UNSET
24
35
 
25
- page_size: Annotated[
26
- Optional[int],
36
+ prefix: Annotated[
37
+ OptionalNullable[str],
27
38
  FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
28
- ] = 10
39
+ ] = UNSET
29
40
 
30
41
  x_namespace: Annotated[
31
42
  OptionalNullable[str],
@@ -36,15 +47,15 @@ class ListCollectionsV1CollectionsGetRequest(BaseModel):
36
47
 
37
48
  @model_serializer(mode="wrap")
38
49
  def serialize_model(self, handler):
39
- optional_fields = ["page", "page_size", "X-Namespace"]
40
- nullable_fields = ["page", "X-Namespace"]
50
+ optional_fields = ["batch_size", "redis_url", "prefix", "X-Namespace"]
51
+ nullable_fields = ["redis_url", "prefix", "X-Namespace"]
41
52
  null_default_fields = []
42
53
 
43
54
  serialized = handler(self)
44
55
 
45
56
  m = {}
46
57
 
47
- for n, f in self.model_fields.items():
58
+ for n, f in type(self).model_fields.items():
48
59
  k = f.alias or n
49
60
  val = serialized.get(k)
50
61
  serialized.pop(k, None)
@@ -4,8 +4,6 @@ from __future__ import annotations
4
4
  from enum import Enum
5
5
 
6
6
 
7
- class InputType(str, Enum):
8
- URL = "url"
9
- TEXT = "text"
10
- FILE = "file"
11
- BASE64 = "base64"
7
+ class ClusteringMethod(str, Enum):
8
+ HDBSCAN = "hdbscan"
9
+ KMEANS = "kmeans"
@@ -0,0 +1,9 @@
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 ClusterType(str, Enum):
8
+ VECTOR = "vector"
9
+ ATTRIBUTE = "attribute"
@@ -0,0 +1,92 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from .invalidationevent import InvalidationEvent, InvalidationEventTypedDict
5
+ from .invalidationstrategy import InvalidationStrategy
6
+ from .retrievercacheconfig import RetrieverCacheConfig, RetrieverCacheConfigTypedDict
7
+ from mixpeek.types import BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL
8
+ from pydantic import model_serializer
9
+ from typing import Dict, List, Optional
10
+ from typing_extensions import NotRequired, TypedDict
11
+
12
+
13
+ class CollectionCacheConfigInputTypedDict(TypedDict):
14
+ r"""Configuration for collection-level caching"""
15
+
16
+ enabled: NotRequired[bool]
17
+ r"""Whether caching is enabled"""
18
+ ttl_seconds: NotRequired[int]
19
+ r"""Time-to-live for cache entries in seconds"""
20
+ invalidation_strategy: NotRequired[InvalidationStrategy]
21
+ r"""Strategies for cache invalidation"""
22
+ max_entries_per_key: NotRequired[int]
23
+ r"""Maximum number of results to cache per key"""
24
+ score_threshold: NotRequired[Nullable[float]]
25
+ r"""Minimum score threshold for caching results"""
26
+ invalidation_events: NotRequired[List[InvalidationEventTypedDict]]
27
+ r"""Events that trigger cache invalidation"""
28
+ retriever_configs: NotRequired[Dict[str, RetrieverCacheConfigTypedDict]]
29
+ r"""Retriever-specific cache configurations"""
30
+
31
+
32
+ class CollectionCacheConfigInput(BaseModel):
33
+ r"""Configuration for collection-level caching"""
34
+
35
+ enabled: Optional[bool] = True
36
+ r"""Whether caching is enabled"""
37
+
38
+ ttl_seconds: Optional[int] = 604800
39
+ r"""Time-to-live for cache entries in seconds"""
40
+
41
+ invalidation_strategy: Optional[InvalidationStrategy] = None
42
+ r"""Strategies for cache invalidation"""
43
+
44
+ max_entries_per_key: Optional[int] = 5
45
+ r"""Maximum number of results to cache per key"""
46
+
47
+ score_threshold: OptionalNullable[float] = UNSET
48
+ r"""Minimum score threshold for caching results"""
49
+
50
+ invalidation_events: Optional[List[InvalidationEvent]] = None
51
+ r"""Events that trigger cache invalidation"""
52
+
53
+ retriever_configs: Optional[Dict[str, RetrieverCacheConfig]] = None
54
+ r"""Retriever-specific cache configurations"""
55
+
56
+ @model_serializer(mode="wrap")
57
+ def serialize_model(self, handler):
58
+ optional_fields = [
59
+ "enabled",
60
+ "ttl_seconds",
61
+ "invalidation_strategy",
62
+ "max_entries_per_key",
63
+ "score_threshold",
64
+ "invalidation_events",
65
+ "retriever_configs",
66
+ ]
67
+ nullable_fields = ["score_threshold"]
68
+ null_default_fields = []
69
+
70
+ serialized = handler(self)
71
+
72
+ m = {}
73
+
74
+ for n, f in type(self).model_fields.items():
75
+ k = f.alias or n
76
+ val = serialized.get(k)
77
+ serialized.pop(k, None)
78
+
79
+ optional_nullable = k in optional_fields and k in nullable_fields
80
+ is_set = (
81
+ self.__pydantic_fields_set__.intersection({n})
82
+ or k in null_default_fields
83
+ ) # pylint: disable=no-member
84
+
85
+ if val is not None and val != UNSET_SENTINEL:
86
+ m[k] = val
87
+ elif val != UNSET_SENTINEL and (
88
+ not k in optional_fields or (optional_nullable and is_set)
89
+ ):
90
+ m[k] = val
91
+
92
+ return m
@@ -0,0 +1,92 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from .invalidationevent import InvalidationEvent, InvalidationEventTypedDict
5
+ from .invalidationstrategy import InvalidationStrategy
6
+ from .retrievercacheconfig import RetrieverCacheConfig, RetrieverCacheConfigTypedDict
7
+ from mixpeek.types import BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL
8
+ from pydantic import model_serializer
9
+ from typing import Dict, List, Optional
10
+ from typing_extensions import NotRequired, TypedDict
11
+
12
+
13
+ class CollectionCacheConfigOutputTypedDict(TypedDict):
14
+ r"""Configuration for collection-level caching"""
15
+
16
+ enabled: NotRequired[bool]
17
+ r"""Whether caching is enabled"""
18
+ ttl_seconds: NotRequired[int]
19
+ r"""Time-to-live for cache entries in seconds"""
20
+ invalidation_strategy: NotRequired[InvalidationStrategy]
21
+ r"""Strategies for cache invalidation"""
22
+ max_entries_per_key: NotRequired[int]
23
+ r"""Maximum number of results to cache per key"""
24
+ score_threshold: NotRequired[Nullable[float]]
25
+ r"""Minimum score threshold for caching results"""
26
+ invalidation_events: NotRequired[List[InvalidationEventTypedDict]]
27
+ r"""Events that trigger cache invalidation"""
28
+ retriever_configs: NotRequired[Dict[str, RetrieverCacheConfigTypedDict]]
29
+ r"""Retriever-specific cache configurations"""
30
+
31
+
32
+ class CollectionCacheConfigOutput(BaseModel):
33
+ r"""Configuration for collection-level caching"""
34
+
35
+ enabled: Optional[bool] = True
36
+ r"""Whether caching is enabled"""
37
+
38
+ ttl_seconds: Optional[int] = 604800
39
+ r"""Time-to-live for cache entries in seconds"""
40
+
41
+ invalidation_strategy: Optional[InvalidationStrategy] = None
42
+ r"""Strategies for cache invalidation"""
43
+
44
+ max_entries_per_key: Optional[int] = 5
45
+ r"""Maximum number of results to cache per key"""
46
+
47
+ score_threshold: OptionalNullable[float] = UNSET
48
+ r"""Minimum score threshold for caching results"""
49
+
50
+ invalidation_events: Optional[List[InvalidationEvent]] = None
51
+ r"""Events that trigger cache invalidation"""
52
+
53
+ retriever_configs: Optional[Dict[str, RetrieverCacheConfig]] = None
54
+ r"""Retriever-specific cache configurations"""
55
+
56
+ @model_serializer(mode="wrap")
57
+ def serialize_model(self, handler):
58
+ optional_fields = [
59
+ "enabled",
60
+ "ttl_seconds",
61
+ "invalidation_strategy",
62
+ "max_entries_per_key",
63
+ "score_threshold",
64
+ "invalidation_events",
65
+ "retriever_configs",
66
+ ]
67
+ nullable_fields = ["score_threshold"]
68
+ null_default_fields = []
69
+
70
+ serialized = handler(self)
71
+
72
+ m = {}
73
+
74
+ for n, f in type(self).model_fields.items():
75
+ k = f.alias or n
76
+ val = serialized.get(k)
77
+ serialized.pop(k, None)
78
+
79
+ optional_nullable = k in optional_fields and k in nullable_fields
80
+ is_set = (
81
+ self.__pydantic_fields_set__.intersection({n})
82
+ or k in null_default_fields
83
+ ) # pylint: disable=no-member
84
+
85
+ if val is not None and val != UNSET_SENTINEL:
86
+ m[k] = val
87
+ elif val != UNSET_SENTINEL and (
88
+ not k in optional_fields or (optional_nullable and is_set)
89
+ ):
90
+ m[k] = val
91
+
92
+ return m
@@ -0,0 +1,32 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from .enrichmentfield import EnrichmentField, EnrichmentFieldTypedDict
5
+ from .retrieverbinding import RetrieverBinding, RetrieverBindingTypedDict
6
+ from mixpeek.types import BaseModel
7
+ from typing import List, Optional
8
+ from typing_extensions import NotRequired, TypedDict
9
+
10
+
11
+ class CollectionConfigTypedDict(TypedDict):
12
+ r"""Configuration for a collection in the taxonomy"""
13
+
14
+ collection_id: str
15
+ r"""ID of the collection"""
16
+ retriever: RetrieverBindingTypedDict
17
+ r"""How a retriever should be used in a taxonomy"""
18
+ enrichment_fields: NotRequired[List[EnrichmentFieldTypedDict]]
19
+ r"""Fields to enrich with taxonomy metadata"""
20
+
21
+
22
+ class CollectionConfig(BaseModel):
23
+ r"""Configuration for a collection in the taxonomy"""
24
+
25
+ collection_id: str
26
+ r"""ID of the collection"""
27
+
28
+ retriever: RetrieverBinding
29
+ r"""How a retriever should be used in a taxonomy"""
30
+
31
+ enrichment_fields: Optional[List[EnrichmentField]] = None
32
+ r"""Fields to enrich with taxonomy metadata"""