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.
- mixpeek/_version.py +3 -3
- mixpeek/{assets.py → bucket_objects.py} +309 -793
- mixpeek/buckets.py +1292 -0
- mixpeek/clusters.py +306 -0
- mixpeek/collection_cache.py +820 -0
- mixpeek/{taxonomyentities.py → collection_documents.py} +305 -559
- mixpeek/collections.py +122 -996
- mixpeek/features.py +45 -991
- mixpeek/models/__init__.py +625 -570
- mixpeek/models/aggregationtype.py +13 -0
- mixpeek/models/apikeyupdate.py +1 -1
- mixpeek/models/attributebasedconfig.py +21 -0
- mixpeek/models/automaticnaming.py +29 -0
- mixpeek/models/basicfeatureextractor.py +35 -0
- mixpeek/models/{classify_features_v1_entities_taxonomies_taxonomy_classify_postop.py → batch_delete_documents_v1_collections_collection_identifier_documents_batch_deleteop.py} +17 -15
- mixpeek/models/{update_collection_v1_collections_collection_putop.py → batch_update_documents_v1_collections_collection_identifier_documents_batch_putop.py} +29 -19
- mixpeek/models/blobdetails.py +72 -0
- mixpeek/models/blobmodel.py +107 -0
- mixpeek/models/bucketcreaterequest.py +75 -0
- mixpeek/models/bucketresponse.py +90 -0
- mixpeek/models/bucketschema_input.py +37 -0
- mixpeek/models/bucketschema_output.py +37 -0
- mixpeek/models/{featureresponse.py → bucketschemafield_input.py} +45 -18
- mixpeek/models/bucketschemafield_output.py +101 -0
- mixpeek/models/bucketschemafieldtype.py +29 -0
- mixpeek/models/bucketupdaterequest.py +68 -0
- mixpeek/models/cachestats.py +40 -0
- mixpeek/models/{list_collections_v1_collections_getop.py → cleanup_cache_v1_collections_cache_cleanup_postop.py} +23 -12
- mixpeek/models/{inputtype.py → clusteringmethod.py} +3 -5
- mixpeek/models/clustertype.py +9 -0
- mixpeek/models/collectioncacheconfig_input.py +92 -0
- mixpeek/models/collectioncacheconfig_output.py +92 -0
- mixpeek/models/collectionconfig.py +32 -0
- mixpeek/models/collectionmodel.py +79 -8
- mixpeek/models/{create_taxonomy_v1_entities_taxonomies_postop.py → create_bucket_v1_buckets_create_postop.py} +7 -7
- mixpeek/models/{search_assets_v1_assets_search_postop.py → create_cluster_v1_clusters_postop.py} +7 -7
- mixpeek/models/{create_collection_v1_collections_postop.py → create_collection_v1_collections_create_postop.py} +3 -3
- mixpeek/models/{ingest_video_url_v1_ingest_videos_url_postop.py → create_interaction_v1_retrievers_interactions_postop.py} +7 -7
- mixpeek/models/{partial_asset_update_v1_assets_asset_id_patchop.py → create_object_v1_buckets_bucket_identifier_objects_create_postop.py} +11 -9
- mixpeek/models/{ingest_text_v1_ingest_text_postop.py → create_retriever_v1_retrievers_retrievers_postop.py} +10 -7
- mixpeek/models/{ingest_image_url_v1_ingest_images_url_postop.py → create_taxonomy_v1_taxonomies_postop.py} +7 -7
- mixpeek/models/createblobrequest.py +80 -0
- mixpeek/models/createclusterrequest.py +74 -0
- mixpeek/models/createcollectionrequest.py +72 -3
- mixpeek/models/createnamespacerequest.py +14 -8
- mixpeek/models/createobjectrequest.py +75 -0
- mixpeek/models/createretrieverrequest.py +90 -0
- mixpeek/models/{taxonomyupdate.py → createtaxonomyrequest.py} +15 -13
- mixpeek/models/{delete_asset_v1_assets_asset_id_deleteop.py → delete_bucket_v1_buckets_bucket_identifier_deleteop.py} +5 -5
- 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
- mixpeek/models/{get_taxonomy_v1_entities_taxonomies_taxonomy_getop.py → delete_interaction_v1_retrievers_interactions_interaction_id_deleteop.py} +7 -7
- mixpeek/models/delete_object_v1_buckets_bucket_identifier_objects_object_identifier_deleteop.py +70 -0
- mixpeek/models/{featureextractionembeddingrequest.py → documenthandlingconfig.py} +12 -15
- mixpeek/models/documentinputhandling.py +11 -0
- mixpeek/models/{jsontextoutputsettings.py → documentlistresponse.py} +15 -14
- mixpeek/models/documentoutputhandling.py +10 -0
- mixpeek/models/documentoutputtype.py +11 -0
- mixpeek/models/documentresponse.py +87 -0
- mixpeek/models/{nodeupdate.py → documentupdate.py} +22 -13
- mixpeek/models/enrichmentfield.py +25 -0
- mixpeek/models/errordetail.py +1 -1
- mixpeek/models/{update_node_v1_entities_taxonomies_nodes_node_patchop.py → execute_retriever_v1_retrievers_retrievers_retriever_id_execute_postop.py} +11 -11
- mixpeek/models/featureextractorconfig.py +116 -0
- mixpeek/models/featureextractordefinition.py +192 -0
- mixpeek/models/filtercondition.py +25 -25
- mixpeek/models/filteroperator.py +24 -0
- mixpeek/models/generativemodels.py +10 -0
- mixpeek/models/{delete_feature_v1_features_feature_id_deleteop.py → get_bucket_v1_buckets_bucket_identifier_getop.py} +5 -5
- mixpeek/models/{list_taxonomies_v1_entities_taxonomies_getop.py → get_cache_stats_v1_collections_cache_stats_getop.py} +16 -14
- mixpeek/models/get_collection_v1_collections_collection_id_getop.py +59 -0
- mixpeek/models/get_document_v1_collections_collection_identifier_documents_document_id_getop.py +70 -0
- mixpeek/models/get_feature_extractor_v1_features_extractors_feature_id_getop.py +16 -0
- mixpeek/models/get_interaction_v1_retrievers_interactions_interaction_id_getop.py +57 -0
- mixpeek/models/{delete_collection_v1_collections_collection_deleteop.py → get_object_v1_buckets_bucket_identifier_objects_object_identifier_getop.py} +16 -7
- mixpeek/models/get_research_v1_research_getop.py +52 -0
- mixpeek/models/get_retriever_stages_v1_retrievers_stages_getop.py +52 -0
- mixpeek/models/{delete_taxonomy_v1_entities_taxonomies_taxonomy_deleteop.py → get_retriever_v1_retrievers_retrievers_retriever_id_getop.py} +5 -7
- mixpeek/models/get_task_v1_tasks_task_id_getop.py +1 -1
- mixpeek/models/getusagerequestmodel.py +91 -0
- mixpeek/models/hdbscanparameters.py +26 -0
- mixpeek/models/interactionresponse.py +86 -0
- mixpeek/models/interactiontype.py +22 -0
- mixpeek/models/{search_features_v1_features_search_postop.py → invalidate_cache_v1_collections_cache_invalidate_postop.py} +60 -34
- mixpeek/models/invalidationevent.py +67 -0
- mixpeek/models/invalidationstrategy.py +12 -0
- mixpeek/models/kill_task_v1_tasks_task_id_deleteop.py +1 -1
- mixpeek/models/list_active_tasks_v1_tasks_getop.py +1 -1
- mixpeek/models/{list_assets_v1_assets_postop.py → list_buckets_v1_buckets_postop.py} +18 -18
- mixpeek/models/{list_features_v1_features_postop.py → list_documents_v1_collections_collection_identifier_documents_getop.py} +54 -19
- mixpeek/models/list_interactions_v1_retrievers_interactions_getop.py +96 -0
- mixpeek/models/{list_classifications_v1_entities_taxonomies_taxonomy_classifications_postop.py → list_objects_v1_buckets_bucket_identifier_objects_postop.py} +22 -29
- mixpeek/models/{groupbyoptionsasset.py → listbucketsrequest.py} +19 -28
- mixpeek/models/listbucketsresponse.py +23 -0
- mixpeek/models/{groupbyoptions.py → listobjectsrequest.py} +19 -28
- mixpeek/models/listobjectsresponse.py +25 -0
- mixpeek/models/listtasksresponse.py +3 -6
- mixpeek/models/{logicaloperator.py → logicaloperator_input.py} +42 -24
- mixpeek/models/logicaloperator_output.py +121 -0
- mixpeek/models/multivectorindex.py +25 -0
- mixpeek/models/namespaceresponse.py +1 -1
- mixpeek/models/namespaceusage.py +45 -0
- mixpeek/models/namingmethod.py +8 -0
- mixpeek/models/objectresponse.py +124 -0
- mixpeek/models/{db_model_paginationresponse.py → paginationresponse.py} +3 -3
- mixpeek/models/payloadindexconfig.py +1 -1
- mixpeek/models/plan.py +82 -0
- mixpeek/models/recomputestrategy.py +12 -0
- mixpeek/models/resourcetotals.py +39 -0
- mixpeek/models/{jsonvideooutputsettings.py → retrieverbinding.py} +19 -11
- mixpeek/models/{logodetectsettings.py → retrievercacheconfig.py} +20 -11
- mixpeek/models/retrievermodel.py +95 -0
- mixpeek/models/retrieverqueryrequest.py +114 -0
- mixpeek/models/retrieverresponse.py +24 -0
- mixpeek/models/searchinteraction.py +81 -0
- mixpeek/models/singlelineageentry.py +99 -0
- mixpeek/models/sortdirection.py +11 -0
- mixpeek/models/sortoption.py +20 -12
- mixpeek/models/sourceconfig_input.py +72 -0
- mixpeek/models/sourceconfig_output.py +75 -0
- mixpeek/models/sourcetype.py +11 -0
- mixpeek/models/stageconfig_input.py +111 -0
- mixpeek/models/stageconfig_output.py +114 -0
- mixpeek/models/stagedefinition.py +110 -0
- mixpeek/models/{jsonimageoutputsettings.py → stageresponse.py} +21 -11
- mixpeek/models/taskresponse.py +1 -1
- mixpeek/models/taskstatus.py +1 -0
- mixpeek/models/{assetfeatures.py → taxonomyapplicationconfig.py} +23 -15
- mixpeek/models/taxonomyconfig.py +19 -0
- mixpeek/models/timeseriesdatapoint.py +25 -0
- mixpeek/models/timeseriesusage.py +36 -0
- mixpeek/models/{full_asset_update_v1_assets_asset_id_putop.py → update_bucket_v1_buckets_bucket_identifier_putop.py} +9 -9
- mixpeek/models/{update_taxonomy_v1_entities_taxonomies_taxonomy_patchop.py → update_document_v1_collections_collection_identifier_documents_document_id_putop.py} +25 -13
- mixpeek/models/{full_feature_update_v1_features_feature_id_putop.py → update_object_v1_buckets_bucket_identifier_objects_object_identifier_putop.py} +20 -9
- mixpeek/models/updatenamespacerequest.py +1 -1
- mixpeek/models/updateobjectrequest.py +75 -0
- mixpeek/models/usageresponse.py +86 -0
- mixpeek/models/usagesummary.py +39 -0
- mixpeek/models/usagetimerange.py +16 -0
- mixpeek/models/usermodel_input.py +3 -0
- mixpeek/models/usermodel_output.py +3 -0
- mixpeek/models/vectorbasedconfig.py +60 -0
- mixpeek/models/{collectionresult.py → vectorindex.py} +20 -15
- mixpeek/models/vectorindexdefinition.py +43 -0
- mixpeek/models/vectortype.py +4 -1
- mixpeek/namespaces.py +26 -480
- mixpeek/organization_notifications.py +214 -0
- mixpeek/organizations.py +6 -210
- mixpeek/{featureextractors.py → organizations_usage.py} +31 -39
- mixpeek/research.py +228 -0
- mixpeek/retriever_interactions.py +1036 -0
- mixpeek/retriever_stages.py +232 -0
- mixpeek/{ingestassets.py → retrievers.py} +209 -271
- mixpeek/sdk.py +40 -23
- mixpeek/taxonomies.py +43 -513
- mixpeek/types/basemodel.py +3 -3
- mixpeek/utils/enums.py +67 -27
- {mixpeek-0.20.19.dist-info → mixpeek-0.21.1.dist-info}/METADATA +68 -50
- mixpeek-0.21.1.dist-info/RECORD +216 -0
- {mixpeek-0.20.19.dist-info → mixpeek-0.21.1.dist-info}/WHEEL +1 -1
- mixpeek/models/actionusage.py +0 -16
- mixpeek/models/assetresponse.py +0 -166
- mixpeek/models/assets_model_searchquery.py +0 -21
- mixpeek/models/assetupdate.py +0 -28
- mixpeek/models/assignmentconfig.py +0 -67
- mixpeek/models/assignmentmode.py +0 -11
- mixpeek/models/availablemodels.py +0 -16
- mixpeek/models/availablemodelsresponse.py +0 -27
- mixpeek/models/classificationmatch.py +0 -77
- mixpeek/models/classificationwithfeature.py +0 -73
- mixpeek/models/collectiondetailsresponse.py +0 -83
- mixpeek/models/dateusage.py +0 -22
- mixpeek/models/denseembedding.py +0 -16
- mixpeek/models/discoverrequest.py +0 -64
- mixpeek/models/embeddingconfig.py +0 -33
- mixpeek/models/embeddingrequest.py +0 -92
- mixpeek/models/embeddingresponse.py +0 -64
- mixpeek/models/entitysettings.py +0 -50
- mixpeek/models/featureoptions.py +0 -25
- mixpeek/models/features_model_paginationresponse.py +0 -59
- mixpeek/models/featureupdaterequest.py +0 -21
- mixpeek/models/get_asset_v1_assets_asset_id_getop.py +0 -73
- mixpeek/models/get_asset_with_features_v1_assets_asset_id_features_getop.py +0 -73
- mixpeek/models/get_collection_details_v1_collections_collection_details_getop.py +0 -59
- mixpeek/models/get_collection_details_v1_collections_collection_getop.py +0 -59
- mixpeek/models/get_feature_v1_features_feature_id_getop.py +0 -70
- mixpeek/models/get_taxonomy_node_v1_entities_taxonomies_nodes_node_getop.py +0 -59
- mixpeek/models/groupedassetdata.py +0 -18
- mixpeek/models/imagedescribesettings.py +0 -82
- mixpeek/models/imagedetectsettings.py +0 -47
- mixpeek/models/imagereadsettings.py +0 -71
- mixpeek/models/imagesettings.py +0 -92
- mixpeek/models/listassetsrequest.py +0 -75
- mixpeek/models/listassetsresponse.py +0 -22
- mixpeek/models/listclassificationsrequest.py +0 -69
- mixpeek/models/listclassificationsresponse.py +0 -31
- mixpeek/models/listcollectionsresponse.py +0 -22
- mixpeek/models/listfeaturesrequest.py +0 -77
- mixpeek/models/listfeaturesresponse.py +0 -22
- mixpeek/models/listtaxonomiesresponse.py +0 -24
- mixpeek/models/modality.py +0 -13
- mixpeek/models/modeldetails.py +0 -61
- mixpeek/models/nodeoptions.py +0 -16
- mixpeek/models/patch_namespace_v1_namespaces_namespace_patchop.py +0 -28
- mixpeek/models/payloadindextype.py +0 -17
- mixpeek/models/processimageurlinput.py +0 -87
- mixpeek/models/processtextinput.py +0 -82
- mixpeek/models/processvideourlinput.py +0 -87
- mixpeek/models/querysettings.py +0 -56
- mixpeek/models/rerankingoptions.py +0 -47
- mixpeek/models/search_model_searchquery.py +0 -76
- mixpeek/models/searchassetsrequest.py +0 -78
- mixpeek/models/searchrequestfeatures.py +0 -153
- mixpeek/models/sparseembedding.py +0 -21
- mixpeek/models/taxonomycreate.py +0 -20
- mixpeek/models/taxonomyextractionconfig.py +0 -26
- mixpeek/models/taxonomymodel.py +0 -27
- mixpeek/models/taxonomynode.py +0 -101
- mixpeek/models/taxonomynodecreate.py +0 -63
- mixpeek/models/textsettings.py +0 -67
- mixpeek/models/updateassetrequest.py +0 -60
- mixpeek/models/usage.py +0 -18
- mixpeek/models/vectormodel.py +0 -15
- mixpeek/models/videodescribesettings.py +0 -82
- mixpeek/models/videodetectsettings.py +0 -47
- mixpeek/models/videoreadsettings.py +0 -71
- mixpeek/models/videosettings.py +0 -115
- mixpeek/models/videotranscriptionsettings.py +0 -69
- mixpeek-0.20.19.dist-info/RECORD +0 -201
@@ -1,77 +0,0 @@
|
|
1
|
-
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
2
|
-
|
3
|
-
from __future__ import annotations
|
4
|
-
from .logicaloperator import LogicalOperator, LogicalOperatorTypedDict
|
5
|
-
from .sortoption import SortOption, SortOptionTypedDict
|
6
|
-
from mixpeek.types import BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL
|
7
|
-
from pydantic import model_serializer
|
8
|
-
from typing import Any, List, Optional
|
9
|
-
from typing_extensions import NotRequired, TypedDict
|
10
|
-
|
11
|
-
|
12
|
-
class ListFeaturesRequestTypedDict(TypedDict):
|
13
|
-
collections: List[str]
|
14
|
-
r"""Collection identifiers - can be either collection IDs or collection names"""
|
15
|
-
filters: NotRequired[Nullable[LogicalOperatorTypedDict]]
|
16
|
-
r"""Complex nested query filters"""
|
17
|
-
sort: NotRequired[Nullable[SortOptionTypedDict]]
|
18
|
-
r"""
|
19
|
-
List of fields to sort by, with direction (asc or desc).
|
20
|
-
NOTE: fields will require a specialty index to use this, consult with the team.
|
21
|
-
|
22
|
-
"""
|
23
|
-
select: NotRequired[Nullable[List[Any]]]
|
24
|
-
r"""List of fields to return in results, supports dot notation. Everything else is excluded."""
|
25
|
-
return_urls: NotRequired[bool]
|
26
|
-
r"""When true, generates presigned URLs for assets"""
|
27
|
-
|
28
|
-
|
29
|
-
class ListFeaturesRequest(BaseModel):
|
30
|
-
collections: List[str]
|
31
|
-
r"""Collection identifiers - can be either collection IDs or collection names"""
|
32
|
-
|
33
|
-
filters: OptionalNullable[LogicalOperator] = UNSET
|
34
|
-
r"""Complex nested query filters"""
|
35
|
-
|
36
|
-
sort: OptionalNullable[SortOption] = UNSET
|
37
|
-
r"""
|
38
|
-
List of fields to sort by, with direction (asc or desc).
|
39
|
-
NOTE: fields will require a specialty index to use this, consult with the team.
|
40
|
-
|
41
|
-
"""
|
42
|
-
|
43
|
-
select: OptionalNullable[List[Any]] = UNSET
|
44
|
-
r"""List of fields to return in results, supports dot notation. Everything else is excluded."""
|
45
|
-
|
46
|
-
return_urls: Optional[bool] = False
|
47
|
-
r"""When true, generates presigned URLs for assets"""
|
48
|
-
|
49
|
-
@model_serializer(mode="wrap")
|
50
|
-
def serialize_model(self, handler):
|
51
|
-
optional_fields = ["filters", "sort", "select", "return_urls"]
|
52
|
-
nullable_fields = ["filters", "sort", "select"]
|
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,22 +0,0 @@
|
|
1
|
-
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
2
|
-
|
3
|
-
from __future__ import annotations
|
4
|
-
from .featureresponse import FeatureResponse, FeatureResponseTypedDict
|
5
|
-
from .features_model_paginationresponse import (
|
6
|
-
FeaturesModelPaginationResponse,
|
7
|
-
FeaturesModelPaginationResponseTypedDict,
|
8
|
-
)
|
9
|
-
from mixpeek.types import BaseModel
|
10
|
-
from typing import List
|
11
|
-
from typing_extensions import TypedDict
|
12
|
-
|
13
|
-
|
14
|
-
class ListFeaturesResponseTypedDict(TypedDict):
|
15
|
-
results: List[FeatureResponseTypedDict]
|
16
|
-
pagination: FeaturesModelPaginationResponseTypedDict
|
17
|
-
|
18
|
-
|
19
|
-
class ListFeaturesResponse(BaseModel):
|
20
|
-
results: List[FeatureResponse]
|
21
|
-
|
22
|
-
pagination: FeaturesModelPaginationResponse
|
@@ -1,24 +0,0 @@
|
|
1
|
-
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
2
|
-
|
3
|
-
from __future__ import annotations
|
4
|
-
from .db_model_paginationresponse import (
|
5
|
-
DbModelPaginationResponse,
|
6
|
-
DbModelPaginationResponseTypedDict,
|
7
|
-
)
|
8
|
-
from .taxonomymodel import TaxonomyModel, TaxonomyModelTypedDict
|
9
|
-
from mixpeek.types import BaseModel
|
10
|
-
from typing import List
|
11
|
-
from typing_extensions import TypedDict
|
12
|
-
|
13
|
-
|
14
|
-
class ListTaxonomiesResponseTypedDict(TypedDict):
|
15
|
-
results: List[TaxonomyModelTypedDict]
|
16
|
-
r"""List of fully populated taxonomies with nodes"""
|
17
|
-
pagination: DbModelPaginationResponseTypedDict
|
18
|
-
|
19
|
-
|
20
|
-
class ListTaxonomiesResponse(BaseModel):
|
21
|
-
results: List[TaxonomyModel]
|
22
|
-
r"""List of fully populated taxonomies with nodes"""
|
23
|
-
|
24
|
-
pagination: DbModelPaginationResponse
|
mixpeek/models/modality.py
DELETED
@@ -1,13 +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 Modality(str, Enum):
|
8
|
-
VIDEO = "video"
|
9
|
-
AUDIO = "audio"
|
10
|
-
TEXT = "text"
|
11
|
-
IMAGE = "image"
|
12
|
-
KEYWORD = "keyword"
|
13
|
-
MULTIMODAL = "multimodal"
|
mixpeek/models/modeldetails.py
DELETED
@@ -1,61 +0,0 @@
|
|
1
|
-
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
2
|
-
|
3
|
-
from __future__ import annotations
|
4
|
-
from .modality import Modality
|
5
|
-
from .vectortype import VectorType
|
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 ModelDetailsTypedDict(TypedDict):
|
13
|
-
r"""Details about a model in the registry"""
|
14
|
-
|
15
|
-
supported_modalities: List[Modality]
|
16
|
-
r"""List of modalities that this model supports"""
|
17
|
-
vector_type: VectorType
|
18
|
-
size: NotRequired[Nullable[int]]
|
19
|
-
r"""Dimensionality of the output vector (if applicable)"""
|
20
|
-
|
21
|
-
|
22
|
-
class ModelDetails(BaseModel):
|
23
|
-
r"""Details about a model in the registry"""
|
24
|
-
|
25
|
-
supported_modalities: List[Modality]
|
26
|
-
r"""List of modalities that this model supports"""
|
27
|
-
|
28
|
-
vector_type: VectorType
|
29
|
-
|
30
|
-
size: OptionalNullable[int] = UNSET
|
31
|
-
r"""Dimensionality of the output vector (if applicable)"""
|
32
|
-
|
33
|
-
@model_serializer(mode="wrap")
|
34
|
-
def serialize_model(self, handler):
|
35
|
-
optional_fields = ["size"]
|
36
|
-
nullable_fields = ["size"]
|
37
|
-
null_default_fields = []
|
38
|
-
|
39
|
-
serialized = handler(self)
|
40
|
-
|
41
|
-
m = {}
|
42
|
-
|
43
|
-
for n, f in self.model_fields.items():
|
44
|
-
k = f.alias or n
|
45
|
-
val = serialized.get(k)
|
46
|
-
serialized.pop(k, None)
|
47
|
-
|
48
|
-
optional_nullable = k in optional_fields and k in nullable_fields
|
49
|
-
is_set = (
|
50
|
-
self.__pydantic_fields_set__.intersection({n})
|
51
|
-
or k in null_default_fields
|
52
|
-
) # pylint: disable=no-member
|
53
|
-
|
54
|
-
if val is not None and val != UNSET_SENTINEL:
|
55
|
-
m[k] = val
|
56
|
-
elif val != UNSET_SENTINEL and (
|
57
|
-
not k in optional_fields or (optional_nullable and is_set)
|
58
|
-
):
|
59
|
-
m[k] = val
|
60
|
-
|
61
|
-
return m
|
mixpeek/models/nodeoptions.py
DELETED
@@ -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 Optional
|
6
|
-
from typing_extensions import NotRequired, TypedDict
|
7
|
-
|
8
|
-
|
9
|
-
class NodeOptionsTypedDict(TypedDict):
|
10
|
-
return_payload: NotRequired[bool]
|
11
|
-
r"""Whether to include the full node object in the response"""
|
12
|
-
|
13
|
-
|
14
|
-
class NodeOptions(BaseModel):
|
15
|
-
return_payload: Optional[bool] = False
|
16
|
-
r"""Whether to include the full node object in the response"""
|
@@ -1,28 +0,0 @@
|
|
1
|
-
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
2
|
-
|
3
|
-
from __future__ import annotations
|
4
|
-
from .updatenamespacerequest import (
|
5
|
-
UpdateNamespaceRequest,
|
6
|
-
UpdateNamespaceRequestTypedDict,
|
7
|
-
)
|
8
|
-
from mixpeek.types import BaseModel
|
9
|
-
from mixpeek.utils import FieldMetadata, PathParamMetadata, RequestMetadata
|
10
|
-
from typing_extensions import Annotated, TypedDict
|
11
|
-
|
12
|
-
|
13
|
-
class PatchNamespaceV1NamespacesNamespacePatchRequestTypedDict(TypedDict):
|
14
|
-
namespace: str
|
15
|
-
r"""Either the namespace name or namespace ID"""
|
16
|
-
update_namespace_request: UpdateNamespaceRequestTypedDict
|
17
|
-
|
18
|
-
|
19
|
-
class PatchNamespaceV1NamespacesNamespacePatchRequest(BaseModel):
|
20
|
-
namespace: Annotated[
|
21
|
-
str, FieldMetadata(path=PathParamMetadata(style="simple", explode=False))
|
22
|
-
]
|
23
|
-
r"""Either the namespace name or namespace ID"""
|
24
|
-
|
25
|
-
update_namespace_request: Annotated[
|
26
|
-
UpdateNamespaceRequest,
|
27
|
-
FieldMetadata(request=RequestMetadata(media_type="application/json")),
|
28
|
-
]
|
@@ -1,17 +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_extensions import TypedDict
|
6
|
-
|
7
|
-
|
8
|
-
class PayloadIndexTypeTypedDict(TypedDict):
|
9
|
-
r"""Simple schema for payload index type"""
|
10
|
-
|
11
|
-
type: str
|
12
|
-
|
13
|
-
|
14
|
-
class PayloadIndexType(BaseModel):
|
15
|
-
r"""Simple schema for payload index type"""
|
16
|
-
|
17
|
-
type: str
|
@@ -1,87 +0,0 @@
|
|
1
|
-
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
2
|
-
|
3
|
-
from __future__ import annotations
|
4
|
-
from .assetupdate import AssetUpdate, AssetUpdateTypedDict
|
5
|
-
from .imagesettings import ImageSettings, ImageSettingsTypedDict
|
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 ProcessImageURLInputMetadataTypedDict(TypedDict):
|
13
|
-
r"""Additional metadata associated with the asset. Can include any key-value pairs relevant to the asset."""
|
14
|
-
|
15
|
-
|
16
|
-
class ProcessImageURLInputMetadata(BaseModel):
|
17
|
-
r"""Additional metadata associated with the asset. Can include any key-value pairs relevant to the asset."""
|
18
|
-
|
19
|
-
|
20
|
-
class ProcessImageURLInputTypedDict(TypedDict):
|
21
|
-
url: str
|
22
|
-
r"""The URL of the asset to be processed. Must be a valid HTTP or HTTPS URL."""
|
23
|
-
collection: str
|
24
|
-
r"""Unique identifier for the collection where the processed asset will be stored, can be the collection name or collection ID. If neither exist, the collection will be created."""
|
25
|
-
asset_update: NotRequired[Nullable[AssetUpdateTypedDict]]
|
26
|
-
r"""Controls how processing results are stored - either creating a new asset or updating an existing one."""
|
27
|
-
metadata: NotRequired[ProcessImageURLInputMetadataTypedDict]
|
28
|
-
r"""Additional metadata associated with the asset. Can include any key-value pairs relevant to the asset."""
|
29
|
-
skip_duplicate: NotRequired[Nullable[bool]]
|
30
|
-
r"""Makes feature extraction idempotent. When True and a duplicate file hash is found, copies features from the existing asset instead of reprocessing. This allows the same file to be used multiple times with different metadata while avoiding redundant processing."""
|
31
|
-
feature_extractors: NotRequired[Nullable[ImageSettingsTypedDict]]
|
32
|
-
r"""Settings for image processing. Only applicable if the URL points to an image file."""
|
33
|
-
|
34
|
-
|
35
|
-
class ProcessImageURLInput(BaseModel):
|
36
|
-
url: str
|
37
|
-
r"""The URL of the asset to be processed. Must be a valid HTTP or HTTPS URL."""
|
38
|
-
|
39
|
-
collection: str
|
40
|
-
r"""Unique identifier for the collection where the processed asset will be stored, can be the collection name or collection ID. If neither exist, the collection will be created."""
|
41
|
-
|
42
|
-
asset_update: OptionalNullable[AssetUpdate] = UNSET
|
43
|
-
r"""Controls how processing results are stored - either creating a new asset or updating an existing one."""
|
44
|
-
|
45
|
-
metadata: Optional[ProcessImageURLInputMetadata] = None
|
46
|
-
r"""Additional metadata associated with the asset. Can include any key-value pairs relevant to the asset."""
|
47
|
-
|
48
|
-
skip_duplicate: OptionalNullable[bool] = UNSET
|
49
|
-
r"""Makes feature extraction idempotent. When True and a duplicate file hash is found, copies features from the existing asset instead of reprocessing. This allows the same file to be used multiple times with different metadata while avoiding redundant processing."""
|
50
|
-
|
51
|
-
feature_extractors: OptionalNullable[ImageSettings] = UNSET
|
52
|
-
r"""Settings for image processing. Only applicable if the URL points to an image file."""
|
53
|
-
|
54
|
-
@model_serializer(mode="wrap")
|
55
|
-
def serialize_model(self, handler):
|
56
|
-
optional_fields = [
|
57
|
-
"asset_update",
|
58
|
-
"metadata",
|
59
|
-
"skip_duplicate",
|
60
|
-
"feature_extractors",
|
61
|
-
]
|
62
|
-
nullable_fields = ["asset_update", "skip_duplicate", "feature_extractors"]
|
63
|
-
null_default_fields = []
|
64
|
-
|
65
|
-
serialized = handler(self)
|
66
|
-
|
67
|
-
m = {}
|
68
|
-
|
69
|
-
for n, f in self.model_fields.items():
|
70
|
-
k = f.alias or n
|
71
|
-
val = serialized.get(k)
|
72
|
-
serialized.pop(k, None)
|
73
|
-
|
74
|
-
optional_nullable = k in optional_fields and k in nullable_fields
|
75
|
-
is_set = (
|
76
|
-
self.__pydantic_fields_set__.intersection({n})
|
77
|
-
or k in null_default_fields
|
78
|
-
) # pylint: disable=no-member
|
79
|
-
|
80
|
-
if val is not None and val != UNSET_SENTINEL:
|
81
|
-
m[k] = val
|
82
|
-
elif val != UNSET_SENTINEL and (
|
83
|
-
not k in optional_fields or (optional_nullable and is_set)
|
84
|
-
):
|
85
|
-
m[k] = val
|
86
|
-
|
87
|
-
return m
|
@@ -1,82 +0,0 @@
|
|
1
|
-
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
2
|
-
|
3
|
-
from __future__ import annotations
|
4
|
-
from .assetupdate import AssetUpdate, AssetUpdateTypedDict
|
5
|
-
from .textsettings import TextSettings, TextSettingsTypedDict
|
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 ProcessTextInputMetadataTypedDict(TypedDict):
|
13
|
-
r"""Additional metadata associated with the file. Can include any key-value pairs relevant to the file."""
|
14
|
-
|
15
|
-
|
16
|
-
class ProcessTextInputMetadata(BaseModel):
|
17
|
-
r"""Additional metadata associated with the file. Can include any key-value pairs relevant to the file."""
|
18
|
-
|
19
|
-
|
20
|
-
class ProcessTextInputTypedDict(TypedDict):
|
21
|
-
collection: str
|
22
|
-
r"""Unique identifier for the collection where the processed asset will be stored, can be the collection name or collection ID. If neither exist, the collection will be created."""
|
23
|
-
asset_update: NotRequired[Nullable[AssetUpdateTypedDict]]
|
24
|
-
r"""Controls how processing results are stored - either creating a new asset or updating an existing one."""
|
25
|
-
metadata: NotRequired[ProcessTextInputMetadataTypedDict]
|
26
|
-
r"""Additional metadata associated with the file. Can include any key-value pairs relevant to the file."""
|
27
|
-
feature_extractors: NotRequired[Nullable[TextSettingsTypedDict]]
|
28
|
-
r"""Settings for text processing."""
|
29
|
-
skip_duplicate: NotRequired[Nullable[bool]]
|
30
|
-
r"""Skips processing when a duplicate hash is found and stores an error by the task_id with the existing asset_id"""
|
31
|
-
|
32
|
-
|
33
|
-
class ProcessTextInput(BaseModel):
|
34
|
-
collection: str
|
35
|
-
r"""Unique identifier for the collection where the processed asset will be stored, can be the collection name or collection ID. If neither exist, the collection will be created."""
|
36
|
-
|
37
|
-
asset_update: OptionalNullable[AssetUpdate] = UNSET
|
38
|
-
r"""Controls how processing results are stored - either creating a new asset or updating an existing one."""
|
39
|
-
|
40
|
-
metadata: Optional[ProcessTextInputMetadata] = None
|
41
|
-
r"""Additional metadata associated with the file. Can include any key-value pairs relevant to the file."""
|
42
|
-
|
43
|
-
feature_extractors: OptionalNullable[TextSettings] = UNSET
|
44
|
-
r"""Settings for text processing."""
|
45
|
-
|
46
|
-
skip_duplicate: OptionalNullable[bool] = UNSET
|
47
|
-
r"""Skips processing when a duplicate hash is found and stores an error by the task_id with the existing asset_id"""
|
48
|
-
|
49
|
-
@model_serializer(mode="wrap")
|
50
|
-
def serialize_model(self, handler):
|
51
|
-
optional_fields = [
|
52
|
-
"asset_update",
|
53
|
-
"metadata",
|
54
|
-
"feature_extractors",
|
55
|
-
"skip_duplicate",
|
56
|
-
]
|
57
|
-
nullable_fields = ["asset_update", "feature_extractors", "skip_duplicate"]
|
58
|
-
null_default_fields = []
|
59
|
-
|
60
|
-
serialized = handler(self)
|
61
|
-
|
62
|
-
m = {}
|
63
|
-
|
64
|
-
for n, f in self.model_fields.items():
|
65
|
-
k = f.alias or n
|
66
|
-
val = serialized.get(k)
|
67
|
-
serialized.pop(k, None)
|
68
|
-
|
69
|
-
optional_nullable = k in optional_fields and k in nullable_fields
|
70
|
-
is_set = (
|
71
|
-
self.__pydantic_fields_set__.intersection({n})
|
72
|
-
or k in null_default_fields
|
73
|
-
) # pylint: disable=no-member
|
74
|
-
|
75
|
-
if val is not None and val != UNSET_SENTINEL:
|
76
|
-
m[k] = val
|
77
|
-
elif val != UNSET_SENTINEL and (
|
78
|
-
not k in optional_fields or (optional_nullable and is_set)
|
79
|
-
):
|
80
|
-
m[k] = val
|
81
|
-
|
82
|
-
return m
|
@@ -1,87 +0,0 @@
|
|
1
|
-
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
2
|
-
|
3
|
-
from __future__ import annotations
|
4
|
-
from .assetupdate import AssetUpdate, AssetUpdateTypedDict
|
5
|
-
from .videosettings import VideoSettings, VideoSettingsTypedDict
|
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 ProcessVideoURLInputMetadataTypedDict(TypedDict):
|
13
|
-
r"""Additional metadata associated with the asset. Can include any key-value pairs relevant to the asset."""
|
14
|
-
|
15
|
-
|
16
|
-
class ProcessVideoURLInputMetadata(BaseModel):
|
17
|
-
r"""Additional metadata associated with the asset. Can include any key-value pairs relevant to the asset."""
|
18
|
-
|
19
|
-
|
20
|
-
class ProcessVideoURLInputTypedDict(TypedDict):
|
21
|
-
url: str
|
22
|
-
r"""The URL of the asset to be processed. Must be a valid HTTP or HTTPS URL."""
|
23
|
-
collection: str
|
24
|
-
r"""Unique identifier for the collection where the processed asset will be stored, can be the collection name or collection ID. If neither exist, the collection will be created."""
|
25
|
-
asset_update: NotRequired[Nullable[AssetUpdateTypedDict]]
|
26
|
-
r"""Controls how processing results are stored - either creating a new asset or updating an existing one."""
|
27
|
-
metadata: NotRequired[ProcessVideoURLInputMetadataTypedDict]
|
28
|
-
r"""Additional metadata associated with the asset. Can include any key-value pairs relevant to the asset."""
|
29
|
-
skip_duplicate: NotRequired[Nullable[bool]]
|
30
|
-
r"""Makes feature extraction idempotent. When True and a duplicate file hash is found, copies features from the existing asset instead of reprocessing. This allows the same file to be used multiple times with different metadata while avoiding redundant processing."""
|
31
|
-
feature_extractors: NotRequired[Nullable[List[VideoSettingsTypedDict]]]
|
32
|
-
r"""Settings for video processing. Only applicable if the URL points to a video file."""
|
33
|
-
|
34
|
-
|
35
|
-
class ProcessVideoURLInput(BaseModel):
|
36
|
-
url: str
|
37
|
-
r"""The URL of the asset to be processed. Must be a valid HTTP or HTTPS URL."""
|
38
|
-
|
39
|
-
collection: str
|
40
|
-
r"""Unique identifier for the collection where the processed asset will be stored, can be the collection name or collection ID. If neither exist, the collection will be created."""
|
41
|
-
|
42
|
-
asset_update: OptionalNullable[AssetUpdate] = UNSET
|
43
|
-
r"""Controls how processing results are stored - either creating a new asset or updating an existing one."""
|
44
|
-
|
45
|
-
metadata: Optional[ProcessVideoURLInputMetadata] = None
|
46
|
-
r"""Additional metadata associated with the asset. Can include any key-value pairs relevant to the asset."""
|
47
|
-
|
48
|
-
skip_duplicate: OptionalNullable[bool] = UNSET
|
49
|
-
r"""Makes feature extraction idempotent. When True and a duplicate file hash is found, copies features from the existing asset instead of reprocessing. This allows the same file to be used multiple times with different metadata while avoiding redundant processing."""
|
50
|
-
|
51
|
-
feature_extractors: OptionalNullable[List[VideoSettings]] = UNSET
|
52
|
-
r"""Settings for video processing. Only applicable if the URL points to a video file."""
|
53
|
-
|
54
|
-
@model_serializer(mode="wrap")
|
55
|
-
def serialize_model(self, handler):
|
56
|
-
optional_fields = [
|
57
|
-
"asset_update",
|
58
|
-
"metadata",
|
59
|
-
"skip_duplicate",
|
60
|
-
"feature_extractors",
|
61
|
-
]
|
62
|
-
nullable_fields = ["asset_update", "skip_duplicate", "feature_extractors"]
|
63
|
-
null_default_fields = []
|
64
|
-
|
65
|
-
serialized = handler(self)
|
66
|
-
|
67
|
-
m = {}
|
68
|
-
|
69
|
-
for n, f in self.model_fields.items():
|
70
|
-
k = f.alias or n
|
71
|
-
val = serialized.get(k)
|
72
|
-
serialized.pop(k, None)
|
73
|
-
|
74
|
-
optional_nullable = k in optional_fields and k in nullable_fields
|
75
|
-
is_set = (
|
76
|
-
self.__pydantic_fields_set__.intersection({n})
|
77
|
-
or k in null_default_fields
|
78
|
-
) # pylint: disable=no-member
|
79
|
-
|
80
|
-
if val is not None and val != UNSET_SENTINEL:
|
81
|
-
m[k] = val
|
82
|
-
elif val != UNSET_SENTINEL and (
|
83
|
-
not k in optional_fields or (optional_nullable and is_set)
|
84
|
-
):
|
85
|
-
m[k] = val
|
86
|
-
|
87
|
-
return m
|
mixpeek/models/querysettings.py
DELETED
@@ -1,56 +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, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL
|
5
|
-
from pydantic import model_serializer
|
6
|
-
from typing_extensions import NotRequired, TypedDict
|
7
|
-
|
8
|
-
|
9
|
-
class QuerySettingsTypedDict(TypedDict):
|
10
|
-
limit: NotRequired[Nullable[int]]
|
11
|
-
r"""Optional limit for number of results per vector index, this is overriden by ?page_size=int if a single query is provided."""
|
12
|
-
min_score: NotRequired[Nullable[float]]
|
13
|
-
r"""Optional score threshold for filtering results"""
|
14
|
-
modality: NotRequired[Nullable[str]]
|
15
|
-
r"""Optional modality override for the query, this is only used for multimodal embeddings"""
|
16
|
-
|
17
|
-
|
18
|
-
class QuerySettings(BaseModel):
|
19
|
-
limit: OptionalNullable[int] = UNSET
|
20
|
-
r"""Optional limit for number of results per vector index, this is overriden by ?page_size=int if a single query is provided."""
|
21
|
-
|
22
|
-
min_score: OptionalNullable[float] = UNSET
|
23
|
-
r"""Optional score threshold for filtering results"""
|
24
|
-
|
25
|
-
modality: OptionalNullable[str] = UNSET
|
26
|
-
r"""Optional modality override for the query, this is only used for multimodal embeddings"""
|
27
|
-
|
28
|
-
@model_serializer(mode="wrap")
|
29
|
-
def serialize_model(self, handler):
|
30
|
-
optional_fields = ["limit", "min_score", "modality"]
|
31
|
-
nullable_fields = ["limit", "min_score", "modality"]
|
32
|
-
null_default_fields = []
|
33
|
-
|
34
|
-
serialized = handler(self)
|
35
|
-
|
36
|
-
m = {}
|
37
|
-
|
38
|
-
for n, f in self.model_fields.items():
|
39
|
-
k = f.alias or n
|
40
|
-
val = serialized.get(k)
|
41
|
-
serialized.pop(k, None)
|
42
|
-
|
43
|
-
optional_nullable = k in optional_fields and k in nullable_fields
|
44
|
-
is_set = (
|
45
|
-
self.__pydantic_fields_set__.intersection({n})
|
46
|
-
or k in null_default_fields
|
47
|
-
) # pylint: disable=no-member
|
48
|
-
|
49
|
-
if val is not None and val != UNSET_SENTINEL:
|
50
|
-
m[k] = val
|
51
|
-
elif val != UNSET_SENTINEL and (
|
52
|
-
not k in optional_fields or (optional_nullable and is_set)
|
53
|
-
):
|
54
|
-
m[k] = val
|
55
|
-
|
56
|
-
return m
|
@@ -1,47 +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 Dict, Optional
|
6
|
-
from typing_extensions import NotRequired, TypedDict
|
7
|
-
|
8
|
-
|
9
|
-
class RerankingOptionsTypedDict(TypedDict):
|
10
|
-
weights: NotRequired[Dict[str, float]]
|
11
|
-
r"""
|
12
|
-
Weights to blend different ranking signals. Must sum to 1.0.
|
13
|
-
- feedback: Weight for feedback-based score (positive, negative)
|
14
|
-
- popularity: Weight for user interaction signals (clicks, views)
|
15
|
-
|
16
|
-
"""
|
17
|
-
enable_reranking: NotRequired[bool]
|
18
|
-
r"""
|
19
|
-
Enable interaction-based score adjustments.
|
20
|
-
When enabled, historical interactions will influence ranking:
|
21
|
-
- Positive feedback and clicks boost scores
|
22
|
-
- Negative feedback reduces scores
|
23
|
-
- View duration and skip signals are considered
|
24
|
-
- Adjustments are weighted by recency
|
25
|
-
|
26
|
-
"""
|
27
|
-
|
28
|
-
|
29
|
-
class RerankingOptions(BaseModel):
|
30
|
-
weights: Optional[Dict[str, float]] = None
|
31
|
-
r"""
|
32
|
-
Weights to blend different ranking signals. Must sum to 1.0.
|
33
|
-
- feedback: Weight for feedback-based score (positive, negative)
|
34
|
-
- popularity: Weight for user interaction signals (clicks, views)
|
35
|
-
|
36
|
-
"""
|
37
|
-
|
38
|
-
enable_reranking: Optional[bool] = False
|
39
|
-
r"""
|
40
|
-
Enable interaction-based score adjustments.
|
41
|
-
When enabled, historical interactions will influence ranking:
|
42
|
-
- Positive feedback and clicks boost scores
|
43
|
-
- Negative feedback reduces scores
|
44
|
-
- View duration and skip signals are considered
|
45
|
-
- Adjustments are weighted by recency
|
46
|
-
|
47
|
-
"""
|