Skip to content

Commit

Permalink
sync indexed_only and binary quant params
Browse files Browse the repository at this point in the history
  • Loading branch information
generall committed Aug 21, 2023
1 parent 395321d commit 6f8c517
Showing 13 changed files with 598 additions and 226 deletions.
30 changes: 30 additions & 0 deletions qdrant_client/conversions/conversion.py
Original file line number Diff line number Diff line change
@@ -388,6 +388,7 @@ def convert_search_params(cls, model: grpc.SearchParams) -> rest.SearchParams:
quantization=cls.convert_quantization_search_params(model.quantization)
if model.HasField("quantization")
else None,
indexed_only=model.indexed_only if model.HasField("indexed_only") else None,
)

@classmethod
@@ -854,6 +855,14 @@ def convert_product_quantization_config(
always_ram=model.always_ram if model.HasField("always_ram") else None,
)

@classmethod
def convert_binary_quantization_config(
cls, model: grpc.BinaryQuantization
) -> rest.BinaryQuantizationConfig:
return rest.BinaryQuantizationConfig(
always_ram=model.always_ram if model.HasField("always_ram") else None,
)

@classmethod
def convert_compression_ratio(cls, model: grpc.CompressionRatio) -> rest.CompressionRatio:
if model == grpc.x4:
@@ -878,6 +887,8 @@ def convert_quantization_config(
return rest.ScalarQuantization(scalar=cls.convert_scalar_quantization_config(val))
if name == "product":
return rest.ProductQuantization(product=cls.convert_product_quantization_config(val))
if name == "binary":
return rest.BinaryQuantization(binary=cls.convert_binary_quantization_config(val))
raise ValueError(f"invalid QuantizationConfig model: {model}") # pragma: no cover

@classmethod
@@ -939,6 +950,8 @@ def convert_quantization_config_diff(
return rest.ScalarQuantization(scalar=cls.convert_scalar_quantization_config(val))
if name == "product":
return rest.ProductQuantization(product=cls.convert_product_quantization_config(val))
if name == "binary":
return rest.BinaryQuantization(binary=cls.convert_binary_quantization_config(val))
if name == "disabled":
return rest.Disabled.DISABLED
raise ValueError(f"invalid QuantizationConfigDiff model: {model}") # pragma: no cover
@@ -1142,6 +1155,7 @@ def convert_search_params(cls, model: rest.SearchParams) -> grpc.SearchParams:
quantization=cls.convert_quantization_search_params(model.quantization)
if model.quantization is not None
else None,
indexed_only=model.indexed_only,
)

@classmethod
@@ -1733,6 +1747,14 @@ def convert_product_quantization_config(
always_ram=model.always_ram,
)

@classmethod
def convert_binary_quantization_config(
cls, model: rest.BinaryQuantizationConfig
) -> grpc.BinaryQuantization:
return grpc.BinaryQuantization(
always_ram=model.always_ram,
)

@classmethod
def convert_compression_ratio(cls, model: rest.CompressionRatio) -> grpc.CompressionRatio:
if model == rest.CompressionRatio.X4:
@@ -1760,6 +1782,10 @@ def convert_quantization_config(
return grpc.QuantizationConfig(
product=cls.convert_product_quantization_config(model.product)
)
if isinstance(model, rest.BinaryQuantization):
return grpc.QuantizationConfig(
binary=cls.convert_binary_quantization_config(model.binary)
)
else:
raise ValueError(f"invalid QuantizationConfig model: {model}")

@@ -1836,6 +1862,10 @@ def convert_quantization_config_diff(
return grpc.QuantizationConfigDiff(
product=cls.convert_product_quantization_config(model.product)
)
if isinstance(model, rest.BinaryQuantization):
return grpc.QuantizationConfigDiff(
binary=cls.convert_binary_quantization_config(model.binary)
)
if model == rest.Disabled.DISABLED:
return grpc.QuantizationConfigDiff(
disabled=grpc.Disabled(),
172 changes: 91 additions & 81 deletions qdrant_client/grpc/collections_pb2.py

Large diffs are not rendered by default.

306 changes: 202 additions & 104 deletions qdrant_client/grpc/points_pb2.py

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions qdrant_client/grpc/points_service_pb2.py

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

35 changes: 35 additions & 0 deletions qdrant_client/grpc/points_service_pb2_grpc.py
Original file line number Diff line number Diff line change
@@ -109,6 +109,11 @@ def __init__(self, channel):
request_serializer=points__pb2.CountPoints.SerializeToString,
response_deserializer=points__pb2.CountResponse.FromString,
)
self.UpdateBatch = channel.unary_unary(
'/qdrant.Points/UpdateBatch',
request_serializer=points__pb2.UpdateBatchPoints.SerializeToString,
response_deserializer=points__pb2.UpdateBatchResponse.FromString,
)


class PointsServicer(object):
@@ -266,6 +271,14 @@ def Count(self, request, context):
context.set_details('Method not implemented!')
raise NotImplementedError('Method not implemented!')

def UpdateBatch(self, request, context):
"""
Perform multiple update operations in one request
"""
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
context.set_details('Method not implemented!')
raise NotImplementedError('Method not implemented!')


def add_PointsServicer_to_server(servicer, server):
rpc_method_handlers = {
@@ -364,6 +377,11 @@ def add_PointsServicer_to_server(servicer, server):
request_deserializer=points__pb2.CountPoints.FromString,
response_serializer=points__pb2.CountResponse.SerializeToString,
),
'UpdateBatch': grpc.unary_unary_rpc_method_handler(
servicer.UpdateBatch,
request_deserializer=points__pb2.UpdateBatchPoints.FromString,
response_serializer=points__pb2.UpdateBatchResponse.SerializeToString,
),
}
generic_handler = grpc.method_handlers_generic_handler(
'qdrant.Points', rpc_method_handlers)
@@ -696,3 +714,20 @@ def Count(request,
points__pb2.CountResponse.FromString,
options, channel_credentials,
insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

@staticmethod
def UpdateBatch(request,
target,
options=(),
channel_credentials=None,
call_credentials=None,
insecure=False,
compression=None,
wait_for_ready=None,
timeout=None,
metadata=None):
return grpc.experimental.unary_unary(request, target, '/qdrant.Points/UpdateBatch',
points__pb2.UpdateBatchPoints.SerializeToString,
points__pb2.UpdateBatchResponse.FromString,
options, channel_credentials,
insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
Loading

0 comments on commit 6f8c517

Please sign in to comment.