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,86 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from .namespaceusage import NamespaceUsage, NamespaceUsageTypedDict
5
+ from .plan import Plan, PlanTypedDict
6
+ from .timeseriesusage import TimeseriesUsage, TimeseriesUsageTypedDict
7
+ from .usagesummary import UsageSummary, UsageSummaryTypedDict
8
+ from datetime import datetime
9
+ from mixpeek.types import BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL
10
+ from pydantic import model_serializer
11
+ from typing import List
12
+ from typing_extensions import NotRequired, TypedDict
13
+
14
+
15
+ class UsageResponseTypedDict(TypedDict):
16
+ r"""Complete usage response model"""
17
+
18
+ usage_summary: UsageSummaryTypedDict
19
+ r"""Summary of current resource usage"""
20
+ namespace_usage: List[NamespaceUsageTypedDict]
21
+ r"""Usage by namespace"""
22
+ billing_period_end: datetime
23
+ r"""End of current billing period"""
24
+ organization_id: str
25
+ r"""Organization ID"""
26
+ usage_history: NotRequired[Nullable[TimeseriesUsageTypedDict]]
27
+ r"""Historical usage data"""
28
+ billing_period_start: NotRequired[Nullable[datetime]]
29
+ r"""Start of current billing period"""
30
+ current_plan: NotRequired[Nullable[PlanTypedDict]]
31
+ r"""Current subscription plan"""
32
+
33
+
34
+ class UsageResponse(BaseModel):
35
+ r"""Complete usage response model"""
36
+
37
+ usage_summary: UsageSummary
38
+ r"""Summary of current resource usage"""
39
+
40
+ namespace_usage: List[NamespaceUsage]
41
+ r"""Usage by namespace"""
42
+
43
+ billing_period_end: datetime
44
+ r"""End of current billing period"""
45
+
46
+ organization_id: str
47
+ r"""Organization ID"""
48
+
49
+ usage_history: OptionalNullable[TimeseriesUsage] = UNSET
50
+ r"""Historical usage data"""
51
+
52
+ billing_period_start: OptionalNullable[datetime] = UNSET
53
+ r"""Start of current billing period"""
54
+
55
+ current_plan: OptionalNullable[Plan] = UNSET
56
+ r"""Current subscription plan"""
57
+
58
+ @model_serializer(mode="wrap")
59
+ def serialize_model(self, handler):
60
+ optional_fields = ["usage_history", "billing_period_start", "current_plan"]
61
+ nullable_fields = ["usage_history", "billing_period_start", "current_plan"]
62
+ null_default_fields = []
63
+
64
+ serialized = handler(self)
65
+
66
+ m = {}
67
+
68
+ for n, f in type(self).model_fields.items():
69
+ k = f.alias or n
70
+ val = serialized.get(k)
71
+ serialized.pop(k, None)
72
+
73
+ optional_nullable = k in optional_fields and k in nullable_fields
74
+ is_set = (
75
+ self.__pydantic_fields_set__.intersection({n})
76
+ or k in null_default_fields
77
+ ) # pylint: disable=no-member
78
+
79
+ if val is not None and val != UNSET_SENTINEL:
80
+ m[k] = val
81
+ elif val != UNSET_SENTINEL and (
82
+ not k in optional_fields or (optional_nullable and is_set)
83
+ ):
84
+ m[k] = val
85
+
86
+ return m
@@ -0,0 +1,39 @@
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_extensions import TypedDict
6
+
7
+
8
+ class UsageSummaryTypedDict(TypedDict):
9
+ r"""Summary of current resource usage"""
10
+
11
+ api_calls: int
12
+ r"""Total API calls in the current period"""
13
+ storage_used_gb: float
14
+ r"""Total storage used in GB"""
15
+ documents_processed: int
16
+ r"""Total documents processed"""
17
+ active_collections: int
18
+ r"""Number of active collections"""
19
+ credits_used: int
20
+ r"""Total credits used"""
21
+
22
+
23
+ class UsageSummary(BaseModel):
24
+ r"""Summary of current resource usage"""
25
+
26
+ api_calls: int
27
+ r"""Total API calls in the current period"""
28
+
29
+ storage_used_gb: float
30
+ r"""Total storage used in GB"""
31
+
32
+ documents_processed: int
33
+ r"""Total documents processed"""
34
+
35
+ active_collections: int
36
+ r"""Number of active collections"""
37
+
38
+ credits_used: int
39
+ r"""Total credits used"""
@@ -0,0 +1,16 @@
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 UsageTimeRange(str, Enum):
8
+ r"""Time ranges for usage data"""
9
+
10
+ SEVEND = "7d"
11
+ THIRTYD = "30d"
12
+ NINETYD = "90d"
13
+ ONE_HUNDRED_AND_EIGHTYD = "180d"
14
+ THREE_HUNDRED_AND_SIXTY_FIVED = "365d"
15
+ BILLING_PERIOD = "billing_period"
16
+ CUSTOM = "custom"
@@ -19,6 +19,7 @@ class UserModelInputMetadata(BaseModel):
19
19
  class UserModelInputTypedDict(TypedDict):
