diff --git a/integration/test_collection_diversity.py b/integration/test_collection_diversity.py new file mode 100644 index 000000000..6b91b090c --- /dev/null +++ b/integration/test_collection_diversity.py @@ -0,0 +1,117 @@ +import pytest + +from integration.conftest import CollectionFactory +from weaviate.classes.query import Diversity +from weaviate.collections.classes.config import Configure, DataType, Property +from weaviate.collections.classes.data import DataObject + + +def _create_clustered_collection(collection_factory: CollectionFactory): + """Create a collection with 3 tight clusters (a, b, c) of vectors in 3D.""" + collection = collection_factory( + properties=[Property(name="text", data_type=DataType.TEXT)], + vectorizer_config=Configure.Vectorizer.none(), + ) + if collection._connection._weaviate_version.is_lower_than(1, 37, 0): + pytest.skip("Diversity selection requires Weaviate >= 1.37.0") + collection.data.insert_many( + [ + DataObject(properties={"text": "a1"}, vector=[1.0, 0.0, 0.0]), + DataObject(properties={"text": "a2"}, vector=[0.95, 0.05, 0.0]), + DataObject(properties={"text": "a3"}, vector=[0.9, 0.1, 0.0]), + DataObject(properties={"text": "b1"}, vector=[0.0, 1.0, 0.0]), + DataObject(properties={"text": "b2"}, vector=[0.05, 0.95, 0.0]), + DataObject(properties={"text": "c1"}, vector=[0.0, 0.0, 1.0]), + ] + ) + return collection + + +def test_near_vector_diversity_selection(collection_factory: CollectionFactory) -> None: + """Verify that the client passes diversity_selection to the server correctly. + + Two orthogonal assertions — server-side logic (MMR itself) is out of scope: + - ``balance`` reaches the server: balance=0.0 produces a different UUID ordering than balance=1.0 + - ``limit`` reaches the server: len(result) == mmr_limit + """ + collection = _create_clustered_collection(collection_factory) + mmr_limit = 3 + + balance_0 = collection.query.near_vector( + near_vector=[1.0, 0.0, 0.0], + diversity_selection=Diversity.mmr(limit=mmr_limit, balance=0.0), + ).objects + balance_1 = collection.query.near_vector( + near_vector=[1.0, 0.0, 0.0], + diversity_selection=Diversity.mmr(limit=mmr_limit, balance=1.0), + ).objects + + # mmr_limit reaches the server → result count equals it + assert len(balance_0) == mmr_limit + assert len(balance_1) == mmr_limit + # balance reaches the server → different ordering + assert [o.uuid for o in balance_0] != [o.uuid for o in balance_1] + + +def test_near_text_diversity_selection(collection_factory: CollectionFactory) -> None: + """Smoke test: diversity_selection kwarg is wired through the near_text entry point.""" + collection = collection_factory( + properties=[Property(name="name", data_type=DataType.TEXT)], + vectorizer_config=Configure.Vectorizer.text2vec_contextionary( + vectorize_collection_name=False + ), + ) + if collection._connection._weaviate_version.is_lower_than(1, 37, 0): + pytest.skip("Diversity selection requires Weaviate >= 1.37.0") + for name in ["banana", "apple", "orange", "car", "truck", "bike"]: + collection.data.insert({"name": name}) + + result = collection.query.near_text( + query="fruit", + diversity_selection=Diversity.mmr(limit=3, balance=0.5), + ) + assert len(result.objects) == 3 + + +def test_near_object_diversity_selection(collection_factory: CollectionFactory) -> None: + """Smoke test: diversity_selection kwarg is wired through the near_object entry point.""" + collection = _create_clustered_collection(collection_factory) + anchor = next(iter(collection.query.fetch_objects().objects)).uuid + + result = collection.query.near_object( + near_object=anchor, + diversity_selection=Diversity.mmr(limit=3, balance=0.5), + ) + assert len(result.objects) == 3 + + +def test_generate_diversity_selection(collection_factory: CollectionFactory) -> None: + """Smoke test: diversity_selection kwarg is wired through the .generate namespace.""" + collection = collection_factory( + properties=[Property(name="name", data_type=DataType.TEXT)], + vectorizer_config=Configure.Vectorizer.text2vec_contextionary( + vectorize_collection_name=False + ), + generative_config=Configure.Generative.custom("generative-dummy"), + ) + if collection._connection._weaviate_version.is_lower_than(1, 37, 0): + pytest.skip("Diversity selection requires Weaviate >= 1.37.0") + for name in ["banana", "apple", "orange", "car", "truck", "bike"]: + collection.data.insert({"name": name}) + + result = collection.generate.near_text( + query="fruit", + single_prompt="Describe {name}", + diversity_selection=Diversity.mmr(limit=3, balance=0.5), + ) + assert len(result.objects) == 3 + + +def test_diversity_selection_api_surface() -> None: + """Test the public API surface of Diversity: factory guard + mmr factory method.""" + # Direct instantiation of the factory class fails + with pytest.raises(TypeError): + Diversity() + + # Diversity.mmr() produces an MMR-configured selection object + assert Diversity.mmr(limit=3, balance=0.5).limit == 3 diff --git a/weaviate/classes/query.py b/weaviate/classes/query.py index bb5fc392b..4b03030e9 100644 --- a/weaviate/classes/query.py +++ b/weaviate/classes/query.py @@ -5,6 +5,7 @@ BM25OperatorFactory as BM25Operator, ) from weaviate.collections.classes.grpc import ( + Diversity, GroupBy, HybridFusion, HybridVector, @@ -21,6 +22,7 @@ from weaviate.collections.classes.types import GeoCoordinate __all__ = [ + "Diversity", "Filter", "FilterReturn", "GeoCoordinate", diff --git a/weaviate/collections/classes/grpc.py b/weaviate/collections/classes/grpc.py index bdcc53dd9..bea10d845 100644 --- a/weaviate/collections/classes/grpc.py +++ b/weaviate/collections/classes/grpc.py @@ -268,6 +268,36 @@ class Rerank(_WeaviateInput): query: Optional[str] = Field(default=None) +@dataclass +class MMR: + """Define MMR (Maximal Marginal Relevance) diversity selection. + + Args: + limit: Optional number of candidates to consider for diversification. + balance: Optional MMR lambda in [0.0, 1.0] — 1.0 is pure relevance, 0.0 is pure diversity. + """ + + limit: Optional[int] = None + balance: Optional[float] = None + + +class Diversity: + """Use this factory class to apply diversity selection to search results via MMR.""" + + def __init__(self) -> None: + raise TypeError("Diversity cannot be instantiated directly. Use Diversity.mmr(...).") + + @staticmethod + def mmr(limit: Optional[int] = None, balance: Optional[float] = None) -> MMR: + """Maximal Marginal Relevance diversity selection. + + Args: + limit: Number of candidates to consider for diversification. + balance: MMR lambda in [0.0, 1.0] — 1.0 pure relevance, 0.0 pure diversity. + """ + return MMR(limit=limit, balance=balance) + + @dataclass class BM25OperatorOptions: # replace with ClassVar[base_search_pb2.SearchOperatorOptions.Operator] once python 3.10 is removed @@ -559,7 +589,11 @@ def near_vector( Returns: A `_HybridNearVector` object to be used in the `vector` parameter of the `query.hybrid` and `generate.hybrid` search methods. """ - return _HybridNearVector(vector=vector, distance=distance, certainty=certainty) + return _HybridNearVector( + vector=vector, + distance=distance, + certainty=certainty, + ) class _QueryReference(_WeaviateInput): diff --git a/weaviate/collections/grpc/query.py b/weaviate/collections/grpc/query.py index d635a3f2f..69f6ef8ff 100644 --- a/weaviate/collections/grpc/query.py +++ b/weaviate/collections/grpc/query.py @@ -18,6 +18,7 @@ from weaviate.collections.classes.config import ConsistencyLevel from weaviate.collections.classes.filters import FilterReturn from weaviate.collections.classes.grpc import ( + MMR, PROPERTIES, PROPERTY, REFERENCE, @@ -262,6 +263,7 @@ def near_vector( return_metadata: Optional[_MetadataQuery] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Optional[REFERENCES] = None, + diversity_selection: Optional[MMR] = None, ) -> search_get_pb2.SearchRequest: return self.__create_request( limit=limit, @@ -275,7 +277,11 @@ def near_vector( autocut=autocut, group_by=group_by, near_vector=self._parse_near_vector( - near_vector, certainty, distance, target_vector=target_vector + near_vector, + certainty, + distance, + target_vector=target_vector, + diversity_selection=diversity_selection, ), ) @@ -296,6 +302,7 @@ def near_object( return_metadata: Optional[_MetadataQuery] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Optional[REFERENCES] = None, + diversity_selection: Optional[MMR] = None, ) -> search_get_pb2.SearchRequest: return self.__create_request( limit=limit, @@ -308,7 +315,13 @@ def near_object( rerank=rerank, autocut=autocut, group_by=group_by, - near_object=self._parse_near_object(near_object, certainty, distance, target_vector), + near_object=self._parse_near_object( + near_object, + certainty, + distance, + target_vector, + diversity_selection=diversity_selection, + ), ) def near_text( @@ -330,6 +343,7 @@ def near_text( return_metadata: Optional[_MetadataQuery] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Optional[REFERENCES] = None, + diversity_selection: Optional[MMR] = None, ) -> search_get_pb2.SearchRequest: return self.__create_request( limit=limit, @@ -349,6 +363,7 @@ def near_text( move_away=move_away, move_to=move_to, target_vector=target_vector, + diversity_selection=diversity_selection, ), ) @@ -370,6 +385,7 @@ def near_media( return_metadata: Optional[_MetadataQuery] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Optional[REFERENCES] = None, + diversity_selection: Optional[MMR] = None, ) -> search_get_pb2.SearchRequest: return self.__create_request( limit=limit, @@ -388,6 +404,7 @@ def near_media( certainty, distance, target_vector, + diversity_selection=diversity_selection, ), ) diff --git a/weaviate/collections/grpc/shared.py b/weaviate/collections/grpc/shared.py index 714db67cb..f13e5c4b1 100644 --- a/weaviate/collections/grpc/shared.py +++ b/weaviate/collections/grpc/shared.py @@ -17,6 +17,7 @@ from weaviate.collections.classes.config import ConsistencyLevel from weaviate.collections.classes.grpc import ( + MMR, BM25OperatorOptions, BM25OperatorOr, HybridFusion, @@ -310,12 +311,26 @@ def _parse_near_options( float(distance) if distance is not None else None, ) + @staticmethod + def _diversity_selection_to_grpc( + diversity_selection: Optional[MMR], + ) -> Optional[base_search_pb2.Selection]: + if diversity_selection is None: + return None + return base_search_pb2.Selection( + mmr=base_search_pb2.Selection.MMR( + limit=diversity_selection.limit, + balance=diversity_selection.balance, + ) + ) + def _parse_near_vector( self, near_vector: NearVectorInputType, certainty: Optional[NUMBER], distance: Optional[NUMBER], target_vector: Optional[TargetVectorJoinType], + diversity_selection: Optional[MMR] = None, ) -> base_search_pb2.NearVector: if self._validate_arguments: _validate_input( @@ -399,6 +414,7 @@ def _parse_near_vector( vector_per_target=vector_per_target_tmp, vector_for_targets=vector_for_targets, vectors=vectors, + selection=self._diversity_selection_to_grpc(diversity_selection), ) @staticmethod @@ -423,6 +439,7 @@ def _parse_near_text( move_to: Optional[Move], move_away: Optional[Move], target_vector: Optional[TargetVectorJoinType], + diversity_selection: Optional[MMR] = None, ) -> base_search_pb2.NearTextSearch: if self._validate_arguments: _validate_input( @@ -451,6 +468,7 @@ def _parse_near_text( move_to=self.__parse_move(move_to), targets=targets, target_vectors=target_vector, + selection=self._diversity_selection_to_grpc(diversity_selection), ) def _parse_near_object( @@ -459,6 +477,7 @@ def _parse_near_object( certainty: Optional[NUMBER], distance: Optional[NUMBER], target_vector: Optional[TargetVectorJoinType], + diversity_selection: Optional[MMR] = None, ) -> base_search_pb2.NearObject: if self._validate_arguments: _validate_input( @@ -482,6 +501,7 @@ def _parse_near_object( distance=distance, targets=targets, target_vectors=target_vector, + selection=self._diversity_selection_to_grpc(diversity_selection), ) def _parse_media( @@ -491,6 +511,7 @@ def _parse_media( certainty: Optional[NUMBER], distance: Optional[NUMBER], target_vector: Optional[TargetVectorJoinType], + diversity_selection: Optional[MMR] = None, ) -> dict: if self._validate_arguments: _validate_input( @@ -508,6 +529,7 @@ def _parse_media( kwargs: Dict[str, Any] = {} targets, target_vector = self.__target_vector_to_grpc(target_vector) + selection_grpc = self._diversity_selection_to_grpc(diversity_selection) if type_ == "audio": kwargs["near_audio"] = base_search_pb2.NearAudioSearch( audio=media, @@ -515,6 +537,7 @@ def _parse_media( certainty=certainty, target_vectors=target_vector, targets=targets, + selection=selection_grpc, ) elif type_ == "depth": kwargs["near_depth"] = base_search_pb2.NearDepthSearch( @@ -523,6 +546,7 @@ def _parse_media( certainty=certainty, target_vectors=target_vector, targets=targets, + selection=selection_grpc, ) elif type_ == "image": kwargs["near_image"] = base_search_pb2.NearImageSearch( @@ -531,6 +555,7 @@ def _parse_media( certainty=certainty, target_vectors=target_vector, targets=targets, + selection=selection_grpc, ) elif type_ == "imu": kwargs["near_imu"] = base_search_pb2.NearIMUSearch( @@ -539,6 +564,7 @@ def _parse_media( certainty=certainty, target_vectors=target_vector, targets=targets, + selection=selection_grpc, ) elif type_ == "thermal": kwargs["near_thermal"] = base_search_pb2.NearThermalSearch( @@ -547,6 +573,7 @@ def _parse_media( certainty=certainty, target_vectors=target_vector, targets=targets, + selection=selection_grpc, ) elif type_ == "video": kwargs["near_video"] = base_search_pb2.NearVideoSearch( @@ -555,6 +582,7 @@ def _parse_media( certainty=certainty, target_vectors=target_vector, targets=targets, + selection=selection_grpc, ) else: raise ValueError( diff --git a/weaviate/collections/queries/near_image/generate/async_.pyi b/weaviate/collections/queries/near_image/generate/async_.pyi index 00244e639..f0845b218 100644 --- a/weaviate/collections/queries/near_image/generate/async_.pyi +++ b/weaviate/collections/queries/near_image/generate/async_.pyi @@ -3,6 +3,7 @@ from typing import Generic, List, Literal, Optional, Type, Union, overload from weaviate.collections.classes.filters import FilterReturn from weaviate.collections.classes.grpc import ( METADATA, + MMR, PROPERTIES, REFERENCES, GroupBy, @@ -52,6 +53,7 @@ class _NearImageGenerateAsync( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> GenerativeReturn[Properties, References]: ... @overload async def near_image( @@ -75,6 +77,7 @@ class _NearImageGenerateAsync( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> GenerativeReturn[Properties, CrossReferences]: ... @overload async def near_image( @@ -98,6 +101,7 @@ class _NearImageGenerateAsync( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> GenerativeReturn[Properties, TReferences]: ... @overload async def near_image( @@ -121,6 +125,7 @@ class _NearImageGenerateAsync( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> GenerativeReturn[TProperties, References]: ... @overload async def near_image( @@ -144,6 +149,7 @@ class _NearImageGenerateAsync( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> GenerativeReturn[TProperties, CrossReferences]: ... @overload async def near_image( @@ -167,6 +173,7 @@ class _NearImageGenerateAsync( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> GenerativeReturn[TProperties, TReferences]: ... @overload async def near_image( @@ -190,6 +197,7 @@ class _NearImageGenerateAsync( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> GenerativeGroupByReturn[Properties, References]: ... @overload async def near_image( @@ -213,6 +221,7 @@ class _NearImageGenerateAsync( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> GenerativeGroupByReturn[Properties, CrossReferences]: ... @overload async def near_image( @@ -236,6 +245,7 @@ class _NearImageGenerateAsync( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> GenerativeGroupByReturn[Properties, TReferences]: ... @overload async def near_image( @@ -259,6 +269,7 @@ class _NearImageGenerateAsync( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> GenerativeGroupByReturn[TProperties, References]: ... @overload async def near_image( @@ -282,6 +293,7 @@ class _NearImageGenerateAsync( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> GenerativeGroupByReturn[TProperties, CrossReferences]: ... @overload async def near_image( @@ -305,6 +317,7 @@ class _NearImageGenerateAsync( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> GenerativeGroupByReturn[TProperties, TReferences]: ... @overload async def near_image( @@ -328,4 +341,5 @@ class _NearImageGenerateAsync( return_metadata: Optional[METADATA] = None, return_properties: Optional[ReturnProperties[TProperties]] = None, return_references: Optional[ReturnReferences[TReferences]] = None, + diversity_selection: Optional[MMR] = None, ) -> GenerativeSearchReturnType[Properties, References, TProperties, TReferences]: ... diff --git a/weaviate/collections/queries/near_image/generate/executor.py b/weaviate/collections/queries/near_image/generate/executor.py index bc996c58b..3f40122da 100644 --- a/weaviate/collections/queries/near_image/generate/executor.py +++ b/weaviate/collections/queries/near_image/generate/executor.py @@ -5,6 +5,7 @@ ) from weaviate.collections.classes.grpc import ( METADATA, + MMR, PROPERTIES, REFERENCES, GroupBy, @@ -65,6 +66,7 @@ def near_image( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> executor.Result[GenerativeReturn[Properties, References]]: ... @overload @@ -89,6 +91,7 @@ def near_image( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> executor.Result[GenerativeReturn[Properties, CrossReferences]]: ... @overload @@ -113,6 +116,7 @@ def near_image( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> executor.Result[GenerativeReturn[Properties, TReferences]]: ... @overload @@ -137,6 +141,7 @@ def near_image( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> executor.Result[GenerativeReturn[TProperties, References]]: ... @overload @@ -161,6 +166,7 @@ def near_image( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> executor.Result[GenerativeReturn[TProperties, CrossReferences]]: ... @overload @@ -185,6 +191,7 @@ def near_image( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> executor.Result[GenerativeReturn[TProperties, TReferences]]: ... ### GroupBy ### @@ -210,6 +217,7 @@ def near_image( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> executor.Result[GenerativeGroupByReturn[Properties, References]]: ... @overload @@ -234,6 +242,7 @@ def near_image( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> executor.Result[GenerativeGroupByReturn[Properties, CrossReferences]]: ... @overload @@ -258,6 +267,7 @@ def near_image( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> executor.Result[GenerativeGroupByReturn[Properties, TReferences]]: ... @overload @@ -282,6 +292,7 @@ def near_image( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> executor.Result[GenerativeGroupByReturn[TProperties, References]]: ... @overload @@ -306,6 +317,7 @@ def near_image( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> executor.Result[GenerativeGroupByReturn[TProperties, CrossReferences]]: ... @overload @@ -330,6 +342,7 @@ def near_image( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> executor.Result[GenerativeGroupByReturn[TProperties, TReferences]]: ... ### DEFAULT ### @@ -355,6 +368,7 @@ def near_image( return_metadata: Optional[METADATA] = None, return_properties: Optional[ReturnProperties[TProperties]] = None, return_references: Optional[ReturnReferences[TReferences]] = None, + diversity_selection: Optional[MMR] = None, ) -> executor.Result[ GenerativeSearchReturnType[Properties, References, TProperties, TReferences] ]: ... @@ -380,6 +394,7 @@ def near_image( return_metadata: Optional[METADATA] = None, return_properties: Optional[ReturnProperties[TProperties]] = None, return_references: Optional[ReturnReferences[TReferences]] = None, + diversity_selection: Optional[MMR] = None, ) -> executor.Result[ GenerativeSearchReturnType[Properties, References, TProperties, TReferences] ]: @@ -405,6 +420,7 @@ def near_image( return_metadata: The metadata to return for each object, defaults to `None`. return_properties: The properties to return for each object. return_references: The references to return for each object. + diversity_selection: Apply diversity selection (e.g. MMR) to the results. Requires Weaviate >= 1.37.0. NOTE: - If `return_properties` is not provided then all properties are returned except for blob properties. @@ -446,6 +462,7 @@ def resp( filters=filters, group_by=_GroupBy.from_input(group_by), rerank=rerank, + diversity_selection=diversity_selection, target_vector=target_vector, generative=_Generative( single=single_prompt, diff --git a/weaviate/collections/queries/near_image/generate/sync.pyi b/weaviate/collections/queries/near_image/generate/sync.pyi index b659f725b..cabbfb821 100644 --- a/weaviate/collections/queries/near_image/generate/sync.pyi +++ b/weaviate/collections/queries/near_image/generate/sync.pyi @@ -3,6 +3,7 @@ from typing import Generic, List, Literal, Optional, Type, Union, overload from weaviate.collections.classes.filters import FilterReturn from weaviate.collections.classes.grpc import ( METADATA, + MMR, PROPERTIES, REFERENCES, GroupBy, @@ -52,6 +53,7 @@ class _NearImageGenerate( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> GenerativeReturn[Properties, References]: ... @overload def near_image( @@ -75,6 +77,7 @@ class _NearImageGenerate( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> GenerativeReturn[Properties, CrossReferences]: ... @overload def near_image( @@ -98,6 +101,7 @@ class _NearImageGenerate( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> GenerativeReturn[Properties, TReferences]: ... @overload def near_image( @@ -121,6 +125,7 @@ class _NearImageGenerate( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> GenerativeReturn[TProperties, References]: ... @overload def near_image( @@ -144,6 +149,7 @@ class _NearImageGenerate( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> GenerativeReturn[TProperties, CrossReferences]: ... @overload def near_image( @@ -167,6 +173,7 @@ class _NearImageGenerate( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> GenerativeReturn[TProperties, TReferences]: ... @overload def near_image( @@ -190,6 +197,7 @@ class _NearImageGenerate( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> GenerativeGroupByReturn[Properties, References]: ... @overload def near_image( @@ -213,6 +221,7 @@ class _NearImageGenerate( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> GenerativeGroupByReturn[Properties, CrossReferences]: ... @overload def near_image( @@ -236,6 +245,7 @@ class _NearImageGenerate( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> GenerativeGroupByReturn[Properties, TReferences]: ... @overload def near_image( @@ -259,6 +269,7 @@ class _NearImageGenerate( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> GenerativeGroupByReturn[TProperties, References]: ... @overload def near_image( @@ -282,6 +293,7 @@ class _NearImageGenerate( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> GenerativeGroupByReturn[TProperties, CrossReferences]: ... @overload def near_image( @@ -305,6 +317,7 @@ class _NearImageGenerate( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> GenerativeGroupByReturn[TProperties, TReferences]: ... @overload def near_image( @@ -328,4 +341,5 @@ class _NearImageGenerate( return_metadata: Optional[METADATA] = None, return_properties: Optional[ReturnProperties[TProperties]] = None, return_references: Optional[ReturnReferences[TReferences]] = None, + diversity_selection: Optional[MMR] = None, ) -> GenerativeSearchReturnType[Properties, References, TProperties, TReferences]: ... diff --git a/weaviate/collections/queries/near_image/query/async_.pyi b/weaviate/collections/queries/near_image/query/async_.pyi index 2759b6927..acd625795 100644 --- a/weaviate/collections/queries/near_image/query/async_.pyi +++ b/weaviate/collections/queries/near_image/query/async_.pyi @@ -3,6 +3,7 @@ from typing import Generic, Literal, Optional, Type, Union, overload from weaviate.collections.classes.filters import FilterReturn from weaviate.collections.classes.grpc import ( METADATA, + MMR, PROPERTIES, REFERENCES, GroupBy, @@ -45,6 +46,7 @@ class _NearImageQueryAsync( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> QueryReturn[Properties, References]: ... @overload async def near_image( @@ -64,6 +66,7 @@ class _NearImageQueryAsync( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> QueryReturn[Properties, CrossReferences]: ... @overload async def near_image( @@ -83,6 +86,7 @@ class _NearImageQueryAsync( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> QueryReturn[Properties, TReferences]: ... @overload async def near_image( @@ -102,6 +106,7 @@ class _NearImageQueryAsync( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> QueryReturn[TProperties, References]: ... @overload async def near_image( @@ -121,6 +126,7 @@ class _NearImageQueryAsync( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> QueryReturn[TProperties, CrossReferences]: ... @overload async def near_image( @@ -140,6 +146,7 @@ class _NearImageQueryAsync( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> QueryReturn[TProperties, TReferences]: ... @overload async def near_image( @@ -159,6 +166,7 @@ class _NearImageQueryAsync( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> GroupByReturn[Properties, References]: ... @overload async def near_image( @@ -178,6 +186,7 @@ class _NearImageQueryAsync( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> GroupByReturn[Properties, CrossReferences]: ... @overload async def near_image( @@ -197,6 +206,7 @@ class _NearImageQueryAsync( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> GroupByReturn[Properties, TReferences]: ... @overload async def near_image( @@ -216,6 +226,7 @@ class _NearImageQueryAsync( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> GroupByReturn[TProperties, References]: ... @overload async def near_image( @@ -235,6 +246,7 @@ class _NearImageQueryAsync( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> GroupByReturn[TProperties, CrossReferences]: ... @overload async def near_image( @@ -254,6 +266,7 @@ class _NearImageQueryAsync( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> GroupByReturn[TProperties, TReferences]: ... @overload async def near_image( @@ -273,4 +286,5 @@ class _NearImageQueryAsync( return_metadata: Optional[METADATA] = None, return_properties: Optional[ReturnProperties[TProperties]] = None, return_references: Optional[ReturnReferences[TReferences]] = None, + diversity_selection: Optional[MMR] = None, ) -> QuerySearchReturnType[Properties, References, TProperties, TReferences]: ... diff --git a/weaviate/collections/queries/near_image/query/executor.py b/weaviate/collections/queries/near_image/query/executor.py index 1d284787e..fde831767 100644 --- a/weaviate/collections/queries/near_image/query/executor.py +++ b/weaviate/collections/queries/near_image/query/executor.py @@ -5,6 +5,7 @@ ) from weaviate.collections.classes.grpc import ( METADATA, + MMR, PROPERTIES, REFERENCES, GroupBy, @@ -57,6 +58,7 @@ def near_image( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> executor.Result[QueryReturn[Properties, References]]: ... @overload @@ -77,6 +79,7 @@ def near_image( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> executor.Result[QueryReturn[Properties, CrossReferences]]: ... @overload @@ -97,6 +100,7 @@ def near_image( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> executor.Result[QueryReturn[Properties, TReferences]]: ... @overload @@ -117,6 +121,7 @@ def near_image( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> executor.Result[QueryReturn[TProperties, References]]: ... @overload @@ -137,6 +142,7 @@ def near_image( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> executor.Result[QueryReturn[TProperties, CrossReferences]]: ... @overload @@ -157,6 +163,7 @@ def near_image( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> executor.Result[QueryReturn[TProperties, TReferences]]: ... ### GroupBy ### @@ -179,6 +186,7 @@ def near_image( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> executor.Result[GroupByReturn[Properties, References]]: ... @overload @@ -199,6 +207,7 @@ def near_image( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> executor.Result[GroupByReturn[Properties, CrossReferences]]: ... @overload @@ -219,6 +228,7 @@ def near_image( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> executor.Result[GroupByReturn[Properties, TReferences]]: ... @overload @@ -239,6 +249,7 @@ def near_image( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> executor.Result[GroupByReturn[TProperties, References]]: ... @overload @@ -259,6 +270,7 @@ def near_image( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> executor.Result[GroupByReturn[TProperties, CrossReferences]]: ... @overload @@ -279,6 +291,7 @@ def near_image( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> executor.Result[GroupByReturn[TProperties, TReferences]]: ... ### DEFAULT ### @@ -300,6 +313,7 @@ def near_image( return_metadata: Optional[METADATA] = None, return_properties: Optional[ReturnProperties[TProperties]] = None, return_references: Optional[ReturnReferences[TReferences]] = None, + diversity_selection: Optional[MMR] = None, ) -> executor.Result[ QuerySearchReturnType[Properties, References, TProperties, TReferences] ]: ... @@ -321,6 +335,7 @@ def near_image( return_metadata: Optional[METADATA] = None, return_properties: Optional[ReturnProperties[TProperties]] = None, return_references: Optional[ReturnReferences[TReferences]] = None, + diversity_selection: Optional[MMR] = None, ) -> executor.Result[QuerySearchReturnType[Properties, References, TProperties, TReferences]]: """Search for objects by image in this collection using an image-capable vectorization module and vector-based similarity search. @@ -344,6 +359,7 @@ def near_image( return_metadata: The metadata to return for each object, defaults to `None`. return_properties: The properties to return for each object. return_references: The references to return for each object. + diversity_selection: Apply diversity selection (e.g. MMR) to the results. Requires Weaviate >= 1.37.0. NOTE: - If `return_properties` is not provided then all properties are returned except for blob properties. @@ -385,6 +401,7 @@ def resp( filters=filters, group_by=_GroupBy.from_input(group_by), rerank=rerank, + diversity_selection=diversity_selection, target_vector=target_vector, limit=limit, offset=offset, diff --git a/weaviate/collections/queries/near_image/query/sync.pyi b/weaviate/collections/queries/near_image/query/sync.pyi index 185efa25f..01c5dadbf 100644 --- a/weaviate/collections/queries/near_image/query/sync.pyi +++ b/weaviate/collections/queries/near_image/query/sync.pyi @@ -3,6 +3,7 @@ from typing import Generic, Literal, Optional, Type, Union, overload from weaviate.collections.classes.filters import FilterReturn from weaviate.collections.classes.grpc import ( METADATA, + MMR, PROPERTIES, REFERENCES, GroupBy, @@ -44,6 +45,7 @@ class _NearImageQuery( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> QueryReturn[Properties, References]: ... @overload def near_image( @@ -63,6 +65,7 @@ class _NearImageQuery( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> QueryReturn[Properties, CrossReferences]: ... @overload def near_image( @@ -82,6 +85,7 @@ class _NearImageQuery( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> QueryReturn[Properties, TReferences]: ... @overload def near_image( @@ -101,6 +105,7 @@ class _NearImageQuery( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> QueryReturn[TProperties, References]: ... @overload def near_image( @@ -120,6 +125,7 @@ class _NearImageQuery( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> QueryReturn[TProperties, CrossReferences]: ... @overload def near_image( @@ -139,6 +145,7 @@ class _NearImageQuery( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> QueryReturn[TProperties, TReferences]: ... @overload def near_image( @@ -158,6 +165,7 @@ class _NearImageQuery( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> GroupByReturn[Properties, References]: ... @overload def near_image( @@ -177,6 +185,7 @@ class _NearImageQuery( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> GroupByReturn[Properties, CrossReferences]: ... @overload def near_image( @@ -196,6 +205,7 @@ class _NearImageQuery( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> GroupByReturn[Properties, TReferences]: ... @overload def near_image( @@ -215,6 +225,7 @@ class _NearImageQuery( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> GroupByReturn[TProperties, References]: ... @overload def near_image( @@ -234,6 +245,7 @@ class _NearImageQuery( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> GroupByReturn[TProperties, CrossReferences]: ... @overload def near_image( @@ -253,6 +265,7 @@ class _NearImageQuery( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> GroupByReturn[TProperties, TReferences]: ... @overload def near_image( @@ -272,4 +285,5 @@ class _NearImageQuery( return_metadata: Optional[METADATA] = None, return_properties: Optional[ReturnProperties[TProperties]] = None, return_references: Optional[ReturnReferences[TReferences]] = None, + diversity_selection: Optional[MMR] = None, ) -> QuerySearchReturnType[Properties, References, TProperties, TReferences]: ... diff --git a/weaviate/collections/queries/near_media/generate/async_.pyi b/weaviate/collections/queries/near_media/generate/async_.pyi index 34327ffe3..b52e82108 100644 --- a/weaviate/collections/queries/near_media/generate/async_.pyi +++ b/weaviate/collections/queries/near_media/generate/async_.pyi @@ -3,6 +3,7 @@ from typing import Generic, List, Literal, Optional, Type, Union, overload from weaviate.collections.classes.filters import FilterReturn from weaviate.collections.classes.grpc import ( METADATA, + MMR, PROPERTIES, REFERENCES, GroupBy, @@ -54,6 +55,7 @@ class _NearMediaGenerateAsync( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> GenerativeReturn[Properties, References]: ... @overload async def near_media( @@ -78,6 +80,7 @@ class _NearMediaGenerateAsync( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> GenerativeReturn[Properties, CrossReferences]: ... @overload async def near_media( @@ -102,6 +105,7 @@ class _NearMediaGenerateAsync( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> GenerativeReturn[Properties, TReferences]: ... @overload async def near_media( @@ -126,6 +130,7 @@ class _NearMediaGenerateAsync( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> GenerativeReturn[TProperties, References]: ... @overload async def near_media( @@ -150,6 +155,7 @@ class _NearMediaGenerateAsync( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> GenerativeReturn[TProperties, CrossReferences]: ... @overload async def near_media( @@ -174,6 +180,7 @@ class _NearMediaGenerateAsync( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> GenerativeReturn[TProperties, TReferences]: ... @overload async def near_media( @@ -198,6 +205,7 @@ class _NearMediaGenerateAsync( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> GenerativeGroupByReturn[Properties, References]: ... @overload async def near_media( @@ -222,6 +230,7 @@ class _NearMediaGenerateAsync( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> GenerativeGroupByReturn[Properties, CrossReferences]: ... @overload async def near_media( @@ -246,6 +255,7 @@ class _NearMediaGenerateAsync( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> GenerativeGroupByReturn[Properties, TReferences]: ... @overload async def near_media( @@ -270,6 +280,7 @@ class _NearMediaGenerateAsync( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> GenerativeGroupByReturn[TProperties, References]: ... @overload async def near_media( @@ -294,6 +305,7 @@ class _NearMediaGenerateAsync( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> GenerativeGroupByReturn[TProperties, CrossReferences]: ... @overload async def near_media( @@ -318,6 +330,7 @@ class _NearMediaGenerateAsync( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> GenerativeGroupByReturn[TProperties, TReferences]: ... @overload async def near_media( @@ -342,4 +355,5 @@ class _NearMediaGenerateAsync( return_metadata: Optional[METADATA] = None, return_properties: Optional[ReturnProperties[TProperties]] = None, return_references: Optional[ReturnReferences[TReferences]] = None, + diversity_selection: Optional[MMR] = None, ) -> GenerativeSearchReturnType[Properties, References, TProperties, TReferences]: ... diff --git a/weaviate/collections/queries/near_media/generate/executor.py b/weaviate/collections/queries/near_media/generate/executor.py index 4cf49d41b..5cb20160c 100644 --- a/weaviate/collections/queries/near_media/generate/executor.py +++ b/weaviate/collections/queries/near_media/generate/executor.py @@ -5,6 +5,7 @@ ) from weaviate.collections.classes.grpc import ( METADATA, + MMR, PROPERTIES, REFERENCES, GroupBy, @@ -66,6 +67,7 @@ def near_media( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> executor.Result[GenerativeReturn[Properties, References]]: ... @overload @@ -91,6 +93,7 @@ def near_media( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> executor.Result[GenerativeReturn[Properties, CrossReferences]]: ... @overload @@ -116,6 +119,7 @@ def near_media( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> executor.Result[GenerativeReturn[Properties, TReferences]]: ... @overload @@ -141,6 +145,7 @@ def near_media( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> executor.Result[GenerativeReturn[TProperties, References]]: ... @overload @@ -166,6 +171,7 @@ def near_media( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> executor.Result[GenerativeReturn[TProperties, CrossReferences]]: ... @overload @@ -191,6 +197,7 @@ def near_media( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> executor.Result[GenerativeReturn[TProperties, TReferences]]: ... ### GroupBy ### @@ -217,6 +224,7 @@ def near_media( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> executor.Result[GenerativeGroupByReturn[Properties, References]]: ... @overload @@ -242,6 +250,7 @@ def near_media( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> executor.Result[GenerativeGroupByReturn[Properties, CrossReferences]]: ... @overload @@ -267,6 +276,7 @@ def near_media( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> executor.Result[GenerativeGroupByReturn[Properties, TReferences]]: ... @overload @@ -292,6 +302,7 @@ def near_media( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> executor.Result[GenerativeGroupByReturn[TProperties, References]]: ... @overload @@ -317,6 +328,7 @@ def near_media( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> executor.Result[GenerativeGroupByReturn[TProperties, CrossReferences]]: ... @overload @@ -342,6 +354,7 @@ def near_media( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> executor.Result[GenerativeGroupByReturn[TProperties, TReferences]]: ... ### DEFAULT ### @@ -368,6 +381,7 @@ def near_media( return_metadata: Optional[METADATA] = None, return_properties: Optional[ReturnProperties[TProperties]] = None, return_references: Optional[ReturnReferences[TReferences]] = None, + diversity_selection: Optional[MMR] = None, ) -> executor.Result[ GenerativeSearchReturnType[Properties, References, TProperties, TReferences] ]: ... @@ -394,6 +408,7 @@ def near_media( return_metadata: Optional[METADATA] = None, return_properties: Optional[ReturnProperties[TProperties]] = None, return_references: Optional[ReturnReferences[TReferences]] = None, + diversity_selection: Optional[MMR] = None, ) -> executor.Result[ GenerativeSearchReturnType[Properties, References, TProperties, TReferences] ]: @@ -420,6 +435,7 @@ def near_media( return_metadata: The metadata to return for each object, defaults to `None`. return_properties: The properties to return for each object. return_references: The references to return for each object. + diversity_selection: Apply diversity selection (e.g. MMR) to the results. Requires Weaviate >= 1.37.0. NOTE: - If `return_properties` is not provided then all properties are returned except for blob properties. @@ -461,6 +477,7 @@ def resp( filters=filters, group_by=_GroupBy.from_input(group_by), rerank=rerank, + diversity_selection=diversity_selection, target_vector=target_vector, generative=_Generative( single=single_prompt, diff --git a/weaviate/collections/queries/near_media/generate/sync.pyi b/weaviate/collections/queries/near_media/generate/sync.pyi index 503462959..505b3edce 100644 --- a/weaviate/collections/queries/near_media/generate/sync.pyi +++ b/weaviate/collections/queries/near_media/generate/sync.pyi @@ -3,6 +3,7 @@ from typing import Generic, List, Literal, Optional, Type, Union, overload from weaviate.collections.classes.filters import FilterReturn from weaviate.collections.classes.grpc import ( METADATA, + MMR, PROPERTIES, REFERENCES, GroupBy, @@ -54,6 +55,7 @@ class _NearMediaGenerate( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> GenerativeReturn[Properties, References]: ... @overload def near_media( @@ -78,6 +80,7 @@ class _NearMediaGenerate( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> GenerativeReturn[Properties, CrossReferences]: ... @overload def near_media( @@ -102,6 +105,7 @@ class _NearMediaGenerate( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> GenerativeReturn[Properties, TReferences]: ... @overload def near_media( @@ -126,6 +130,7 @@ class _NearMediaGenerate( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> GenerativeReturn[TProperties, References]: ... @overload def near_media( @@ -150,6 +155,7 @@ class _NearMediaGenerate( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> GenerativeReturn[TProperties, CrossReferences]: ... @overload def near_media( @@ -174,6 +180,7 @@ class _NearMediaGenerate( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> GenerativeReturn[TProperties, TReferences]: ... @overload def near_media( @@ -198,6 +205,7 @@ class _NearMediaGenerate( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> GenerativeGroupByReturn[Properties, References]: ... @overload def near_media( @@ -222,6 +230,7 @@ class _NearMediaGenerate( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> GenerativeGroupByReturn[Properties, CrossReferences]: ... @overload def near_media( @@ -246,6 +255,7 @@ class _NearMediaGenerate( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> GenerativeGroupByReturn[Properties, TReferences]: ... @overload def near_media( @@ -270,6 +280,7 @@ class _NearMediaGenerate( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> GenerativeGroupByReturn[TProperties, References]: ... @overload def near_media( @@ -294,6 +305,7 @@ class _NearMediaGenerate( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> GenerativeGroupByReturn[TProperties, CrossReferences]: ... @overload def near_media( @@ -318,6 +330,7 @@ class _NearMediaGenerate( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> GenerativeGroupByReturn[TProperties, TReferences]: ... @overload def near_media( @@ -342,4 +355,5 @@ class _NearMediaGenerate( return_metadata: Optional[METADATA] = None, return_properties: Optional[ReturnProperties[TProperties]] = None, return_references: Optional[ReturnReferences[TReferences]] = None, + diversity_selection: Optional[MMR] = None, ) -> GenerativeSearchReturnType[Properties, References, TProperties, TReferences]: ... diff --git a/weaviate/collections/queries/near_media/query/async_.pyi b/weaviate/collections/queries/near_media/query/async_.pyi index 2022d3b97..49b7923d6 100644 --- a/weaviate/collections/queries/near_media/query/async_.pyi +++ b/weaviate/collections/queries/near_media/query/async_.pyi @@ -3,6 +3,7 @@ from typing import Generic, Literal, Optional, Type, Union, overload from weaviate.collections.classes.filters import FilterReturn from weaviate.collections.classes.grpc import ( METADATA, + MMR, PROPERTIES, REFERENCES, GroupBy, @@ -47,6 +48,7 @@ class _NearMediaQueryAsync( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> QueryReturn[Properties, References]: ... @overload async def near_media( @@ -67,6 +69,7 @@ class _NearMediaQueryAsync( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> QueryReturn[Properties, CrossReferences]: ... @overload async def near_media( @@ -87,6 +90,7 @@ class _NearMediaQueryAsync( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> QueryReturn[Properties, TReferences]: ... @overload async def near_media( @@ -107,6 +111,7 @@ class _NearMediaQueryAsync( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> QueryReturn[TProperties, References]: ... @overload async def near_media( @@ -127,6 +132,7 @@ class _NearMediaQueryAsync( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> QueryReturn[TProperties, CrossReferences]: ... @overload async def near_media( @@ -147,6 +153,7 @@ class _NearMediaQueryAsync( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> QueryReturn[TProperties, TReferences]: ... @overload async def near_media( @@ -167,6 +174,7 @@ class _NearMediaQueryAsync( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> GroupByReturn[Properties, References]: ... @overload async def near_media( @@ -187,6 +195,7 @@ class _NearMediaQueryAsync( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> GroupByReturn[Properties, CrossReferences]: ... @overload async def near_media( @@ -207,6 +216,7 @@ class _NearMediaQueryAsync( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> GroupByReturn[Properties, TReferences]: ... @overload async def near_media( @@ -227,6 +237,7 @@ class _NearMediaQueryAsync( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> GroupByReturn[TProperties, References]: ... @overload async def near_media( @@ -247,6 +258,7 @@ class _NearMediaQueryAsync( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> GroupByReturn[TProperties, CrossReferences]: ... @overload async def near_media( @@ -267,6 +279,7 @@ class _NearMediaQueryAsync( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> GroupByReturn[TProperties, TReferences]: ... @overload async def near_media( @@ -287,4 +300,5 @@ class _NearMediaQueryAsync( return_metadata: Optional[METADATA] = None, return_properties: Optional[ReturnProperties[TProperties]] = None, return_references: Optional[ReturnReferences[TReferences]] = None, + diversity_selection: Optional[MMR] = None, ) -> QuerySearchReturnType[Properties, References, TProperties, TReferences]: ... diff --git a/weaviate/collections/queries/near_media/query/executor.py b/weaviate/collections/queries/near_media/query/executor.py index 1200f28ba..71e0dd09a 100644 --- a/weaviate/collections/queries/near_media/query/executor.py +++ b/weaviate/collections/queries/near_media/query/executor.py @@ -5,6 +5,7 @@ ) from weaviate.collections.classes.grpc import ( METADATA, + MMR, PROPERTIES, REFERENCES, GroupBy, @@ -58,6 +59,7 @@ def near_media( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> executor.Result[QueryReturn[Properties, References]]: ... @overload @@ -79,6 +81,7 @@ def near_media( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> executor.Result[QueryReturn[Properties, CrossReferences]]: ... @overload @@ -100,6 +103,7 @@ def near_media( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> executor.Result[QueryReturn[Properties, TReferences]]: ... @overload @@ -121,6 +125,7 @@ def near_media( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> executor.Result[QueryReturn[TProperties, References]]: ... @overload @@ -142,6 +147,7 @@ def near_media( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> executor.Result[QueryReturn[TProperties, CrossReferences]]: ... @overload @@ -163,6 +169,7 @@ def near_media( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> executor.Result[QueryReturn[TProperties, TReferences]]: ... ### GroupBy ### @@ -186,6 +193,7 @@ def near_media( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> executor.Result[GroupByReturn[Properties, References]]: ... @overload @@ -207,6 +215,7 @@ def near_media( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> executor.Result[GroupByReturn[Properties, CrossReferences]]: ... @overload @@ -228,6 +237,7 @@ def near_media( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> executor.Result[GroupByReturn[Properties, TReferences]]: ... @overload @@ -249,6 +259,7 @@ def near_media( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> executor.Result[GroupByReturn[TProperties, References]]: ... @overload @@ -270,6 +281,7 @@ def near_media( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> executor.Result[GroupByReturn[TProperties, CrossReferences]]: ... @overload @@ -291,6 +303,7 @@ def near_media( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> executor.Result[GroupByReturn[TProperties, TReferences]]: ... ### DEFAULT ### @@ -313,6 +326,7 @@ def near_media( return_metadata: Optional[METADATA] = None, return_properties: Optional[ReturnProperties[TProperties]] = None, return_references: Optional[ReturnReferences[TReferences]] = None, + diversity_selection: Optional[MMR] = None, ) -> executor.Result[ QuerySearchReturnType[Properties, References, TProperties, TReferences] ]: ... @@ -335,6 +349,7 @@ def near_media( return_metadata: Optional[METADATA] = None, return_properties: Optional[ReturnProperties[TProperties]] = None, return_references: Optional[ReturnReferences[TReferences]] = None, + diversity_selection: Optional[MMR] = None, ) -> executor.Result[QuerySearchReturnType[Properties, References, TProperties, TReferences]]: """Search for objects by audio in this collection using an audio-capable vectorization module and vector-based similarity search. @@ -359,6 +374,7 @@ def near_media( return_metadata: The metadata to return for each object, defaults to `None`. return_properties: The properties to return for each object. return_references: The references to return for each object. + diversity_selection: Apply diversity selection (e.g. MMR) to the results. Requires Weaviate >= 1.37.0. NOTE: - If `return_properties` is not provided then all properties are returned except for blob properties. @@ -400,6 +416,7 @@ def resp( filters=filters, group_by=_GroupBy.from_input(group_by), rerank=rerank, + diversity_selection=diversity_selection, target_vector=target_vector, limit=limit, offset=offset, diff --git a/weaviate/collections/queries/near_media/query/sync.pyi b/weaviate/collections/queries/near_media/query/sync.pyi index 4bba721dd..71ba12e96 100644 --- a/weaviate/collections/queries/near_media/query/sync.pyi +++ b/weaviate/collections/queries/near_media/query/sync.pyi @@ -3,6 +3,7 @@ from typing import Generic, Literal, Optional, Type, Union, overload from weaviate.collections.classes.filters import FilterReturn from weaviate.collections.classes.grpc import ( METADATA, + MMR, PROPERTIES, REFERENCES, GroupBy, @@ -46,6 +47,7 @@ class _NearMediaQuery( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> QueryReturn[Properties, References]: ... @overload def near_media( @@ -66,6 +68,7 @@ class _NearMediaQuery( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> QueryReturn[Properties, CrossReferences]: ... @overload def near_media( @@ -86,6 +89,7 @@ class _NearMediaQuery( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> QueryReturn[Properties, TReferences]: ... @overload def near_media( @@ -106,6 +110,7 @@ class _NearMediaQuery( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> QueryReturn[TProperties, References]: ... @overload def near_media( @@ -126,6 +131,7 @@ class _NearMediaQuery( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> QueryReturn[TProperties, CrossReferences]: ... @overload def near_media( @@ -146,6 +152,7 @@ class _NearMediaQuery( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> QueryReturn[TProperties, TReferences]: ... @overload def near_media( @@ -166,6 +173,7 @@ class _NearMediaQuery( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> GroupByReturn[Properties, References]: ... @overload def near_media( @@ -186,6 +194,7 @@ class _NearMediaQuery( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> GroupByReturn[Properties, CrossReferences]: ... @overload def near_media( @@ -206,6 +215,7 @@ class _NearMediaQuery( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> GroupByReturn[Properties, TReferences]: ... @overload def near_media( @@ -226,6 +236,7 @@ class _NearMediaQuery( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> GroupByReturn[TProperties, References]: ... @overload def near_media( @@ -246,6 +257,7 @@ class _NearMediaQuery( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> GroupByReturn[TProperties, CrossReferences]: ... @overload def near_media( @@ -266,6 +278,7 @@ class _NearMediaQuery( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> GroupByReturn[TProperties, TReferences]: ... @overload def near_media( @@ -286,4 +299,5 @@ class _NearMediaQuery( return_metadata: Optional[METADATA] = None, return_properties: Optional[ReturnProperties[TProperties]] = None, return_references: Optional[ReturnReferences[TReferences]] = None, + diversity_selection: Optional[MMR] = None, ) -> QuerySearchReturnType[Properties, References, TProperties, TReferences]: ... diff --git a/weaviate/collections/queries/near_object/generate/async_.pyi b/weaviate/collections/queries/near_object/generate/async_.pyi index 31d37ebb4..a66cc24d2 100644 --- a/weaviate/collections/queries/near_object/generate/async_.pyi +++ b/weaviate/collections/queries/near_object/generate/async_.pyi @@ -3,6 +3,7 @@ from typing import Generic, List, Literal, Optional, Type, Union, overload from weaviate.collections.classes.filters import FilterReturn from weaviate.collections.classes.grpc import ( METADATA, + MMR, PROPERTIES, REFERENCES, GroupBy, @@ -52,6 +53,7 @@ class _NearObjectGenerateAsync( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> GenerativeReturn[Properties, References]: ... @overload async def near_object( @@ -75,6 +77,7 @@ class _NearObjectGenerateAsync( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> GenerativeReturn[Properties, CrossReferences]: ... @overload async def near_object( @@ -98,6 +101,7 @@ class _NearObjectGenerateAsync( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> GenerativeReturn[Properties, TReferences]: ... @overload async def near_object( @@ -121,6 +125,7 @@ class _NearObjectGenerateAsync( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> GenerativeReturn[TProperties, References]: ... @overload async def near_object( @@ -144,6 +149,7 @@ class _NearObjectGenerateAsync( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> GenerativeReturn[TProperties, CrossReferences]: ... @overload async def near_object( @@ -167,6 +173,7 @@ class _NearObjectGenerateAsync( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> GenerativeReturn[TProperties, TReferences]: ... @overload async def near_object( @@ -190,6 +197,7 @@ class _NearObjectGenerateAsync( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> GenerativeGroupByReturn[Properties, References]: ... @overload async def near_object( @@ -213,6 +221,7 @@ class _NearObjectGenerateAsync( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> GenerativeGroupByReturn[Properties, CrossReferences]: ... @overload async def near_object( @@ -236,6 +245,7 @@ class _NearObjectGenerateAsync( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> GenerativeGroupByReturn[Properties, TReferences]: ... @overload async def near_object( @@ -259,6 +269,7 @@ class _NearObjectGenerateAsync( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> GenerativeGroupByReturn[TProperties, References]: ... @overload async def near_object( @@ -282,6 +293,7 @@ class _NearObjectGenerateAsync( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> GenerativeGroupByReturn[TProperties, CrossReferences]: ... @overload async def near_object( @@ -305,6 +317,7 @@ class _NearObjectGenerateAsync( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> GenerativeGroupByReturn[TProperties, TReferences]: ... @overload async def near_object( @@ -328,4 +341,5 @@ class _NearObjectGenerateAsync( return_metadata: Optional[METADATA] = None, return_properties: Optional[ReturnProperties[TProperties]] = None, return_references: Optional[ReturnReferences[TReferences]] = None, + diversity_selection: Optional[MMR] = None, ) -> GenerativeSearchReturnType[Properties, References, TProperties, TReferences]: ... diff --git a/weaviate/collections/queries/near_object/generate/executor.py b/weaviate/collections/queries/near_object/generate/executor.py index 8a0e862c0..152a9c0b4 100644 --- a/weaviate/collections/queries/near_object/generate/executor.py +++ b/weaviate/collections/queries/near_object/generate/executor.py @@ -5,6 +5,7 @@ ) from weaviate.collections.classes.grpc import ( METADATA, + MMR, PROPERTIES, REFERENCES, GroupBy, @@ -63,6 +64,7 @@ def near_object( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> executor.Result[GenerativeReturn[Properties, References]]: ... @overload @@ -87,6 +89,7 @@ def near_object( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> executor.Result[GenerativeReturn[Properties, CrossReferences]]: ... @overload @@ -111,6 +114,7 @@ def near_object( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> executor.Result[GenerativeReturn[Properties, TReferences]]: ... @overload @@ -135,6 +139,7 @@ def near_object( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> executor.Result[GenerativeReturn[TProperties, References]]: ... @overload @@ -159,6 +164,7 @@ def near_object( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> executor.Result[GenerativeReturn[TProperties, CrossReferences]]: ... @overload @@ -183,6 +189,7 @@ def near_object( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> executor.Result[GenerativeReturn[TProperties, TReferences]]: ... ### GroupBy ### @@ -208,6 +215,7 @@ def near_object( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> executor.Result[GenerativeGroupByReturn[Properties, References]]: ... @overload @@ -232,6 +240,7 @@ def near_object( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> executor.Result[GenerativeGroupByReturn[Properties, CrossReferences]]: ... @overload @@ -256,6 +265,7 @@ def near_object( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> executor.Result[GenerativeGroupByReturn[Properties, TReferences]]: ... @overload @@ -280,6 +290,7 @@ def near_object( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> executor.Result[GenerativeGroupByReturn[TProperties, References]]: ... @overload @@ -304,6 +315,7 @@ def near_object( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> executor.Result[GenerativeGroupByReturn[TProperties, CrossReferences]]: ... @overload @@ -328,6 +340,7 @@ def near_object( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> executor.Result[GenerativeGroupByReturn[TProperties, TReferences]]: ... ### Default ### @@ -354,6 +367,7 @@ def near_object( return_metadata: Optional[METADATA] = None, return_properties: Optional[ReturnProperties[TProperties]] = None, return_references: Optional[ReturnReferences[TReferences]] = None, + diversity_selection: Optional[MMR] = None, ) -> executor.Result[ GenerativeSearchReturnType[Properties, References, TProperties, TReferences] ]: ... @@ -379,6 +393,7 @@ def near_object( return_metadata: Optional[METADATA] = None, return_properties: Optional[ReturnProperties[TProperties]] = None, return_references: Optional[ReturnReferences[TReferences]] = None, + diversity_selection: Optional[MMR] = None, ) -> executor.Result[ GenerativeSearchReturnType[Properties, References, TProperties, TReferences] ]: @@ -401,6 +416,7 @@ def near_object( return_metadata: The metadata to return for each object, defaults to `None`. return_properties: The properties to return for each object. return_references: The references to return for each object. + diversity_selection: Apply diversity selection (e.g. MMR) to the results. Requires Weaviate >= 1.37.0. NOTE: - If `return_properties` is not provided then all properties are returned except for blob properties. @@ -444,6 +460,7 @@ def resp( filters=filters, group_by=_GroupBy.from_input(group_by), rerank=rerank, + diversity_selection=diversity_selection, target_vector=target_vector, generative=_Generative( single=single_prompt, diff --git a/weaviate/collections/queries/near_object/generate/sync.pyi b/weaviate/collections/queries/near_object/generate/sync.pyi index a764006c4..6aaa7ea16 100644 --- a/weaviate/collections/queries/near_object/generate/sync.pyi +++ b/weaviate/collections/queries/near_object/generate/sync.pyi @@ -3,6 +3,7 @@ from typing import Generic, List, Literal, Optional, Type, Union, overload from weaviate.collections.classes.filters import FilterReturn from weaviate.collections.classes.grpc import ( METADATA, + MMR, PROPERTIES, REFERENCES, GroupBy, @@ -52,6 +53,7 @@ class _NearObjectGenerate( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> GenerativeReturn[Properties, References]: ... @overload def near_object( @@ -75,6 +77,7 @@ class _NearObjectGenerate( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> GenerativeReturn[Properties, CrossReferences]: ... @overload def near_object( @@ -98,6 +101,7 @@ class _NearObjectGenerate( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> GenerativeReturn[Properties, TReferences]: ... @overload def near_object( @@ -121,6 +125,7 @@ class _NearObjectGenerate( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> GenerativeReturn[TProperties, References]: ... @overload def near_object( @@ -144,6 +149,7 @@ class _NearObjectGenerate( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> GenerativeReturn[TProperties, CrossReferences]: ... @overload def near_object( @@ -167,6 +173,7 @@ class _NearObjectGenerate( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> GenerativeReturn[TProperties, TReferences]: ... @overload def near_object( @@ -190,6 +197,7 @@ class _NearObjectGenerate( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> GenerativeGroupByReturn[Properties, References]: ... @overload def near_object( @@ -213,6 +221,7 @@ class _NearObjectGenerate( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> GenerativeGroupByReturn[Properties, CrossReferences]: ... @overload def near_object( @@ -236,6 +245,7 @@ class _NearObjectGenerate( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> GenerativeGroupByReturn[Properties, TReferences]: ... @overload def near_object( @@ -259,6 +269,7 @@ class _NearObjectGenerate( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> GenerativeGroupByReturn[TProperties, References]: ... @overload def near_object( @@ -282,6 +293,7 @@ class _NearObjectGenerate( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> GenerativeGroupByReturn[TProperties, CrossReferences]: ... @overload def near_object( @@ -305,6 +317,7 @@ class _NearObjectGenerate( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> GenerativeGroupByReturn[TProperties, TReferences]: ... @overload def near_object( @@ -328,4 +341,5 @@ class _NearObjectGenerate( return_metadata: Optional[METADATA] = None, return_properties: Optional[ReturnProperties[TProperties]] = None, return_references: Optional[ReturnReferences[TReferences]] = None, + diversity_selection: Optional[MMR] = None, ) -> GenerativeSearchReturnType[Properties, References, TProperties, TReferences]: ... diff --git a/weaviate/collections/queries/near_object/query/async_.pyi b/weaviate/collections/queries/near_object/query/async_.pyi index 860314f9b..a121a992d 100644 --- a/weaviate/collections/queries/near_object/query/async_.pyi +++ b/weaviate/collections/queries/near_object/query/async_.pyi @@ -3,6 +3,7 @@ from typing import Generic, Literal, Optional, Type, Union, overload from weaviate.collections.classes.filters import FilterReturn from weaviate.collections.classes.grpc import ( METADATA, + MMR, PROPERTIES, REFERENCES, GroupBy, @@ -45,6 +46,7 @@ class _NearObjectQueryAsync( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> QueryReturn[Properties, References]: ... @overload async def near_object( @@ -64,6 +66,7 @@ class _NearObjectQueryAsync( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> QueryReturn[Properties, CrossReferences]: ... @overload async def near_object( @@ -83,6 +86,7 @@ class _NearObjectQueryAsync( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> QueryReturn[Properties, TReferences]: ... @overload async def near_object( @@ -102,6 +106,7 @@ class _NearObjectQueryAsync( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> QueryReturn[TProperties, References]: ... @overload async def near_object( @@ -121,6 +126,7 @@ class _NearObjectQueryAsync( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> QueryReturn[TProperties, CrossReferences]: ... @overload async def near_object( @@ -140,6 +146,7 @@ class _NearObjectQueryAsync( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> QueryReturn[TProperties, TReferences]: ... @overload async def near_object( @@ -159,6 +166,7 @@ class _NearObjectQueryAsync( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> GroupByReturn[Properties, References]: ... @overload async def near_object( @@ -178,6 +186,7 @@ class _NearObjectQueryAsync( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> GroupByReturn[Properties, CrossReferences]: ... @overload async def near_object( @@ -197,6 +206,7 @@ class _NearObjectQueryAsync( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> GroupByReturn[Properties, TReferences]: ... @overload async def near_object( @@ -216,6 +226,7 @@ class _NearObjectQueryAsync( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> GroupByReturn[TProperties, References]: ... @overload async def near_object( @@ -235,6 +246,7 @@ class _NearObjectQueryAsync( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> GroupByReturn[TProperties, CrossReferences]: ... @overload async def near_object( @@ -254,6 +266,7 @@ class _NearObjectQueryAsync( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> GroupByReturn[TProperties, TReferences]: ... @overload async def near_object( @@ -273,4 +286,5 @@ class _NearObjectQueryAsync( return_metadata: Optional[METADATA] = None, return_properties: Optional[ReturnProperties[TProperties]] = None, return_references: Optional[ReturnReferences[TReferences]] = None, + diversity_selection: Optional[MMR] = None, ) -> QuerySearchReturnType[Properties, References, TProperties, TReferences]: ... diff --git a/weaviate/collections/queries/near_object/query/executor.py b/weaviate/collections/queries/near_object/query/executor.py index 1063f2b6b..02ea47778 100644 --- a/weaviate/collections/queries/near_object/query/executor.py +++ b/weaviate/collections/queries/near_object/query/executor.py @@ -5,6 +5,7 @@ ) from weaviate.collections.classes.grpc import ( METADATA, + MMR, PROPERTIES, REFERENCES, GroupBy, @@ -56,6 +57,7 @@ def near_object( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> executor.Result[QueryReturn[Properties, References]]: ... @overload @@ -76,6 +78,7 @@ def near_object( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> executor.Result[QueryReturn[Properties, CrossReferences]]: ... @overload @@ -96,6 +99,7 @@ def near_object( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> executor.Result[QueryReturn[Properties, TReferences]]: ... @overload @@ -116,6 +120,7 @@ def near_object( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> executor.Result[QueryReturn[TProperties, References]]: ... @overload @@ -136,6 +141,7 @@ def near_object( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> executor.Result[QueryReturn[TProperties, CrossReferences]]: ... @overload @@ -156,6 +162,7 @@ def near_object( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> executor.Result[QueryReturn[TProperties, TReferences]]: ... ### GroupBy ### @@ -178,6 +185,7 @@ def near_object( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> executor.Result[GroupByReturn[Properties, References]]: ... @overload @@ -198,6 +206,7 @@ def near_object( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> executor.Result[GroupByReturn[Properties, CrossReferences]]: ... @overload @@ -218,6 +227,7 @@ def near_object( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> executor.Result[GroupByReturn[Properties, TReferences]]: ... @overload @@ -238,6 +248,7 @@ def near_object( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> executor.Result[GroupByReturn[TProperties, References]]: ... @overload @@ -258,6 +269,7 @@ def near_object( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> executor.Result[GroupByReturn[TProperties, CrossReferences]]: ... @overload @@ -278,6 +290,7 @@ def near_object( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> executor.Result[GroupByReturn[TProperties, TReferences]]: ... ### Default ### @@ -300,6 +313,7 @@ def near_object( return_metadata: Optional[METADATA] = None, return_properties: Optional[ReturnProperties[TProperties]] = None, return_references: Optional[ReturnReferences[TReferences]] = None, + diversity_selection: Optional[MMR] = None, ) -> executor.Result[ QuerySearchReturnType[Properties, References, TProperties, TReferences] ]: ... @@ -321,6 +335,7 @@ def near_object( return_metadata: Optional[METADATA] = None, return_properties: Optional[ReturnProperties[TProperties]] = None, return_references: Optional[ReturnReferences[TReferences]] = None, + diversity_selection: Optional[MMR] = None, ) -> executor.Result[ QueryNearMediaReturnType[Properties, References, TProperties, TReferences] ]: @@ -343,6 +358,7 @@ def near_object( return_metadata: The metadata to return for each object, defaults to `None`. return_properties: The properties to return for each object. return_references: The references to return for each object. + diversity_selection: Apply diversity selection (e.g. MMR) to the results. Requires Weaviate >= 1.37.0. NOTE: - If `return_properties` is not provided then all properties are returned except for blob properties. @@ -386,6 +402,7 @@ def resp( filters=filters, group_by=_GroupBy.from_input(group_by), rerank=rerank, + diversity_selection=diversity_selection, target_vector=target_vector, return_metadata=self._parse_return_metadata(return_metadata, include_vector), return_properties=self._parse_return_properties(return_properties), diff --git a/weaviate/collections/queries/near_object/query/sync.pyi b/weaviate/collections/queries/near_object/query/sync.pyi index a95b2ee47..cd17ab461 100644 --- a/weaviate/collections/queries/near_object/query/sync.pyi +++ b/weaviate/collections/queries/near_object/query/sync.pyi @@ -3,6 +3,7 @@ from typing import Generic, Literal, Optional, Type, Union, overload from weaviate.collections.classes.filters import FilterReturn from weaviate.collections.classes.grpc import ( METADATA, + MMR, PROPERTIES, REFERENCES, GroupBy, @@ -45,6 +46,7 @@ class _NearObjectQuery( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> QueryReturn[Properties, References]: ... @overload def near_object( @@ -64,6 +66,7 @@ class _NearObjectQuery( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> QueryReturn[Properties, CrossReferences]: ... @overload def near_object( @@ -83,6 +86,7 @@ class _NearObjectQuery( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> QueryReturn[Properties, TReferences]: ... @overload def near_object( @@ -102,6 +106,7 @@ class _NearObjectQuery( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> QueryReturn[TProperties, References]: ... @overload def near_object( @@ -121,6 +126,7 @@ class _NearObjectQuery( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> QueryReturn[TProperties, CrossReferences]: ... @overload def near_object( @@ -140,6 +146,7 @@ class _NearObjectQuery( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> QueryReturn[TProperties, TReferences]: ... @overload def near_object( @@ -159,6 +166,7 @@ class _NearObjectQuery( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> GroupByReturn[Properties, References]: ... @overload def near_object( @@ -178,6 +186,7 @@ class _NearObjectQuery( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> GroupByReturn[Properties, CrossReferences]: ... @overload def near_object( @@ -197,6 +206,7 @@ class _NearObjectQuery( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> GroupByReturn[Properties, TReferences]: ... @overload def near_object( @@ -216,6 +226,7 @@ class _NearObjectQuery( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> GroupByReturn[TProperties, References]: ... @overload def near_object( @@ -235,6 +246,7 @@ class _NearObjectQuery( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> GroupByReturn[TProperties, CrossReferences]: ... @overload def near_object( @@ -254,6 +266,7 @@ class _NearObjectQuery( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> GroupByReturn[TProperties, TReferences]: ... @overload def near_object( @@ -273,4 +286,5 @@ class _NearObjectQuery( return_metadata: Optional[METADATA] = None, return_properties: Optional[ReturnProperties[TProperties]] = None, return_references: Optional[ReturnReferences[TReferences]] = None, + diversity_selection: Optional[MMR] = None, ) -> QuerySearchReturnType[Properties, References, TProperties, TReferences]: ... diff --git a/weaviate/collections/queries/near_text/generate/async_.pyi b/weaviate/collections/queries/near_text/generate/async_.pyi index 146758b49..f609127b7 100644 --- a/weaviate/collections/queries/near_text/generate/async_.pyi +++ b/weaviate/collections/queries/near_text/generate/async_.pyi @@ -3,6 +3,7 @@ from typing import Generic, List, Literal, Optional, Type, Union, overload from weaviate.collections.classes.filters import FilterReturn from weaviate.collections.classes.grpc import ( METADATA, + MMR, PROPERTIES, REFERENCES, GroupBy, @@ -55,6 +56,7 @@ class _NearTextGenerateAsync( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> GenerativeReturn[Properties, References]: ... @overload async def near_text( @@ -80,6 +82,7 @@ class _NearTextGenerateAsync( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> GenerativeReturn[Properties, CrossReferences]: ... @overload async def near_text( @@ -105,6 +108,7 @@ class _NearTextGenerateAsync( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> GenerativeReturn[Properties, TReferences]: ... @overload async def near_text( @@ -130,6 +134,7 @@ class _NearTextGenerateAsync( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> GenerativeReturn[TProperties, References]: ... @overload async def near_text( @@ -155,6 +160,7 @@ class _NearTextGenerateAsync( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> GenerativeReturn[TProperties, CrossReferences]: ... @overload async def near_text( @@ -180,6 +186,7 @@ class _NearTextGenerateAsync( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> GenerativeReturn[TProperties, TReferences]: ... @overload async def near_text( @@ -205,6 +212,7 @@ class _NearTextGenerateAsync( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> GenerativeGroupByReturn[Properties, References]: ... @overload async def near_text( @@ -230,6 +238,7 @@ class _NearTextGenerateAsync( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> GenerativeGroupByReturn[Properties, CrossReferences]: ... @overload async def near_text( @@ -255,6 +264,7 @@ class _NearTextGenerateAsync( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> GenerativeGroupByReturn[Properties, TReferences]: ... @overload async def near_text( @@ -280,6 +290,7 @@ class _NearTextGenerateAsync( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> GenerativeGroupByReturn[TProperties, References]: ... @overload async def near_text( @@ -305,6 +316,7 @@ class _NearTextGenerateAsync( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> GenerativeGroupByReturn[TProperties, CrossReferences]: ... @overload async def near_text( @@ -330,6 +342,7 @@ class _NearTextGenerateAsync( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> GenerativeGroupByReturn[TProperties, TReferences]: ... @overload async def near_text( @@ -355,4 +368,5 @@ class _NearTextGenerateAsync( return_metadata: Optional[METADATA] = None, return_properties: Optional[ReturnProperties[TProperties]] = None, return_references: Optional[ReturnReferences[TReferences]] = None, + diversity_selection: Optional[MMR] = None, ) -> GenerativeSearchReturnType[Properties, References, TProperties, TReferences]: ... diff --git a/weaviate/collections/queries/near_text/generate/executor.py b/weaviate/collections/queries/near_text/generate/executor.py index 788a53646..eb1850ee6 100644 --- a/weaviate/collections/queries/near_text/generate/executor.py +++ b/weaviate/collections/queries/near_text/generate/executor.py @@ -5,6 +5,7 @@ ) from weaviate.collections.classes.grpc import ( METADATA, + MMR, PROPERTIES, REFERENCES, GroupBy, @@ -66,6 +67,7 @@ def near_text( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> executor.Result[GenerativeReturn[Properties, References]]: ... @overload @@ -92,6 +94,7 @@ def near_text( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> executor.Result[GenerativeReturn[Properties, CrossReferences]]: ... @overload @@ -118,6 +121,7 @@ def near_text( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> executor.Result[GenerativeReturn[Properties, TReferences]]: ... @overload @@ -144,6 +148,7 @@ def near_text( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> executor.Result[GenerativeReturn[TProperties, References]]: ... @overload @@ -170,6 +175,7 @@ def near_text( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> executor.Result[GenerativeReturn[TProperties, CrossReferences]]: ... @overload @@ -196,6 +202,7 @@ def near_text( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> executor.Result[GenerativeReturn[TProperties, TReferences]]: ... ### GroupBy ### @@ -223,6 +230,7 @@ def near_text( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> executor.Result[GenerativeGroupByReturn[Properties, References]]: ... @overload @@ -249,6 +257,7 @@ def near_text( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> executor.Result[GenerativeGroupByReturn[Properties, CrossReferences]]: ... @overload @@ -275,6 +284,7 @@ def near_text( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> executor.Result[GenerativeGroupByReturn[Properties, TReferences]]: ... @overload @@ -301,6 +311,7 @@ def near_text( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> executor.Result[GenerativeGroupByReturn[TProperties, References]]: ... @overload @@ -327,6 +338,7 @@ def near_text( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> executor.Result[GenerativeGroupByReturn[TProperties, CrossReferences]]: ... @overload @@ -353,6 +365,7 @@ def near_text( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> executor.Result[GenerativeGroupByReturn[TProperties, TReferences]]: ... ### DEFAULT ### @@ -380,6 +393,7 @@ def near_text( return_metadata: Optional[METADATA] = None, return_properties: Optional[ReturnProperties[TProperties]] = None, return_references: Optional[ReturnReferences[TReferences]] = None, + diversity_selection: Optional[MMR] = None, ) -> executor.Result[ GenerativeSearchReturnType[Properties, References, TProperties, TReferences] ]: ... @@ -407,6 +421,7 @@ def near_text( return_metadata: Optional[METADATA] = None, return_properties: Optional[ReturnProperties[TProperties]] = None, return_references: Optional[ReturnReferences[TReferences]] = None, + diversity_selection: Optional[MMR] = None, ) -> executor.Result[ GenerativeSearchReturnType[Properties, References, TProperties, TReferences] ]: @@ -432,6 +447,7 @@ def near_text( return_metadata: The metadata to return for each object, defaults to `None`. return_properties: The properties to return for each object. return_references: The references to return for each object. + diversity_selection: Apply diversity selection (e.g. MMR) to the results. Requires Weaviate >= 1.37.0. NOTE: - If `return_properties` is not provided then all properties are returned except for blob properties. @@ -477,6 +493,7 @@ def resp( filters=filters, group_by=_GroupBy.from_input(group_by), rerank=rerank, + diversity_selection=diversity_selection, target_vector=target_vector, generative=_Generative( single=single_prompt, diff --git a/weaviate/collections/queries/near_text/generate/sync.pyi b/weaviate/collections/queries/near_text/generate/sync.pyi index 75e9167d3..2601f58cb 100644 --- a/weaviate/collections/queries/near_text/generate/sync.pyi +++ b/weaviate/collections/queries/near_text/generate/sync.pyi @@ -3,6 +3,7 @@ from typing import Generic, List, Literal, Optional, Type, Union, overload from weaviate.collections.classes.filters import FilterReturn from weaviate.collections.classes.grpc import ( METADATA, + MMR, PROPERTIES, REFERENCES, GroupBy, @@ -55,6 +56,7 @@ class _NearTextGenerate( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> GenerativeReturn[Properties, References]: ... @overload def near_text( @@ -80,6 +82,7 @@ class _NearTextGenerate( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> GenerativeReturn[Properties, CrossReferences]: ... @overload def near_text( @@ -105,6 +108,7 @@ class _NearTextGenerate( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> GenerativeReturn[Properties, TReferences]: ... @overload def near_text( @@ -130,6 +134,7 @@ class _NearTextGenerate( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> GenerativeReturn[TProperties, References]: ... @overload def near_text( @@ -155,6 +160,7 @@ class _NearTextGenerate( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> GenerativeReturn[TProperties, CrossReferences]: ... @overload def near_text( @@ -180,6 +186,7 @@ class _NearTextGenerate( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> GenerativeReturn[TProperties, TReferences]: ... @overload def near_text( @@ -205,6 +212,7 @@ class _NearTextGenerate( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> GenerativeGroupByReturn[Properties, References]: ... @overload def near_text( @@ -230,6 +238,7 @@ class _NearTextGenerate( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> GenerativeGroupByReturn[Properties, CrossReferences]: ... @overload def near_text( @@ -255,6 +264,7 @@ class _NearTextGenerate( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> GenerativeGroupByReturn[Properties, TReferences]: ... @overload def near_text( @@ -280,6 +290,7 @@ class _NearTextGenerate( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> GenerativeGroupByReturn[TProperties, References]: ... @overload def near_text( @@ -305,6 +316,7 @@ class _NearTextGenerate( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> GenerativeGroupByReturn[TProperties, CrossReferences]: ... @overload def near_text( @@ -330,6 +342,7 @@ class _NearTextGenerate( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> GenerativeGroupByReturn[TProperties, TReferences]: ... @overload def near_text( @@ -355,4 +368,5 @@ class _NearTextGenerate( return_metadata: Optional[METADATA] = None, return_properties: Optional[ReturnProperties[TProperties]] = None, return_references: Optional[ReturnReferences[TReferences]] = None, + diversity_selection: Optional[MMR] = None, ) -> GenerativeSearchReturnType[Properties, References, TProperties, TReferences]: ... diff --git a/weaviate/collections/queries/near_text/query/async_.pyi b/weaviate/collections/queries/near_text/query/async_.pyi index 24e72e773..5d652b559 100644 --- a/weaviate/collections/queries/near_text/query/async_.pyi +++ b/weaviate/collections/queries/near_text/query/async_.pyi @@ -3,6 +3,7 @@ from typing import Generic, List, Literal, Optional, Type, Union, overload from weaviate.collections.classes.filters import FilterReturn from weaviate.collections.classes.grpc import ( METADATA, + MMR, PROPERTIES, REFERENCES, GroupBy, @@ -47,6 +48,7 @@ class _NearTextQueryAsync( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> QueryReturn[Properties, References]: ... @overload async def near_text( @@ -68,6 +70,7 @@ class _NearTextQueryAsync( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> QueryReturn[Properties, CrossReferences]: ... @overload async def near_text( @@ -89,6 +92,7 @@ class _NearTextQueryAsync( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> QueryReturn[Properties, TReferences]: ... @overload async def near_text( @@ -110,6 +114,7 @@ class _NearTextQueryAsync( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> QueryReturn[TProperties, References]: ... @overload async def near_text( @@ -131,6 +136,7 @@ class _NearTextQueryAsync( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> QueryReturn[TProperties, CrossReferences]: ... @overload async def near_text( @@ -152,6 +158,7 @@ class _NearTextQueryAsync( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> QueryReturn[TProperties, TReferences]: ... @overload async def near_text( @@ -173,6 +180,7 @@ class _NearTextQueryAsync( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> GroupByReturn[Properties, References]: ... @overload async def near_text( @@ -194,6 +202,7 @@ class _NearTextQueryAsync( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> QueryReturn[Properties, CrossReferences]: ... @overload async def near_text( @@ -215,6 +224,7 @@ class _NearTextQueryAsync( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> GroupByReturn[Properties, TReferences]: ... @overload async def near_text( @@ -236,6 +246,7 @@ class _NearTextQueryAsync( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> GroupByReturn[TProperties, References]: ... @overload async def near_text( @@ -257,6 +268,7 @@ class _NearTextQueryAsync( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> GroupByReturn[TProperties, CrossReferences]: ... @overload async def near_text( @@ -278,6 +290,7 @@ class _NearTextQueryAsync( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> GroupByReturn[TProperties, TReferences]: ... @overload async def near_text( @@ -299,4 +312,5 @@ class _NearTextQueryAsync( return_metadata: Optional[METADATA] = None, return_properties: Optional[ReturnProperties[TProperties]] = None, return_references: Optional[ReturnReferences[TReferences]] = None, + diversity_selection: Optional[MMR] = None, ) -> QuerySearchReturnType[Properties, References, TProperties, TReferences]: ... diff --git a/weaviate/collections/queries/near_text/query/executor.py b/weaviate/collections/queries/near_text/query/executor.py index d2fff2dc8..e04ba4db2 100644 --- a/weaviate/collections/queries/near_text/query/executor.py +++ b/weaviate/collections/queries/near_text/query/executor.py @@ -5,6 +5,7 @@ ) from weaviate.collections.classes.grpc import ( METADATA, + MMR, PROPERTIES, REFERENCES, GroupBy, @@ -58,6 +59,7 @@ def near_text( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> executor.Result[QueryReturn[Properties, References]]: ... @overload @@ -80,6 +82,7 @@ def near_text( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> executor.Result[QueryReturn[Properties, CrossReferences]]: ... @overload @@ -102,6 +105,7 @@ def near_text( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> executor.Result[QueryReturn[Properties, TReferences]]: ... @overload @@ -124,6 +128,7 @@ def near_text( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> executor.Result[QueryReturn[TProperties, References]]: ... @overload @@ -146,6 +151,7 @@ def near_text( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> executor.Result[QueryReturn[TProperties, CrossReferences]]: ... @overload @@ -168,6 +174,7 @@ def near_text( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> executor.Result[QueryReturn[TProperties, TReferences]]: ... ### GroupBy ### @@ -192,6 +199,7 @@ def near_text( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> executor.Result[GroupByReturn[Properties, References]]: ... @overload @@ -214,6 +222,7 @@ def near_text( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> executor.Result[QueryReturn[Properties, CrossReferences]]: ... @overload @@ -236,6 +245,7 @@ def near_text( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> executor.Result[GroupByReturn[Properties, TReferences]]: ... @overload @@ -258,6 +268,7 @@ def near_text( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> executor.Result[GroupByReturn[TProperties, References]]: ... @overload @@ -280,6 +291,7 @@ def near_text( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> executor.Result[GroupByReturn[TProperties, CrossReferences]]: ... @overload @@ -302,6 +314,7 @@ def near_text( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> executor.Result[GroupByReturn[TProperties, TReferences]]: ... ### DEFAULT ### @@ -325,6 +338,7 @@ def near_text( return_metadata: Optional[METADATA] = None, return_properties: Optional[ReturnProperties[TProperties]] = None, return_references: Optional[ReturnReferences[TReferences]] = None, + diversity_selection: Optional[MMR] = None, ) -> executor.Result[ QuerySearchReturnType[Properties, References, TProperties, TReferences] ]: ... @@ -348,6 +362,7 @@ def near_text( return_metadata: Optional[METADATA] = None, return_properties: Optional[ReturnProperties[TProperties]] = None, return_references: Optional[ReturnReferences[TReferences]] = None, + diversity_selection: Optional[MMR] = None, ) -> executor.Result[QuerySearchReturnType[Properties, References, TProperties, TReferences]]: """Search for objects in this collection by text using text-capable vectorization module and vector-based similarity search. @@ -371,6 +386,7 @@ def near_text( return_metadata: The metadata to return for each object, defaults to `None`. return_properties: The properties to return for each object. return_references: The references to return for each object. + diversity_selection: Apply diversity selection (e.g. MMR) to the results. Requires Weaviate >= 1.37.0. NOTE: If `return_properties` is not provided then all properties are returned except for any cross reference properties. @@ -416,6 +432,7 @@ def resp( filters=filters, group_by=_GroupBy.from_input(group_by), rerank=rerank, + diversity_selection=diversity_selection, target_vector=target_vector, return_metadata=self._parse_return_metadata(return_metadata, include_vector), return_properties=self._parse_return_properties(return_properties), diff --git a/weaviate/collections/queries/near_text/query/sync.pyi b/weaviate/collections/queries/near_text/query/sync.pyi index 304bab825..6847ecb33 100644 --- a/weaviate/collections/queries/near_text/query/sync.pyi +++ b/weaviate/collections/queries/near_text/query/sync.pyi @@ -3,6 +3,7 @@ from typing import Generic, List, Literal, Optional, Type, Union, overload from weaviate.collections.classes.filters import FilterReturn from weaviate.collections.classes.grpc import ( METADATA, + MMR, PROPERTIES, REFERENCES, GroupBy, @@ -47,6 +48,7 @@ class _NearTextQuery( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> QueryReturn[Properties, References]: ... @overload def near_text( @@ -68,6 +70,7 @@ class _NearTextQuery( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> QueryReturn[Properties, CrossReferences]: ... @overload def near_text( @@ -89,6 +92,7 @@ class _NearTextQuery( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> QueryReturn[Properties, TReferences]: ... @overload def near_text( @@ -110,6 +114,7 @@ class _NearTextQuery( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> QueryReturn[TProperties, References]: ... @overload def near_text( @@ -131,6 +136,7 @@ class _NearTextQuery( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> QueryReturn[TProperties, CrossReferences]: ... @overload def near_text( @@ -152,6 +158,7 @@ class _NearTextQuery( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> QueryReturn[TProperties, TReferences]: ... @overload def near_text( @@ -173,6 +180,7 @@ class _NearTextQuery( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> GroupByReturn[Properties, References]: ... @overload def near_text( @@ -194,6 +202,7 @@ class _NearTextQuery( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> QueryReturn[Properties, CrossReferences]: ... @overload def near_text( @@ -215,6 +224,7 @@ class _NearTextQuery( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> GroupByReturn[Properties, TReferences]: ... @overload def near_text( @@ -236,6 +246,7 @@ class _NearTextQuery( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> GroupByReturn[TProperties, References]: ... @overload def near_text( @@ -257,6 +268,7 @@ class _NearTextQuery( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> GroupByReturn[TProperties, CrossReferences]: ... @overload def near_text( @@ -278,6 +290,7 @@ class _NearTextQuery( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> GroupByReturn[TProperties, TReferences]: ... @overload def near_text( @@ -299,4 +312,5 @@ class _NearTextQuery( return_metadata: Optional[METADATA] = None, return_properties: Optional[ReturnProperties[TProperties]] = None, return_references: Optional[ReturnReferences[TReferences]] = None, + diversity_selection: Optional[MMR] = None, ) -> QuerySearchReturnType[Properties, References, TProperties, TReferences]: ... diff --git a/weaviate/collections/queries/near_vector/generate/async_.pyi b/weaviate/collections/queries/near_vector/generate/async_.pyi index 029036d64..528d6a00b 100644 --- a/weaviate/collections/queries/near_vector/generate/async_.pyi +++ b/weaviate/collections/queries/near_vector/generate/async_.pyi @@ -3,6 +3,7 @@ from typing import Generic, List, Literal, Optional, Type, Union, overload from weaviate.collections.classes.filters import FilterReturn from weaviate.collections.classes.grpc import ( METADATA, + MMR, PROPERTIES, REFERENCES, GroupBy, @@ -53,6 +54,7 @@ class _NearVectorGenerateAsync( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> GenerativeReturn[Properties, References]: ... @overload async def near_vector( @@ -76,6 +78,7 @@ class _NearVectorGenerateAsync( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> GenerativeReturn[Properties, CrossReferences]: ... @overload async def near_vector( @@ -99,6 +102,7 @@ class _NearVectorGenerateAsync( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> GenerativeReturn[Properties, TReferences]: ... @overload async def near_vector( @@ -122,6 +126,7 @@ class _NearVectorGenerateAsync( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> GenerativeReturn[TProperties, References]: ... @overload async def near_vector( @@ -145,6 +150,7 @@ class _NearVectorGenerateAsync( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> GenerativeReturn[TProperties, CrossReferences]: ... @overload async def near_vector( @@ -168,6 +174,7 @@ class _NearVectorGenerateAsync( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> GenerativeReturn[TProperties, TReferences]: ... @overload async def near_vector( @@ -191,6 +198,7 @@ class _NearVectorGenerateAsync( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> GenerativeGroupByReturn[Properties, References]: ... @overload async def near_vector( @@ -214,6 +222,7 @@ class _NearVectorGenerateAsync( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> GenerativeGroupByReturn[Properties, CrossReferences]: ... @overload async def near_vector( @@ -237,6 +246,7 @@ class _NearVectorGenerateAsync( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> GenerativeGroupByReturn[Properties, TReferences]: ... @overload async def near_vector( @@ -260,6 +270,7 @@ class _NearVectorGenerateAsync( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> GenerativeGroupByReturn[TProperties, References]: ... @overload async def near_vector( @@ -283,6 +294,7 @@ class _NearVectorGenerateAsync( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> GenerativeGroupByReturn[TProperties, CrossReferences]: ... @overload async def near_vector( @@ -306,6 +318,7 @@ class _NearVectorGenerateAsync( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> GenerativeGroupByReturn[TProperties, TReferences]: ... @overload async def near_vector( @@ -329,4 +342,5 @@ class _NearVectorGenerateAsync( return_metadata: Optional[METADATA] = None, return_properties: Optional[ReturnProperties[TProperties]] = None, return_references: Optional[ReturnReferences[TReferences]] = None, + diversity_selection: Optional[MMR] = None, ) -> GenerativeSearchReturnType[Properties, References, TProperties, TReferences]: ... diff --git a/weaviate/collections/queries/near_vector/generate/executor.py b/weaviate/collections/queries/near_vector/generate/executor.py index 2876ed07f..881076eb0 100644 --- a/weaviate/collections/queries/near_vector/generate/executor.py +++ b/weaviate/collections/queries/near_vector/generate/executor.py @@ -5,6 +5,7 @@ ) from weaviate.collections.classes.grpc import ( METADATA, + MMR, PROPERTIES, REFERENCES, GroupBy, @@ -64,6 +65,7 @@ def near_vector( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> executor.Result[GenerativeReturn[Properties, References]]: ... @overload @@ -88,6 +90,7 @@ def near_vector( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> executor.Result[GenerativeReturn[Properties, CrossReferences]]: ... @overload @@ -112,6 +115,7 @@ def near_vector( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> executor.Result[GenerativeReturn[Properties, TReferences]]: ... @overload @@ -136,6 +140,7 @@ def near_vector( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> executor.Result[GenerativeReturn[TProperties, References]]: ... @overload @@ -160,6 +165,7 @@ def near_vector( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> executor.Result[GenerativeReturn[TProperties, CrossReferences]]: ... @overload @@ -184,6 +190,7 @@ def near_vector( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> executor.Result[GenerativeReturn[TProperties, TReferences]]: ... ### GroupBy ### @@ -209,6 +216,7 @@ def near_vector( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> executor.Result[GenerativeGroupByReturn[Properties, References]]: ... @overload @@ -233,6 +241,7 @@ def near_vector( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> executor.Result[GenerativeGroupByReturn[Properties, CrossReferences]]: ... @overload @@ -257,6 +266,7 @@ def near_vector( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> executor.Result[GenerativeGroupByReturn[Properties, TReferences]]: ... @overload @@ -281,6 +291,7 @@ def near_vector( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> executor.Result[GenerativeGroupByReturn[TProperties, References]]: ... @overload @@ -305,6 +316,7 @@ def near_vector( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> executor.Result[GenerativeGroupByReturn[TProperties, CrossReferences]]: ... @overload @@ -329,6 +341,7 @@ def near_vector( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> executor.Result[GenerativeGroupByReturn[TProperties, TReferences]]: ... ### DEFAULT ### @@ -354,6 +367,7 @@ def near_vector( return_metadata: Optional[METADATA] = None, return_properties: Optional[ReturnProperties[TProperties]] = None, return_references: Optional[ReturnReferences[TReferences]] = None, + diversity_selection: Optional[MMR] = None, ) -> executor.Result[ GenerativeSearchReturnType[Properties, References, TProperties, TReferences] ]: ... @@ -379,6 +393,7 @@ def near_vector( return_metadata: Optional[METADATA] = None, return_properties: Optional[ReturnProperties[TProperties]] = None, return_references: Optional[ReturnReferences[TReferences]] = None, + diversity_selection: Optional[MMR] = None, ) -> executor.Result[ GenerativeSearchReturnType[Properties, References, TProperties, TReferences] ]: @@ -401,6 +416,7 @@ def near_vector( return_metadata: The metadata to return for each object, defaults to `None`. return_properties: The properties to return for each object. return_references: The references to return for each object. + diversity_selection: Apply diversity selection (e.g. MMR) to the results. Requires Weaviate >= 1.37.0. NOTE: - If `return_properties` is not provided then all properties are returned except for blob properties. @@ -450,6 +466,7 @@ def resp( offset=offset, autocut=auto_limit, rerank=rerank, + diversity_selection=diversity_selection, target_vector=target_vector, return_metadata=self._parse_return_metadata(return_metadata, include_vector), return_properties=self._parse_return_properties(return_properties), diff --git a/weaviate/collections/queries/near_vector/generate/sync.pyi b/weaviate/collections/queries/near_vector/generate/sync.pyi index f55c735cb..9d82b3dee 100644 --- a/weaviate/collections/queries/near_vector/generate/sync.pyi +++ b/weaviate/collections/queries/near_vector/generate/sync.pyi @@ -3,6 +3,7 @@ from typing import Generic, List, Literal, Optional, Type, Union, overload from weaviate.collections.classes.filters import FilterReturn from weaviate.collections.classes.grpc import ( METADATA, + MMR, PROPERTIES, REFERENCES, GroupBy, @@ -53,6 +54,7 @@ class _NearVectorGenerate( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> GenerativeReturn[Properties, References]: ... @overload def near_vector( @@ -76,6 +78,7 @@ class _NearVectorGenerate( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> GenerativeReturn[Properties, CrossReferences]: ... @overload def near_vector( @@ -99,6 +102,7 @@ class _NearVectorGenerate( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> GenerativeReturn[Properties, TReferences]: ... @overload def near_vector( @@ -122,6 +126,7 @@ class _NearVectorGenerate( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> GenerativeReturn[TProperties, References]: ... @overload def near_vector( @@ -145,6 +150,7 @@ class _NearVectorGenerate( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> GenerativeReturn[TProperties, CrossReferences]: ... @overload def near_vector( @@ -168,6 +174,7 @@ class _NearVectorGenerate( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> GenerativeReturn[TProperties, TReferences]: ... @overload def near_vector( @@ -191,6 +198,7 @@ class _NearVectorGenerate( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> GenerativeGroupByReturn[Properties, References]: ... @overload def near_vector( @@ -214,6 +222,7 @@ class _NearVectorGenerate( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> GenerativeGroupByReturn[Properties, CrossReferences]: ... @overload def near_vector( @@ -237,6 +246,7 @@ class _NearVectorGenerate( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> GenerativeGroupByReturn[Properties, TReferences]: ... @overload def near_vector( @@ -260,6 +270,7 @@ class _NearVectorGenerate( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> GenerativeGroupByReturn[TProperties, References]: ... @overload def near_vector( @@ -283,6 +294,7 @@ class _NearVectorGenerate( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> GenerativeGroupByReturn[TProperties, CrossReferences]: ... @overload def near_vector( @@ -306,6 +318,7 @@ class _NearVectorGenerate( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> GenerativeGroupByReturn[TProperties, TReferences]: ... @overload def near_vector( @@ -329,4 +342,5 @@ class _NearVectorGenerate( return_metadata: Optional[METADATA] = None, return_properties: Optional[ReturnProperties[TProperties]] = None, return_references: Optional[ReturnReferences[TReferences]] = None, + diversity_selection: Optional[MMR] = None, ) -> GenerativeSearchReturnType[Properties, References, TProperties, TReferences]: ... diff --git a/weaviate/collections/queries/near_vector/query/async_.pyi b/weaviate/collections/queries/near_vector/query/async_.pyi index 9231e915e..d0e8fe0d8 100644 --- a/weaviate/collections/queries/near_vector/query/async_.pyi +++ b/weaviate/collections/queries/near_vector/query/async_.pyi @@ -3,6 +3,7 @@ from typing import Generic, Literal, Optional, Type, Union, overload from weaviate.collections.classes.filters import FilterReturn from weaviate.collections.classes.grpc import ( METADATA, + MMR, PROPERTIES, REFERENCES, GroupBy, @@ -46,6 +47,7 @@ class _NearVectorQueryAsync( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> QueryReturn[Properties, References]: ... @overload async def near_vector( @@ -65,6 +67,7 @@ class _NearVectorQueryAsync( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> QueryReturn[Properties, CrossReferences]: ... @overload async def near_vector( @@ -84,6 +87,7 @@ class _NearVectorQueryAsync( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> QueryReturn[Properties, TReferences]: ... @overload async def near_vector( @@ -103,6 +107,7 @@ class _NearVectorQueryAsync( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> QueryReturn[TProperties, References]: ... @overload async def near_vector( @@ -122,6 +127,7 @@ class _NearVectorQueryAsync( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> QueryReturn[TProperties, CrossReferences]: ... @overload async def near_vector( @@ -141,6 +147,7 @@ class _NearVectorQueryAsync( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> QueryReturn[TProperties, TReferences]: ... @overload async def near_vector( @@ -160,6 +167,7 @@ class _NearVectorQueryAsync( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> GroupByReturn[Properties, References]: ... @overload async def near_vector( @@ -179,6 +187,7 @@ class _NearVectorQueryAsync( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> GroupByReturn[Properties, CrossReferences]: ... @overload async def near_vector( @@ -198,6 +207,7 @@ class _NearVectorQueryAsync( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> GroupByReturn[Properties, TReferences]: ... @overload async def near_vector( @@ -217,6 +227,7 @@ class _NearVectorQueryAsync( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> GroupByReturn[TProperties, References]: ... @overload async def near_vector( @@ -236,6 +247,7 @@ class _NearVectorQueryAsync( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> GroupByReturn[TProperties, CrossReferences]: ... @overload async def near_vector( @@ -255,6 +267,7 @@ class _NearVectorQueryAsync( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> GroupByReturn[TProperties, TReferences]: ... @overload async def near_vector( @@ -274,4 +287,5 @@ class _NearVectorQueryAsync( return_metadata: Optional[METADATA] = None, return_properties: Optional[ReturnProperties[TProperties]] = None, return_references: Optional[ReturnReferences[TReferences]] = None, + diversity_selection: Optional[MMR] = None, ) -> QuerySearchReturnType[Properties, References, TProperties, TReferences]: ... diff --git a/weaviate/collections/queries/near_vector/query/executor.py b/weaviate/collections/queries/near_vector/query/executor.py index 39729a8ef..7e4f33f00 100644 --- a/weaviate/collections/queries/near_vector/query/executor.py +++ b/weaviate/collections/queries/near_vector/query/executor.py @@ -5,6 +5,7 @@ ) from weaviate.collections.classes.grpc import ( METADATA, + MMR, PROPERTIES, REFERENCES, GroupBy, @@ -56,6 +57,7 @@ def near_vector( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> executor.Result[QueryReturn[Properties, References]]: ... @overload @@ -76,6 +78,7 @@ def near_vector( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> executor.Result[QueryReturn[Properties, CrossReferences]]: ... @overload @@ -96,6 +99,7 @@ def near_vector( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> executor.Result[QueryReturn[Properties, TReferences]]: ... @overload @@ -116,6 +120,7 @@ def near_vector( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> executor.Result[QueryReturn[TProperties, References]]: ... @overload @@ -136,6 +141,7 @@ def near_vector( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> executor.Result[QueryReturn[TProperties, CrossReferences]]: ... @overload @@ -156,6 +162,7 @@ def near_vector( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> executor.Result[QueryReturn[TProperties, TReferences]]: ... ### GroupBy ### @@ -178,6 +185,7 @@ def near_vector( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> executor.Result[GroupByReturn[Properties, References]]: ... @overload @@ -198,6 +206,7 @@ def near_vector( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> executor.Result[GroupByReturn[Properties, CrossReferences]]: ... @overload @@ -218,6 +227,7 @@ def near_vector( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> executor.Result[GroupByReturn[Properties, TReferences]]: ... @overload @@ -238,6 +248,7 @@ def near_vector( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> executor.Result[GroupByReturn[TProperties, References]]: ... @overload @@ -258,6 +269,7 @@ def near_vector( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> executor.Result[GroupByReturn[TProperties, CrossReferences]]: ... @overload @@ -278,6 +290,7 @@ def near_vector( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> executor.Result[GroupByReturn[TProperties, TReferences]]: ... ### DEFAULT ### @@ -299,6 +312,7 @@ def near_vector( return_metadata: Optional[METADATA] = None, return_properties: Optional[ReturnProperties[TProperties]] = None, return_references: Optional[ReturnReferences[TReferences]] = None, + diversity_selection: Optional[MMR] = None, ) -> executor.Result[ QuerySearchReturnType[Properties, References, TProperties, TReferences] ]: ... @@ -320,6 +334,7 @@ def near_vector( return_metadata: Optional[METADATA] = None, return_properties: Optional[ReturnProperties[TProperties]] = None, return_references: Optional[ReturnReferences[TReferences]] = None, + diversity_selection: Optional[MMR] = None, ) -> executor.Result[QuerySearchReturnType[Properties, References, TProperties, TReferences]]: """Search for objects by vector in this collection using and vector-based similarity search. @@ -340,6 +355,7 @@ def near_vector( return_metadata: The metadata to return for each object, defaults to `None`. return_properties: The properties to return for each object. return_references: The references to return for each object. + diversity_selection: Apply diversity selection (e.g. MMR) to the results. Requires Weaviate >= 1.37.0. NOTE: - If `return_properties` is not provided then all properties are returned except for blob properties. @@ -383,6 +399,7 @@ def resp( offset=offset, autocut=auto_limit, rerank=rerank, + diversity_selection=diversity_selection, target_vector=target_vector, return_metadata=self._parse_return_metadata(return_metadata, include_vector), return_properties=self._parse_return_properties(return_properties), diff --git a/weaviate/collections/queries/near_vector/query/sync.pyi b/weaviate/collections/queries/near_vector/query/sync.pyi index 93ed9c080..3fd866ab1 100644 --- a/weaviate/collections/queries/near_vector/query/sync.pyi +++ b/weaviate/collections/queries/near_vector/query/sync.pyi @@ -3,6 +3,7 @@ from typing import Generic, Literal, Optional, Type, Union, overload from weaviate.collections.classes.filters import FilterReturn from weaviate.collections.classes.grpc import ( METADATA, + MMR, PROPERTIES, REFERENCES, GroupBy, @@ -46,6 +47,7 @@ class _NearVectorQuery( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> QueryReturn[Properties, References]: ... @overload def near_vector( @@ -65,6 +67,7 @@ class _NearVectorQuery( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> QueryReturn[Properties, CrossReferences]: ... @overload def near_vector( @@ -84,6 +87,7 @@ class _NearVectorQuery( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> QueryReturn[Properties, TReferences]: ... @overload def near_vector( @@ -103,6 +107,7 @@ class _NearVectorQuery( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> QueryReturn[TProperties, References]: ... @overload def near_vector( @@ -122,6 +127,7 @@ class _NearVectorQuery( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> QueryReturn[TProperties, CrossReferences]: ... @overload def near_vector( @@ -141,6 +147,7 @@ class _NearVectorQuery( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> QueryReturn[TProperties, TReferences]: ... @overload def near_vector( @@ -160,6 +167,7 @@ class _NearVectorQuery( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> GroupByReturn[Properties, References]: ... @overload def near_vector( @@ -179,6 +187,7 @@ class _NearVectorQuery( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> GroupByReturn[Properties, CrossReferences]: ... @overload def near_vector( @@ -198,6 +207,7 @@ class _NearVectorQuery( return_metadata: Optional[METADATA] = None, return_properties: Union[PROPERTIES, bool, None] = None, return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> GroupByReturn[Properties, TReferences]: ... @overload def near_vector( @@ -217,6 +227,7 @@ class _NearVectorQuery( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Literal[None] = None, + diversity_selection: Optional[MMR] = None, ) -> GroupByReturn[TProperties, References]: ... @overload def near_vector( @@ -236,6 +247,7 @@ class _NearVectorQuery( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: REFERENCES, + diversity_selection: Optional[MMR] = None, ) -> GroupByReturn[TProperties, CrossReferences]: ... @overload def near_vector( @@ -255,6 +267,7 @@ class _NearVectorQuery( return_metadata: Optional[METADATA] = None, return_properties: Type[TProperties], return_references: Type[TReferences], + diversity_selection: Optional[MMR] = None, ) -> GroupByReturn[TProperties, TReferences]: ... @overload def near_vector( @@ -274,4 +287,5 @@ class _NearVectorQuery( return_metadata: Optional[METADATA] = None, return_properties: Optional[ReturnProperties[TProperties]] = None, return_references: Optional[ReturnReferences[TReferences]] = None, + diversity_selection: Optional[MMR] = None, ) -> QuerySearchReturnType[Properties, References, TProperties, TReferences]: ... diff --git a/weaviate/outputs/query.py b/weaviate/outputs/query.py index 625d669d8..1113c5e4a 100644 --- a/weaviate/outputs/query.py +++ b/weaviate/outputs/query.py @@ -7,6 +7,7 @@ FilterReturn, ) from weaviate.collections.classes.grpc import ( + MMR, BM25OperatorAnd, BM25OperatorOr, ListOfVectorsQuery, @@ -63,6 +64,7 @@ "BM25OperatorAnd", "BM25OperatorOr", "ListOfVectorsQuery", + "MMR", "MetadataReturn", "MetadataSingleObjectReturn", "NearVectorInputType", diff --git a/weaviate/proto/v1/v4216/v1/base_search_pb2.py b/weaviate/proto/v1/v4216/v1/base_search_pb2.py index 3abd15ebf..306f01b4f 100644 --- a/weaviate/proto/v1/v4216/v1/base_search_pb2.py +++ b/weaviate/proto/v1/v4216/v1/base_search_pb2.py @@ -14,7 +14,7 @@ from weaviate.proto.v1.v4216.v1 import base_pb2 as v1_dot_base__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x14v1/base_search.proto\x12\x0bweaviate.v1\x1a\rv1/base.proto\"2\n\x10WeightsForTarget\x12\x0e\n\x06target\x18\x01 \x01(\t\x12\x0e\n\x06weight\x18\x02 \x01(\x02\"\x98\x01\n\x07Targets\x12\x16\n\x0etarget_vectors\x18\x01 \x03(\t\x12\x33\n\x0b\x63ombination\x18\x02 \x01(\x0e\x32\x1e.weaviate.v1.CombinationMethod\x12:\n\x13weights_for_targets\x18\x04 \x03(\x0b\x32\x1d.weaviate.v1.WeightsForTargetJ\x04\x08\x03\x10\x04\"`\n\x0fVectorForTarget\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x18\n\x0cvector_bytes\x18\x02 \x01(\x0c\x42\x02\x18\x01\x12%\n\x07vectors\x18\x03 \x03(\x0b\x32\x14.weaviate.v1.Vectors\"\xe1\x01\n\x15SearchOperatorOptions\x12=\n\x08operator\x18\x01 \x01(\x0e\x32+.weaviate.v1.SearchOperatorOptions.Operator\x12$\n\x17minimum_or_tokens_match\x18\x02 \x01(\x05H\x00\x88\x01\x01\"G\n\x08Operator\x12\x18\n\x14OPERATOR_UNSPECIFIED\x10\x00\x12\x0f\n\x0bOPERATOR_OR\x10\x01\x12\x10\n\x0cOPERATOR_AND\x10\x02\x42\x1a\n\x18_minimum_or_tokens_match\"\x97\x05\n\x06Hybrid\x12\r\n\x05query\x18\x01 \x01(\t\x12\x12\n\nproperties\x18\x02 \x03(\t\x12\x12\n\x06vector\x18\x03 \x03(\x02\x42\x02\x18\x01\x12\x11\n\x05\x61lpha\x18\x04 \x01(\x02\x42\x02\x18\x01\x12\x33\n\x0b\x66usion_type\x18\x05 \x01(\x0e\x32\x1e.weaviate.v1.Hybrid.FusionType\x12\x18\n\x0cvector_bytes\x18\x06 \x01(\x0c\x42\x02\x18\x01\x12\x1a\n\x0etarget_vectors\x18\x07 \x03(\tB\x02\x18\x01\x12.\n\tnear_text\x18\x08 \x01(\x0b\x32\x1b.weaviate.v1.NearTextSearch\x12,\n\x0bnear_vector\x18\t \x01(\x0b\x32\x17.weaviate.v1.NearVector\x12%\n\x07targets\x18\n \x01(\x0b\x32\x14.weaviate.v1.Targets\x12\x45\n\x14\x62m25_search_operator\x18\x0b \x01(\x0b\x32\".weaviate.v1.SearchOperatorOptionsH\x01\x88\x01\x01\x12\x18\n\x0b\x61lpha_param\x18\x0c \x01(\x02H\x02\x88\x01\x01\x12\x17\n\x0fuse_alpha_param\x18\r \x01(\x08\x12\x19\n\x0fvector_distance\x18\x14 \x01(\x02H\x00\x12%\n\x07vectors\x18\x15 \x03(\x0b\x32\x14.weaviate.v1.Vectors\"a\n\nFusionType\x12\x1b\n\x17\x46USION_TYPE_UNSPECIFIED\x10\x00\x12\x16\n\x12\x46USION_TYPE_RANKED\x10\x01\x12\x1e\n\x1a\x46USION_TYPE_RELATIVE_SCORE\x10\x02\x42\x0b\n\tthresholdB\x17\n\x15_bm25_search_operatorB\x0e\n\x0c_alpha_param\"\xad\x03\n\nNearVector\x12\x12\n\x06vector\x18\x01 \x03(\x02\x42\x02\x18\x01\x12\x16\n\tcertainty\x18\x02 \x01(\x01H\x00\x88\x01\x01\x12\x15\n\x08\x64istance\x18\x03 \x01(\x01H\x01\x88\x01\x01\x12\x18\n\x0cvector_bytes\x18\x04 \x01(\x0c\x42\x02\x18\x01\x12\x1a\n\x0etarget_vectors\x18\x05 \x03(\tB\x02\x18\x01\x12%\n\x07targets\x18\x06 \x01(\x0b\x32\x14.weaviate.v1.Targets\x12K\n\x11vector_per_target\x18\x07 \x03(\x0b\x32,.weaviate.v1.NearVector.VectorPerTargetEntryB\x02\x18\x01\x12\x38\n\x12vector_for_targets\x18\x08 \x03(\x0b\x32\x1c.weaviate.v1.VectorForTarget\x12%\n\x07vectors\x18\t \x03(\x0b\x32\x14.weaviate.v1.Vectors\x1a\x36\n\x14VectorPerTargetEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x0c:\x02\x38\x01\x42\x0c\n\n_certaintyB\x0b\n\t_distance\"\xa5\x01\n\nNearObject\x12\n\n\x02id\x18\x01 \x01(\t\x12\x16\n\tcertainty\x18\x02 \x01(\x01H\x00\x88\x01\x01\x12\x15\n\x08\x64istance\x18\x03 \x01(\x01H\x01\x88\x01\x01\x12\x1a\n\x0etarget_vectors\x18\x04 \x03(\tB\x02\x18\x01\x12%\n\x07targets\x18\x05 \x01(\x0b\x32\x14.weaviate.v1.TargetsB\x0c\n\n_certaintyB\x0b\n\t_distance\"\xf0\x02\n\x0eNearTextSearch\x12\r\n\x05query\x18\x01 \x03(\t\x12\x16\n\tcertainty\x18\x02 \x01(\x01H\x00\x88\x01\x01\x12\x15\n\x08\x64istance\x18\x03 \x01(\x01H\x01\x88\x01\x01\x12\x36\n\x07move_to\x18\x04 \x01(\x0b\x32 .weaviate.v1.NearTextSearch.MoveH\x02\x88\x01\x01\x12\x38\n\tmove_away\x18\x05 \x01(\x0b\x32 .weaviate.v1.NearTextSearch.MoveH\x03\x88\x01\x01\x12\x1a\n\x0etarget_vectors\x18\x06 \x03(\tB\x02\x18\x01\x12%\n\x07targets\x18\x07 \x01(\x0b\x32\x14.weaviate.v1.Targets\x1a\x36\n\x04Move\x12\r\n\x05\x66orce\x18\x01 \x01(\x02\x12\x10\n\x08\x63oncepts\x18\x02 \x03(\t\x12\r\n\x05uuids\x18\x03 \x03(\tB\x0c\n\n_certaintyB\x0b\n\t_distanceB\n\n\x08_move_toB\x0c\n\n_move_away\"\xad\x01\n\x0fNearImageSearch\x12\r\n\x05image\x18\x01 \x01(\t\x12\x16\n\tcertainty\x18\x02 \x01(\x01H\x00\x88\x01\x01\x12\x15\n\x08\x64istance\x18\x03 \x01(\x01H\x01\x88\x01\x01\x12\x1a\n\x0etarget_vectors\x18\x04 \x03(\tB\x02\x18\x01\x12%\n\x07targets\x18\x05 \x01(\x0b\x32\x14.weaviate.v1.TargetsB\x0c\n\n_certaintyB\x0b\n\t_distance\"\xad\x01\n\x0fNearAudioSearch\x12\r\n\x05\x61udio\x18\x01 \x01(\t\x12\x16\n\tcertainty\x18\x02 \x01(\x01H\x00\x88\x01\x01\x12\x15\n\x08\x64istance\x18\x03 \x01(\x01H\x01\x88\x01\x01\x12\x1a\n\x0etarget_vectors\x18\x04 \x03(\tB\x02\x18\x01\x12%\n\x07targets\x18\x05 \x01(\x0b\x32\x14.weaviate.v1.TargetsB\x0c\n\n_certaintyB\x0b\n\t_distance\"\xad\x01\n\x0fNearVideoSearch\x12\r\n\x05video\x18\x01 \x01(\t\x12\x16\n\tcertainty\x18\x02 \x01(\x01H\x00\x88\x01\x01\x12\x15\n\x08\x64istance\x18\x03 \x01(\x01H\x01\x88\x01\x01\x12\x1a\n\x0etarget_vectors\x18\x04 \x03(\tB\x02\x18\x01\x12%\n\x07targets\x18\x05 \x01(\x0b\x32\x14.weaviate.v1.TargetsB\x0c\n\n_certaintyB\x0b\n\t_distance\"\xad\x01\n\x0fNearDepthSearch\x12\r\n\x05\x64\x65pth\x18\x01 \x01(\t\x12\x16\n\tcertainty\x18\x02 \x01(\x01H\x00\x88\x01\x01\x12\x15\n\x08\x64istance\x18\x03 \x01(\x01H\x01\x88\x01\x01\x12\x1a\n\x0etarget_vectors\x18\x04 \x03(\tB\x02\x18\x01\x12%\n\x07targets\x18\x05 \x01(\x0b\x32\x14.weaviate.v1.TargetsB\x0c\n\n_certaintyB\x0b\n\t_distance\"\xb1\x01\n\x11NearThermalSearch\x12\x0f\n\x07thermal\x18\x01 \x01(\t\x12\x16\n\tcertainty\x18\x02 \x01(\x01H\x00\x88\x01\x01\x12\x15\n\x08\x64istance\x18\x03 \x01(\x01H\x01\x88\x01\x01\x12\x1a\n\x0etarget_vectors\x18\x04 \x03(\tB\x02\x18\x01\x12%\n\x07targets\x18\x05 \x01(\x0b\x32\x14.weaviate.v1.TargetsB\x0c\n\n_certaintyB\x0b\n\t_distance\"\xa9\x01\n\rNearIMUSearch\x12\x0b\n\x03imu\x18\x01 \x01(\t\x12\x16\n\tcertainty\x18\x02 \x01(\x01H\x00\x88\x01\x01\x12\x15\n\x08\x64istance\x18\x03 \x01(\x01H\x01\x88\x01\x01\x12\x1a\n\x0etarget_vectors\x18\x04 \x03(\tB\x02\x18\x01\x12%\n\x07targets\x18\x05 \x01(\x0b\x32\x14.weaviate.v1.TargetsB\x0c\n\n_certaintyB\x0b\n\t_distance\"\x7f\n\x04\x42M25\x12\r\n\x05query\x18\x01 \x01(\t\x12\x12\n\nproperties\x18\x02 \x03(\t\x12@\n\x0fsearch_operator\x18\x03 \x01(\x0b\x32\".weaviate.v1.SearchOperatorOptionsH\x00\x88\x01\x01\x42\x12\n\x10_search_operator*\xee\x01\n\x11\x43ombinationMethod\x12\"\n\x1e\x43OMBINATION_METHOD_UNSPECIFIED\x10\x00\x12\x1f\n\x1b\x43OMBINATION_METHOD_TYPE_SUM\x10\x01\x12\x1f\n\x1b\x43OMBINATION_METHOD_TYPE_MIN\x10\x02\x12#\n\x1f\x43OMBINATION_METHOD_TYPE_AVERAGE\x10\x03\x12*\n&COMBINATION_METHOD_TYPE_RELATIVE_SCORE\x10\x04\x12\"\n\x1e\x43OMBINATION_METHOD_TYPE_MANUAL\x10\x05\x42t\n#io.weaviate.client.grpc.protocol.v1B\x17WeaviateProtoBaseSearchZ4github.com/weaviate/weaviate/grpc/generated;protocolb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x14v1/base_search.proto\x12\x0bweaviate.v1\x1a\rv1/base.proto\"2\n\x10WeightsForTarget\x12\x0e\n\x06target\x18\x01 \x01(\t\x12\x0e\n\x06weight\x18\x02 \x01(\x02\"\x98\x01\n\x07Targets\x12\x16\n\x0etarget_vectors\x18\x01 \x03(\t\x12\x33\n\x0b\x63ombination\x18\x02 \x01(\x0e\x32\x1e.weaviate.v1.CombinationMethod\x12:\n\x13weights_for_targets\x18\x04 \x03(\x0b\x32\x1d.weaviate.v1.WeightsForTargetJ\x04\x08\x03\x10\x04\"`\n\x0fVectorForTarget\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x18\n\x0cvector_bytes\x18\x02 \x01(\x0c\x42\x02\x18\x01\x12%\n\x07vectors\x18\x03 \x03(\x0b\x32\x14.weaviate.v1.Vectors\"\x8a\x01\n\tSelection\x12)\n\x03mmr\x18\x01 \x01(\x0b\x32\x1a.weaviate.v1.Selection.MMRH\x00\x1a\x45\n\x03MMR\x12\x12\n\x05limit\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x14\n\x07\x62\x61lance\x18\x02 \x01(\x02H\x01\x88\x01\x01\x42\x08\n\x06_limitB\n\n\x08_balanceB\x0b\n\tselection\"\xe1\x01\n\x15SearchOperatorOptions\x12=\n\x08operator\x18\x01 \x01(\x0e\x32+.weaviate.v1.SearchOperatorOptions.Operator\x12$\n\x17minimum_or_tokens_match\x18\x02 \x01(\x05H\x00\x88\x01\x01\"G\n\x08Operator\x12\x18\n\x14OPERATOR_UNSPECIFIED\x10\x00\x12\x0f\n\x0bOPERATOR_OR\x10\x01\x12\x10\n\x0cOPERATOR_AND\x10\x02\x42\x1a\n\x18_minimum_or_tokens_match\"\xd5\x05\n\x06Hybrid\x12\r\n\x05query\x18\x01 \x01(\t\x12\x12\n\nproperties\x18\x02 \x03(\t\x12\x12\n\x06vector\x18\x03 \x03(\x02\x42\x02\x18\x01\x12\x11\n\x05\x61lpha\x18\x04 \x01(\x02\x42\x02\x18\x01\x12\x33\n\x0b\x66usion_type\x18\x05 \x01(\x0e\x32\x1e.weaviate.v1.Hybrid.FusionType\x12\x18\n\x0cvector_bytes\x18\x06 \x01(\x0c\x42\x02\x18\x01\x12\x1a\n\x0etarget_vectors\x18\x07 \x03(\tB\x02\x18\x01\x12.\n\tnear_text\x18\x08 \x01(\x0b\x32\x1b.weaviate.v1.NearTextSearch\x12,\n\x0bnear_vector\x18\t \x01(\x0b\x32\x17.weaviate.v1.NearVector\x12%\n\x07targets\x18\n \x01(\x0b\x32\x14.weaviate.v1.Targets\x12\x45\n\x14\x62m25_search_operator\x18\x0b \x01(\x0b\x32\".weaviate.v1.SearchOperatorOptionsH\x01\x88\x01\x01\x12\x18\n\x0b\x61lpha_param\x18\x0c \x01(\x02H\x02\x88\x01\x01\x12\x17\n\x0fuse_alpha_param\x18\r \x01(\x08\x12.\n\tselection\x18\x0e \x01(\x0b\x32\x16.weaviate.v1.SelectionH\x03\x88\x01\x01\x12\x19\n\x0fvector_distance\x18\x14 \x01(\x02H\x00\x12%\n\x07vectors\x18\x15 \x03(\x0b\x32\x14.weaviate.v1.Vectors\"a\n\nFusionType\x12\x1b\n\x17\x46USION_TYPE_UNSPECIFIED\x10\x00\x12\x16\n\x12\x46USION_TYPE_RANKED\x10\x01\x12\x1e\n\x1a\x46USION_TYPE_RELATIVE_SCORE\x10\x02\x42\x0b\n\tthresholdB\x17\n\x15_bm25_search_operatorB\x0e\n\x0c_alpha_paramB\x0c\n\n_selection\"\xeb\x03\n\nNearVector\x12\x12\n\x06vector\x18\x01 \x03(\x02\x42\x02\x18\x01\x12\x16\n\tcertainty\x18\x02 \x01(\x01H\x00\x88\x01\x01\x12\x15\n\x08\x64istance\x18\x03 \x01(\x01H\x01\x88\x01\x01\x12\x18\n\x0cvector_bytes\x18\x04 \x01(\x0c\x42\x02\x18\x01\x12\x1a\n\x0etarget_vectors\x18\x05 \x03(\tB\x02\x18\x01\x12%\n\x07targets\x18\x06 \x01(\x0b\x32\x14.weaviate.v1.Targets\x12K\n\x11vector_per_target\x18\x07 \x03(\x0b\x32,.weaviate.v1.NearVector.VectorPerTargetEntryB\x02\x18\x01\x12\x38\n\x12vector_for_targets\x18\x08 \x03(\x0b\x32\x1c.weaviate.v1.VectorForTarget\x12%\n\x07vectors\x18\t \x03(\x0b\x32\x14.weaviate.v1.Vectors\x12.\n\tselection\x18\n \x01(\x0b\x32\x16.weaviate.v1.SelectionH\x02\x88\x01\x01\x1a\x36\n\x14VectorPerTargetEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x0c:\x02\x38\x01\x42\x0c\n\n_certaintyB\x0b\n\t_distanceB\x0c\n\n_selection\"\xe3\x01\n\nNearObject\x12\n\n\x02id\x18\x01 \x01(\t\x12\x16\n\tcertainty\x18\x02 \x01(\x01H\x00\x88\x01\x01\x12\x15\n\x08\x64istance\x18\x03 \x01(\x01H\x01\x88\x01\x01\x12\x1a\n\x0etarget_vectors\x18\x04 \x03(\tB\x02\x18\x01\x12%\n\x07targets\x18\x05 \x01(\x0b\x32\x14.weaviate.v1.Targets\x12.\n\tselection\x18\x06 \x01(\x0b\x32\x16.weaviate.v1.SelectionH\x02\x88\x01\x01\x42\x0c\n\n_certaintyB\x0b\n\t_distanceB\x0c\n\n_selection\"\xae\x03\n\x0eNearTextSearch\x12\r\n\x05query\x18\x01 \x03(\t\x12\x16\n\tcertainty\x18\x02 \x01(\x01H\x00\x88\x01\x01\x12\x15\n\x08\x64istance\x18\x03 \x01(\x01H\x01\x88\x01\x01\x12\x36\n\x07move_to\x18\x04 \x01(\x0b\x32 .weaviate.v1.NearTextSearch.MoveH\x02\x88\x01\x01\x12\x38\n\tmove_away\x18\x05 \x01(\x0b\x32 .weaviate.v1.NearTextSearch.MoveH\x03\x88\x01\x01\x12\x1a\n\x0etarget_vectors\x18\x06 \x03(\tB\x02\x18\x01\x12%\n\x07targets\x18\x07 \x01(\x0b\x32\x14.weaviate.v1.Targets\x12.\n\tselection\x18\x08 \x01(\x0b\x32\x16.weaviate.v1.SelectionH\x04\x88\x01\x01\x1a\x36\n\x04Move\x12\r\n\x05\x66orce\x18\x01 \x01(\x02\x12\x10\n\x08\x63oncepts\x18\x02 \x03(\t\x12\r\n\x05uuids\x18\x03 \x03(\tB\x0c\n\n_certaintyB\x0b\n\t_distanceB\n\n\x08_move_toB\x0c\n\n_move_awayB\x0c\n\n_selection\"\xeb\x01\n\x0fNearImageSearch\x12\r\n\x05image\x18\x01 \x01(\t\x12\x16\n\tcertainty\x18\x02 \x01(\x01H\x00\x88\x01\x01\x12\x15\n\x08\x64istance\x18\x03 \x01(\x01H\x01\x88\x01\x01\x12\x1a\n\x0etarget_vectors\x18\x04 \x03(\tB\x02\x18\x01\x12%\n\x07targets\x18\x05 \x01(\x0b\x32\x14.weaviate.v1.Targets\x12.\n\tselection\x18\x06 \x01(\x0b\x32\x16.weaviate.v1.SelectionH\x02\x88\x01\x01\x42\x0c\n\n_certaintyB\x0b\n\t_distanceB\x0c\n\n_selection\"\xeb\x01\n\x0fNearAudioSearch\x12\r\n\x05\x61udio\x18\x01 \x01(\t\x12\x16\n\tcertainty\x18\x02 \x01(\x01H\x00\x88\x01\x01\x12\x15\n\x08\x64istance\x18\x03 \x01(\x01H\x01\x88\x01\x01\x12\x1a\n\x0etarget_vectors\x18\x04 \x03(\tB\x02\x18\x01\x12%\n\x07targets\x18\x05 \x01(\x0b\x32\x14.weaviate.v1.Targets\x12.\n\tselection\x18\x06 \x01(\x0b\x32\x16.weaviate.v1.SelectionH\x02\x88\x01\x01\x42\x0c\n\n_certaintyB\x0b\n\t_distanceB\x0c\n\n_selection\"\xeb\x01\n\x0fNearVideoSearch\x12\r\n\x05video\x18\x01 \x01(\t\x12\x16\n\tcertainty\x18\x02 \x01(\x01H\x00\x88\x01\x01\x12\x15\n\x08\x64istance\x18\x03 \x01(\x01H\x01\x88\x01\x01\x12\x1a\n\x0etarget_vectors\x18\x04 \x03(\tB\x02\x18\x01\x12%\n\x07targets\x18\x05 \x01(\x0b\x32\x14.weaviate.v1.Targets\x12.\n\tselection\x18\x06 \x01(\x0b\x32\x16.weaviate.v1.SelectionH\x02\x88\x01\x01\x42\x0c\n\n_certaintyB\x0b\n\t_distanceB\x0c\n\n_selection\"\xeb\x01\n\x0fNearDepthSearch\x12\r\n\x05\x64\x65pth\x18\x01 \x01(\t\x12\x16\n\tcertainty\x18\x02 \x01(\x01H\x00\x88\x01\x01\x12\x15\n\x08\x64istance\x18\x03 \x01(\x01H\x01\x88\x01\x01\x12\x1a\n\x0etarget_vectors\x18\x04 \x03(\tB\x02\x18\x01\x12%\n\x07targets\x18\x05 \x01(\x0b\x32\x14.weaviate.v1.Targets\x12.\n\tselection\x18\x06 \x01(\x0b\x32\x16.weaviate.v1.SelectionH\x02\x88\x01\x01\x42\x0c\n\n_certaintyB\x0b\n\t_distanceB\x0c\n\n_selection\"\xef\x01\n\x11NearThermalSearch\x12\x0f\n\x07thermal\x18\x01 \x01(\t\x12\x16\n\tcertainty\x18\x02 \x01(\x01H\x00\x88\x01\x01\x12\x15\n\x08\x64istance\x18\x03 \x01(\x01H\x01\x88\x01\x01\x12\x1a\n\x0etarget_vectors\x18\x04 \x03(\tB\x02\x18\x01\x12%\n\x07targets\x18\x05 \x01(\x0b\x32\x14.weaviate.v1.Targets\x12.\n\tselection\x18\x06 \x01(\x0b\x32\x16.weaviate.v1.SelectionH\x02\x88\x01\x01\x42\x0c\n\n_certaintyB\x0b\n\t_distanceB\x0c\n\n_selection\"\xe7\x01\n\rNearIMUSearch\x12\x0b\n\x03imu\x18\x01 \x01(\t\x12\x16\n\tcertainty\x18\x02 \x01(\x01H\x00\x88\x01\x01\x12\x15\n\x08\x64istance\x18\x03 \x01(\x01H\x01\x88\x01\x01\x12\x1a\n\x0etarget_vectors\x18\x04 \x03(\tB\x02\x18\x01\x12%\n\x07targets\x18\x05 \x01(\x0b\x32\x14.weaviate.v1.Targets\x12.\n\tselection\x18\x06 \x01(\x0b\x32\x16.weaviate.v1.SelectionH\x02\x88\x01\x01\x42\x0c\n\n_certaintyB\x0b\n\t_distanceB\x0c\n\n_selection\"\x7f\n\x04\x42M25\x12\r\n\x05query\x18\x01 \x01(\t\x12\x12\n\nproperties\x18\x02 \x03(\t\x12@\n\x0fsearch_operator\x18\x03 \x01(\x0b\x32\".weaviate.v1.SearchOperatorOptionsH\x00\x88\x01\x01\x42\x12\n\x10_search_operator*\xee\x01\n\x11\x43ombinationMethod\x12\"\n\x1e\x43OMBINATION_METHOD_UNSPECIFIED\x10\x00\x12\x1f\n\x1b\x43OMBINATION_METHOD_TYPE_SUM\x10\x01\x12\x1f\n\x1b\x43OMBINATION_METHOD_TYPE_MIN\x10\x02\x12#\n\x1f\x43OMBINATION_METHOD_TYPE_AVERAGE\x10\x03\x12*\n&COMBINATION_METHOD_TYPE_RELATIVE_SCORE\x10\x04\x12\"\n\x1e\x43OMBINATION_METHOD_TYPE_MANUAL\x10\x05\x42t\n#io.weaviate.client.grpc.protocol.v1B\x17WeaviateProtoBaseSearchZ4github.com/weaviate/weaviate/grpc/generated;protocolb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -32,8 +32,8 @@ _HYBRID.fields_by_name['vector_bytes']._serialized_options = b'\030\001' _HYBRID.fields_by_name['target_vectors']._options = None _HYBRID.fields_by_name['target_vectors']._serialized_options = b'\030\001' - _NEARVECTOR_VECTORPERTARGETENTRY._options = None - _NEARVECTOR_VECTORPERTARGETENTRY._serialized_options = b'8\001' + _globals['_NEARVECTOR_VECTORPERTARGETENTRY']._options = None + _globals['_NEARVECTOR_VECTORPERTARGETENTRY']._serialized_options = b'8\001' _NEARVECTOR.fields_by_name['vector']._options = None _NEARVECTOR.fields_by_name['vector']._serialized_options = b'\030\001' _NEARVECTOR.fields_by_name['vector_bytes']._options = None @@ -58,44 +58,48 @@ _NEARTHERMALSEARCH.fields_by_name['target_vectors']._serialized_options = b'\030\001' _NEARIMUSEARCH.fields_by_name['target_vectors']._options = None _NEARIMUSEARCH.fields_by_name['target_vectors']._serialized_options = b'\030\001' - _globals['_COMBINATIONMETHOD']._serialized_start=3408 - _globals['_COMBINATIONMETHOD']._serialized_end=3646 + _globals['_COMBINATIONMETHOD']._serialized_start=4169 + _globals['_COMBINATIONMETHOD']._serialized_end=4407 _globals['_WEIGHTSFORTARGET']._serialized_start=52 _globals['_WEIGHTSFORTARGET']._serialized_end=102 _globals['_TARGETS']._serialized_start=105 _globals['_TARGETS']._serialized_end=257 _globals['_VECTORFORTARGET']._serialized_start=259 _globals['_VECTORFORTARGET']._serialized_end=355 - _globals['_SEARCHOPERATOROPTIONS']._serialized_start=358 - _globals['_SEARCHOPERATOROPTIONS']._serialized_end=583 - _globals['_SEARCHOPERATOROPTIONS_OPERATOR']._serialized_start=484 - _globals['_SEARCHOPERATOROPTIONS_OPERATOR']._serialized_end=555 - _globals['_HYBRID']._serialized_start=586 - _globals['_HYBRID']._serialized_end=1249 - _globals['_HYBRID_FUSIONTYPE']._serialized_start=1098 - _globals['_HYBRID_FUSIONTYPE']._serialized_end=1195 - _globals['_NEARVECTOR']._serialized_start=1252 - _globals['_NEARVECTOR']._serialized_end=1681 - _globals['_NEARVECTOR_VECTORPERTARGETENTRY']._serialized_start=1600 - _globals['_NEARVECTOR_VECTORPERTARGETENTRY']._serialized_end=1654 - _globals['_NEAROBJECT']._serialized_start=1684 - _globals['_NEAROBJECT']._serialized_end=1849 - _globals['_NEARTEXTSEARCH']._serialized_start=1852 - _globals['_NEARTEXTSEARCH']._serialized_end=2220 - _globals['_NEARTEXTSEARCH_MOVE']._serialized_start=2113 - _globals['_NEARTEXTSEARCH_MOVE']._serialized_end=2167 - _globals['_NEARIMAGESEARCH']._serialized_start=2223 - _globals['_NEARIMAGESEARCH']._serialized_end=2396 - _globals['_NEARAUDIOSEARCH']._serialized_start=2399 - _globals['_NEARAUDIOSEARCH']._serialized_end=2572 - _globals['_NEARVIDEOSEARCH']._serialized_start=2575 - _globals['_NEARVIDEOSEARCH']._serialized_end=2748 - _globals['_NEARDEPTHSEARCH']._serialized_start=2751 - _globals['_NEARDEPTHSEARCH']._serialized_end=2924 - _globals['_NEARTHERMALSEARCH']._serialized_start=2927 - _globals['_NEARTHERMALSEARCH']._serialized_end=3104 - _globals['_NEARIMUSEARCH']._serialized_start=3107 - _globals['_NEARIMUSEARCH']._serialized_end=3276 - _globals['_BM25']._serialized_start=3278 - _globals['_BM25']._serialized_end=3405 + _globals['_SELECTION']._serialized_start=358 + _globals['_SELECTION']._serialized_end=496 + _globals['_SELECTION_MMR']._serialized_start=414 + _globals['_SELECTION_MMR']._serialized_end=483 + _globals['_SEARCHOPERATOROPTIONS']._serialized_start=499 + _globals['_SEARCHOPERATOROPTIONS']._serialized_end=724 + _globals['_SEARCHOPERATOROPTIONS_OPERATOR']._serialized_start=625 + _globals['_SEARCHOPERATOROPTIONS_OPERATOR']._serialized_end=696 + _globals['_HYBRID']._serialized_start=727 + _globals['_HYBRID']._serialized_end=1452 + _globals['_HYBRID_FUSIONTYPE']._serialized_start=1287 + _globals['_HYBRID_FUSIONTYPE']._serialized_end=1384 + _globals['_NEARVECTOR']._serialized_start=1455 + _globals['_NEARVECTOR']._serialized_end=1946 + _globals['_NEARVECTOR_VECTORPERTARGETENTRY']._serialized_start=1851 + _globals['_NEARVECTOR_VECTORPERTARGETENTRY']._serialized_end=1905 + _globals['_NEAROBJECT']._serialized_start=1949 + _globals['_NEAROBJECT']._serialized_end=2176 + _globals['_NEARTEXTSEARCH']._serialized_start=2179 + _globals['_NEARTEXTSEARCH']._serialized_end=2609 + _globals['_NEARTEXTSEARCH_MOVE']._serialized_start=2488 + _globals['_NEARTEXTSEARCH_MOVE']._serialized_end=2542 + _globals['_NEARIMAGESEARCH']._serialized_start=2612 + _globals['_NEARIMAGESEARCH']._serialized_end=2847 + _globals['_NEARAUDIOSEARCH']._serialized_start=2850 + _globals['_NEARAUDIOSEARCH']._serialized_end=3085 + _globals['_NEARVIDEOSEARCH']._serialized_start=3088 + _globals['_NEARVIDEOSEARCH']._serialized_end=3323 + _globals['_NEARDEPTHSEARCH']._serialized_start=3326 + _globals['_NEARDEPTHSEARCH']._serialized_end=3561 + _globals['_NEARTHERMALSEARCH']._serialized_start=3564 + _globals['_NEARTHERMALSEARCH']._serialized_end=3803 + _globals['_NEARIMUSEARCH']._serialized_start=3806 + _globals['_NEARIMUSEARCH']._serialized_end=4037 + _globals['_BM25']._serialized_start=4039 + _globals['_BM25']._serialized_end=4166 # @@protoc_insertion_point(module_scope) diff --git a/weaviate/proto/v1/v4216/v1/base_search_pb2.pyi b/weaviate/proto/v1/v4216/v1/base_search_pb2.pyi index 440631c88..b94597ecb 100644 --- a/weaviate/proto/v1/v4216/v1/base_search_pb2.pyi +++ b/weaviate/proto/v1/v4216/v1/base_search_pb2.pyi @@ -50,6 +50,19 @@ class VectorForTarget(_message.Message): vectors: _containers.RepeatedCompositeFieldContainer[_base_pb2.Vectors] def __init__(self, name: _Optional[str] = ..., vector_bytes: _Optional[bytes] = ..., vectors: _Optional[_Iterable[_Union[_base_pb2.Vectors, _Mapping]]] = ...) -> None: ... +class Selection(_message.Message): + __slots__ = ["mmr"] + class MMR(_message.Message): + __slots__ = ["limit", "balance"] + LIMIT_FIELD_NUMBER: _ClassVar[int] + BALANCE_FIELD_NUMBER: _ClassVar[int] + limit: int + balance: float + def __init__(self, limit: _Optional[int] = ..., balance: _Optional[float] = ...) -> None: ... + MMR_FIELD_NUMBER: _ClassVar[int] + mmr: Selection.MMR + def __init__(self, mmr: _Optional[_Union[Selection.MMR, _Mapping]] = ...) -> None: ... + class SearchOperatorOptions(_message.Message): __slots__ = ["operator", "minimum_or_tokens_match"] class Operator(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): @@ -67,7 +80,7 @@ class SearchOperatorOptions(_message.Message): def __init__(self, operator: _Optional[_Union[SearchOperatorOptions.Operator, str]] = ..., minimum_or_tokens_match: _Optional[int] = ...) -> None: ... class Hybrid(_message.Message): - __slots__ = ["query", "properties", "vector", "alpha", "fusion_type", "vector_bytes", "target_vectors", "near_text", "near_vector", "targets", "bm25_search_operator", "alpha_param", "use_alpha_param", "vector_distance", "vectors"] + __slots__ = ["query", "properties", "vector", "alpha", "fusion_type", "vector_bytes", "target_vectors", "near_text", "near_vector", "targets", "bm25_search_operator", "alpha_param", "use_alpha_param", "selection", "vector_distance", "vectors"] class FusionType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): __slots__ = [] FUSION_TYPE_UNSPECIFIED: _ClassVar[Hybrid.FusionType] @@ -89,6 +102,7 @@ class Hybrid(_message.Message): BM25_SEARCH_OPERATOR_FIELD_NUMBER: _ClassVar[int] ALPHA_PARAM_FIELD_NUMBER: _ClassVar[int] USE_ALPHA_PARAM_FIELD_NUMBER: _ClassVar[int] + SELECTION_FIELD_NUMBER: _ClassVar[int] VECTOR_DISTANCE_FIELD_NUMBER: _ClassVar[int] VECTORS_FIELD_NUMBER: _ClassVar[int] query: str @@ -104,12 +118,13 @@ class Hybrid(_message.Message): bm25_search_operator: SearchOperatorOptions alpha_param: float use_alpha_param: bool + selection: Selection vector_distance: float vectors: _containers.RepeatedCompositeFieldContainer[_base_pb2.Vectors] - def __init__(self, query: _Optional[str] = ..., properties: _Optional[_Iterable[str]] = ..., vector: _Optional[_Iterable[float]] = ..., alpha: _Optional[float] = ..., fusion_type: _Optional[_Union[Hybrid.FusionType, str]] = ..., vector_bytes: _Optional[bytes] = ..., target_vectors: _Optional[_Iterable[str]] = ..., near_text: _Optional[_Union[NearTextSearch, _Mapping]] = ..., near_vector: _Optional[_Union[NearVector, _Mapping]] = ..., targets: _Optional[_Union[Targets, _Mapping]] = ..., bm25_search_operator: _Optional[_Union[SearchOperatorOptions, _Mapping]] = ..., alpha_param: _Optional[float] = ..., use_alpha_param: bool = ..., vector_distance: _Optional[float] = ..., vectors: _Optional[_Iterable[_Union[_base_pb2.Vectors, _Mapping]]] = ...) -> None: ... + def __init__(self, query: _Optional[str] = ..., properties: _Optional[_Iterable[str]] = ..., vector: _Optional[_Iterable[float]] = ..., alpha: _Optional[float] = ..., fusion_type: _Optional[_Union[Hybrid.FusionType, str]] = ..., vector_bytes: _Optional[bytes] = ..., target_vectors: _Optional[_Iterable[str]] = ..., near_text: _Optional[_Union[NearTextSearch, _Mapping]] = ..., near_vector: _Optional[_Union[NearVector, _Mapping]] = ..., targets: _Optional[_Union[Targets, _Mapping]] = ..., bm25_search_operator: _Optional[_Union[SearchOperatorOptions, _Mapping]] = ..., alpha_param: _Optional[float] = ..., use_alpha_param: bool = ..., selection: _Optional[_Union[Selection, _Mapping]] = ..., vector_distance: _Optional[float] = ..., vectors: _Optional[_Iterable[_Union[_base_pb2.Vectors, _Mapping]]] = ...) -> None: ... class NearVector(_message.Message): - __slots__ = ["vector", "certainty", "distance", "vector_bytes", "target_vectors", "targets", "vector_per_target", "vector_for_targets", "vectors"] + __slots__ = ["vector", "certainty", "distance", "vector_bytes", "target_vectors", "targets", "vector_per_target", "vector_for_targets", "vectors", "selection"] class VectorPerTargetEntry(_message.Message): __slots__ = ["key", "value"] KEY_FIELD_NUMBER: _ClassVar[int] @@ -126,6 +141,7 @@ class NearVector(_message.Message): VECTOR_PER_TARGET_FIELD_NUMBER: _ClassVar[int] VECTOR_FOR_TARGETS_FIELD_NUMBER: _ClassVar[int] VECTORS_FIELD_NUMBER: _ClassVar[int] + SELECTION_FIELD_NUMBER: _ClassVar[int] vector: _containers.RepeatedScalarFieldContainer[float] certainty: float distance: float @@ -135,24 +151,27 @@ class NearVector(_message.Message): vector_per_target: _containers.ScalarMap[str, bytes] vector_for_targets: _containers.RepeatedCompositeFieldContainer[VectorForTarget] vectors: _containers.RepeatedCompositeFieldContainer[_base_pb2.Vectors] - def __init__(self, vector: _Optional[_Iterable[float]] = ..., certainty: _Optional[float] = ..., distance: _Optional[float] = ..., vector_bytes: _Optional[bytes] = ..., target_vectors: _Optional[_Iterable[str]] = ..., targets: _Optional[_Union[Targets, _Mapping]] = ..., vector_per_target: _Optional[_Mapping[str, bytes]] = ..., vector_for_targets: _Optional[_Iterable[_Union[VectorForTarget, _Mapping]]] = ..., vectors: _Optional[_Iterable[_Union[_base_pb2.Vectors, _Mapping]]] = ...) -> None: ... + selection: Selection + def __init__(self, vector: _Optional[_Iterable[float]] = ..., certainty: _Optional[float] = ..., distance: _Optional[float] = ..., vector_bytes: _Optional[bytes] = ..., target_vectors: _Optional[_Iterable[str]] = ..., targets: _Optional[_Union[Targets, _Mapping]] = ..., vector_per_target: _Optional[_Mapping[str, bytes]] = ..., vector_for_targets: _Optional[_Iterable[_Union[VectorForTarget, _Mapping]]] = ..., vectors: _Optional[_Iterable[_Union[_base_pb2.Vectors, _Mapping]]] = ..., selection: _Optional[_Union[Selection, _Mapping]] = ...) -> None: ... class NearObject(_message.Message): - __slots__ = ["id", "certainty", "distance", "target_vectors", "targets"] + __slots__ = ["id", "certainty", "distance", "target_vectors", "targets", "selection"] ID_FIELD_NUMBER: _ClassVar[int] CERTAINTY_FIELD_NUMBER: _ClassVar[int] DISTANCE_FIELD_NUMBER: _ClassVar[int] TARGET_VECTORS_FIELD_NUMBER: _ClassVar[int] TARGETS_FIELD_NUMBER: _ClassVar[int] + SELECTION_FIELD_NUMBER: _ClassVar[int] id: str certainty: float distance: float target_vectors: _containers.RepeatedScalarFieldContainer[str] targets: Targets - def __init__(self, id: _Optional[str] = ..., certainty: _Optional[float] = ..., distance: _Optional[float] = ..., target_vectors: _Optional[_Iterable[str]] = ..., targets: _Optional[_Union[Targets, _Mapping]] = ...) -> None: ... + selection: Selection + def __init__(self, id: _Optional[str] = ..., certainty: _Optional[float] = ..., distance: _Optional[float] = ..., target_vectors: _Optional[_Iterable[str]] = ..., targets: _Optional[_Union[Targets, _Mapping]] = ..., selection: _Optional[_Union[Selection, _Mapping]] = ...) -> None: ... class NearTextSearch(_message.Message): - __slots__ = ["query", "certainty", "distance", "move_to", "move_away", "target_vectors", "targets"] + __slots__ = ["query", "certainty", "distance", "move_to", "move_away", "target_vectors", "targets", "selection"] class Move(_message.Message): __slots__ = ["force", "concepts", "uuids"] FORCE_FIELD_NUMBER: _ClassVar[int] @@ -169,6 +188,7 @@ class NearTextSearch(_message.Message): MOVE_AWAY_FIELD_NUMBER: _ClassVar[int] TARGET_VECTORS_FIELD_NUMBER: _ClassVar[int] TARGETS_FIELD_NUMBER: _ClassVar[int] + SELECTION_FIELD_NUMBER: _ClassVar[int] query: _containers.RepeatedScalarFieldContainer[str] certainty: float distance: float @@ -176,91 +196,104 @@ class NearTextSearch(_message.Message): move_away: NearTextSearch.Move target_vectors: _containers.RepeatedScalarFieldContainer[str] targets: Targets - def __init__(self, query: _Optional[_Iterable[str]] = ..., certainty: _Optional[float] = ..., distance: _Optional[float] = ..., move_to: _Optional[_Union[NearTextSearch.Move, _Mapping]] = ..., move_away: _Optional[_Union[NearTextSearch.Move, _Mapping]] = ..., target_vectors: _Optional[_Iterable[str]] = ..., targets: _Optional[_Union[Targets, _Mapping]] = ...) -> None: ... + selection: Selection + def __init__(self, query: _Optional[_Iterable[str]] = ..., certainty: _Optional[float] = ..., distance: _Optional[float] = ..., move_to: _Optional[_Union[NearTextSearch.Move, _Mapping]] = ..., move_away: _Optional[_Union[NearTextSearch.Move, _Mapping]] = ..., target_vectors: _Optional[_Iterable[str]] = ..., targets: _Optional[_Union[Targets, _Mapping]] = ..., selection: _Optional[_Union[Selection, _Mapping]] = ...) -> None: ... class NearImageSearch(_message.Message): - __slots__ = ["image", "certainty", "distance", "target_vectors", "targets"] + __slots__ = ["image", "certainty", "distance", "target_vectors", "targets", "selection"] IMAGE_FIELD_NUMBER: _ClassVar[int] CERTAINTY_FIELD_NUMBER: _ClassVar[int] DISTANCE_FIELD_NUMBER: _ClassVar[int] TARGET_VECTORS_FIELD_NUMBER: _ClassVar[int] TARGETS_FIELD_NUMBER: _ClassVar[int] + SELECTION_FIELD_NUMBER: _ClassVar[int] image: str certainty: float distance: float target_vectors: _containers.RepeatedScalarFieldContainer[str] targets: Targets - def __init__(self, image: _Optional[str] = ..., certainty: _Optional[float] = ..., distance: _Optional[float] = ..., target_vectors: _Optional[_Iterable[str]] = ..., targets: _Optional[_Union[Targets, _Mapping]] = ...) -> None: ... + selection: Selection + def __init__(self, image: _Optional[str] = ..., certainty: _Optional[float] = ..., distance: _Optional[float] = ..., target_vectors: _Optional[_Iterable[str]] = ..., targets: _Optional[_Union[Targets, _Mapping]] = ..., selection: _Optional[_Union[Selection, _Mapping]] = ...) -> None: ... class NearAudioSearch(_message.Message): - __slots__ = ["audio", "certainty", "distance", "target_vectors", "targets"] + __slots__ = ["audio", "certainty", "distance", "target_vectors", "targets", "selection"] AUDIO_FIELD_NUMBER: _ClassVar[int] CERTAINTY_FIELD_NUMBER: _ClassVar[int] DISTANCE_FIELD_NUMBER: _ClassVar[int] TARGET_VECTORS_FIELD_NUMBER: _ClassVar[int] TARGETS_FIELD_NUMBER: _ClassVar[int] + SELECTION_FIELD_NUMBER: _ClassVar[int] audio: str certainty: float distance: float target_vectors: _containers.RepeatedScalarFieldContainer[str] targets: Targets - def __init__(self, audio: _Optional[str] = ..., certainty: _Optional[float] = ..., distance: _Optional[float] = ..., target_vectors: _Optional[_Iterable[str]] = ..., targets: _Optional[_Union[Targets, _Mapping]] = ...) -> None: ... + selection: Selection + def __init__(self, audio: _Optional[str] = ..., certainty: _Optional[float] = ..., distance: _Optional[float] = ..., target_vectors: _Optional[_Iterable[str]] = ..., targets: _Optional[_Union[Targets, _Mapping]] = ..., selection: _Optional[_Union[Selection, _Mapping]] = ...) -> None: ... class NearVideoSearch(_message.Message): - __slots__ = ["video", "certainty", "distance", "target_vectors", "targets"] + __slots__ = ["video", "certainty", "distance", "target_vectors", "targets", "selection"] VIDEO_FIELD_NUMBER: _ClassVar[int] CERTAINTY_FIELD_NUMBER: _ClassVar[int] DISTANCE_FIELD_NUMBER: _ClassVar[int] TARGET_VECTORS_FIELD_NUMBER: _ClassVar[int] TARGETS_FIELD_NUMBER: _ClassVar[int] + SELECTION_FIELD_NUMBER: _ClassVar[int] video: str certainty: float distance: float target_vectors: _containers.RepeatedScalarFieldContainer[str] targets: Targets - def __init__(self, video: _Optional[str] = ..., certainty: _Optional[float] = ..., distance: _Optional[float] = ..., target_vectors: _Optional[_Iterable[str]] = ..., targets: _Optional[_Union[Targets, _Mapping]] = ...) -> None: ... + selection: Selection + def __init__(self, video: _Optional[str] = ..., certainty: _Optional[float] = ..., distance: _Optional[float] = ..., target_vectors: _Optional[_Iterable[str]] = ..., targets: _Optional[_Union[Targets, _Mapping]] = ..., selection: _Optional[_Union[Selection, _Mapping]] = ...) -> None: ... class NearDepthSearch(_message.Message): - __slots__ = ["depth", "certainty", "distance", "target_vectors", "targets"] + __slots__ = ["depth", "certainty", "distance", "target_vectors", "targets", "selection"] DEPTH_FIELD_NUMBER: _ClassVar[int] CERTAINTY_FIELD_NUMBER: _ClassVar[int] DISTANCE_FIELD_NUMBER: _ClassVar[int] TARGET_VECTORS_FIELD_NUMBER: _ClassVar[int] TARGETS_FIELD_NUMBER: _ClassVar[int] + SELECTION_FIELD_NUMBER: _ClassVar[int] depth: str certainty: float distance: float target_vectors: _containers.RepeatedScalarFieldContainer[str] targets: Targets - def __init__(self, depth: _Optional[str] = ..., certainty: _Optional[float] = ..., distance: _Optional[float] = ..., target_vectors: _Optional[_Iterable[str]] = ..., targets: _Optional[_Union[Targets, _Mapping]] = ...) -> None: ... + selection: Selection + def __init__(self, depth: _Optional[str] = ..., certainty: _Optional[float] = ..., distance: _Optional[float] = ..., target_vectors: _Optional[_Iterable[str]] = ..., targets: _Optional[_Union[Targets, _Mapping]] = ..., selection: _Optional[_Union[Selection, _Mapping]] = ...) -> None: ... class NearThermalSearch(_message.Message): - __slots__ = ["thermal", "certainty", "distance", "target_vectors", "targets"] + __slots__ = ["thermal", "certainty", "distance", "target_vectors", "targets", "selection"] THERMAL_FIELD_NUMBER: _ClassVar[int] CERTAINTY_FIELD_NUMBER: _ClassVar[int] DISTANCE_FIELD_NUMBER: _ClassVar[int] TARGET_VECTORS_FIELD_NUMBER: _ClassVar[int] TARGETS_FIELD_NUMBER: _ClassVar[int] + SELECTION_FIELD_NUMBER: _ClassVar[int] thermal: str certainty: float distance: float target_vectors: _containers.RepeatedScalarFieldContainer[str] targets: Targets - def __init__(self, thermal: _Optional[str] = ..., certainty: _Optional[float] = ..., distance: _Optional[float] = ..., target_vectors: _Optional[_Iterable[str]] = ..., targets: _Optional[_Union[Targets, _Mapping]] = ...) -> None: ... + selection: Selection + def __init__(self, thermal: _Optional[str] = ..., certainty: _Optional[float] = ..., distance: _Optional[float] = ..., target_vectors: _Optional[_Iterable[str]] = ..., targets: _Optional[_Union[Targets, _Mapping]] = ..., selection: _Optional[_Union[Selection, _Mapping]] = ...) -> None: ... class NearIMUSearch(_message.Message): - __slots__ = ["imu", "certainty", "distance", "target_vectors", "targets"] + __slots__ = ["imu", "certainty", "distance", "target_vectors", "targets", "selection"] IMU_FIELD_NUMBER: _ClassVar[int] CERTAINTY_FIELD_NUMBER: _ClassVar[int] DISTANCE_FIELD_NUMBER: _ClassVar[int] TARGET_VECTORS_FIELD_NUMBER: _ClassVar[int] TARGETS_FIELD_NUMBER: _ClassVar[int] + SELECTION_FIELD_NUMBER: _ClassVar[int] imu: str certainty: float distance: float target_vectors: _containers.RepeatedScalarFieldContainer[str] targets: Targets - def __init__(self, imu: _Optional[str] = ..., certainty: _Optional[float] = ..., distance: _Optional[float] = ..., target_vectors: _Optional[_Iterable[str]] = ..., targets: _Optional[_Union[Targets, _Mapping]] = ...) -> None: ... + selection: Selection + def __init__(self, imu: _Optional[str] = ..., certainty: _Optional[float] = ..., distance: _Optional[float] = ..., target_vectors: _Optional[_Iterable[str]] = ..., targets: _Optional[_Union[Targets, _Mapping]] = ..., selection: _Optional[_Union[Selection, _Mapping]] = ...) -> None: ... class BM25(_message.Message): __slots__ = ["query", "properties", "search_operator"] diff --git a/weaviate/proto/v1/v5261/v1/base_search_pb2.py b/weaviate/proto/v1/v5261/v1/base_search_pb2.py index 2658b6cc5..c5b9beaae 100644 --- a/weaviate/proto/v1/v5261/v1/base_search_pb2.py +++ b/weaviate/proto/v1/v5261/v1/base_search_pb2.py @@ -15,7 +15,7 @@ from weaviate.proto.v1.v5261.v1 import base_pb2 as v1_dot_base__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x14v1/base_search.proto\x12\x0bweaviate.v1\x1a\rv1/base.proto\"2\n\x10WeightsForTarget\x12\x0e\n\x06target\x18\x01 \x01(\t\x12\x0e\n\x06weight\x18\x02 \x01(\x02\"\x98\x01\n\x07Targets\x12\x16\n\x0etarget_vectors\x18\x01 \x03(\t\x12\x33\n\x0b\x63ombination\x18\x02 \x01(\x0e\x32\x1e.weaviate.v1.CombinationMethod\x12:\n\x13weights_for_targets\x18\x04 \x03(\x0b\x32\x1d.weaviate.v1.WeightsForTargetJ\x04\x08\x03\x10\x04\"`\n\x0fVectorForTarget\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x18\n\x0cvector_bytes\x18\x02 \x01(\x0c\x42\x02\x18\x01\x12%\n\x07vectors\x18\x03 \x03(\x0b\x32\x14.weaviate.v1.Vectors\"\xe1\x01\n\x15SearchOperatorOptions\x12=\n\x08operator\x18\x01 \x01(\x0e\x32+.weaviate.v1.SearchOperatorOptions.Operator\x12$\n\x17minimum_or_tokens_match\x18\x02 \x01(\x05H\x00\x88\x01\x01\"G\n\x08Operator\x12\x18\n\x14OPERATOR_UNSPECIFIED\x10\x00\x12\x0f\n\x0bOPERATOR_OR\x10\x01\x12\x10\n\x0cOPERATOR_AND\x10\x02\x42\x1a\n\x18_minimum_or_tokens_match\"\x97\x05\n\x06Hybrid\x12\r\n\x05query\x18\x01 \x01(\t\x12\x12\n\nproperties\x18\x02 \x03(\t\x12\x12\n\x06vector\x18\x03 \x03(\x02\x42\x02\x18\x01\x12\x11\n\x05\x61lpha\x18\x04 \x01(\x02\x42\x02\x18\x01\x12\x33\n\x0b\x66usion_type\x18\x05 \x01(\x0e\x32\x1e.weaviate.v1.Hybrid.FusionType\x12\x18\n\x0cvector_bytes\x18\x06 \x01(\x0c\x42\x02\x18\x01\x12\x1a\n\x0etarget_vectors\x18\x07 \x03(\tB\x02\x18\x01\x12.\n\tnear_text\x18\x08 \x01(\x0b\x32\x1b.weaviate.v1.NearTextSearch\x12,\n\x0bnear_vector\x18\t \x01(\x0b\x32\x17.weaviate.v1.NearVector\x12%\n\x07targets\x18\n \x01(\x0b\x32\x14.weaviate.v1.Targets\x12\x45\n\x14\x62m25_search_operator\x18\x0b \x01(\x0b\x32\".weaviate.v1.SearchOperatorOptionsH\x01\x88\x01\x01\x12\x18\n\x0b\x61lpha_param\x18\x0c \x01(\x02H\x02\x88\x01\x01\x12\x17\n\x0fuse_alpha_param\x18\r \x01(\x08\x12\x19\n\x0fvector_distance\x18\x14 \x01(\x02H\x00\x12%\n\x07vectors\x18\x15 \x03(\x0b\x32\x14.weaviate.v1.Vectors\"a\n\nFusionType\x12\x1b\n\x17\x46USION_TYPE_UNSPECIFIED\x10\x00\x12\x16\n\x12\x46USION_TYPE_RANKED\x10\x01\x12\x1e\n\x1a\x46USION_TYPE_RELATIVE_SCORE\x10\x02\x42\x0b\n\tthresholdB\x17\n\x15_bm25_search_operatorB\x0e\n\x0c_alpha_param\"\xad\x03\n\nNearVector\x12\x12\n\x06vector\x18\x01 \x03(\x02\x42\x02\x18\x01\x12\x16\n\tcertainty\x18\x02 \x01(\x01H\x00\x88\x01\x01\x12\x15\n\x08\x64istance\x18\x03 \x01(\x01H\x01\x88\x01\x01\x12\x18\n\x0cvector_bytes\x18\x04 \x01(\x0c\x42\x02\x18\x01\x12\x1a\n\x0etarget_vectors\x18\x05 \x03(\tB\x02\x18\x01\x12%\n\x07targets\x18\x06 \x01(\x0b\x32\x14.weaviate.v1.Targets\x12K\n\x11vector_per_target\x18\x07 \x03(\x0b\x32,.weaviate.v1.NearVector.VectorPerTargetEntryB\x02\x18\x01\x12\x38\n\x12vector_for_targets\x18\x08 \x03(\x0b\x32\x1c.weaviate.v1.VectorForTarget\x12%\n\x07vectors\x18\t \x03(\x0b\x32\x14.weaviate.v1.Vectors\x1a\x36\n\x14VectorPerTargetEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x0c:\x02\x38\x01\x42\x0c\n\n_certaintyB\x0b\n\t_distance\"\xa5\x01\n\nNearObject\x12\n\n\x02id\x18\x01 \x01(\t\x12\x16\n\tcertainty\x18\x02 \x01(\x01H\x00\x88\x01\x01\x12\x15\n\x08\x64istance\x18\x03 \x01(\x01H\x01\x88\x01\x01\x12\x1a\n\x0etarget_vectors\x18\x04 \x03(\tB\x02\x18\x01\x12%\n\x07targets\x18\x05 \x01(\x0b\x32\x14.weaviate.v1.TargetsB\x0c\n\n_certaintyB\x0b\n\t_distance\"\xf0\x02\n\x0eNearTextSearch\x12\r\n\x05query\x18\x01 \x03(\t\x12\x16\n\tcertainty\x18\x02 \x01(\x01H\x00\x88\x01\x01\x12\x15\n\x08\x64istance\x18\x03 \x01(\x01H\x01\x88\x01\x01\x12\x36\n\x07move_to\x18\x04 \x01(\x0b\x32 .weaviate.v1.NearTextSearch.MoveH\x02\x88\x01\x01\x12\x38\n\tmove_away\x18\x05 \x01(\x0b\x32 .weaviate.v1.NearTextSearch.MoveH\x03\x88\x01\x01\x12\x1a\n\x0etarget_vectors\x18\x06 \x03(\tB\x02\x18\x01\x12%\n\x07targets\x18\x07 \x01(\x0b\x32\x14.weaviate.v1.Targets\x1a\x36\n\x04Move\x12\r\n\x05\x66orce\x18\x01 \x01(\x02\x12\x10\n\x08\x63oncepts\x18\x02 \x03(\t\x12\r\n\x05uuids\x18\x03 \x03(\tB\x0c\n\n_certaintyB\x0b\n\t_distanceB\n\n\x08_move_toB\x0c\n\n_move_away\"\xad\x01\n\x0fNearImageSearch\x12\r\n\x05image\x18\x01 \x01(\t\x12\x16\n\tcertainty\x18\x02 \x01(\x01H\x00\x88\x01\x01\x12\x15\n\x08\x64istance\x18\x03 \x01(\x01H\x01\x88\x01\x01\x12\x1a\n\x0etarget_vectors\x18\x04 \x03(\tB\x02\x18\x01\x12%\n\x07targets\x18\x05 \x01(\x0b\x32\x14.weaviate.v1.TargetsB\x0c\n\n_certaintyB\x0b\n\t_distance\"\xad\x01\n\x0fNearAudioSearch\x12\r\n\x05\x61udio\x18\x01 \x01(\t\x12\x16\n\tcertainty\x18\x02 \x01(\x01H\x00\x88\x01\x01\x12\x15\n\x08\x64istance\x18\x03 \x01(\x01H\x01\x88\x01\x01\x12\x1a\n\x0etarget_vectors\x18\x04 \x03(\tB\x02\x18\x01\x12%\n\x07targets\x18\x05 \x01(\x0b\x32\x14.weaviate.v1.TargetsB\x0c\n\n_certaintyB\x0b\n\t_distance\"\xad\x01\n\x0fNearVideoSearch\x12\r\n\x05video\x18\x01 \x01(\t\x12\x16\n\tcertainty\x18\x02 \x01(\x01H\x00\x88\x01\x01\x12\x15\n\x08\x64istance\x18\x03 \x01(\x01H\x01\x88\x01\x01\x12\x1a\n\x0etarget_vectors\x18\x04 \x03(\tB\x02\x18\x01\x12%\n\x07targets\x18\x05 \x01(\x0b\x32\x14.weaviate.v1.TargetsB\x0c\n\n_certaintyB\x0b\n\t_distance\"\xad\x01\n\x0fNearDepthSearch\x12\r\n\x05\x64\x65pth\x18\x01 \x01(\t\x12\x16\n\tcertainty\x18\x02 \x01(\x01H\x00\x88\x01\x01\x12\x15\n\x08\x64istance\x18\x03 \x01(\x01H\x01\x88\x01\x01\x12\x1a\n\x0etarget_vectors\x18\x04 \x03(\tB\x02\x18\x01\x12%\n\x07targets\x18\x05 \x01(\x0b\x32\x14.weaviate.v1.TargetsB\x0c\n\n_certaintyB\x0b\n\t_distance\"\xb1\x01\n\x11NearThermalSearch\x12\x0f\n\x07thermal\x18\x01 \x01(\t\x12\x16\n\tcertainty\x18\x02 \x01(\x01H\x00\x88\x01\x01\x12\x15\n\x08\x64istance\x18\x03 \x01(\x01H\x01\x88\x01\x01\x12\x1a\n\x0etarget_vectors\x18\x04 \x03(\tB\x02\x18\x01\x12%\n\x07targets\x18\x05 \x01(\x0b\x32\x14.weaviate.v1.TargetsB\x0c\n\n_certaintyB\x0b\n\t_distance\"\xa9\x01\n\rNearIMUSearch\x12\x0b\n\x03imu\x18\x01 \x01(\t\x12\x16\n\tcertainty\x18\x02 \x01(\x01H\x00\x88\x01\x01\x12\x15\n\x08\x64istance\x18\x03 \x01(\x01H\x01\x88\x01\x01\x12\x1a\n\x0etarget_vectors\x18\x04 \x03(\tB\x02\x18\x01\x12%\n\x07targets\x18\x05 \x01(\x0b\x32\x14.weaviate.v1.TargetsB\x0c\n\n_certaintyB\x0b\n\t_distance\"\x7f\n\x04\x42M25\x12\r\n\x05query\x18\x01 \x01(\t\x12\x12\n\nproperties\x18\x02 \x03(\t\x12@\n\x0fsearch_operator\x18\x03 \x01(\x0b\x32\".weaviate.v1.SearchOperatorOptionsH\x00\x88\x01\x01\x42\x12\n\x10_search_operator*\xee\x01\n\x11\x43ombinationMethod\x12\"\n\x1e\x43OMBINATION_METHOD_UNSPECIFIED\x10\x00\x12\x1f\n\x1b\x43OMBINATION_METHOD_TYPE_SUM\x10\x01\x12\x1f\n\x1b\x43OMBINATION_METHOD_TYPE_MIN\x10\x02\x12#\n\x1f\x43OMBINATION_METHOD_TYPE_AVERAGE\x10\x03\x12*\n&COMBINATION_METHOD_TYPE_RELATIVE_SCORE\x10\x04\x12\"\n\x1e\x43OMBINATION_METHOD_TYPE_MANUAL\x10\x05\x42t\n#io.weaviate.client.grpc.protocol.v1B\x17WeaviateProtoBaseSearchZ4github.com/weaviate/weaviate/grpc/generated;protocolb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x14v1/base_search.proto\x12\x0bweaviate.v1\x1a\rv1/base.proto\"2\n\x10WeightsForTarget\x12\x0e\n\x06target\x18\x01 \x01(\t\x12\x0e\n\x06weight\x18\x02 \x01(\x02\"\x98\x01\n\x07Targets\x12\x16\n\x0etarget_vectors\x18\x01 \x03(\t\x12\x33\n\x0b\x63ombination\x18\x02 \x01(\x0e\x32\x1e.weaviate.v1.CombinationMethod\x12:\n\x13weights_for_targets\x18\x04 \x03(\x0b\x32\x1d.weaviate.v1.WeightsForTargetJ\x04\x08\x03\x10\x04\"`\n\x0fVectorForTarget\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x18\n\x0cvector_bytes\x18\x02 \x01(\x0c\x42\x02\x18\x01\x12%\n\x07vectors\x18\x03 \x03(\x0b\x32\x14.weaviate.v1.Vectors\"\x8a\x01\n\tSelection\x12)\n\x03mmr\x18\x01 \x01(\x0b\x32\x1a.weaviate.v1.Selection.MMRH\x00\x1a\x45\n\x03MMR\x12\x12\n\x05limit\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x14\n\x07\x62\x61lance\x18\x02 \x01(\x02H\x01\x88\x01\x01\x42\x08\n\x06_limitB\n\n\x08_balanceB\x0b\n\tselection\"\xe1\x01\n\x15SearchOperatorOptions\x12=\n\x08operator\x18\x01 \x01(\x0e\x32+.weaviate.v1.SearchOperatorOptions.Operator\x12$\n\x17minimum_or_tokens_match\x18\x02 \x01(\x05H\x00\x88\x01\x01\"G\n\x08Operator\x12\x18\n\x14OPERATOR_UNSPECIFIED\x10\x00\x12\x0f\n\x0bOPERATOR_OR\x10\x01\x12\x10\n\x0cOPERATOR_AND\x10\x02\x42\x1a\n\x18_minimum_or_tokens_match\"\xd5\x05\n\x06Hybrid\x12\r\n\x05query\x18\x01 \x01(\t\x12\x12\n\nproperties\x18\x02 \x03(\t\x12\x12\n\x06vector\x18\x03 \x03(\x02\x42\x02\x18\x01\x12\x11\n\x05\x61lpha\x18\x04 \x01(\x02\x42\x02\x18\x01\x12\x33\n\x0b\x66usion_type\x18\x05 \x01(\x0e\x32\x1e.weaviate.v1.Hybrid.FusionType\x12\x18\n\x0cvector_bytes\x18\x06 \x01(\x0c\x42\x02\x18\x01\x12\x1a\n\x0etarget_vectors\x18\x07 \x03(\tB\x02\x18\x01\x12.\n\tnear_text\x18\x08 \x01(\x0b\x32\x1b.weaviate.v1.NearTextSearch\x12,\n\x0bnear_vector\x18\t \x01(\x0b\x32\x17.weaviate.v1.NearVector\x12%\n\x07targets\x18\n \x01(\x0b\x32\x14.weaviate.v1.Targets\x12\x45\n\x14\x62m25_search_operator\x18\x0b \x01(\x0b\x32\".weaviate.v1.SearchOperatorOptionsH\x01\x88\x01\x01\x12\x18\n\x0b\x61lpha_param\x18\x0c \x01(\x02H\x02\x88\x01\x01\x12\x17\n\x0fuse_alpha_param\x18\r \x01(\x08\x12.\n\tselection\x18\x0e \x01(\x0b\x32\x16.weaviate.v1.SelectionH\x03\x88\x01\x01\x12\x19\n\x0fvector_distance\x18\x14 \x01(\x02H\x00\x12%\n\x07vectors\x18\x15 \x03(\x0b\x32\x14.weaviate.v1.Vectors\"a\n\nFusionType\x12\x1b\n\x17\x46USION_TYPE_UNSPECIFIED\x10\x00\x12\x16\n\x12\x46USION_TYPE_RANKED\x10\x01\x12\x1e\n\x1a\x46USION_TYPE_RELATIVE_SCORE\x10\x02\x42\x0b\n\tthresholdB\x17\n\x15_bm25_search_operatorB\x0e\n\x0c_alpha_paramB\x0c\n\n_selection\"\xeb\x03\n\nNearVector\x12\x12\n\x06vector\x18\x01 \x03(\x02\x42\x02\x18\x01\x12\x16\n\tcertainty\x18\x02 \x01(\x01H\x00\x88\x01\x01\x12\x15\n\x08\x64istance\x18\x03 \x01(\x01H\x01\x88\x01\x01\x12\x18\n\x0cvector_bytes\x18\x04 \x01(\x0c\x42\x02\x18\x01\x12\x1a\n\x0etarget_vectors\x18\x05 \x03(\tB\x02\x18\x01\x12%\n\x07targets\x18\x06 \x01(\x0b\x32\x14.weaviate.v1.Targets\x12K\n\x11vector_per_target\x18\x07 \x03(\x0b\x32,.weaviate.v1.NearVector.VectorPerTargetEntryB\x02\x18\x01\x12\x38\n\x12vector_for_targets\x18\x08 \x03(\x0b\x32\x1c.weaviate.v1.VectorForTarget\x12%\n\x07vectors\x18\t \x03(\x0b\x32\x14.weaviate.v1.Vectors\x12.\n\tselection\x18\n \x01(\x0b\x32\x16.weaviate.v1.SelectionH\x02\x88\x01\x01\x1a\x36\n\x14VectorPerTargetEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x0c:\x02\x38\x01\x42\x0c\n\n_certaintyB\x0b\n\t_distanceB\x0c\n\n_selection\"\xe3\x01\n\nNearObject\x12\n\n\x02id\x18\x01 \x01(\t\x12\x16\n\tcertainty\x18\x02 \x01(\x01H\x00\x88\x01\x01\x12\x15\n\x08\x64istance\x18\x03 \x01(\x01H\x01\x88\x01\x01\x12\x1a\n\x0etarget_vectors\x18\x04 \x03(\tB\x02\x18\x01\x12%\n\x07targets\x18\x05 \x01(\x0b\x32\x14.weaviate.v1.Targets\x12.\n\tselection\x18\x06 \x01(\x0b\x32\x16.weaviate.v1.SelectionH\x02\x88\x01\x01\x42\x0c\n\n_certaintyB\x0b\n\t_distanceB\x0c\n\n_selection\"\xae\x03\n\x0eNearTextSearch\x12\r\n\x05query\x18\x01 \x03(\t\x12\x16\n\tcertainty\x18\x02 \x01(\x01H\x00\x88\x01\x01\x12\x15\n\x08\x64istance\x18\x03 \x01(\x01H\x01\x88\x01\x01\x12\x36\n\x07move_to\x18\x04 \x01(\x0b\x32 .weaviate.v1.NearTextSearch.MoveH\x02\x88\x01\x01\x12\x38\n\tmove_away\x18\x05 \x01(\x0b\x32 .weaviate.v1.NearTextSearch.MoveH\x03\x88\x01\x01\x12\x1a\n\x0etarget_vectors\x18\x06 \x03(\tB\x02\x18\x01\x12%\n\x07targets\x18\x07 \x01(\x0b\x32\x14.weaviate.v1.Targets\x12.\n\tselection\x18\x08 \x01(\x0b\x32\x16.weaviate.v1.SelectionH\x04\x88\x01\x01\x1a\x36\n\x04Move\x12\r\n\x05\x66orce\x18\x01 \x01(\x02\x12\x10\n\x08\x63oncepts\x18\x02 \x03(\t\x12\r\n\x05uuids\x18\x03 \x03(\tB\x0c\n\n_certaintyB\x0b\n\t_distanceB\n\n\x08_move_toB\x0c\n\n_move_awayB\x0c\n\n_selection\"\xeb\x01\n\x0fNearImageSearch\x12\r\n\x05image\x18\x01 \x01(\t\x12\x16\n\tcertainty\x18\x02 \x01(\x01H\x00\x88\x01\x01\x12\x15\n\x08\x64istance\x18\x03 \x01(\x01H\x01\x88\x01\x01\x12\x1a\n\x0etarget_vectors\x18\x04 \x03(\tB\x02\x18\x01\x12%\n\x07targets\x18\x05 \x01(\x0b\x32\x14.weaviate.v1.Targets\x12.\n\tselection\x18\x06 \x01(\x0b\x32\x16.weaviate.v1.SelectionH\x02\x88\x01\x01\x42\x0c\n\n_certaintyB\x0b\n\t_distanceB\x0c\n\n_selection\"\xeb\x01\n\x0fNearAudioSearch\x12\r\n\x05\x61udio\x18\x01 \x01(\t\x12\x16\n\tcertainty\x18\x02 \x01(\x01H\x00\x88\x01\x01\x12\x15\n\x08\x64istance\x18\x03 \x01(\x01H\x01\x88\x01\x01\x12\x1a\n\x0etarget_vectors\x18\x04 \x03(\tB\x02\x18\x01\x12%\n\x07targets\x18\x05 \x01(\x0b\x32\x14.weaviate.v1.Targets\x12.\n\tselection\x18\x06 \x01(\x0b\x32\x16.weaviate.v1.SelectionH\x02\x88\x01\x01\x42\x0c\n\n_certaintyB\x0b\n\t_distanceB\x0c\n\n_selection\"\xeb\x01\n\x0fNearVideoSearch\x12\r\n\x05video\x18\x01 \x01(\t\x12\x16\n\tcertainty\x18\x02 \x01(\x01H\x00\x88\x01\x01\x12\x15\n\x08\x64istance\x18\x03 \x01(\x01H\x01\x88\x01\x01\x12\x1a\n\x0etarget_vectors\x18\x04 \x03(\tB\x02\x18\x01\x12%\n\x07targets\x18\x05 \x01(\x0b\x32\x14.weaviate.v1.Targets\x12.\n\tselection\x18\x06 \x01(\x0b\x32\x16.weaviate.v1.SelectionH\x02\x88\x01\x01\x42\x0c\n\n_certaintyB\x0b\n\t_distanceB\x0c\n\n_selection\"\xeb\x01\n\x0fNearDepthSearch\x12\r\n\x05\x64\x65pth\x18\x01 \x01(\t\x12\x16\n\tcertainty\x18\x02 \x01(\x01H\x00\x88\x01\x01\x12\x15\n\x08\x64istance\x18\x03 \x01(\x01H\x01\x88\x01\x01\x12\x1a\n\x0etarget_vectors\x18\x04 \x03(\tB\x02\x18\x01\x12%\n\x07targets\x18\x05 \x01(\x0b\x32\x14.weaviate.v1.Targets\x12.\n\tselection\x18\x06 \x01(\x0b\x32\x16.weaviate.v1.SelectionH\x02\x88\x01\x01\x42\x0c\n\n_certaintyB\x0b\n\t_distanceB\x0c\n\n_selection\"\xef\x01\n\x11NearThermalSearch\x12\x0f\n\x07thermal\x18\x01 \x01(\t\x12\x16\n\tcertainty\x18\x02 \x01(\x01H\x00\x88\x01\x01\x12\x15\n\x08\x64istance\x18\x03 \x01(\x01H\x01\x88\x01\x01\x12\x1a\n\x0etarget_vectors\x18\x04 \x03(\tB\x02\x18\x01\x12%\n\x07targets\x18\x05 \x01(\x0b\x32\x14.weaviate.v1.Targets\x12.\n\tselection\x18\x06 \x01(\x0b\x32\x16.weaviate.v1.SelectionH\x02\x88\x01\x01\x42\x0c\n\n_certaintyB\x0b\n\t_distanceB\x0c\n\n_selection\"\xe7\x01\n\rNearIMUSearch\x12\x0b\n\x03imu\x18\x01 \x01(\t\x12\x16\n\tcertainty\x18\x02 \x01(\x01H\x00\x88\x01\x01\x12\x15\n\x08\x64istance\x18\x03 \x01(\x01H\x01\x88\x01\x01\x12\x1a\n\x0etarget_vectors\x18\x04 \x03(\tB\x02\x18\x01\x12%\n\x07targets\x18\x05 \x01(\x0b\x32\x14.weaviate.v1.Targets\x12.\n\tselection\x18\x06 \x01(\x0b\x32\x16.weaviate.v1.SelectionH\x02\x88\x01\x01\x42\x0c\n\n_certaintyB\x0b\n\t_distanceB\x0c\n\n_selection\"\x7f\n\x04\x42M25\x12\r\n\x05query\x18\x01 \x01(\t\x12\x12\n\nproperties\x18\x02 \x03(\t\x12@\n\x0fsearch_operator\x18\x03 \x01(\x0b\x32\".weaviate.v1.SearchOperatorOptionsH\x00\x88\x01\x01\x42\x12\n\x10_search_operator*\xee\x01\n\x11\x43ombinationMethod\x12\"\n\x1e\x43OMBINATION_METHOD_UNSPECIFIED\x10\x00\x12\x1f\n\x1b\x43OMBINATION_METHOD_TYPE_SUM\x10\x01\x12\x1f\n\x1b\x43OMBINATION_METHOD_TYPE_MIN\x10\x02\x12#\n\x1f\x43OMBINATION_METHOD_TYPE_AVERAGE\x10\x03\x12*\n&COMBINATION_METHOD_TYPE_RELATIVE_SCORE\x10\x04\x12\"\n\x1e\x43OMBINATION_METHOD_TYPE_MANUAL\x10\x05\x42t\n#io.weaviate.client.grpc.protocol.v1B\x17WeaviateProtoBaseSearchZ4github.com/weaviate/weaviate/grpc/generated;protocolb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -59,44 +59,48 @@ _globals['_NEARTHERMALSEARCH'].fields_by_name['target_vectors']._serialized_options = b'\030\001' _globals['_NEARIMUSEARCH'].fields_by_name['target_vectors']._loaded_options = None _globals['_NEARIMUSEARCH'].fields_by_name['target_vectors']._serialized_options = b'\030\001' - _globals['_COMBINATIONMETHOD']._serialized_start=3408 - _globals['_COMBINATIONMETHOD']._serialized_end=3646 + _globals['_COMBINATIONMETHOD']._serialized_start=4169 + _globals['_COMBINATIONMETHOD']._serialized_end=4407 _globals['_WEIGHTSFORTARGET']._serialized_start=52 _globals['_WEIGHTSFORTARGET']._serialized_end=102 _globals['_TARGETS']._serialized_start=105 _globals['_TARGETS']._serialized_end=257 _globals['_VECTORFORTARGET']._serialized_start=259 _globals['_VECTORFORTARGET']._serialized_end=355 - _globals['_SEARCHOPERATOROPTIONS']._serialized_start=358 - _globals['_SEARCHOPERATOROPTIONS']._serialized_end=583 - _globals['_SEARCHOPERATOROPTIONS_OPERATOR']._serialized_start=484 - _globals['_SEARCHOPERATOROPTIONS_OPERATOR']._serialized_end=555 - _globals['_HYBRID']._serialized_start=586 - _globals['_HYBRID']._serialized_end=1249 - _globals['_HYBRID_FUSIONTYPE']._serialized_start=1098 - _globals['_HYBRID_FUSIONTYPE']._serialized_end=1195 - _globals['_NEARVECTOR']._serialized_start=1252 - _globals['_NEARVECTOR']._serialized_end=1681 - _globals['_NEARVECTOR_VECTORPERTARGETENTRY']._serialized_start=1600 - _globals['_NEARVECTOR_VECTORPERTARGETENTRY']._serialized_end=1654 - _globals['_NEAROBJECT']._serialized_start=1684 - _globals['_NEAROBJECT']._serialized_end=1849 - _globals['_NEARTEXTSEARCH']._serialized_start=1852 - _globals['_NEARTEXTSEARCH']._serialized_end=2220 - _globals['_NEARTEXTSEARCH_MOVE']._serialized_start=2113 - _globals['_NEARTEXTSEARCH_MOVE']._serialized_end=2167 - _globals['_NEARIMAGESEARCH']._serialized_start=2223 - _globals['_NEARIMAGESEARCH']._serialized_end=2396 - _globals['_NEARAUDIOSEARCH']._serialized_start=2399 - _globals['_NEARAUDIOSEARCH']._serialized_end=2572 - _globals['_NEARVIDEOSEARCH']._serialized_start=2575 - _globals['_NEARVIDEOSEARCH']._serialized_end=2748 - _globals['_NEARDEPTHSEARCH']._serialized_start=2751 - _globals['_NEARDEPTHSEARCH']._serialized_end=2924 - _globals['_NEARTHERMALSEARCH']._serialized_start=2927 - _globals['_NEARTHERMALSEARCH']._serialized_end=3104 - _globals['_NEARIMUSEARCH']._serialized_start=3107 - _globals['_NEARIMUSEARCH']._serialized_end=3276 - _globals['_BM25']._serialized_start=3278 - _globals['_BM25']._serialized_end=3405 + _globals['_SELECTION']._serialized_start=358 + _globals['_SELECTION']._serialized_end=496 + _globals['_SELECTION_MMR']._serialized_start=414 + _globals['_SELECTION_MMR']._serialized_end=483 + _globals['_SEARCHOPERATOROPTIONS']._serialized_start=499 + _globals['_SEARCHOPERATOROPTIONS']._serialized_end=724 + _globals['_SEARCHOPERATOROPTIONS_OPERATOR']._serialized_start=625 + _globals['_SEARCHOPERATOROPTIONS_OPERATOR']._serialized_end=696 + _globals['_HYBRID']._serialized_start=727 + _globals['_HYBRID']._serialized_end=1452 + _globals['_HYBRID_FUSIONTYPE']._serialized_start=1287 + _globals['_HYBRID_FUSIONTYPE']._serialized_end=1384 + _globals['_NEARVECTOR']._serialized_start=1455 + _globals['_NEARVECTOR']._serialized_end=1946 + _globals['_NEARVECTOR_VECTORPERTARGETENTRY']._serialized_start=1851 + _globals['_NEARVECTOR_VECTORPERTARGETENTRY']._serialized_end=1905 + _globals['_NEAROBJECT']._serialized_start=1949 + _globals['_NEAROBJECT']._serialized_end=2176 + _globals['_NEARTEXTSEARCH']._serialized_start=2179 + _globals['_NEARTEXTSEARCH']._serialized_end=2609 + _globals['_NEARTEXTSEARCH_MOVE']._serialized_start=2488 + _globals['_NEARTEXTSEARCH_MOVE']._serialized_end=2542 + _globals['_NEARIMAGESEARCH']._serialized_start=2612 + _globals['_NEARIMAGESEARCH']._serialized_end=2847 + _globals['_NEARAUDIOSEARCH']._serialized_start=2850 + _globals['_NEARAUDIOSEARCH']._serialized_end=3085 + _globals['_NEARVIDEOSEARCH']._serialized_start=3088 + _globals['_NEARVIDEOSEARCH']._serialized_end=3323 + _globals['_NEARDEPTHSEARCH']._serialized_start=3326 + _globals['_NEARDEPTHSEARCH']._serialized_end=3561 + _globals['_NEARTHERMALSEARCH']._serialized_start=3564 + _globals['_NEARTHERMALSEARCH']._serialized_end=3803 + _globals['_NEARIMUSEARCH']._serialized_start=3806 + _globals['_NEARIMUSEARCH']._serialized_end=4037 + _globals['_BM25']._serialized_start=4039 + _globals['_BM25']._serialized_end=4166 # @@protoc_insertion_point(module_scope) diff --git a/weaviate/proto/v1/v5261/v1/base_search_pb2.pyi b/weaviate/proto/v1/v5261/v1/base_search_pb2.pyi index b89f04bfe..5c8c05546 100644 --- a/weaviate/proto/v1/v5261/v1/base_search_pb2.pyi +++ b/weaviate/proto/v1/v5261/v1/base_search_pb2.pyi @@ -50,6 +50,19 @@ class VectorForTarget(_message.Message): vectors: _containers.RepeatedCompositeFieldContainer[_base_pb2.Vectors] def __init__(self, name: _Optional[str] = ..., vector_bytes: _Optional[bytes] = ..., vectors: _Optional[_Iterable[_Union[_base_pb2.Vectors, _Mapping]]] = ...) -> None: ... +class Selection(_message.Message): + __slots__ = ("mmr",) + class MMR(_message.Message): + __slots__ = ("limit", "balance") + LIMIT_FIELD_NUMBER: _ClassVar[int] + BALANCE_FIELD_NUMBER: _ClassVar[int] + limit: int + balance: float + def __init__(self, limit: _Optional[int] = ..., balance: _Optional[float] = ...) -> None: ... + MMR_FIELD_NUMBER: _ClassVar[int] + mmr: Selection.MMR + def __init__(self, mmr: _Optional[_Union[Selection.MMR, _Mapping]] = ...) -> None: ... + class SearchOperatorOptions(_message.Message): __slots__ = ("operator", "minimum_or_tokens_match") class Operator(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): @@ -67,7 +80,7 @@ class SearchOperatorOptions(_message.Message): def __init__(self, operator: _Optional[_Union[SearchOperatorOptions.Operator, str]] = ..., minimum_or_tokens_match: _Optional[int] = ...) -> None: ... class Hybrid(_message.Message): - __slots__ = ("query", "properties", "vector", "alpha", "fusion_type", "vector_bytes", "target_vectors", "near_text", "near_vector", "targets", "bm25_search_operator", "alpha_param", "use_alpha_param", "vector_distance", "vectors") + __slots__ = ("query", "properties", "vector", "alpha", "fusion_type", "vector_bytes", "target_vectors", "near_text", "near_vector", "targets", "bm25_search_operator", "alpha_param", "use_alpha_param", "selection", "vector_distance", "vectors") class FusionType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): __slots__ = () FUSION_TYPE_UNSPECIFIED: _ClassVar[Hybrid.FusionType] @@ -89,6 +102,7 @@ class Hybrid(_message.Message): BM25_SEARCH_OPERATOR_FIELD_NUMBER: _ClassVar[int] ALPHA_PARAM_FIELD_NUMBER: _ClassVar[int] USE_ALPHA_PARAM_FIELD_NUMBER: _ClassVar[int] + SELECTION_FIELD_NUMBER: _ClassVar[int] VECTOR_DISTANCE_FIELD_NUMBER: _ClassVar[int] VECTORS_FIELD_NUMBER: _ClassVar[int] query: str @@ -104,12 +118,13 @@ class Hybrid(_message.Message): bm25_search_operator: SearchOperatorOptions alpha_param: float use_alpha_param: bool + selection: Selection vector_distance: float vectors: _containers.RepeatedCompositeFieldContainer[_base_pb2.Vectors] - def __init__(self, query: _Optional[str] = ..., properties: _Optional[_Iterable[str]] = ..., vector: _Optional[_Iterable[float]] = ..., alpha: _Optional[float] = ..., fusion_type: _Optional[_Union[Hybrid.FusionType, str]] = ..., vector_bytes: _Optional[bytes] = ..., target_vectors: _Optional[_Iterable[str]] = ..., near_text: _Optional[_Union[NearTextSearch, _Mapping]] = ..., near_vector: _Optional[_Union[NearVector, _Mapping]] = ..., targets: _Optional[_Union[Targets, _Mapping]] = ..., bm25_search_operator: _Optional[_Union[SearchOperatorOptions, _Mapping]] = ..., alpha_param: _Optional[float] = ..., use_alpha_param: bool = ..., vector_distance: _Optional[float] = ..., vectors: _Optional[_Iterable[_Union[_base_pb2.Vectors, _Mapping]]] = ...) -> None: ... + def __init__(self, query: _Optional[str] = ..., properties: _Optional[_Iterable[str]] = ..., vector: _Optional[_Iterable[float]] = ..., alpha: _Optional[float] = ..., fusion_type: _Optional[_Union[Hybrid.FusionType, str]] = ..., vector_bytes: _Optional[bytes] = ..., target_vectors: _Optional[_Iterable[str]] = ..., near_text: _Optional[_Union[NearTextSearch, _Mapping]] = ..., near_vector: _Optional[_Union[NearVector, _Mapping]] = ..., targets: _Optional[_Union[Targets, _Mapping]] = ..., bm25_search_operator: _Optional[_Union[SearchOperatorOptions, _Mapping]] = ..., alpha_param: _Optional[float] = ..., use_alpha_param: bool = ..., selection: _Optional[_Union[Selection, _Mapping]] = ..., vector_distance: _Optional[float] = ..., vectors: _Optional[_Iterable[_Union[_base_pb2.Vectors, _Mapping]]] = ...) -> None: ... class NearVector(_message.Message): - __slots__ = ("vector", "certainty", "distance", "vector_bytes", "target_vectors", "targets", "vector_per_target", "vector_for_targets", "vectors") + __slots__ = ("vector", "certainty", "distance", "vector_bytes", "target_vectors", "targets", "vector_per_target", "vector_for_targets", "vectors", "selection") class VectorPerTargetEntry(_message.Message): __slots__ = ("key", "value") KEY_FIELD_NUMBER: _ClassVar[int] @@ -126,6 +141,7 @@ class NearVector(_message.Message): VECTOR_PER_TARGET_FIELD_NUMBER: _ClassVar[int] VECTOR_FOR_TARGETS_FIELD_NUMBER: _ClassVar[int] VECTORS_FIELD_NUMBER: _ClassVar[int] + SELECTION_FIELD_NUMBER: _ClassVar[int] vector: _containers.RepeatedScalarFieldContainer[float] certainty: float distance: float @@ -135,24 +151,27 @@ class NearVector(_message.Message): vector_per_target: _containers.ScalarMap[str, bytes] vector_for_targets: _containers.RepeatedCompositeFieldContainer[VectorForTarget] vectors: _containers.RepeatedCompositeFieldContainer[_base_pb2.Vectors] - def __init__(self, vector: _Optional[_Iterable[float]] = ..., certainty: _Optional[float] = ..., distance: _Optional[float] = ..., vector_bytes: _Optional[bytes] = ..., target_vectors: _Optional[_Iterable[str]] = ..., targets: _Optional[_Union[Targets, _Mapping]] = ..., vector_per_target: _Optional[_Mapping[str, bytes]] = ..., vector_for_targets: _Optional[_Iterable[_Union[VectorForTarget, _Mapping]]] = ..., vectors: _Optional[_Iterable[_Union[_base_pb2.Vectors, _Mapping]]] = ...) -> None: ... + selection: Selection + def __init__(self, vector: _Optional[_Iterable[float]] = ..., certainty: _Optional[float] = ..., distance: _Optional[float] = ..., vector_bytes: _Optional[bytes] = ..., target_vectors: _Optional[_Iterable[str]] = ..., targets: _Optional[_Union[Targets, _Mapping]] = ..., vector_per_target: _Optional[_Mapping[str, bytes]] = ..., vector_for_targets: _Optional[_Iterable[_Union[VectorForTarget, _Mapping]]] = ..., vectors: _Optional[_Iterable[_Union[_base_pb2.Vectors, _Mapping]]] = ..., selection: _Optional[_Union[Selection, _Mapping]] = ...) -> None: ... class NearObject(_message.Message): - __slots__ = ("id", "certainty", "distance", "target_vectors", "targets") + __slots__ = ("id", "certainty", "distance", "target_vectors", "targets", "selection") ID_FIELD_NUMBER: _ClassVar[int] CERTAINTY_FIELD_NUMBER: _ClassVar[int] DISTANCE_FIELD_NUMBER: _ClassVar[int] TARGET_VECTORS_FIELD_NUMBER: _ClassVar[int] TARGETS_FIELD_NUMBER: _ClassVar[int] + SELECTION_FIELD_NUMBER: _ClassVar[int] id: str certainty: float distance: float target_vectors: _containers.RepeatedScalarFieldContainer[str] targets: Targets - def __init__(self, id: _Optional[str] = ..., certainty: _Optional[float] = ..., distance: _Optional[float] = ..., target_vectors: _Optional[_Iterable[str]] = ..., targets: _Optional[_Union[Targets, _Mapping]] = ...) -> None: ... + selection: Selection + def __init__(self, id: _Optional[str] = ..., certainty: _Optional[float] = ..., distance: _Optional[float] = ..., target_vectors: _Optional[_Iterable[str]] = ..., targets: _Optional[_Union[Targets, _Mapping]] = ..., selection: _Optional[_Union[Selection, _Mapping]] = ...) -> None: ... class NearTextSearch(_message.Message): - __slots__ = ("query", "certainty", "distance", "move_to", "move_away", "target_vectors", "targets") + __slots__ = ("query", "certainty", "distance", "move_to", "move_away", "target_vectors", "targets", "selection") class Move(_message.Message): __slots__ = ("force", "concepts", "uuids") FORCE_FIELD_NUMBER: _ClassVar[int] @@ -169,6 +188,7 @@ class NearTextSearch(_message.Message): MOVE_AWAY_FIELD_NUMBER: _ClassVar[int] TARGET_VECTORS_FIELD_NUMBER: _ClassVar[int] TARGETS_FIELD_NUMBER: _ClassVar[int] + SELECTION_FIELD_NUMBER: _ClassVar[int] query: _containers.RepeatedScalarFieldContainer[str] certainty: float distance: float @@ -176,91 +196,104 @@ class NearTextSearch(_message.Message): move_away: NearTextSearch.Move target_vectors: _containers.RepeatedScalarFieldContainer[str] targets: Targets - def __init__(self, query: _Optional[_Iterable[str]] = ..., certainty: _Optional[float] = ..., distance: _Optional[float] = ..., move_to: _Optional[_Union[NearTextSearch.Move, _Mapping]] = ..., move_away: _Optional[_Union[NearTextSearch.Move, _Mapping]] = ..., target_vectors: _Optional[_Iterable[str]] = ..., targets: _Optional[_Union[Targets, _Mapping]] = ...) -> None: ... + selection: Selection + def __init__(self, query: _Optional[_Iterable[str]] = ..., certainty: _Optional[float] = ..., distance: _Optional[float] = ..., move_to: _Optional[_Union[NearTextSearch.Move, _Mapping]] = ..., move_away: _Optional[_Union[NearTextSearch.Move, _Mapping]] = ..., target_vectors: _Optional[_Iterable[str]] = ..., targets: _Optional[_Union[Targets, _Mapping]] = ..., selection: _Optional[_Union[Selection, _Mapping]] = ...) -> None: ... class NearImageSearch(_message.Message): - __slots__ = ("image", "certainty", "distance", "target_vectors", "targets") + __slots__ = ("image", "certainty", "distance", "target_vectors", "targets", "selection") IMAGE_FIELD_NUMBER: _ClassVar[int] CERTAINTY_FIELD_NUMBER: _ClassVar[int] DISTANCE_FIELD_NUMBER: _ClassVar[int] TARGET_VECTORS_FIELD_NUMBER: _ClassVar[int] TARGETS_FIELD_NUMBER: _ClassVar[int] + SELECTION_FIELD_NUMBER: _ClassVar[int] image: str certainty: float distance: float target_vectors: _containers.RepeatedScalarFieldContainer[str] targets: Targets - def __init__(self, image: _Optional[str] = ..., certainty: _Optional[float] = ..., distance: _Optional[float] = ..., target_vectors: _Optional[_Iterable[str]] = ..., targets: _Optional[_Union[Targets, _Mapping]] = ...) -> None: ... + selection: Selection + def __init__(self, image: _Optional[str] = ..., certainty: _Optional[float] = ..., distance: _Optional[float] = ..., target_vectors: _Optional[_Iterable[str]] = ..., targets: _Optional[_Union[Targets, _Mapping]] = ..., selection: _Optional[_Union[Selection, _Mapping]] = ...) -> None: ... class NearAudioSearch(_message.Message): - __slots__ = ("audio", "certainty", "distance", "target_vectors", "targets") + __slots__ = ("audio", "certainty", "distance", "target_vectors", "targets", "selection") AUDIO_FIELD_NUMBER: _ClassVar[int] CERTAINTY_FIELD_NUMBER: _ClassVar[int] DISTANCE_FIELD_NUMBER: _ClassVar[int] TARGET_VECTORS_FIELD_NUMBER: _ClassVar[int] TARGETS_FIELD_NUMBER: _ClassVar[int] + SELECTION_FIELD_NUMBER: _ClassVar[int] audio: str certainty: float distance: float target_vectors: _containers.RepeatedScalarFieldContainer[str] targets: Targets - def __init__(self, audio: _Optional[str] = ..., certainty: _Optional[float] = ..., distance: _Optional[float] = ..., target_vectors: _Optional[_Iterable[str]] = ..., targets: _Optional[_Union[Targets, _Mapping]] = ...) -> None: ... + selection: Selection + def __init__(self, audio: _Optional[str] = ..., certainty: _Optional[float] = ..., distance: _Optional[float] = ..., target_vectors: _Optional[_Iterable[str]] = ..., targets: _Optional[_Union[Targets, _Mapping]] = ..., selection: _Optional[_Union[Selection, _Mapping]] = ...) -> None: ... class NearVideoSearch(_message.Message): - __slots__ = ("video", "certainty", "distance", "target_vectors", "targets") + __slots__ = ("video", "certainty", "distance", "target_vectors", "targets", "selection") VIDEO_FIELD_NUMBER: _ClassVar[int] CERTAINTY_FIELD_NUMBER: _ClassVar[int] DISTANCE_FIELD_NUMBER: _ClassVar[int] TARGET_VECTORS_FIELD_NUMBER: _ClassVar[int] TARGETS_FIELD_NUMBER: _ClassVar[int] + SELECTION_FIELD_NUMBER: _ClassVar[int] video: str certainty: float distance: float target_vectors: _containers.RepeatedScalarFieldContainer[str] targets: Targets - def __init__(self, video: _Optional[str] = ..., certainty: _Optional[float] = ..., distance: _Optional[float] = ..., target_vectors: _Optional[_Iterable[str]] = ..., targets: _Optional[_Union[Targets, _Mapping]] = ...) -> None: ... + selection: Selection + def __init__(self, video: _Optional[str] = ..., certainty: _Optional[float] = ..., distance: _Optional[float] = ..., target_vectors: _Optional[_Iterable[str]] = ..., targets: _Optional[_Union[Targets, _Mapping]] = ..., selection: _Optional[_Union[Selection, _Mapping]] = ...) -> None: ... class NearDepthSearch(_message.Message): - __slots__ = ("depth", "certainty", "distance", "target_vectors", "targets") + __slots__ = ("depth", "certainty", "distance", "target_vectors", "targets", "selection") DEPTH_FIELD_NUMBER: _ClassVar[int] CERTAINTY_FIELD_NUMBER: _ClassVar[int] DISTANCE_FIELD_NUMBER: _ClassVar[int] TARGET_VECTORS_FIELD_NUMBER: _ClassVar[int] TARGETS_FIELD_NUMBER: _ClassVar[int] + SELECTION_FIELD_NUMBER: _ClassVar[int] depth: str certainty: float distance: float target_vectors: _containers.RepeatedScalarFieldContainer[str] targets: Targets - def __init__(self, depth: _Optional[str] = ..., certainty: _Optional[float] = ..., distance: _Optional[float] = ..., target_vectors: _Optional[_Iterable[str]] = ..., targets: _Optional[_Union[Targets, _Mapping]] = ...) -> None: ... + selection: Selection + def __init__(self, depth: _Optional[str] = ..., certainty: _Optional[float] = ..., distance: _Optional[float] = ..., target_vectors: _Optional[_Iterable[str]] = ..., targets: _Optional[_Union[Targets, _Mapping]] = ..., selection: _Optional[_Union[Selection, _Mapping]] = ...) -> None: ... class NearThermalSearch(_message.Message): - __slots__ = ("thermal", "certainty", "distance", "target_vectors", "targets") + __slots__ = ("thermal", "certainty", "distance", "target_vectors", "targets", "selection") THERMAL_FIELD_NUMBER: _ClassVar[int] CERTAINTY_FIELD_NUMBER: _ClassVar[int] DISTANCE_FIELD_NUMBER: _ClassVar[int] TARGET_VECTORS_FIELD_NUMBER: _ClassVar[int] TARGETS_FIELD_NUMBER: _ClassVar[int] + SELECTION_FIELD_NUMBER: _ClassVar[int] thermal: str certainty: float distance: float target_vectors: _containers.RepeatedScalarFieldContainer[str] targets: Targets - def __init__(self, thermal: _Optional[str] = ..., certainty: _Optional[float] = ..., distance: _Optional[float] = ..., target_vectors: _Optional[_Iterable[str]] = ..., targets: _Optional[_Union[Targets, _Mapping]] = ...) -> None: ... + selection: Selection + def __init__(self, thermal: _Optional[str] = ..., certainty: _Optional[float] = ..., distance: _Optional[float] = ..., target_vectors: _Optional[_Iterable[str]] = ..., targets: _Optional[_Union[Targets, _Mapping]] = ..., selection: _Optional[_Union[Selection, _Mapping]] = ...) -> None: ... class NearIMUSearch(_message.Message): - __slots__ = ("imu", "certainty", "distance", "target_vectors", "targets") + __slots__ = ("imu", "certainty", "distance", "target_vectors", "targets", "selection") IMU_FIELD_NUMBER: _ClassVar[int] CERTAINTY_FIELD_NUMBER: _ClassVar[int] DISTANCE_FIELD_NUMBER: _ClassVar[int] TARGET_VECTORS_FIELD_NUMBER: _ClassVar[int] TARGETS_FIELD_NUMBER: _ClassVar[int] + SELECTION_FIELD_NUMBER: _ClassVar[int] imu: str certainty: float distance: float target_vectors: _containers.RepeatedScalarFieldContainer[str] targets: Targets - def __init__(self, imu: _Optional[str] = ..., certainty: _Optional[float] = ..., distance: _Optional[float] = ..., target_vectors: _Optional[_Iterable[str]] = ..., targets: _Optional[_Union[Targets, _Mapping]] = ...) -> None: ... + selection: Selection + def __init__(self, imu: _Optional[str] = ..., certainty: _Optional[float] = ..., distance: _Optional[float] = ..., target_vectors: _Optional[_Iterable[str]] = ..., targets: _Optional[_Union[Targets, _Mapping]] = ..., selection: _Optional[_Union[Selection, _Mapping]] = ...) -> None: ... class BM25(_message.Message): __slots__ = ("query", "properties", "search_operator") diff --git a/weaviate/proto/v1/v6300/v1/base_search_pb2.py b/weaviate/proto/v1/v6300/v1/base_search_pb2.py index 9a19ea0ec..c46a0d974 100644 --- a/weaviate/proto/v1/v6300/v1/base_search_pb2.py +++ b/weaviate/proto/v1/v6300/v1/base_search_pb2.py @@ -25,7 +25,7 @@ from weaviate.proto.v1.v6300.v1 import base_pb2 as v1_dot_base__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x14v1/base_search.proto\x12\x0bweaviate.v1\x1a\rv1/base.proto\"2\n\x10WeightsForTarget\x12\x0e\n\x06target\x18\x01 \x01(\t\x12\x0e\n\x06weight\x18\x02 \x01(\x02\"\x98\x01\n\x07Targets\x12\x16\n\x0etarget_vectors\x18\x01 \x03(\t\x12\x33\n\x0b\x63ombination\x18\x02 \x01(\x0e\x32\x1e.weaviate.v1.CombinationMethod\x12:\n\x13weights_for_targets\x18\x04 \x03(\x0b\x32\x1d.weaviate.v1.WeightsForTargetJ\x04\x08\x03\x10\x04\"`\n\x0fVectorForTarget\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x18\n\x0cvector_bytes\x18\x02 \x01(\x0c\x42\x02\x18\x01\x12%\n\x07vectors\x18\x03 \x03(\x0b\x32\x14.weaviate.v1.Vectors\"\xe1\x01\n\x15SearchOperatorOptions\x12=\n\x08operator\x18\x01 \x01(\x0e\x32+.weaviate.v1.SearchOperatorOptions.Operator\x12$\n\x17minimum_or_tokens_match\x18\x02 \x01(\x05H\x00\x88\x01\x01\"G\n\x08Operator\x12\x18\n\x14OPERATOR_UNSPECIFIED\x10\x00\x12\x0f\n\x0bOPERATOR_OR\x10\x01\x12\x10\n\x0cOPERATOR_AND\x10\x02\x42\x1a\n\x18_minimum_or_tokens_match\"\x97\x05\n\x06Hybrid\x12\r\n\x05query\x18\x01 \x01(\t\x12\x12\n\nproperties\x18\x02 \x03(\t\x12\x12\n\x06vector\x18\x03 \x03(\x02\x42\x02\x18\x01\x12\x11\n\x05\x61lpha\x18\x04 \x01(\x02\x42\x02\x18\x01\x12\x33\n\x0b\x66usion_type\x18\x05 \x01(\x0e\x32\x1e.weaviate.v1.Hybrid.FusionType\x12\x18\n\x0cvector_bytes\x18\x06 \x01(\x0c\x42\x02\x18\x01\x12\x1a\n\x0etarget_vectors\x18\x07 \x03(\tB\x02\x18\x01\x12.\n\tnear_text\x18\x08 \x01(\x0b\x32\x1b.weaviate.v1.NearTextSearch\x12,\n\x0bnear_vector\x18\t \x01(\x0b\x32\x17.weaviate.v1.NearVector\x12%\n\x07targets\x18\n \x01(\x0b\x32\x14.weaviate.v1.Targets\x12\x45\n\x14\x62m25_search_operator\x18\x0b \x01(\x0b\x32\".weaviate.v1.SearchOperatorOptionsH\x01\x88\x01\x01\x12\x18\n\x0b\x61lpha_param\x18\x0c \x01(\x02H\x02\x88\x01\x01\x12\x17\n\x0fuse_alpha_param\x18\r \x01(\x08\x12\x19\n\x0fvector_distance\x18\x14 \x01(\x02H\x00\x12%\n\x07vectors\x18\x15 \x03(\x0b\x32\x14.weaviate.v1.Vectors\"a\n\nFusionType\x12\x1b\n\x17\x46USION_TYPE_UNSPECIFIED\x10\x00\x12\x16\n\x12\x46USION_TYPE_RANKED\x10\x01\x12\x1e\n\x1a\x46USION_TYPE_RELATIVE_SCORE\x10\x02\x42\x0b\n\tthresholdB\x17\n\x15_bm25_search_operatorB\x0e\n\x0c_alpha_param\"\xad\x03\n\nNearVector\x12\x12\n\x06vector\x18\x01 \x03(\x02\x42\x02\x18\x01\x12\x16\n\tcertainty\x18\x02 \x01(\x01H\x00\x88\x01\x01\x12\x15\n\x08\x64istance\x18\x03 \x01(\x01H\x01\x88\x01\x01\x12\x18\n\x0cvector_bytes\x18\x04 \x01(\x0c\x42\x02\x18\x01\x12\x1a\n\x0etarget_vectors\x18\x05 \x03(\tB\x02\x18\x01\x12%\n\x07targets\x18\x06 \x01(\x0b\x32\x14.weaviate.v1.Targets\x12K\n\x11vector_per_target\x18\x07 \x03(\x0b\x32,.weaviate.v1.NearVector.VectorPerTargetEntryB\x02\x18\x01\x12\x38\n\x12vector_for_targets\x18\x08 \x03(\x0b\x32\x1c.weaviate.v1.VectorForTarget\x12%\n\x07vectors\x18\t \x03(\x0b\x32\x14.weaviate.v1.Vectors\x1a\x36\n\x14VectorPerTargetEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x0c:\x02\x38\x01\x42\x0c\n\n_certaintyB\x0b\n\t_distance\"\xa5\x01\n\nNearObject\x12\n\n\x02id\x18\x01 \x01(\t\x12\x16\n\tcertainty\x18\x02 \x01(\x01H\x00\x88\x01\x01\x12\x15\n\x08\x64istance\x18\x03 \x01(\x01H\x01\x88\x01\x01\x12\x1a\n\x0etarget_vectors\x18\x04 \x03(\tB\x02\x18\x01\x12%\n\x07targets\x18\x05 \x01(\x0b\x32\x14.weaviate.v1.TargetsB\x0c\n\n_certaintyB\x0b\n\t_distance\"\xf0\x02\n\x0eNearTextSearch\x12\r\n\x05query\x18\x01 \x03(\t\x12\x16\n\tcertainty\x18\x02 \x01(\x01H\x00\x88\x01\x01\x12\x15\n\x08\x64istance\x18\x03 \x01(\x01H\x01\x88\x01\x01\x12\x36\n\x07move_to\x18\x04 \x01(\x0b\x32 .weaviate.v1.NearTextSearch.MoveH\x02\x88\x01\x01\x12\x38\n\tmove_away\x18\x05 \x01(\x0b\x32 .weaviate.v1.NearTextSearch.MoveH\x03\x88\x01\x01\x12\x1a\n\x0etarget_vectors\x18\x06 \x03(\tB\x02\x18\x01\x12%\n\x07targets\x18\x07 \x01(\x0b\x32\x14.weaviate.v1.Targets\x1a\x36\n\x04Move\x12\r\n\x05\x66orce\x18\x01 \x01(\x02\x12\x10\n\x08\x63oncepts\x18\x02 \x03(\t\x12\r\n\x05uuids\x18\x03 \x03(\tB\x0c\n\n_certaintyB\x0b\n\t_distanceB\n\n\x08_move_toB\x0c\n\n_move_away\"\xad\x01\n\x0fNearImageSearch\x12\r\n\x05image\x18\x01 \x01(\t\x12\x16\n\tcertainty\x18\x02 \x01(\x01H\x00\x88\x01\x01\x12\x15\n\x08\x64istance\x18\x03 \x01(\x01H\x01\x88\x01\x01\x12\x1a\n\x0etarget_vectors\x18\x04 \x03(\tB\x02\x18\x01\x12%\n\x07targets\x18\x05 \x01(\x0b\x32\x14.weaviate.v1.TargetsB\x0c\n\n_certaintyB\x0b\n\t_distance\"\xad\x01\n\x0fNearAudioSearch\x12\r\n\x05\x61udio\x18\x01 \x01(\t\x12\x16\n\tcertainty\x18\x02 \x01(\x01H\x00\x88\x01\x01\x12\x15\n\x08\x64istance\x18\x03 \x01(\x01H\x01\x88\x01\x01\x12\x1a\n\x0etarget_vectors\x18\x04 \x03(\tB\x02\x18\x01\x12%\n\x07targets\x18\x05 \x01(\x0b\x32\x14.weaviate.v1.TargetsB\x0c\n\n_certaintyB\x0b\n\t_distance\"\xad\x01\n\x0fNearVideoSearch\x12\r\n\x05video\x18\x01 \x01(\t\x12\x16\n\tcertainty\x18\x02 \x01(\x01H\x00\x88\x01\x01\x12\x15\n\x08\x64istance\x18\x03 \x01(\x01H\x01\x88\x01\x01\x12\x1a\n\x0etarget_vectors\x18\x04 \x03(\tB\x02\x18\x01\x12%\n\x07targets\x18\x05 \x01(\x0b\x32\x14.weaviate.v1.TargetsB\x0c\n\n_certaintyB\x0b\n\t_distance\"\xad\x01\n\x0fNearDepthSearch\x12\r\n\x05\x64\x65pth\x18\x01 \x01(\t\x12\x16\n\tcertainty\x18\x02 \x01(\x01H\x00\x88\x01\x01\x12\x15\n\x08\x64istance\x18\x03 \x01(\x01H\x01\x88\x01\x01\x12\x1a\n\x0etarget_vectors\x18\x04 \x03(\tB\x02\x18\x01\x12%\n\x07targets\x18\x05 \x01(\x0b\x32\x14.weaviate.v1.TargetsB\x0c\n\n_certaintyB\x0b\n\t_distance\"\xb1\x01\n\x11NearThermalSearch\x12\x0f\n\x07thermal\x18\x01 \x01(\t\x12\x16\n\tcertainty\x18\x02 \x01(\x01H\x00\x88\x01\x01\x12\x15\n\x08\x64istance\x18\x03 \x01(\x01H\x01\x88\x01\x01\x12\x1a\n\x0etarget_vectors\x18\x04 \x03(\tB\x02\x18\x01\x12%\n\x07targets\x18\x05 \x01(\x0b\x32\x14.weaviate.v1.TargetsB\x0c\n\n_certaintyB\x0b\n\t_distance\"\xa9\x01\n\rNearIMUSearch\x12\x0b\n\x03imu\x18\x01 \x01(\t\x12\x16\n\tcertainty\x18\x02 \x01(\x01H\x00\x88\x01\x01\x12\x15\n\x08\x64istance\x18\x03 \x01(\x01H\x01\x88\x01\x01\x12\x1a\n\x0etarget_vectors\x18\x04 \x03(\tB\x02\x18\x01\x12%\n\x07targets\x18\x05 \x01(\x0b\x32\x14.weaviate.v1.TargetsB\x0c\n\n_certaintyB\x0b\n\t_distance\"\x7f\n\x04\x42M25\x12\r\n\x05query\x18\x01 \x01(\t\x12\x12\n\nproperties\x18\x02 \x03(\t\x12@\n\x0fsearch_operator\x18\x03 \x01(\x0b\x32\".weaviate.v1.SearchOperatorOptionsH\x00\x88\x01\x01\x42\x12\n\x10_search_operator*\xee\x01\n\x11\x43ombinationMethod\x12\"\n\x1e\x43OMBINATION_METHOD_UNSPECIFIED\x10\x00\x12\x1f\n\x1b\x43OMBINATION_METHOD_TYPE_SUM\x10\x01\x12\x1f\n\x1b\x43OMBINATION_METHOD_TYPE_MIN\x10\x02\x12#\n\x1f\x43OMBINATION_METHOD_TYPE_AVERAGE\x10\x03\x12*\n&COMBINATION_METHOD_TYPE_RELATIVE_SCORE\x10\x04\x12\"\n\x1e\x43OMBINATION_METHOD_TYPE_MANUAL\x10\x05\x42t\n#io.weaviate.client.grpc.protocol.v1B\x17WeaviateProtoBaseSearchZ4github.com/weaviate/weaviate/grpc/generated;protocolb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x14v1/base_search.proto\x12\x0bweaviate.v1\x1a\rv1/base.proto\"2\n\x10WeightsForTarget\x12\x0e\n\x06target\x18\x01 \x01(\t\x12\x0e\n\x06weight\x18\x02 \x01(\x02\"\x98\x01\n\x07Targets\x12\x16\n\x0etarget_vectors\x18\x01 \x03(\t\x12\x33\n\x0b\x63ombination\x18\x02 \x01(\x0e\x32\x1e.weaviate.v1.CombinationMethod\x12:\n\x13weights_for_targets\x18\x04 \x03(\x0b\x32\x1d.weaviate.v1.WeightsForTargetJ\x04\x08\x03\x10\x04\"`\n\x0fVectorForTarget\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x18\n\x0cvector_bytes\x18\x02 \x01(\x0c\x42\x02\x18\x01\x12%\n\x07vectors\x18\x03 \x03(\x0b\x32\x14.weaviate.v1.Vectors\"\x8a\x01\n\tSelection\x12)\n\x03mmr\x18\x01 \x01(\x0b\x32\x1a.weaviate.v1.Selection.MMRH\x00\x1a\x45\n\x03MMR\x12\x12\n\x05limit\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x14\n\x07\x62\x61lance\x18\x02 \x01(\x02H\x01\x88\x01\x01\x42\x08\n\x06_limitB\n\n\x08_balanceB\x0b\n\tselection\"\xe1\x01\n\x15SearchOperatorOptions\x12=\n\x08operator\x18\x01 \x01(\x0e\x32+.weaviate.v1.SearchOperatorOptions.Operator\x12$\n\x17minimum_or_tokens_match\x18\x02 \x01(\x05H\x00\x88\x01\x01\"G\n\x08Operator\x12\x18\n\x14OPERATOR_UNSPECIFIED\x10\x00\x12\x0f\n\x0bOPERATOR_OR\x10\x01\x12\x10\n\x0cOPERATOR_AND\x10\x02\x42\x1a\n\x18_minimum_or_tokens_match\"\xd5\x05\n\x06Hybrid\x12\r\n\x05query\x18\x01 \x01(\t\x12\x12\n\nproperties\x18\x02 \x03(\t\x12\x12\n\x06vector\x18\x03 \x03(\x02\x42\x02\x18\x01\x12\x11\n\x05\x61lpha\x18\x04 \x01(\x02\x42\x02\x18\x01\x12\x33\n\x0b\x66usion_type\x18\x05 \x01(\x0e\x32\x1e.weaviate.v1.Hybrid.FusionType\x12\x18\n\x0cvector_bytes\x18\x06 \x01(\x0c\x42\x02\x18\x01\x12\x1a\n\x0etarget_vectors\x18\x07 \x03(\tB\x02\x18\x01\x12.\n\tnear_text\x18\x08 \x01(\x0b\x32\x1b.weaviate.v1.NearTextSearch\x12,\n\x0bnear_vector\x18\t \x01(\x0b\x32\x17.weaviate.v1.NearVector\x12%\n\x07targets\x18\n \x01(\x0b\x32\x14.weaviate.v1.Targets\x12\x45\n\x14\x62m25_search_operator\x18\x0b \x01(\x0b\x32\".weaviate.v1.SearchOperatorOptionsH\x01\x88\x01\x01\x12\x18\n\x0b\x61lpha_param\x18\x0c \x01(\x02H\x02\x88\x01\x01\x12\x17\n\x0fuse_alpha_param\x18\r \x01(\x08\x12.\n\tselection\x18\x0e \x01(\x0b\x32\x16.weaviate.v1.SelectionH\x03\x88\x01\x01\x12\x19\n\x0fvector_distance\x18\x14 \x01(\x02H\x00\x12%\n\x07vectors\x18\x15 \x03(\x0b\x32\x14.weaviate.v1.Vectors\"a\n\nFusionType\x12\x1b\n\x17\x46USION_TYPE_UNSPECIFIED\x10\x00\x12\x16\n\x12\x46USION_TYPE_RANKED\x10\x01\x12\x1e\n\x1a\x46USION_TYPE_RELATIVE_SCORE\x10\x02\x42\x0b\n\tthresholdB\x17\n\x15_bm25_search_operatorB\x0e\n\x0c_alpha_paramB\x0c\n\n_selection\"\xeb\x03\n\nNearVector\x12\x12\n\x06vector\x18\x01 \x03(\x02\x42\x02\x18\x01\x12\x16\n\tcertainty\x18\x02 \x01(\x01H\x00\x88\x01\x01\x12\x15\n\x08\x64istance\x18\x03 \x01(\x01H\x01\x88\x01\x01\x12\x18\n\x0cvector_bytes\x18\x04 \x01(\x0c\x42\x02\x18\x01\x12\x1a\n\x0etarget_vectors\x18\x05 \x03(\tB\x02\x18\x01\x12%\n\x07targets\x18\x06 \x01(\x0b\x32\x14.weaviate.v1.Targets\x12K\n\x11vector_per_target\x18\x07 \x03(\x0b\x32,.weaviate.v1.NearVector.VectorPerTargetEntryB\x02\x18\x01\x12\x38\n\x12vector_for_targets\x18\x08 \x03(\x0b\x32\x1c.weaviate.v1.VectorForTarget\x12%\n\x07vectors\x18\t \x03(\x0b\x32\x14.weaviate.v1.Vectors\x12.\n\tselection\x18\n \x01(\x0b\x32\x16.weaviate.v1.SelectionH\x02\x88\x01\x01\x1a\x36\n\x14VectorPerTargetEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x0c:\x02\x38\x01\x42\x0c\n\n_certaintyB\x0b\n\t_distanceB\x0c\n\n_selection\"\xe3\x01\n\nNearObject\x12\n\n\x02id\x18\x01 \x01(\t\x12\x16\n\tcertainty\x18\x02 \x01(\x01H\x00\x88\x01\x01\x12\x15\n\x08\x64istance\x18\x03 \x01(\x01H\x01\x88\x01\x01\x12\x1a\n\x0etarget_vectors\x18\x04 \x03(\tB\x02\x18\x01\x12%\n\x07targets\x18\x05 \x01(\x0b\x32\x14.weaviate.v1.Targets\x12.\n\tselection\x18\x06 \x01(\x0b\x32\x16.weaviate.v1.SelectionH\x02\x88\x01\x01\x42\x0c\n\n_certaintyB\x0b\n\t_distanceB\x0c\n\n_selection\"\xae\x03\n\x0eNearTextSearch\x12\r\n\x05query\x18\x01 \x03(\t\x12\x16\n\tcertainty\x18\x02 \x01(\x01H\x00\x88\x01\x01\x12\x15\n\x08\x64istance\x18\x03 \x01(\x01H\x01\x88\x01\x01\x12\x36\n\x07move_to\x18\x04 \x01(\x0b\x32 .weaviate.v1.NearTextSearch.MoveH\x02\x88\x01\x01\x12\x38\n\tmove_away\x18\x05 \x01(\x0b\x32 .weaviate.v1.NearTextSearch.MoveH\x03\x88\x01\x01\x12\x1a\n\x0etarget_vectors\x18\x06 \x03(\tB\x02\x18\x01\x12%\n\x07targets\x18\x07 \x01(\x0b\x32\x14.weaviate.v1.Targets\x12.\n\tselection\x18\x08 \x01(\x0b\x32\x16.weaviate.v1.SelectionH\x04\x88\x01\x01\x1a\x36\n\x04Move\x12\r\n\x05\x66orce\x18\x01 \x01(\x02\x12\x10\n\x08\x63oncepts\x18\x02 \x03(\t\x12\r\n\x05uuids\x18\x03 \x03(\tB\x0c\n\n_certaintyB\x0b\n\t_distanceB\n\n\x08_move_toB\x0c\n\n_move_awayB\x0c\n\n_selection\"\xeb\x01\n\x0fNearImageSearch\x12\r\n\x05image\x18\x01 \x01(\t\x12\x16\n\tcertainty\x18\x02 \x01(\x01H\x00\x88\x01\x01\x12\x15\n\x08\x64istance\x18\x03 \x01(\x01H\x01\x88\x01\x01\x12\x1a\n\x0etarget_vectors\x18\x04 \x03(\tB\x02\x18\x01\x12%\n\x07targets\x18\x05 \x01(\x0b\x32\x14.weaviate.v1.Targets\x12.\n\tselection\x18\x06 \x01(\x0b\x32\x16.weaviate.v1.SelectionH\x02\x88\x01\x01\x42\x0c\n\n_certaintyB\x0b\n\t_distanceB\x0c\n\n_selection\"\xeb\x01\n\x0fNearAudioSearch\x12\r\n\x05\x61udio\x18\x01 \x01(\t\x12\x16\n\tcertainty\x18\x02 \x01(\x01H\x00\x88\x01\x01\x12\x15\n\x08\x64istance\x18\x03 \x01(\x01H\x01\x88\x01\x01\x12\x1a\n\x0etarget_vectors\x18\x04 \x03(\tB\x02\x18\x01\x12%\n\x07targets\x18\x05 \x01(\x0b\x32\x14.weaviate.v1.Targets\x12.\n\tselection\x18\x06 \x01(\x0b\x32\x16.weaviate.v1.SelectionH\x02\x88\x01\x01\x42\x0c\n\n_certaintyB\x0b\n\t_distanceB\x0c\n\n_selection\"\xeb\x01\n\x0fNearVideoSearch\x12\r\n\x05video\x18\x01 \x01(\t\x12\x16\n\tcertainty\x18\x02 \x01(\x01H\x00\x88\x01\x01\x12\x15\n\x08\x64istance\x18\x03 \x01(\x01H\x01\x88\x01\x01\x12\x1a\n\x0etarget_vectors\x18\x04 \x03(\tB\x02\x18\x01\x12%\n\x07targets\x18\x05 \x01(\x0b\x32\x14.weaviate.v1.Targets\x12.\n\tselection\x18\x06 \x01(\x0b\x32\x16.weaviate.v1.SelectionH\x02\x88\x01\x01\x42\x0c\n\n_certaintyB\x0b\n\t_distanceB\x0c\n\n_selection\"\xeb\x01\n\x0fNearDepthSearch\x12\r\n\x05\x64\x65pth\x18\x01 \x01(\t\x12\x16\n\tcertainty\x18\x02 \x01(\x01H\x00\x88\x01\x01\x12\x15\n\x08\x64istance\x18\x03 \x01(\x01H\x01\x88\x01\x01\x12\x1a\n\x0etarget_vectors\x18\x04 \x03(\tB\x02\x18\x01\x12%\n\x07targets\x18\x05 \x01(\x0b\x32\x14.weaviate.v1.Targets\x12.\n\tselection\x18\x06 \x01(\x0b\x32\x16.weaviate.v1.SelectionH\x02\x88\x01\x01\x42\x0c\n\n_certaintyB\x0b\n\t_distanceB\x0c\n\n_selection\"\xef\x01\n\x11NearThermalSearch\x12\x0f\n\x07thermal\x18\x01 \x01(\t\x12\x16\n\tcertainty\x18\x02 \x01(\x01H\x00\x88\x01\x01\x12\x15\n\x08\x64istance\x18\x03 \x01(\x01H\x01\x88\x01\x01\x12\x1a\n\x0etarget_vectors\x18\x04 \x03(\tB\x02\x18\x01\x12%\n\x07targets\x18\x05 \x01(\x0b\x32\x14.weaviate.v1.Targets\x12.\n\tselection\x18\x06 \x01(\x0b\x32\x16.weaviate.v1.SelectionH\x02\x88\x01\x01\x42\x0c\n\n_certaintyB\x0b\n\t_distanceB\x0c\n\n_selection\"\xe7\x01\n\rNearIMUSearch\x12\x0b\n\x03imu\x18\x01 \x01(\t\x12\x16\n\tcertainty\x18\x02 \x01(\x01H\x00\x88\x01\x01\x12\x15\n\x08\x64istance\x18\x03 \x01(\x01H\x01\x88\x01\x01\x12\x1a\n\x0etarget_vectors\x18\x04 \x03(\tB\x02\x18\x01\x12%\n\x07targets\x18\x05 \x01(\x0b\x32\x14.weaviate.v1.Targets\x12.\n\tselection\x18\x06 \x01(\x0b\x32\x16.weaviate.v1.SelectionH\x02\x88\x01\x01\x42\x0c\n\n_certaintyB\x0b\n\t_distanceB\x0c\n\n_selection\"\x7f\n\x04\x42M25\x12\r\n\x05query\x18\x01 \x01(\t\x12\x12\n\nproperties\x18\x02 \x03(\t\x12@\n\x0fsearch_operator\x18\x03 \x01(\x0b\x32\".weaviate.v1.SearchOperatorOptionsH\x00\x88\x01\x01\x42\x12\n\x10_search_operator*\xee\x01\n\x11\x43ombinationMethod\x12\"\n\x1e\x43OMBINATION_METHOD_UNSPECIFIED\x10\x00\x12\x1f\n\x1b\x43OMBINATION_METHOD_TYPE_SUM\x10\x01\x12\x1f\n\x1b\x43OMBINATION_METHOD_TYPE_MIN\x10\x02\x12#\n\x1f\x43OMBINATION_METHOD_TYPE_AVERAGE\x10\x03\x12*\n&COMBINATION_METHOD_TYPE_RELATIVE_SCORE\x10\x04\x12\"\n\x1e\x43OMBINATION_METHOD_TYPE_MANUAL\x10\x05\x42t\n#io.weaviate.client.grpc.protocol.v1B\x17WeaviateProtoBaseSearchZ4github.com/weaviate/weaviate/grpc/generated;protocolb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -69,44 +69,48 @@ _globals['_NEARTHERMALSEARCH'].fields_by_name['target_vectors']._serialized_options = b'\030\001' _globals['_NEARIMUSEARCH'].fields_by_name['target_vectors']._loaded_options = None _globals['_NEARIMUSEARCH'].fields_by_name['target_vectors']._serialized_options = b'\030\001' - _globals['_COMBINATIONMETHOD']._serialized_start=3408 - _globals['_COMBINATIONMETHOD']._serialized_end=3646 + _globals['_COMBINATIONMETHOD']._serialized_start=4169 + _globals['_COMBINATIONMETHOD']._serialized_end=4407 _globals['_WEIGHTSFORTARGET']._serialized_start=52 _globals['_WEIGHTSFORTARGET']._serialized_end=102 _globals['_TARGETS']._serialized_start=105 _globals['_TARGETS']._serialized_end=257 _globals['_VECTORFORTARGET']._serialized_start=259 _globals['_VECTORFORTARGET']._serialized_end=355 - _globals['_SEARCHOPERATOROPTIONS']._serialized_start=358 - _globals['_SEARCHOPERATOROPTIONS']._serialized_end=583 - _globals['_SEARCHOPERATOROPTIONS_OPERATOR']._serialized_start=484 - _globals['_SEARCHOPERATOROPTIONS_OPERATOR']._serialized_end=555 - _globals['_HYBRID']._serialized_start=586 - _globals['_HYBRID']._serialized_end=1249 - _globals['_HYBRID_FUSIONTYPE']._serialized_start=1098 - _globals['_HYBRID_FUSIONTYPE']._serialized_end=1195 - _globals['_NEARVECTOR']._serialized_start=1252 - _globals['_NEARVECTOR']._serialized_end=1681 - _globals['_NEARVECTOR_VECTORPERTARGETENTRY']._serialized_start=1600 - _globals['_NEARVECTOR_VECTORPERTARGETENTRY']._serialized_end=1654 - _globals['_NEAROBJECT']._serialized_start=1684 - _globals['_NEAROBJECT']._serialized_end=1849 - _globals['_NEARTEXTSEARCH']._serialized_start=1852 - _globals['_NEARTEXTSEARCH']._serialized_end=2220 - _globals['_NEARTEXTSEARCH_MOVE']._serialized_start=2113 - _globals['_NEARTEXTSEARCH_MOVE']._serialized_end=2167 - _globals['_NEARIMAGESEARCH']._serialized_start=2223 - _globals['_NEARIMAGESEARCH']._serialized_end=2396 - _globals['_NEARAUDIOSEARCH']._serialized_start=2399 - _globals['_NEARAUDIOSEARCH']._serialized_end=2572 - _globals['_NEARVIDEOSEARCH']._serialized_start=2575 - _globals['_NEARVIDEOSEARCH']._serialized_end=2748 - _globals['_NEARDEPTHSEARCH']._serialized_start=2751 - _globals['_NEARDEPTHSEARCH']._serialized_end=2924 - _globals['_NEARTHERMALSEARCH']._serialized_start=2927 - _globals['_NEARTHERMALSEARCH']._serialized_end=3104 - _globals['_NEARIMUSEARCH']._serialized_start=3107 - _globals['_NEARIMUSEARCH']._serialized_end=3276 - _globals['_BM25']._serialized_start=3278 - _globals['_BM25']._serialized_end=3405 + _globals['_SELECTION']._serialized_start=358 + _globals['_SELECTION']._serialized_end=496 + _globals['_SELECTION_MMR']._serialized_start=414 + _globals['_SELECTION_MMR']._serialized_end=483 + _globals['_SEARCHOPERATOROPTIONS']._serialized_start=499 + _globals['_SEARCHOPERATOROPTIONS']._serialized_end=724 + _globals['_SEARCHOPERATOROPTIONS_OPERATOR']._serialized_start=625 + _globals['_SEARCHOPERATOROPTIONS_OPERATOR']._serialized_end=696 + _globals['_HYBRID']._serialized_start=727 + _globals['_HYBRID']._serialized_end=1452 + _globals['_HYBRID_FUSIONTYPE']._serialized_start=1287 + _globals['_HYBRID_FUSIONTYPE']._serialized_end=1384 + _globals['_NEARVECTOR']._serialized_start=1455 + _globals['_NEARVECTOR']._serialized_end=1946 + _globals['_NEARVECTOR_VECTORPERTARGETENTRY']._serialized_start=1851 + _globals['_NEARVECTOR_VECTORPERTARGETENTRY']._serialized_end=1905 + _globals['_NEAROBJECT']._serialized_start=1949 + _globals['_NEAROBJECT']._serialized_end=2176 + _globals['_NEARTEXTSEARCH']._serialized_start=2179 + _globals['_NEARTEXTSEARCH']._serialized_end=2609 + _globals['_NEARTEXTSEARCH_MOVE']._serialized_start=2488 + _globals['_NEARTEXTSEARCH_MOVE']._serialized_end=2542 + _globals['_NEARIMAGESEARCH']._serialized_start=2612 + _globals['_NEARIMAGESEARCH']._serialized_end=2847 + _globals['_NEARAUDIOSEARCH']._serialized_start=2850 + _globals['_NEARAUDIOSEARCH']._serialized_end=3085 + _globals['_NEARVIDEOSEARCH']._serialized_start=3088 + _globals['_NEARVIDEOSEARCH']._serialized_end=3323 + _globals['_NEARDEPTHSEARCH']._serialized_start=3326 + _globals['_NEARDEPTHSEARCH']._serialized_end=3561 + _globals['_NEARTHERMALSEARCH']._serialized_start=3564 + _globals['_NEARTHERMALSEARCH']._serialized_end=3803 + _globals['_NEARIMUSEARCH']._serialized_start=3806 + _globals['_NEARIMUSEARCH']._serialized_end=4037 + _globals['_BM25']._serialized_start=4039 + _globals['_BM25']._serialized_end=4166 # @@protoc_insertion_point(module_scope) diff --git a/weaviate/proto/v1/v6300/v1/base_search_pb2.pyi b/weaviate/proto/v1/v6300/v1/base_search_pb2.pyi index 67a53e25a..d96fe4c22 100644 --- a/weaviate/proto/v1/v6300/v1/base_search_pb2.pyi +++ b/weaviate/proto/v1/v6300/v1/base_search_pb2.pyi @@ -51,6 +51,19 @@ class VectorForTarget(_message.Message): vectors: _containers.RepeatedCompositeFieldContainer[_base_pb2.Vectors] def __init__(self, name: _Optional[str] = ..., vector_bytes: _Optional[bytes] = ..., vectors: _Optional[_Iterable[_Union[_base_pb2.Vectors, _Mapping]]] = ...) -> None: ... +class Selection(_message.Message): + __slots__ = ("mmr",) + class MMR(_message.Message): + __slots__ = ("limit", "balance") + LIMIT_FIELD_NUMBER: _ClassVar[int] + BALANCE_FIELD_NUMBER: _ClassVar[int] + limit: int + balance: float + def __init__(self, limit: _Optional[int] = ..., balance: _Optional[float] = ...) -> None: ... + MMR_FIELD_NUMBER: _ClassVar[int] + mmr: Selection.MMR + def __init__(self, mmr: _Optional[_Union[Selection.MMR, _Mapping]] = ...) -> None: ... + class SearchOperatorOptions(_message.Message): __slots__ = ("operator", "minimum_or_tokens_match") class Operator(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): @@ -68,7 +81,7 @@ class SearchOperatorOptions(_message.Message): def __init__(self, operator: _Optional[_Union[SearchOperatorOptions.Operator, str]] = ..., minimum_or_tokens_match: _Optional[int] = ...) -> None: ... class Hybrid(_message.Message): - __slots__ = ("query", "properties", "vector", "alpha", "fusion_type", "vector_bytes", "target_vectors", "near_text", "near_vector", "targets", "bm25_search_operator", "alpha_param", "use_alpha_param", "vector_distance", "vectors") + __slots__ = ("query", "properties", "vector", "alpha", "fusion_type", "vector_bytes", "target_vectors", "near_text", "near_vector", "targets", "bm25_search_operator", "alpha_param", "use_alpha_param", "selection", "vector_distance", "vectors") class FusionType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): __slots__ = () FUSION_TYPE_UNSPECIFIED: _ClassVar[Hybrid.FusionType] @@ -90,6 +103,7 @@ class Hybrid(_message.Message): BM25_SEARCH_OPERATOR_FIELD_NUMBER: _ClassVar[int] ALPHA_PARAM_FIELD_NUMBER: _ClassVar[int] USE_ALPHA_PARAM_FIELD_NUMBER: _ClassVar[int] + SELECTION_FIELD_NUMBER: _ClassVar[int] VECTOR_DISTANCE_FIELD_NUMBER: _ClassVar[int] VECTORS_FIELD_NUMBER: _ClassVar[int] query: str @@ -105,12 +119,13 @@ class Hybrid(_message.Message): bm25_search_operator: SearchOperatorOptions alpha_param: float use_alpha_param: bool + selection: Selection vector_distance: float vectors: _containers.RepeatedCompositeFieldContainer[_base_pb2.Vectors] - def __init__(self, query: _Optional[str] = ..., properties: _Optional[_Iterable[str]] = ..., vector: _Optional[_Iterable[float]] = ..., alpha: _Optional[float] = ..., fusion_type: _Optional[_Union[Hybrid.FusionType, str]] = ..., vector_bytes: _Optional[bytes] = ..., target_vectors: _Optional[_Iterable[str]] = ..., near_text: _Optional[_Union[NearTextSearch, _Mapping]] = ..., near_vector: _Optional[_Union[NearVector, _Mapping]] = ..., targets: _Optional[_Union[Targets, _Mapping]] = ..., bm25_search_operator: _Optional[_Union[SearchOperatorOptions, _Mapping]] = ..., alpha_param: _Optional[float] = ..., use_alpha_param: bool = ..., vector_distance: _Optional[float] = ..., vectors: _Optional[_Iterable[_Union[_base_pb2.Vectors, _Mapping]]] = ...) -> None: ... + def __init__(self, query: _Optional[str] = ..., properties: _Optional[_Iterable[str]] = ..., vector: _Optional[_Iterable[float]] = ..., alpha: _Optional[float] = ..., fusion_type: _Optional[_Union[Hybrid.FusionType, str]] = ..., vector_bytes: _Optional[bytes] = ..., target_vectors: _Optional[_Iterable[str]] = ..., near_text: _Optional[_Union[NearTextSearch, _Mapping]] = ..., near_vector: _Optional[_Union[NearVector, _Mapping]] = ..., targets: _Optional[_Union[Targets, _Mapping]] = ..., bm25_search_operator: _Optional[_Union[SearchOperatorOptions, _Mapping]] = ..., alpha_param: _Optional[float] = ..., use_alpha_param: bool = ..., selection: _Optional[_Union[Selection, _Mapping]] = ..., vector_distance: _Optional[float] = ..., vectors: _Optional[_Iterable[_Union[_base_pb2.Vectors, _Mapping]]] = ...) -> None: ... class NearVector(_message.Message): - __slots__ = ("vector", "certainty", "distance", "vector_bytes", "target_vectors", "targets", "vector_per_target", "vector_for_targets", "vectors") + __slots__ = ("vector", "certainty", "distance", "vector_bytes", "target_vectors", "targets", "vector_per_target", "vector_for_targets", "vectors", "selection") class VectorPerTargetEntry(_message.Message): __slots__ = ("key", "value") KEY_FIELD_NUMBER: _ClassVar[int] @@ -127,6 +142,7 @@ class NearVector(_message.Message): VECTOR_PER_TARGET_FIELD_NUMBER: _ClassVar[int] VECTOR_FOR_TARGETS_FIELD_NUMBER: _ClassVar[int] VECTORS_FIELD_NUMBER: _ClassVar[int] + SELECTION_FIELD_NUMBER: _ClassVar[int] vector: _containers.RepeatedScalarFieldContainer[float] certainty: float distance: float @@ -136,24 +152,27 @@ class NearVector(_message.Message): vector_per_target: _containers.ScalarMap[str, bytes] vector_for_targets: _containers.RepeatedCompositeFieldContainer[VectorForTarget] vectors: _containers.RepeatedCompositeFieldContainer[_base_pb2.Vectors] - def __init__(self, vector: _Optional[_Iterable[float]] = ..., certainty: _Optional[float] = ..., distance: _Optional[float] = ..., vector_bytes: _Optional[bytes] = ..., target_vectors: _Optional[_Iterable[str]] = ..., targets: _Optional[_Union[Targets, _Mapping]] = ..., vector_per_target: _Optional[_Mapping[str, bytes]] = ..., vector_for_targets: _Optional[_Iterable[_Union[VectorForTarget, _Mapping]]] = ..., vectors: _Optional[_Iterable[_Union[_base_pb2.Vectors, _Mapping]]] = ...) -> None: ... + selection: Selection + def __init__(self, vector: _Optional[_Iterable[float]] = ..., certainty: _Optional[float] = ..., distance: _Optional[float] = ..., vector_bytes: _Optional[bytes] = ..., target_vectors: _Optional[_Iterable[str]] = ..., targets: _Optional[_Union[Targets, _Mapping]] = ..., vector_per_target: _Optional[_Mapping[str, bytes]] = ..., vector_for_targets: _Optional[_Iterable[_Union[VectorForTarget, _Mapping]]] = ..., vectors: _Optional[_Iterable[_Union[_base_pb2.Vectors, _Mapping]]] = ..., selection: _Optional[_Union[Selection, _Mapping]] = ...) -> None: ... class NearObject(_message.Message): - __slots__ = ("id", "certainty", "distance", "target_vectors", "targets") + __slots__ = ("id", "certainty", "distance", "target_vectors", "targets", "selection") ID_FIELD_NUMBER: _ClassVar[int] CERTAINTY_FIELD_NUMBER: _ClassVar[int] DISTANCE_FIELD_NUMBER: _ClassVar[int] TARGET_VECTORS_FIELD_NUMBER: _ClassVar[int] TARGETS_FIELD_NUMBER: _ClassVar[int] + SELECTION_FIELD_NUMBER: _ClassVar[int] id: str certainty: float distance: float target_vectors: _containers.RepeatedScalarFieldContainer[str] targets: Targets - def __init__(self, id: _Optional[str] = ..., certainty: _Optional[float] = ..., distance: _Optional[float] = ..., target_vectors: _Optional[_Iterable[str]] = ..., targets: _Optional[_Union[Targets, _Mapping]] = ...) -> None: ... + selection: Selection + def __init__(self, id: _Optional[str] = ..., certainty: _Optional[float] = ..., distance: _Optional[float] = ..., target_vectors: _Optional[_Iterable[str]] = ..., targets: _Optional[_Union[Targets, _Mapping]] = ..., selection: _Optional[_Union[Selection, _Mapping]] = ...) -> None: ... class NearTextSearch(_message.Message): - __slots__ = ("query", "certainty", "distance", "move_to", "move_away", "target_vectors", "targets") + __slots__ = ("query", "certainty", "distance", "move_to", "move_away", "target_vectors", "targets", "selection") class Move(_message.Message): __slots__ = ("force", "concepts", "uuids") FORCE_FIELD_NUMBER: _ClassVar[int] @@ -170,6 +189,7 @@ class NearTextSearch(_message.Message): MOVE_AWAY_FIELD_NUMBER: _ClassVar[int] TARGET_VECTORS_FIELD_NUMBER: _ClassVar[int] TARGETS_FIELD_NUMBER: _ClassVar[int] + SELECTION_FIELD_NUMBER: _ClassVar[int] query: _containers.RepeatedScalarFieldContainer[str] certainty: float distance: float @@ -177,91 +197,104 @@ class NearTextSearch(_message.Message): move_away: NearTextSearch.Move target_vectors: _containers.RepeatedScalarFieldContainer[str] targets: Targets - def __init__(self, query: _Optional[_Iterable[str]] = ..., certainty: _Optional[float] = ..., distance: _Optional[float] = ..., move_to: _Optional[_Union[NearTextSearch.Move, _Mapping]] = ..., move_away: _Optional[_Union[NearTextSearch.Move, _Mapping]] = ..., target_vectors: _Optional[_Iterable[str]] = ..., targets: _Optional[_Union[Targets, _Mapping]] = ...) -> None: ... + selection: Selection + def __init__(self, query: _Optional[_Iterable[str]] = ..., certainty: _Optional[float] = ..., distance: _Optional[float] = ..., move_to: _Optional[_Union[NearTextSearch.Move, _Mapping]] = ..., move_away: _Optional[_Union[NearTextSearch.Move, _Mapping]] = ..., target_vectors: _Optional[_Iterable[str]] = ..., targets: _Optional[_Union[Targets, _Mapping]] = ..., selection: _Optional[_Union[Selection, _Mapping]] = ...) -> None: ... class NearImageSearch(_message.Message): - __slots__ = ("image", "certainty", "distance", "target_vectors", "targets") + __slots__ = ("image", "certainty", "distance", "target_vectors", "targets", "selection") IMAGE_FIELD_NUMBER: _ClassVar[int] CERTAINTY_FIELD_NUMBER: _ClassVar[int] DISTANCE_FIELD_NUMBER: _ClassVar[int] TARGET_VECTORS_FIELD_NUMBER: _ClassVar[int] TARGETS_FIELD_NUMBER: _ClassVar[int] + SELECTION_FIELD_NUMBER: _ClassVar[int] image: str certainty: float distance: float target_vectors: _containers.RepeatedScalarFieldContainer[str] targets: Targets - def __init__(self, image: _Optional[str] = ..., certainty: _Optional[float] = ..., distance: _Optional[float] = ..., target_vectors: _Optional[_Iterable[str]] = ..., targets: _Optional[_Union[Targets, _Mapping]] = ...) -> None: ... + selection: Selection + def __init__(self, image: _Optional[str] = ..., certainty: _Optional[float] = ..., distance: _Optional[float] = ..., target_vectors: _Optional[_Iterable[str]] = ..., targets: _Optional[_Union[Targets, _Mapping]] = ..., selection: _Optional[_Union[Selection, _Mapping]] = ...) -> None: ... class NearAudioSearch(_message.Message): - __slots__ = ("audio", "certainty", "distance", "target_vectors", "targets") + __slots__ = ("audio", "certainty", "distance", "target_vectors", "targets", "selection") AUDIO_FIELD_NUMBER: _ClassVar[int] CERTAINTY_FIELD_NUMBER: _ClassVar[int] DISTANCE_FIELD_NUMBER: _ClassVar[int] TARGET_VECTORS_FIELD_NUMBER: _ClassVar[int] TARGETS_FIELD_NUMBER: _ClassVar[int] + SELECTION_FIELD_NUMBER: _ClassVar[int] audio: str certainty: float distance: float target_vectors: _containers.RepeatedScalarFieldContainer[str] targets: Targets - def __init__(self, audio: _Optional[str] = ..., certainty: _Optional[float] = ..., distance: _Optional[float] = ..., target_vectors: _Optional[_Iterable[str]] = ..., targets: _Optional[_Union[Targets, _Mapping]] = ...) -> None: ... + selection: Selection + def __init__(self, audio: _Optional[str] = ..., certainty: _Optional[float] = ..., distance: _Optional[float] = ..., target_vectors: _Optional[_Iterable[str]] = ..., targets: _Optional[_Union[Targets, _Mapping]] = ..., selection: _Optional[_Union[Selection, _Mapping]] = ...) -> None: ... class NearVideoSearch(_message.Message): - __slots__ = ("video", "certainty", "distance", "target_vectors", "targets") + __slots__ = ("video", "certainty", "distance", "target_vectors", "targets", "selection") VIDEO_FIELD_NUMBER: _ClassVar[int] CERTAINTY_FIELD_NUMBER: _ClassVar[int] DISTANCE_FIELD_NUMBER: _ClassVar[int] TARGET_VECTORS_FIELD_NUMBER: _ClassVar[int] TARGETS_FIELD_NUMBER: _ClassVar[int] + SELECTION_FIELD_NUMBER: _ClassVar[int] video: str certainty: float distance: float target_vectors: _containers.RepeatedScalarFieldContainer[str] targets: Targets - def __init__(self, video: _Optional[str] = ..., certainty: _Optional[float] = ..., distance: _Optional[float] = ..., target_vectors: _Optional[_Iterable[str]] = ..., targets: _Optional[_Union[Targets, _Mapping]] = ...) -> None: ... + selection: Selection + def __init__(self, video: _Optional[str] = ..., certainty: _Optional[float] = ..., distance: _Optional[float] = ..., target_vectors: _Optional[_Iterable[str]] = ..., targets: _Optional[_Union[Targets, _Mapping]] = ..., selection: _Optional[_Union[Selection, _Mapping]] = ...) -> None: ... class NearDepthSearch(_message.Message): - __slots__ = ("depth", "certainty", "distance", "target_vectors", "targets") + __slots__ = ("depth", "certainty", "distance", "target_vectors", "targets", "selection") DEPTH_FIELD_NUMBER: _ClassVar[int] CERTAINTY_FIELD_NUMBER: _ClassVar[int] DISTANCE_FIELD_NUMBER: _ClassVar[int] TARGET_VECTORS_FIELD_NUMBER: _ClassVar[int] TARGETS_FIELD_NUMBER: _ClassVar[int] + SELECTION_FIELD_NUMBER: _ClassVar[int] depth: str certainty: float distance: float target_vectors: _containers.RepeatedScalarFieldContainer[str] targets: Targets - def __init__(self, depth: _Optional[str] = ..., certainty: _Optional[float] = ..., distance: _Optional[float] = ..., target_vectors: _Optional[_Iterable[str]] = ..., targets: _Optional[_Union[Targets, _Mapping]] = ...) -> None: ... + selection: Selection + def __init__(self, depth: _Optional[str] = ..., certainty: _Optional[float] = ..., distance: _Optional[float] = ..., target_vectors: _Optional[_Iterable[str]] = ..., targets: _Optional[_Union[Targets, _Mapping]] = ..., selection: _Optional[_Union[Selection, _Mapping]] = ...) -> None: ... class NearThermalSearch(_message.Message): - __slots__ = ("thermal", "certainty", "distance", "target_vectors", "targets") + __slots__ = ("thermal", "certainty", "distance", "target_vectors", "targets", "selection") THERMAL_FIELD_NUMBER: _ClassVar[int] CERTAINTY_FIELD_NUMBER: _ClassVar[int] DISTANCE_FIELD_NUMBER: _ClassVar[int] TARGET_VECTORS_FIELD_NUMBER: _ClassVar[int] TARGETS_FIELD_NUMBER: _ClassVar[int] + SELECTION_FIELD_NUMBER: _ClassVar[int] thermal: str certainty: float distance: float target_vectors: _containers.RepeatedScalarFieldContainer[str] targets: Targets - def __init__(self, thermal: _Optional[str] = ..., certainty: _Optional[float] = ..., distance: _Optional[float] = ..., target_vectors: _Optional[_Iterable[str]] = ..., targets: _Optional[_Union[Targets, _Mapping]] = ...) -> None: ... + selection: Selection + def __init__(self, thermal: _Optional[str] = ..., certainty: _Optional[float] = ..., distance: _Optional[float] = ..., target_vectors: _Optional[_Iterable[str]] = ..., targets: _Optional[_Union[Targets, _Mapping]] = ..., selection: _Optional[_Union[Selection, _Mapping]] = ...) -> None: ... class NearIMUSearch(_message.Message): - __slots__ = ("imu", "certainty", "distance", "target_vectors", "targets") + __slots__ = ("imu", "certainty", "distance", "target_vectors", "targets", "selection") IMU_FIELD_NUMBER: _ClassVar[int] CERTAINTY_FIELD_NUMBER: _ClassVar[int] DISTANCE_FIELD_NUMBER: _ClassVar[int] TARGET_VECTORS_FIELD_NUMBER: _ClassVar[int] TARGETS_FIELD_NUMBER: _ClassVar[int] + SELECTION_FIELD_NUMBER: _ClassVar[int] imu: str certainty: float distance: float target_vectors: _containers.RepeatedScalarFieldContainer[str] targets: Targets - def __init__(self, imu: _Optional[str] = ..., certainty: _Optional[float] = ..., distance: _Optional[float] = ..., target_vectors: _Optional[_Iterable[str]] = ..., targets: _Optional[_Union[Targets, _Mapping]] = ...) -> None: ... + selection: Selection + def __init__(self, imu: _Optional[str] = ..., certainty: _Optional[float] = ..., distance: _Optional[float] = ..., target_vectors: _Optional[_Iterable[str]] = ..., targets: _Optional[_Union[Targets, _Mapping]] = ..., selection: _Optional[_Union[Selection, _Mapping]] = ...) -> None: ... class BM25(_message.Message): __slots__ = ("query", "properties", "search_operator")