20
20
  email: str
21
21
  user_id: NotRequired[str]
22
+ user_name: NotRequired[str]
22
23
  api_keys: NotRequired[List[APIKeyTypedDict]]
23
24
  metadata: NotRequired[UserModelInputMetadataTypedDict]
24
25
  created_at: NotRequired[datetime]
@@ -29,6 +30,8 @@ class UserModelInput(BaseModel):
29
30
 
30
31
  user_id: Optional[str] = None
31
32
 
33
+ user_name: Optional[str] = None
34
+
32
35
  api_keys: Optional[List[APIKey]] = None
33
36
 
34
37
  metadata: Optional[UserModelInputMetadata] = None
@@ -19,6 +19,7 @@ class UserModelOutputMetadata(BaseModel):
19
19
  class UserModelOutputTypedDict(TypedDict):
20
20
  email: str
21
21
  user_id: NotRequired[str]
22
+ user_name: NotRequired[str]
22
23
  api_keys: NotRequired[List[APIKeyTypedDict]]
23
24
  metadata: NotRequired[UserModelOutputMetadataTypedDict]
24
25
  created_at: NotRequired[datetime]
@@ -29,6 +30,8 @@ class UserModelOutput(BaseModel):
29
30
 
30
31
  user_id: Optional[str] = None
31
32
 
33
+ user_name: Optional[str] = None
34
+
32
35
  api_keys: Optional[List[APIKey]] = None
33
36
 
34
37
  metadata: Optional[UserModelOutputMetadata] = None
@@ -0,0 +1,60 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from .clusteringmethod import ClusteringMethod
5
+ from .hdbscanparameters import HDBSCANParameters, HDBSCANParametersTypedDict
6
+ from mixpeek.types import BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL
7
+ from pydantic import model_serializer
8
+ from typing import Optional
9
+ from typing_extensions import NotRequired, TypedDict
10
+
11
+
12
+ class VectorBasedConfigTypedDict(TypedDict):
13
+ feature_extractor_name: str
14
+ r"""Name of the feature extractor to use for vector-based clustering"""
15
+ clustering_method: ClusteringMethod
16
+ sample_size: NotRequired[int]
17
+ r"""Maximum number of documents to process"""
18
+ hdbscan_parameters: NotRequired[Nullable[HDBSCANParametersTypedDict]]
19
+
20
+
21
+ class VectorBasedConfig(BaseModel):
22
+ feature_extractor_name: str
23
+ r"""Name of the feature extractor to use for vector-based clustering"""
24
+
25
+ clustering_method: ClusteringMethod
26
+
27
+ sample_size: Optional[int] = 1000
28
+ r"""Maximum number of documents to process"""
29
+
30
+ hdbscan_parameters: OptionalNullable[HDBSCANParameters] = UNSET
31
+
32
+ @model_serializer(mode="wrap")
33
+ def serialize_model(self, handler):
34
+ optional_fields = ["sample_size", "hdbscan_parameters"]
35
+ nullable_fields = ["hdbscan_parameters"]
36
+ null_default_fields = []
37
+
38
+ serialized = handler(self)
39
+
40
+ m = {}
41
+
42
+ for n, f in type(self).model_fields.items():
43
+ k = f.alias or n
44
+ val = serialized.get(k)
45
+ serialized.pop(k, None)
46
+
47
+ optional_nullable = k in optional_fields and k in nullable_fields
48
+ is_set = (
49
+ self.__pydantic_fields_set__.intersection({n})
50
+ or k in null_default_fields
51
+ ) # pylint: disable=no-member
52
+
53
+ if val is not None and val != UNSET_SENTINEL:
54
+ m[k] = val
55
+ elif val != UNSET_SENTINEL and (
56
+ not k in optional_fields or (optional_nullable and is_set)
57
+ ):
58
+ m[k] = val
59
+
60
+ return m
@@ -1,43 +1,48 @@
1
1
  """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
2
 
3
3
  from __future__ import annotations
4
+ from .vectortype import VectorType
4
5
  from mixpeek.types import BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL
5
6
  from pydantic import model_serializer
6
7
  from typing_extensions import NotRequired, TypedDict
7
8
 
8
9
 
9
- class CollectionResultMetadataTypedDict(TypedDict):
10
- pass
10
+ class VectorIndexTypedDict(TypedDict):
11
+ r"""Base configuration for vector indexes"""
11
12
 
13
+ name: str
14
+ description: str
15
+ dimensions: int
16
+ type: VectorType
17
+ r"""Types of vectors supported"""
18
+ distance: NotRequired[Nullable[str]]
12
19
 
13
- class CollectionResultMetadata(BaseModel):
14
- pass
15
20
 
21
+ class VectorIndex(BaseModel):
22
+ r"""Base configuration for vector indexes"""
16
23
 
17
- class CollectionResultTypedDict(TypedDict):
18
- collection_id: str
19
- collection_name: NotRequired[Nullable[str]]
20
- metadata: NotRequired[Nullable[CollectionResultMetadataTypedDict]]
24
+ name: str
21
25
 
26
+ description: str
22
27
 
23
- class CollectionResult(BaseModel):
24
- collection_id: str
28
+ dimensions: int
25
29
 
26
- collection_name: OptionalNullable[str] = UNSET
30
+ type: VectorType
31
+ r"""Types of vectors supported"""
27
32
 
28
- metadata: OptionalNullable[CollectionResultMetadata] = UNSET
33
+ distance: OptionalNullable[str] = UNSET
29
34
 
30
35
  @model_serializer(mode="wrap")
31
36
  def serialize_model(self, handler):
32
- optional_fields = ["collection_name", "metadata"]
33
- nullable_fields = ["collection_name", "metadata"]
37
+ optional_fields = ["distance"]
38
+ nullable_fields = ["distance"]
34
39
  null_default_fields = []
35
40
 
36
41
  serialized = handler(self)
37
42
 
38
43
  m = {}
39
44
 
40
- for n, f in self.model_fields.items():
45
+ for n, f in type(self).model_fields.items():
41
46
  k = f.alias or n
42
47
  val = serialized.get(k)
43
48
  serialized.pop(k, None)
@@ -0,0 +1,43 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from .multivectorindex import MultiVectorIndex, MultiVectorIndexTypedDict
5
+ from .vectorindex import VectorIndex, VectorIndexTypedDict
6
+ from enum import Enum
7
+ from mixpeek.types import BaseModel
8
+ from typing import Union
9
+ from typing_extensions import TypeAliasType, TypedDict
10
+
11
+
12
+ class Type(str, Enum):
13
+ SINGLE = "single"
14
+ MULTI = "multi"
15
+
16
+
17
+ IndexTypedDict = TypeAliasType(
18
+ "IndexTypedDict", Union[MultiVectorIndexTypedDict, VectorIndexTypedDict]
19
+ )
20
+
21
+
22
+ Index = TypeAliasType("Index", Union[MultiVectorIndex, VectorIndex])
23
+
24
+
25
+ class VectorIndexDefinitionTypedDict(TypedDict):
26
+ r"""Complete vector index definition that can be either single or multi-vector"""
27
+
28
+ name: str
29
+ description: str
30
+ type: Type
31
+ index: IndexTypedDict
32
+
33
+
34
+ class VectorIndexDefinition(BaseModel):
35
+ r"""Complete vector index definition that can be either single or multi-vector"""
36
+
37
+ name: str
38
+
39
+ description: str
40
+
41
+ type: Type
42
+
43
+ index: Index
@@ -5,5 +5,8 @@ from enum import Enum
5
5
 
6
6
 
7
7
  class VectorType(str, Enum):
8
- SPARSE = "sparse"
8
+ r"""Types of vectors supported"""
9
+
9
10
  DENSE = "dense"
11
+ SPARSE = "sparse"
12
+ INT8 = "int8"