From 67574a34df7517948f1dffbc7fbf88d6445c1fc9 Mon Sep 17 00:00:00 2001 From: George Panchuk Date: Thu, 31 Oct 2024 23:10:26 +0100 Subject: [PATCH 1/8] new: update proto --- qdrant_client/grpc/collections_pb2.py | 236 ++++----- qdrant_client/grpc/points_pb2.py | 660 +++++++++++++++----------- qdrant_client/proto/collections.proto | 1 + qdrant_client/proto/points.proto | 66 ++- 4 files changed, 571 insertions(+), 392 deletions(-) diff --git a/qdrant_client/grpc/collections_pb2.py b/qdrant_client/grpc/collections_pb2.py index 4c6aef4c..165932f0 100644 --- a/qdrant_client/grpc/collections_pb2.py +++ b/qdrant_client/grpc/collections_pb2.py @@ -15,7 +15,7 @@ -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x11\x63ollections.proto\x12\x06qdrant\"\x83\x03\n\x0cVectorParams\x12\x0c\n\x04size\x18\x01 \x01(\x04\x12\"\n\x08\x64istance\x18\x02 \x01(\x0e\x32\x10.qdrant.Distance\x12\x30\n\x0bhnsw_config\x18\x03 \x01(\x0b\x32\x16.qdrant.HnswConfigDiffH\x00\x88\x01\x01\x12<\n\x13quantization_config\x18\x04 \x01(\x0b\x32\x1a.qdrant.QuantizationConfigH\x01\x88\x01\x01\x12\x14\n\x07on_disk\x18\x05 \x01(\x08H\x02\x88\x01\x01\x12\'\n\x08\x64\x61tatype\x18\x06 \x01(\x0e\x32\x10.qdrant.DatatypeH\x03\x88\x01\x01\x12:\n\x12multivector_config\x18\x07 \x01(\x0b\x32\x19.qdrant.MultiVectorConfigH\x04\x88\x01\x01\x42\x0e\n\x0c_hnsw_configB\x16\n\x14_quantization_configB\n\n\x08_on_diskB\x0b\n\t_datatypeB\x15\n\x13_multivector_config\"\xd0\x01\n\x10VectorParamsDiff\x12\x30\n\x0bhnsw_config\x18\x01 \x01(\x0b\x32\x16.qdrant.HnswConfigDiffH\x00\x88\x01\x01\x12@\n\x13quantization_config\x18\x02 \x01(\x0b\x32\x1e.qdrant.QuantizationConfigDiffH\x01\x88\x01\x01\x12\x14\n\x07on_disk\x18\x03 \x01(\x08H\x02\x88\x01\x01\x42\x0e\n\x0c_hnsw_configB\x16\n\x14_quantization_configB\n\n\x08_on_disk\"\x82\x01\n\x0fVectorParamsMap\x12-\n\x03map\x18\x01 \x03(\x0b\x32 .qdrant.VectorParamsMap.MapEntry\x1a@\n\x08MapEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12#\n\x05value\x18\x02 \x01(\x0b\x32\x14.qdrant.VectorParams:\x02\x38\x01\"\x8e\x01\n\x13VectorParamsDiffMap\x12\x31\n\x03map\x18\x01 \x03(\x0b\x32$.qdrant.VectorParamsDiffMap.MapEntry\x1a\x44\n\x08MapEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\'\n\x05value\x18\x02 \x01(\x0b\x32\x18.qdrant.VectorParamsDiff:\x02\x38\x01\"p\n\rVectorsConfig\x12&\n\x06params\x18\x01 \x01(\x0b\x32\x14.qdrant.VectorParamsH\x00\x12-\n\nparams_map\x18\x02 \x01(\x0b\x32\x17.qdrant.VectorParamsMapH\x00\x42\x08\n\x06\x63onfig\"|\n\x11VectorsConfigDiff\x12*\n\x06params\x18\x01 \x01(\x0b\x32\x18.qdrant.VectorParamsDiffH\x00\x12\x31\n\nparams_map\x18\x02 \x01(\x0b\x32\x1b.qdrant.VectorParamsDiffMapH\x00\x42\x08\n\x06\x63onfig\"\x83\x01\n\x12SparseVectorParams\x12-\n\x05index\x18\x01 \x01(\x0b\x32\x19.qdrant.SparseIndexConfigH\x00\x88\x01\x01\x12\'\n\x08modifier\x18\x02 \x01(\x0e\x32\x10.qdrant.ModifierH\x01\x88\x01\x01\x42\x08\n\x06_indexB\x0b\n\t_modifier\"\x8e\x01\n\x12SparseVectorConfig\x12\x30\n\x03map\x18\x01 \x03(\x0b\x32#.qdrant.SparseVectorConfig.MapEntry\x1a\x46\n\x08MapEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12)\n\x05value\x18\x02 \x01(\x0b\x32\x1a.qdrant.SparseVectorParams:\x02\x38\x01\"F\n\x11MultiVectorConfig\x12\x31\n\ncomparator\x18\x01 \x01(\x0e\x32\x1d.qdrant.MultiVectorComparator\"3\n\x18GetCollectionInfoRequest\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\"2\n\x17\x43ollectionExistsRequest\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\"\"\n\x10\x43ollectionExists\x12\x0e\n\x06\x65xists\x18\x01 \x01(\x08\"R\n\x18\x43ollectionExistsResponse\x12(\n\x06result\x18\x01 \x01(\x0b\x32\x18.qdrant.CollectionExists\x12\x0c\n\x04time\x18\x02 \x01(\x01\"\x18\n\x16ListCollectionsRequest\"%\n\x15\x43ollectionDescription\x12\x0c\n\x04name\x18\x01 \x01(\t\"Q\n\x19GetCollectionInfoResponse\x12&\n\x06result\x18\x01 \x01(\x0b\x32\x16.qdrant.CollectionInfo\x12\x0c\n\x04time\x18\x02 \x01(\x01\"[\n\x17ListCollectionsResponse\x12\x32\n\x0b\x63ollections\x18\x01 \x03(\x0b\x32\x1d.qdrant.CollectionDescription\x12\x0c\n\x04time\x18\x02 \x01(\x01\",\n\x0fOptimizerStatus\x12\n\n\x02ok\x18\x01 \x01(\x08\x12\r\n\x05\x65rror\x18\x02 \x01(\t\"\x90\x02\n\x0eHnswConfigDiff\x12\x0e\n\x01m\x18\x01 \x01(\x04H\x00\x88\x01\x01\x12\x19\n\x0c\x65\x66_construct\x18\x02 \x01(\x04H\x01\x88\x01\x01\x12 \n\x13\x66ull_scan_threshold\x18\x03 \x01(\x04H\x02\x88\x01\x01\x12!\n\x14max_indexing_threads\x18\x04 \x01(\x04H\x03\x88\x01\x01\x12\x14\n\x07on_disk\x18\x05 \x01(\x08H\x04\x88\x01\x01\x12\x16\n\tpayload_m\x18\x06 \x01(\x04H\x05\x88\x01\x01\x42\x04\n\x02_mB\x0f\n\r_ef_constructB\x16\n\x14_full_scan_thresholdB\x17\n\x15_max_indexing_threadsB\n\n\x08_on_diskB\x0c\n\n_payload_m\"\xa5\x01\n\x11SparseIndexConfig\x12 \n\x13\x66ull_scan_threshold\x18\x01 \x01(\x04H\x00\x88\x01\x01\x12\x14\n\x07on_disk\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\'\n\x08\x64\x61tatype\x18\x03 \x01(\x0e\x32\x10.qdrant.DatatypeH\x02\x88\x01\x01\x42\x16\n\x14_full_scan_thresholdB\n\n\x08_on_diskB\x0b\n\t_datatype\"y\n\rWalConfigDiff\x12\x1c\n\x0fwal_capacity_mb\x18\x01 \x01(\x04H\x00\x88\x01\x01\x12\x1f\n\x12wal_segments_ahead\x18\x02 \x01(\x04H\x01\x88\x01\x01\x42\x12\n\x10_wal_capacity_mbB\x15\n\x13_wal_segments_ahead\"\xec\x03\n\x14OptimizersConfigDiff\x12\x1e\n\x11\x64\x65leted_threshold\x18\x01 \x01(\x01H\x00\x88\x01\x01\x12%\n\x18vacuum_min_vector_number\x18\x02 \x01(\x04H\x01\x88\x01\x01\x12#\n\x16\x64\x65\x66\x61ult_segment_number\x18\x03 \x01(\x04H\x02\x88\x01\x01\x12\x1d\n\x10max_segment_size\x18\x04 \x01(\x04H\x03\x88\x01\x01\x12\x1d\n\x10memmap_threshold\x18\x05 \x01(\x04H\x04\x88\x01\x01\x12\x1f\n\x12indexing_threshold\x18\x06 \x01(\x04H\x05\x88\x01\x01\x12\x1f\n\x12\x66lush_interval_sec\x18\x07 \x01(\x04H\x06\x88\x01\x01\x12%\n\x18max_optimization_threads\x18\x08 \x01(\x04H\x07\x88\x01\x01\x42\x14\n\x12_deleted_thresholdB\x1b\n\x19_vacuum_min_vector_numberB\x19\n\x17_default_segment_numberB\x13\n\x11_max_segment_sizeB\x13\n\x11_memmap_thresholdB\x15\n\x13_indexing_thresholdB\x15\n\x13_flush_interval_secB\x1b\n\x19_max_optimization_threads\"\x88\x01\n\x12ScalarQuantization\x12&\n\x04type\x18\x01 \x01(\x0e\x32\x18.qdrant.QuantizationType\x12\x15\n\x08quantile\x18\x02 \x01(\x02H\x00\x88\x01\x01\x12\x17\n\nalways_ram\x18\x03 \x01(\x08H\x01\x88\x01\x01\x42\x0b\n\t_quantileB\r\n\x0b_always_ram\"l\n\x13ProductQuantization\x12-\n\x0b\x63ompression\x18\x01 \x01(\x0e\x32\x18.qdrant.CompressionRatio\x12\x17\n\nalways_ram\x18\x02 \x01(\x08H\x00\x88\x01\x01\x42\r\n\x0b_always_ram\"<\n\x12\x42inaryQuantization\x12\x17\n\nalways_ram\x18\x01 \x01(\x08H\x00\x88\x01\x01\x42\r\n\x0b_always_ram\"\xb0\x01\n\x12QuantizationConfig\x12,\n\x06scalar\x18\x01 \x01(\x0b\x32\x1a.qdrant.ScalarQuantizationH\x00\x12.\n\x07product\x18\x02 \x01(\x0b\x32\x1b.qdrant.ProductQuantizationH\x00\x12,\n\x06\x62inary\x18\x03 \x01(\x0b\x32\x1a.qdrant.BinaryQuantizationH\x00\x42\x0e\n\x0cquantization\"\n\n\x08\x44isabled\"\xda\x01\n\x16QuantizationConfigDiff\x12,\n\x06scalar\x18\x01 \x01(\x0b\x32\x1a.qdrant.ScalarQuantizationH\x00\x12.\n\x07product\x18\x02 \x01(\x0b\x32\x1b.qdrant.ProductQuantizationH\x00\x12$\n\x08\x64isabled\x18\x03 \x01(\x0b\x32\x10.qdrant.DisabledH\x00\x12,\n\x06\x62inary\x18\x04 \x01(\x0b\x32\x1a.qdrant.BinaryQuantizationH\x00\x42\x0e\n\x0cquantization\"\xd6\x03\n\x10StrictModeConfig\x12\x14\n\x07\x65nabled\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x1c\n\x0fmax_query_limit\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x18\n\x0bmax_timeout\x18\x03 \x01(\rH\x02\x88\x01\x01\x12)\n\x1cunindexed_filtering_retrieve\x18\x04 \x01(\x08H\x03\x88\x01\x01\x12\'\n\x1aunindexed_filtering_update\x18\x05 \x01(\x08H\x04\x88\x01\x01\x12\x1f\n\x12search_max_hnsw_ef\x18\x06 \x01(\rH\x05\x88\x01\x01\x12\x1f\n\x12search_allow_exact\x18\x07 \x01(\x08H\x06\x88\x01\x01\x12$\n\x17search_max_oversampling\x18\x08 \x01(\x02H\x07\x88\x01\x01\x42\n\n\x08_enabledB\x12\n\x10_max_query_limitB\x0e\n\x0c_max_timeoutB\x1f\n\x1d_unindexed_filtering_retrieveB\x1d\n\x1b_unindexed_filtering_updateB\x15\n\x13_search_max_hnsw_efB\x15\n\x13_search_allow_exactB\x1a\n\x18_search_max_oversampling\"\xd7\x07\n\x10\x43reateCollection\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12\x30\n\x0bhnsw_config\x18\x04 \x01(\x0b\x32\x16.qdrant.HnswConfigDiffH\x00\x88\x01\x01\x12.\n\nwal_config\x18\x05 \x01(\x0b\x32\x15.qdrant.WalConfigDiffH\x01\x88\x01\x01\x12<\n\x11optimizers_config\x18\x06 \x01(\x0b\x32\x1c.qdrant.OptimizersConfigDiffH\x02\x88\x01\x01\x12\x19\n\x0cshard_number\x18\x07 \x01(\rH\x03\x88\x01\x01\x12\x1c\n\x0fon_disk_payload\x18\x08 \x01(\x08H\x04\x88\x01\x01\x12\x14\n\x07timeout\x18\t \x01(\x04H\x05\x88\x01\x01\x12\x32\n\x0evectors_config\x18\n \x01(\x0b\x32\x15.qdrant.VectorsConfigH\x06\x88\x01\x01\x12\x1f\n\x12replication_factor\x18\x0b \x01(\rH\x07\x88\x01\x01\x12%\n\x18write_consistency_factor\x18\x0c \x01(\rH\x08\x88\x01\x01\x12!\n\x14init_from_collection\x18\r \x01(\tH\t\x88\x01\x01\x12<\n\x13quantization_config\x18\x0e \x01(\x0b\x32\x1a.qdrant.QuantizationConfigH\n\x88\x01\x01\x12\x34\n\x0fsharding_method\x18\x0f \x01(\x0e\x32\x16.qdrant.ShardingMethodH\x0b\x88\x01\x01\x12>\n\x15sparse_vectors_config\x18\x10 \x01(\x0b\x32\x1a.qdrant.SparseVectorConfigH\x0c\x88\x01\x01\x12\x39\n\x12strict_mode_config\x18\x11 \x01(\x0b\x32\x18.qdrant.StrictModeConfigH\r\x88\x01\x01\x42\x0e\n\x0c_hnsw_configB\r\n\x0b_wal_configB\x14\n\x12_optimizers_configB\x0f\n\r_shard_numberB\x12\n\x10_on_disk_payloadB\n\n\x08_timeoutB\x11\n\x0f_vectors_configB\x15\n\x13_replication_factorB\x1b\n\x19_write_consistency_factorB\x17\n\x15_init_from_collectionB\x16\n\x14_quantization_configB\x12\n\x10_sharding_methodB\x18\n\x16_sparse_vectors_configB\x15\n\x13_strict_mode_configJ\x04\x08\x02\x10\x03J\x04\x08\x03\x10\x04\"\xa0\x04\n\x10UpdateCollection\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12<\n\x11optimizers_config\x18\x02 \x01(\x0b\x32\x1c.qdrant.OptimizersConfigDiffH\x00\x88\x01\x01\x12\x14\n\x07timeout\x18\x03 \x01(\x04H\x01\x88\x01\x01\x12\x31\n\x06params\x18\x04 \x01(\x0b\x32\x1c.qdrant.CollectionParamsDiffH\x02\x88\x01\x01\x12\x30\n\x0bhnsw_config\x18\x05 \x01(\x0b\x32\x16.qdrant.HnswConfigDiffH\x03\x88\x01\x01\x12\x36\n\x0evectors_config\x18\x06 \x01(\x0b\x32\x19.qdrant.VectorsConfigDiffH\x04\x88\x01\x01\x12@\n\x13quantization_config\x18\x07 \x01(\x0b\x32\x1e.qdrant.QuantizationConfigDiffH\x05\x88\x01\x01\x12>\n\x15sparse_vectors_config\x18\x08 \x01(\x0b\x32\x1a.qdrant.SparseVectorConfigH\x06\x88\x01\x01\x42\x14\n\x12_optimizers_configB\n\n\x08_timeoutB\t\n\x07_paramsB\x0e\n\x0c_hnsw_configB\x11\n\x0f_vectors_configB\x16\n\x14_quantization_configB\x18\n\x16_sparse_vectors_config\"M\n\x10\x44\x65leteCollection\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12\x14\n\x07timeout\x18\x02 \x01(\x04H\x00\x88\x01\x01\x42\n\n\x08_timeout\";\n\x1b\x43ollectionOperationResponse\x12\x0e\n\x06result\x18\x01 \x01(\x08\x12\x0c\n\x04time\x18\x02 \x01(\x01\"\xee\x03\n\x10\x43ollectionParams\x12\x14\n\x0cshard_number\x18\x03 \x01(\r\x12\x17\n\x0fon_disk_payload\x18\x04 \x01(\x08\x12\x32\n\x0evectors_config\x18\x05 \x01(\x0b\x32\x15.qdrant.VectorsConfigH\x00\x88\x01\x01\x12\x1f\n\x12replication_factor\x18\x06 \x01(\rH\x01\x88\x01\x01\x12%\n\x18write_consistency_factor\x18\x07 \x01(\rH\x02\x88\x01\x01\x12 \n\x13read_fan_out_factor\x18\x08 \x01(\rH\x03\x88\x01\x01\x12\x34\n\x0fsharding_method\x18\t \x01(\x0e\x32\x16.qdrant.ShardingMethodH\x04\x88\x01\x01\x12>\n\x15sparse_vectors_config\x18\n \x01(\x0b\x32\x1a.qdrant.SparseVectorConfigH\x05\x88\x01\x01\x42\x11\n\x0f_vectors_configB\x15\n\x13_replication_factorB\x1b\n\x19_write_consistency_factorB\x16\n\x14_read_fan_out_factorB\x12\n\x10_sharding_methodB\x18\n\x16_sparse_vectors_configJ\x04\x08\x01\x10\x02J\x04\x08\x02\x10\x03\"\xfe\x01\n\x14\x43ollectionParamsDiff\x12\x1f\n\x12replication_factor\x18\x01 \x01(\rH\x00\x88\x01\x01\x12%\n\x18write_consistency_factor\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x1c\n\x0fon_disk_payload\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12 \n\x13read_fan_out_factor\x18\x04 \x01(\rH\x03\x88\x01\x01\x42\x15\n\x13_replication_factorB\x1b\n\x19_write_consistency_factorB\x12\n\x10_on_disk_payloadB\x16\n\x14_read_fan_out_factor\"\xf4\x02\n\x10\x43ollectionConfig\x12(\n\x06params\x18\x01 \x01(\x0b\x32\x18.qdrant.CollectionParams\x12+\n\x0bhnsw_config\x18\x02 \x01(\x0b\x32\x16.qdrant.HnswConfigDiff\x12\x36\n\x10optimizer_config\x18\x03 \x01(\x0b\x32\x1c.qdrant.OptimizersConfigDiff\x12)\n\nwal_config\x18\x04 \x01(\x0b\x32\x15.qdrant.WalConfigDiff\x12<\n\x13quantization_config\x18\x05 \x01(\x0b\x32\x1a.qdrant.QuantizationConfigH\x00\x88\x01\x01\x12\x39\n\x12strict_mode_config\x18\x06 \x01(\x0b\x32\x18.qdrant.StrictModeConfigH\x01\x88\x01\x01\x42\x16\n\x14_quantization_configB\x15\n\x13_strict_mode_config\"\\\n\x12KeywordIndexParams\x12\x16\n\tis_tenant\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x14\n\x07on_disk\x18\x02 \x01(\x08H\x01\x88\x01\x01\x42\x0c\n\n_is_tenantB\n\n\x08_on_disk\"\xa0\x01\n\x12IntegerIndexParams\x12\x13\n\x06lookup\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x12\n\x05range\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\x19\n\x0cis_principal\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12\x14\n\x07on_disk\x18\x04 \x01(\x08H\x03\x88\x01\x01\x42\t\n\x07_lookupB\x08\n\x06_rangeB\x0f\n\r_is_principalB\n\n\x08_on_disk\"`\n\x10\x46loatIndexParams\x12\x14\n\x07on_disk\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x19\n\x0cis_principal\x18\x02 \x01(\x08H\x01\x88\x01\x01\x42\n\n\x08_on_diskB\x0f\n\r_is_principal\"2\n\x0eGeoIndexParams\x12\x14\n\x07on_disk\x18\x01 \x01(\x08H\x00\x88\x01\x01\x42\n\n\x08_on_disk\"\xdf\x01\n\x0fTextIndexParams\x12(\n\ttokenizer\x18\x01 \x01(\x0e\x32\x15.qdrant.TokenizerType\x12\x16\n\tlowercase\x18\x02 \x01(\x08H\x00\x88\x01\x01\x12\x1a\n\rmin_token_len\x18\x03 \x01(\x04H\x01\x88\x01\x01\x12\x1a\n\rmax_token_len\x18\x04 \x01(\x04H\x02\x88\x01\x01\x12\x14\n\x07on_disk\x18\x05 \x01(\x08H\x03\x88\x01\x01\x42\x0c\n\n_lowercaseB\x10\n\x0e_min_token_lenB\x10\n\x0e_max_token_lenB\n\n\x08_on_disk\"\x11\n\x0f\x42oolIndexParams\"c\n\x13\x44\x61tetimeIndexParams\x12\x14\n\x07on_disk\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x19\n\x0cis_principal\x18\x02 \x01(\x08H\x01\x88\x01\x01\x42\n\n\x08_on_diskB\x0f\n\r_is_principal\"Y\n\x0fUuidIndexParams\x12\x16\n\tis_tenant\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x14\n\x07on_disk\x18\x02 \x01(\x08H\x01\x88\x01\x01\x42\x0c\n\n_is_tenantB\n\n\x08_on_disk\"\xe8\x03\n\x12PayloadIndexParams\x12:\n\x14keyword_index_params\x18\x03 \x01(\x0b\x32\x1a.qdrant.KeywordIndexParamsH\x00\x12:\n\x14integer_index_params\x18\x02 \x01(\x0b\x32\x1a.qdrant.IntegerIndexParamsH\x00\x12\x36\n\x12\x66loat_index_params\x18\x04 \x01(\x0b\x32\x18.qdrant.FloatIndexParamsH\x00\x12\x32\n\x10geo_index_params\x18\x05 \x01(\x0b\x32\x16.qdrant.GeoIndexParamsH\x00\x12\x34\n\x11text_index_params\x18\x01 \x01(\x0b\x32\x17.qdrant.TextIndexParamsH\x00\x12\x34\n\x11\x62ool_index_params\x18\x06 \x01(\x0b\x32\x17.qdrant.BoolIndexParamsH\x00\x12<\n\x15\x64\x61tetime_index_params\x18\x07 \x01(\x0b\x32\x1b.qdrant.DatetimeIndexParamsH\x00\x12\x34\n\x11uuid_index_params\x18\x08 \x01(\x0b\x32\x17.qdrant.UuidIndexParamsH\x00\x42\x0e\n\x0cindex_params\"\x9d\x01\n\x11PayloadSchemaInfo\x12,\n\tdata_type\x18\x01 \x01(\x0e\x32\x19.qdrant.PayloadSchemaType\x12/\n\x06params\x18\x02 \x01(\x0b\x32\x1a.qdrant.PayloadIndexParamsH\x00\x88\x01\x01\x12\x13\n\x06points\x18\x03 \x01(\x04H\x01\x88\x01\x01\x42\t\n\x07_paramsB\t\n\x07_points\"\xe7\x03\n\x0e\x43ollectionInfo\x12(\n\x06status\x18\x01 \x01(\x0e\x32\x18.qdrant.CollectionStatus\x12\x31\n\x10optimizer_status\x18\x02 \x01(\x0b\x32\x17.qdrant.OptimizerStatus\x12\x1a\n\rvectors_count\x18\x03 \x01(\x04H\x00\x88\x01\x01\x12\x16\n\x0esegments_count\x18\x04 \x01(\x04\x12(\n\x06\x63onfig\x18\x07 \x01(\x0b\x32\x18.qdrant.CollectionConfig\x12\x41\n\x0epayload_schema\x18\x08 \x03(\x0b\x32).qdrant.CollectionInfo.PayloadSchemaEntry\x12\x19\n\x0cpoints_count\x18\t \x01(\x04H\x01\x88\x01\x01\x12\"\n\x15indexed_vectors_count\x18\n \x01(\x04H\x02\x88\x01\x01\x1aO\n\x12PayloadSchemaEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12(\n\x05value\x18\x02 \x01(\x0b\x32\x19.qdrant.PayloadSchemaInfo:\x02\x38\x01\x42\x10\n\x0e_vectors_countB\x0f\n\r_points_countB\x18\n\x16_indexed_vectors_countJ\x04\x08\x05\x10\x06J\x04\x08\x06\x10\x07\"[\n\rChangeAliases\x12(\n\x07\x61\x63tions\x18\x01 \x03(\x0b\x32\x17.qdrant.AliasOperations\x12\x14\n\x07timeout\x18\x02 \x01(\x04H\x00\x88\x01\x01\x42\n\n\x08_timeout\"\xa2\x01\n\x0f\x41liasOperations\x12+\n\x0c\x63reate_alias\x18\x01 \x01(\x0b\x32\x13.qdrant.CreateAliasH\x00\x12+\n\x0crename_alias\x18\x02 \x01(\x0b\x32\x13.qdrant.RenameAliasH\x00\x12+\n\x0c\x64\x65lete_alias\x18\x03 \x01(\x0b\x32\x13.qdrant.DeleteAliasH\x00\x42\x08\n\x06\x61\x63tion\":\n\x0b\x43reateAlias\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12\x12\n\nalias_name\x18\x02 \x01(\t\"=\n\x0bRenameAlias\x12\x16\n\x0eold_alias_name\x18\x01 \x01(\t\x12\x16\n\x0enew_alias_name\x18\x02 \x01(\t\"!\n\x0b\x44\x65leteAlias\x12\x12\n\nalias_name\x18\x01 \x01(\t\"\x14\n\x12ListAliasesRequest\"7\n\x1cListCollectionAliasesRequest\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\"?\n\x10\x41liasDescription\x12\x12\n\nalias_name\x18\x01 \x01(\t\x12\x17\n\x0f\x63ollection_name\x18\x02 \x01(\t\"N\n\x13ListAliasesResponse\x12)\n\x07\x61liases\x18\x01 \x03(\x0b\x32\x18.qdrant.AliasDescription\x12\x0c\n\x04time\x18\x02 \x01(\x01\"7\n\x1c\x43ollectionClusterInfoRequest\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\"6\n\x08ShardKey\x12\x11\n\x07keyword\x18\x01 \x01(\tH\x00\x12\x10\n\x06number\x18\x02 \x01(\x04H\x00\x42\x05\n\x03key\"\x95\x01\n\x0eLocalShardInfo\x12\x10\n\x08shard_id\x18\x01 \x01(\r\x12\x14\n\x0cpoints_count\x18\x02 \x01(\x04\x12#\n\x05state\x18\x03 \x01(\x0e\x32\x14.qdrant.ReplicaState\x12(\n\tshard_key\x18\x04 \x01(\x0b\x32\x10.qdrant.ShardKeyH\x00\x88\x01\x01\x42\x0c\n\n_shard_key\"\x91\x01\n\x0fRemoteShardInfo\x12\x10\n\x08shard_id\x18\x01 \x01(\r\x12\x0f\n\x07peer_id\x18\x02 \x01(\x04\x12#\n\x05state\x18\x03 \x01(\x0e\x32\x14.qdrant.ReplicaState\x12(\n\tshard_key\x18\x04 \x01(\x0b\x32\x10.qdrant.ShardKeyH\x00\x88\x01\x01\x42\x0c\n\n_shard_key\"w\n\x11ShardTransferInfo\x12\x10\n\x08shard_id\x18\x01 \x01(\r\x12\x18\n\x0bto_shard_id\x18\x05 \x01(\rH\x00\x88\x01\x01\x12\x0c\n\x04\x66rom\x18\x02 \x01(\x04\x12\n\n\x02to\x18\x03 \x01(\x04\x12\x0c\n\x04sync\x18\x04 \x01(\x08\x42\x0e\n\x0c_to_shard_id\"k\n\x0eReshardingInfo\x12\x10\n\x08shard_id\x18\x01 \x01(\r\x12\x0f\n\x07peer_id\x18\x02 \x01(\x04\x12(\n\tshard_key\x18\x03 \x01(\x0b\x32\x10.qdrant.ShardKeyH\x00\x88\x01\x01\x42\x0c\n\n_shard_key\"\xd7\x01\n\x1d\x43ollectionClusterInfoResponse\x12\x0f\n\x07peer_id\x18\x01 \x01(\x04\x12\x13\n\x0bshard_count\x18\x02 \x01(\x04\x12,\n\x0clocal_shards\x18\x03 \x03(\x0b\x32\x16.qdrant.LocalShardInfo\x12.\n\rremote_shards\x18\x04 \x03(\x0b\x32\x17.qdrant.RemoteShardInfo\x12\x32\n\x0fshard_transfers\x18\x05 \x03(\x0b\x32\x19.qdrant.ShardTransferInfo\"\xae\x01\n\tMoveShard\x12\x10\n\x08shard_id\x18\x01 \x01(\r\x12\x18\n\x0bto_shard_id\x18\x05 \x01(\rH\x00\x88\x01\x01\x12\x14\n\x0c\x66rom_peer_id\x18\x02 \x01(\x04\x12\x12\n\nto_peer_id\x18\x03 \x01(\x04\x12\x30\n\x06method\x18\x04 \x01(\x0e\x32\x1b.qdrant.ShardTransferMethodH\x01\x88\x01\x01\x42\x0e\n\x0c_to_shard_idB\t\n\x07_method\"\xb3\x01\n\x0eReplicateShard\x12\x10\n\x08shard_id\x18\x01 \x01(\r\x12\x18\n\x0bto_shard_id\x18\x05 \x01(\rH\x00\x88\x01\x01\x12\x14\n\x0c\x66rom_peer_id\x18\x02 \x01(\x04\x12\x12\n\nto_peer_id\x18\x03 \x01(\x04\x12\x30\n\x06method\x18\x04 \x01(\x0e\x32\x1b.qdrant.ShardTransferMethodH\x01\x88\x01\x01\x42\x0e\n\x0c_to_shard_idB\t\n\x07_method\"z\n\x12\x41\x62ortShardTransfer\x12\x10\n\x08shard_id\x18\x01 \x01(\r\x12\x18\n\x0bto_shard_id\x18\x04 \x01(\rH\x00\x88\x01\x01\x12\x14\n\x0c\x66rom_peer_id\x18\x02 \x01(\x04\x12\x12\n\nto_peer_id\x18\x03 \x01(\x04\x42\x0e\n\x0c_to_shard_id\"\xa4\x01\n\x0fRestartTransfer\x12\x10\n\x08shard_id\x18\x01 \x01(\r\x12\x18\n\x0bto_shard_id\x18\x05 \x01(\rH\x00\x88\x01\x01\x12\x14\n\x0c\x66rom_peer_id\x18\x02 \x01(\x04\x12\x12\n\nto_peer_id\x18\x03 \x01(\x04\x12+\n\x06method\x18\x04 \x01(\x0e\x32\x1b.qdrant.ShardTransferMethodB\x0e\n\x0c_to_shard_id\",\n\x07Replica\x12\x10\n\x08shard_id\x18\x01 \x01(\r\x12\x0f\n\x07peer_id\x18\x02 \x01(\x04\"\xae\x01\n\x0e\x43reateShardKey\x12#\n\tshard_key\x18\x01 \x01(\x0b\x32\x10.qdrant.ShardKey\x12\x1a\n\rshards_number\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x1f\n\x12replication_factor\x18\x03 \x01(\rH\x01\x88\x01\x01\x12\x11\n\tplacement\x18\x04 \x03(\x04\x42\x10\n\x0e_shards_numberB\x15\n\x13_replication_factor\"5\n\x0e\x44\x65leteShardKey\x12#\n\tshard_key\x18\x01 \x01(\x0b\x32\x10.qdrant.ShardKey\"\xc5\x03\n#UpdateCollectionClusterSetupRequest\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12\'\n\nmove_shard\x18\x02 \x01(\x0b\x32\x11.qdrant.MoveShardH\x00\x12\x31\n\x0freplicate_shard\x18\x03 \x01(\x0b\x32\x16.qdrant.ReplicateShardH\x00\x12\x34\n\x0e\x61\x62ort_transfer\x18\x04 \x01(\x0b\x32\x1a.qdrant.AbortShardTransferH\x00\x12\'\n\x0c\x64rop_replica\x18\x05 \x01(\x0b\x32\x0f.qdrant.ReplicaH\x00\x12\x32\n\x10\x63reate_shard_key\x18\x07 \x01(\x0b\x32\x16.qdrant.CreateShardKeyH\x00\x12\x32\n\x10\x64\x65lete_shard_key\x18\x08 \x01(\x0b\x32\x16.qdrant.DeleteShardKeyH\x00\x12\x33\n\x10restart_transfer\x18\t \x01(\x0b\x32\x17.qdrant.RestartTransferH\x00\x12\x14\n\x07timeout\x18\x06 \x01(\x04H\x01\x88\x01\x01\x42\x0b\n\toperationB\n\n\x08_timeout\"6\n$UpdateCollectionClusterSetupResponse\x12\x0e\n\x06result\x18\x01 \x01(\x08\"{\n\x15\x43reateShardKeyRequest\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12\'\n\x07request\x18\x02 \x01(\x0b\x32\x16.qdrant.CreateShardKey\x12\x14\n\x07timeout\x18\x03 \x01(\x04H\x00\x88\x01\x01\x42\n\n\x08_timeout\"{\n\x15\x44\x65leteShardKeyRequest\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12\'\n\x07request\x18\x02 \x01(\x0b\x32\x16.qdrant.DeleteShardKey\x12\x14\n\x07timeout\x18\x03 \x01(\x04H\x00\x88\x01\x01\x42\n\n\x08_timeout\"(\n\x16\x43reateShardKeyResponse\x12\x0e\n\x06result\x18\x01 \x01(\x08\"(\n\x16\x44\x65leteShardKeyResponse\x12\x0e\n\x06result\x18\x01 \x01(\x08*<\n\x08\x44\x61tatype\x12\x0b\n\x07\x44\x65\x66\x61ult\x10\x00\x12\x0b\n\x07\x46loat32\x10\x01\x12\t\n\x05Uint8\x10\x02\x12\x0b\n\x07\x46loat16\x10\x03*\x1d\n\x08Modifier\x12\x08\n\x04None\x10\x00\x12\x07\n\x03Idf\x10\x01*#\n\x15MultiVectorComparator\x12\n\n\x06MaxSim\x10\x00*O\n\x08\x44istance\x12\x13\n\x0fUnknownDistance\x10\x00\x12\n\n\x06\x43osine\x10\x01\x12\n\n\x06\x45uclid\x10\x02\x12\x07\n\x03\x44ot\x10\x03\x12\r\n\tManhattan\x10\x04*Y\n\x10\x43ollectionStatus\x12\x1b\n\x17UnknownCollectionStatus\x10\x00\x12\t\n\x05Green\x10\x01\x12\n\n\x06Yellow\x10\x02\x12\x07\n\x03Red\x10\x03\x12\x08\n\x04Grey\x10\x04*~\n\x11PayloadSchemaType\x12\x0f\n\x0bUnknownType\x10\x00\x12\x0b\n\x07Keyword\x10\x01\x12\x0b\n\x07Integer\x10\x02\x12\t\n\x05\x46loat\x10\x03\x12\x07\n\x03Geo\x10\x04\x12\x08\n\x04Text\x10\x05\x12\x08\n\x04\x42ool\x10\x06\x12\x0c\n\x08\x44\x61tetime\x10\x07\x12\x08\n\x04Uuid\x10\x08*5\n\x10QuantizationType\x12\x17\n\x13UnknownQuantization\x10\x00\x12\x08\n\x04Int8\x10\x01*=\n\x10\x43ompressionRatio\x12\x06\n\x02x4\x10\x00\x12\x06\n\x02x8\x10\x01\x12\x07\n\x03x16\x10\x02\x12\x07\n\x03x32\x10\x03\x12\x07\n\x03x64\x10\x04*&\n\x0eShardingMethod\x12\x08\n\x04\x41uto\x10\x00\x12\n\n\x06\x43ustom\x10\x01*T\n\rTokenizerType\x12\x0b\n\x07Unknown\x10\x00\x12\n\n\x06Prefix\x10\x01\x12\x0e\n\nWhitespace\x10\x02\x12\x08\n\x04Word\x10\x03\x12\x10\n\x0cMultilingual\x10\x04*\x84\x01\n\x0cReplicaState\x12\n\n\x06\x41\x63tive\x10\x00\x12\x08\n\x04\x44\x65\x61\x64\x10\x01\x12\x0b\n\x07Partial\x10\x02\x12\x10\n\x0cInitializing\x10\x03\x12\x0c\n\x08Listener\x10\x04\x12\x13\n\x0fPartialSnapshot\x10\x05\x12\x0c\n\x08Recovery\x10\x06\x12\x0e\n\nResharding\x10\x07*a\n\x13ShardTransferMethod\x12\x11\n\rStreamRecords\x10\x00\x12\x0c\n\x08Snapshot\x10\x01\x12\x0c\n\x08WalDelta\x10\x02\x12\x1b\n\x17ReshardingStreamRecords\x10\x03\x42\x15\xaa\x02\x12Qdrant.Client.Grpcb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x11\x63ollections.proto\x12\x06qdrant\"\x83\x03\n\x0cVectorParams\x12\x0c\n\x04size\x18\x01 \x01(\x04\x12\"\n\x08\x64istance\x18\x02 \x01(\x0e\x32\x10.qdrant.Distance\x12\x30\n\x0bhnsw_config\x18\x03 \x01(\x0b\x32\x16.qdrant.HnswConfigDiffH\x00\x88\x01\x01\x12<\n\x13quantization_config\x18\x04 \x01(\x0b\x32\x1a.qdrant.QuantizationConfigH\x01\x88\x01\x01\x12\x14\n\x07on_disk\x18\x05 \x01(\x08H\x02\x88\x01\x01\x12\'\n\x08\x64\x61tatype\x18\x06 \x01(\x0e\x32\x10.qdrant.DatatypeH\x03\x88\x01\x01\x12:\n\x12multivector_config\x18\x07 \x01(\x0b\x32\x19.qdrant.MultiVectorConfigH\x04\x88\x01\x01\x42\x0e\n\x0c_hnsw_configB\x16\n\x14_quantization_configB\n\n\x08_on_diskB\x0b\n\t_datatypeB\x15\n\x13_multivector_config\"\xd0\x01\n\x10VectorParamsDiff\x12\x30\n\x0bhnsw_config\x18\x01 \x01(\x0b\x32\x16.qdrant.HnswConfigDiffH\x00\x88\x01\x01\x12@\n\x13quantization_config\x18\x02 \x01(\x0b\x32\x1e.qdrant.QuantizationConfigDiffH\x01\x88\x01\x01\x12\x14\n\x07on_disk\x18\x03 \x01(\x08H\x02\x88\x01\x01\x42\x0e\n\x0c_hnsw_configB\x16\n\x14_quantization_configB\n\n\x08_on_disk\"\x82\x01\n\x0fVectorParamsMap\x12-\n\x03map\x18\x01 \x03(\x0b\x32 .qdrant.VectorParamsMap.MapEntry\x1a@\n\x08MapEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12#\n\x05value\x18\x02 \x01(\x0b\x32\x14.qdrant.VectorParams:\x02\x38\x01\"\x8e\x01\n\x13VectorParamsDiffMap\x12\x31\n\x03map\x18\x01 \x03(\x0b\x32$.qdrant.VectorParamsDiffMap.MapEntry\x1a\x44\n\x08MapEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\'\n\x05value\x18\x02 \x01(\x0b\x32\x18.qdrant.VectorParamsDiff:\x02\x38\x01\"p\n\rVectorsConfig\x12&\n\x06params\x18\x01 \x01(\x0b\x32\x14.qdrant.VectorParamsH\x00\x12-\n\nparams_map\x18\x02 \x01(\x0b\x32\x17.qdrant.VectorParamsMapH\x00\x42\x08\n\x06\x63onfig\"|\n\x11VectorsConfigDiff\x12*\n\x06params\x18\x01 \x01(\x0b\x32\x18.qdrant.VectorParamsDiffH\x00\x12\x31\n\nparams_map\x18\x02 \x01(\x0b\x32\x1b.qdrant.VectorParamsDiffMapH\x00\x42\x08\n\x06\x63onfig\"\x83\x01\n\x12SparseVectorParams\x12-\n\x05index\x18\x01 \x01(\x0b\x32\x19.qdrant.SparseIndexConfigH\x00\x88\x01\x01\x12\'\n\x08modifier\x18\x02 \x01(\x0e\x32\x10.qdrant.ModifierH\x01\x88\x01\x01\x42\x08\n\x06_indexB\x0b\n\t_modifier\"\x8e\x01\n\x12SparseVectorConfig\x12\x30\n\x03map\x18\x01 \x03(\x0b\x32#.qdrant.SparseVectorConfig.MapEntry\x1a\x46\n\x08MapEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12)\n\x05value\x18\x02 \x01(\x0b\x32\x1a.qdrant.SparseVectorParams:\x02\x38\x01\"F\n\x11MultiVectorConfig\x12\x31\n\ncomparator\x18\x01 \x01(\x0e\x32\x1d.qdrant.MultiVectorComparator\"3\n\x18GetCollectionInfoRequest\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\"2\n\x17\x43ollectionExistsRequest\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\"\"\n\x10\x43ollectionExists\x12\x0e\n\x06\x65xists\x18\x01 \x01(\x08\"R\n\x18\x43ollectionExistsResponse\x12(\n\x06result\x18\x01 \x01(\x0b\x32\x18.qdrant.CollectionExists\x12\x0c\n\x04time\x18\x02 \x01(\x01\"\x18\n\x16ListCollectionsRequest\"%\n\x15\x43ollectionDescription\x12\x0c\n\x04name\x18\x01 \x01(\t\"Q\n\x19GetCollectionInfoResponse\x12&\n\x06result\x18\x01 \x01(\x0b\x32\x16.qdrant.CollectionInfo\x12\x0c\n\x04time\x18\x02 \x01(\x01\"[\n\x17ListCollectionsResponse\x12\x32\n\x0b\x63ollections\x18\x01 \x03(\x0b\x32\x1d.qdrant.CollectionDescription\x12\x0c\n\x04time\x18\x02 \x01(\x01\",\n\x0fOptimizerStatus\x12\n\n\x02ok\x18\x01 \x01(\x08\x12\r\n\x05\x65rror\x18\x02 \x01(\t\"\x90\x02\n\x0eHnswConfigDiff\x12\x0e\n\x01m\x18\x01 \x01(\x04H\x00\x88\x01\x01\x12\x19\n\x0c\x65\x66_construct\x18\x02 \x01(\x04H\x01\x88\x01\x01\x12 \n\x13\x66ull_scan_threshold\x18\x03 \x01(\x04H\x02\x88\x01\x01\x12!\n\x14max_indexing_threads\x18\x04 \x01(\x04H\x03\x88\x01\x01\x12\x14\n\x07on_disk\x18\x05 \x01(\x08H\x04\x88\x01\x01\x12\x16\n\tpayload_m\x18\x06 \x01(\x04H\x05\x88\x01\x01\x42\x04\n\x02_mB\x0f\n\r_ef_constructB\x16\n\x14_full_scan_thresholdB\x17\n\x15_max_indexing_threadsB\n\n\x08_on_diskB\x0c\n\n_payload_m\"\xa5\x01\n\x11SparseIndexConfig\x12 \n\x13\x66ull_scan_threshold\x18\x01 \x01(\x04H\x00\x88\x01\x01\x12\x14\n\x07on_disk\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\'\n\x08\x64\x61tatype\x18\x03 \x01(\x0e\x32\x10.qdrant.DatatypeH\x02\x88\x01\x01\x42\x16\n\x14_full_scan_thresholdB\n\n\x08_on_diskB\x0b\n\t_datatype\"y\n\rWalConfigDiff\x12\x1c\n\x0fwal_capacity_mb\x18\x01 \x01(\x04H\x00\x88\x01\x01\x12\x1f\n\x12wal_segments_ahead\x18\x02 \x01(\x04H\x01\x88\x01\x01\x42\x12\n\x10_wal_capacity_mbB\x15\n\x13_wal_segments_ahead\"\xec\x03\n\x14OptimizersConfigDiff\x12\x1e\n\x11\x64\x65leted_threshold\x18\x01 \x01(\x01H\x00\x88\x01\x01\x12%\n\x18vacuum_min_vector_number\x18\x02 \x01(\x04H\x01\x88\x01\x01\x12#\n\x16\x64\x65\x66\x61ult_segment_number\x18\x03 \x01(\x04H\x02\x88\x01\x01\x12\x1d\n\x10max_segment_size\x18\x04 \x01(\x04H\x03\x88\x01\x01\x12\x1d\n\x10memmap_threshold\x18\x05 \x01(\x04H\x04\x88\x01\x01\x12\x1f\n\x12indexing_threshold\x18\x06 \x01(\x04H\x05\x88\x01\x01\x12\x1f\n\x12\x66lush_interval_sec\x18\x07 \x01(\x04H\x06\x88\x01\x01\x12%\n\x18max_optimization_threads\x18\x08 \x01(\x04H\x07\x88\x01\x01\x42\x14\n\x12_deleted_thresholdB\x1b\n\x19_vacuum_min_vector_numberB\x19\n\x17_default_segment_numberB\x13\n\x11_max_segment_sizeB\x13\n\x11_memmap_thresholdB\x15\n\x13_indexing_thresholdB\x15\n\x13_flush_interval_secB\x1b\n\x19_max_optimization_threads\"\x88\x01\n\x12ScalarQuantization\x12&\n\x04type\x18\x01 \x01(\x0e\x32\x18.qdrant.QuantizationType\x12\x15\n\x08quantile\x18\x02 \x01(\x02H\x00\x88\x01\x01\x12\x17\n\nalways_ram\x18\x03 \x01(\x08H\x01\x88\x01\x01\x42\x0b\n\t_quantileB\r\n\x0b_always_ram\"l\n\x13ProductQuantization\x12-\n\x0b\x63ompression\x18\x01 \x01(\x0e\x32\x18.qdrant.CompressionRatio\x12\x17\n\nalways_ram\x18\x02 \x01(\x08H\x00\x88\x01\x01\x42\r\n\x0b_always_ram\"<\n\x12\x42inaryQuantization\x12\x17\n\nalways_ram\x18\x01 \x01(\x08H\x00\x88\x01\x01\x42\r\n\x0b_always_ram\"\xb0\x01\n\x12QuantizationConfig\x12,\n\x06scalar\x18\x01 \x01(\x0b\x32\x1a.qdrant.ScalarQuantizationH\x00\x12.\n\x07product\x18\x02 \x01(\x0b\x32\x1b.qdrant.ProductQuantizationH\x00\x12,\n\x06\x62inary\x18\x03 \x01(\x0b\x32\x1a.qdrant.BinaryQuantizationH\x00\x42\x0e\n\x0cquantization\"\n\n\x08\x44isabled\"\xda\x01\n\x16QuantizationConfigDiff\x12,\n\x06scalar\x18\x01 \x01(\x0b\x32\x1a.qdrant.ScalarQuantizationH\x00\x12.\n\x07product\x18\x02 \x01(\x0b\x32\x1b.qdrant.ProductQuantizationH\x00\x12$\n\x08\x64isabled\x18\x03 \x01(\x0b\x32\x10.qdrant.DisabledH\x00\x12,\n\x06\x62inary\x18\x04 \x01(\x0b\x32\x1a.qdrant.BinaryQuantizationH\x00\x42\x0e\n\x0cquantization\"\xd6\x03\n\x10StrictModeConfig\x12\x14\n\x07\x65nabled\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x1c\n\x0fmax_query_limit\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x18\n\x0bmax_timeout\x18\x03 \x01(\rH\x02\x88\x01\x01\x12)\n\x1cunindexed_filtering_retrieve\x18\x04 \x01(\x08H\x03\x88\x01\x01\x12\'\n\x1aunindexed_filtering_update\x18\x05 \x01(\x08H\x04\x88\x01\x01\x12\x1f\n\x12search_max_hnsw_ef\x18\x06 \x01(\rH\x05\x88\x01\x01\x12\x1f\n\x12search_allow_exact\x18\x07 \x01(\x08H\x06\x88\x01\x01\x12$\n\x17search_max_oversampling\x18\x08 \x01(\x02H\x07\x88\x01\x01\x42\n\n\x08_enabledB\x12\n\x10_max_query_limitB\x0e\n\x0c_max_timeoutB\x1f\n\x1d_unindexed_filtering_retrieveB\x1d\n\x1b_unindexed_filtering_updateB\x15\n\x13_search_max_hnsw_efB\x15\n\x13_search_allow_exactB\x1a\n\x18_search_max_oversampling\"\xd7\x07\n\x10\x43reateCollection\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12\x30\n\x0bhnsw_config\x18\x04 \x01(\x0b\x32\x16.qdrant.HnswConfigDiffH\x00\x88\x01\x01\x12.\n\nwal_config\x18\x05 \x01(\x0b\x32\x15.qdrant.WalConfigDiffH\x01\x88\x01\x01\x12<\n\x11optimizers_config\x18\x06 \x01(\x0b\x32\x1c.qdrant.OptimizersConfigDiffH\x02\x88\x01\x01\x12\x19\n\x0cshard_number\x18\x07 \x01(\rH\x03\x88\x01\x01\x12\x1c\n\x0fon_disk_payload\x18\x08 \x01(\x08H\x04\x88\x01\x01\x12\x14\n\x07timeout\x18\t \x01(\x04H\x05\x88\x01\x01\x12\x32\n\x0evectors_config\x18\n \x01(\x0b\x32\x15.qdrant.VectorsConfigH\x06\x88\x01\x01\x12\x1f\n\x12replication_factor\x18\x0b \x01(\rH\x07\x88\x01\x01\x12%\n\x18write_consistency_factor\x18\x0c \x01(\rH\x08\x88\x01\x01\x12!\n\x14init_from_collection\x18\r \x01(\tH\t\x88\x01\x01\x12<\n\x13quantization_config\x18\x0e \x01(\x0b\x32\x1a.qdrant.QuantizationConfigH\n\x88\x01\x01\x12\x34\n\x0fsharding_method\x18\x0f \x01(\x0e\x32\x16.qdrant.ShardingMethodH\x0b\x88\x01\x01\x12>\n\x15sparse_vectors_config\x18\x10 \x01(\x0b\x32\x1a.qdrant.SparseVectorConfigH\x0c\x88\x01\x01\x12\x39\n\x12strict_mode_config\x18\x11 \x01(\x0b\x32\x18.qdrant.StrictModeConfigH\r\x88\x01\x01\x42\x0e\n\x0c_hnsw_configB\r\n\x0b_wal_configB\x14\n\x12_optimizers_configB\x0f\n\r_shard_numberB\x12\n\x10_on_disk_payloadB\n\n\x08_timeoutB\x11\n\x0f_vectors_configB\x15\n\x13_replication_factorB\x1b\n\x19_write_consistency_factorB\x17\n\x15_init_from_collectionB\x16\n\x14_quantization_configB\x12\n\x10_sharding_methodB\x18\n\x16_sparse_vectors_configB\x15\n\x13_strict_mode_configJ\x04\x08\x02\x10\x03J\x04\x08\x03\x10\x04\"\xf2\x04\n\x10UpdateCollection\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12<\n\x11optimizers_config\x18\x02 \x01(\x0b\x32\x1c.qdrant.OptimizersConfigDiffH\x00\x88\x01\x01\x12\x14\n\x07timeout\x18\x03 \x01(\x04H\x01\x88\x01\x01\x12\x31\n\x06params\x18\x04 \x01(\x0b\x32\x1c.qdrant.CollectionParamsDiffH\x02\x88\x01\x01\x12\x30\n\x0bhnsw_config\x18\x05 \x01(\x0b\x32\x16.qdrant.HnswConfigDiffH\x03\x88\x01\x01\x12\x36\n\x0evectors_config\x18\x06 \x01(\x0b\x32\x19.qdrant.VectorsConfigDiffH\x04\x88\x01\x01\x12@\n\x13quantization_config\x18\x07 \x01(\x0b\x32\x1e.qdrant.QuantizationConfigDiffH\x05\x88\x01\x01\x12>\n\x15sparse_vectors_config\x18\x08 \x01(\x0b\x32\x1a.qdrant.SparseVectorConfigH\x06\x88\x01\x01\x12\x39\n\x12strict_mode_config\x18\t \x01(\x0b\x32\x18.qdrant.StrictModeConfigH\x07\x88\x01\x01\x42\x14\n\x12_optimizers_configB\n\n\x08_timeoutB\t\n\x07_paramsB\x0e\n\x0c_hnsw_configB\x11\n\x0f_vectors_configB\x16\n\x14_quantization_configB\x18\n\x16_sparse_vectors_configB\x15\n\x13_strict_mode_config\"M\n\x10\x44\x65leteCollection\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12\x14\n\x07timeout\x18\x02 \x01(\x04H\x00\x88\x01\x01\x42\n\n\x08_timeout\";\n\x1b\x43ollectionOperationResponse\x12\x0e\n\x06result\x18\x01 \x01(\x08\x12\x0c\n\x04time\x18\x02 \x01(\x01\"\xee\x03\n\x10\x43ollectionParams\x12\x14\n\x0cshard_number\x18\x03 \x01(\r\x12\x17\n\x0fon_disk_payload\x18\x04 \x01(\x08\x12\x32\n\x0evectors_config\x18\x05 \x01(\x0b\x32\x15.qdrant.VectorsConfigH\x00\x88\x01\x01\x12\x1f\n\x12replication_factor\x18\x06 \x01(\rH\x01\x88\x01\x01\x12%\n\x18write_consistency_factor\x18\x07 \x01(\rH\x02\x88\x01\x01\x12 \n\x13read_fan_out_factor\x18\x08 \x01(\rH\x03\x88\x01\x01\x12\x34\n\x0fsharding_method\x18\t \x01(\x0e\x32\x16.qdrant.ShardingMethodH\x04\x88\x01\x01\x12>\n\x15sparse_vectors_config\x18\n \x01(\x0b\x32\x1a.qdrant.SparseVectorConfigH\x05\x88\x01\x01\x42\x11\n\x0f_vectors_configB\x15\n\x13_replication_factorB\x1b\n\x19_write_consistency_factorB\x16\n\x14_read_fan_out_factorB\x12\n\x10_sharding_methodB\x18\n\x16_sparse_vectors_configJ\x04\x08\x01\x10\x02J\x04\x08\x02\x10\x03\"\xfe\x01\n\x14\x43ollectionParamsDiff\x12\x1f\n\x12replication_factor\x18\x01 \x01(\rH\x00\x88\x01\x01\x12%\n\x18write_consistency_factor\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x1c\n\x0fon_disk_payload\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12 \n\x13read_fan_out_factor\x18\x04 \x01(\rH\x03\x88\x01\x01\x42\x15\n\x13_replication_factorB\x1b\n\x19_write_consistency_factorB\x12\n\x10_on_disk_payloadB\x16\n\x14_read_fan_out_factor\"\xf4\x02\n\x10\x43ollectionConfig\x12(\n\x06params\x18\x01 \x01(\x0b\x32\x18.qdrant.CollectionParams\x12+\n\x0bhnsw_config\x18\x02 \x01(\x0b\x32\x16.qdrant.HnswConfigDiff\x12\x36\n\x10optimizer_config\x18\x03 \x01(\x0b\x32\x1c.qdrant.OptimizersConfigDiff\x12)\n\nwal_config\x18\x04 \x01(\x0b\x32\x15.qdrant.WalConfigDiff\x12<\n\x13quantization_config\x18\x05 \x01(\x0b\x32\x1a.qdrant.QuantizationConfigH\x00\x88\x01\x01\x12\x39\n\x12strict_mode_config\x18\x06 \x01(\x0b\x32\x18.qdrant.StrictModeConfigH\x01\x88\x01\x01\x42\x16\n\x14_quantization_configB\x15\n\x13_strict_mode_config\"\\\n\x12KeywordIndexParams\x12\x16\n\tis_tenant\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x14\n\x07on_disk\x18\x02 \x01(\x08H\x01\x88\x01\x01\x42\x0c\n\n_is_tenantB\n\n\x08_on_disk\"\xa0\x01\n\x12IntegerIndexParams\x12\x13\n\x06lookup\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x12\n\x05range\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\x19\n\x0cis_principal\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12\x14\n\x07on_disk\x18\x04 \x01(\x08H\x03\x88\x01\x01\x42\t\n\x07_lookupB\x08\n\x06_rangeB\x0f\n\r_is_principalB\n\n\x08_on_disk\"`\n\x10\x46loatIndexParams\x12\x14\n\x07on_disk\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x19\n\x0cis_principal\x18\x02 \x01(\x08H\x01\x88\x01\x01\x42\n\n\x08_on_diskB\x0f\n\r_is_principal\"2\n\x0eGeoIndexParams\x12\x14\n\x07on_disk\x18\x01 \x01(\x08H\x00\x88\x01\x01\x42\n\n\x08_on_disk\"\xdf\x01\n\x0fTextIndexParams\x12(\n\ttokenizer\x18\x01 \x01(\x0e\x32\x15.qdrant.TokenizerType\x12\x16\n\tlowercase\x18\x02 \x01(\x08H\x00\x88\x01\x01\x12\x1a\n\rmin_token_len\x18\x03 \x01(\x04H\x01\x88\x01\x01\x12\x1a\n\rmax_token_len\x18\x04 \x01(\x04H\x02\x88\x01\x01\x12\x14\n\x07on_disk\x18\x05 \x01(\x08H\x03\x88\x01\x01\x42\x0c\n\n_lowercaseB\x10\n\x0e_min_token_lenB\x10\n\x0e_max_token_lenB\n\n\x08_on_disk\"\x11\n\x0f\x42oolIndexParams\"c\n\x13\x44\x61tetimeIndexParams\x12\x14\n\x07on_disk\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x19\n\x0cis_principal\x18\x02 \x01(\x08H\x01\x88\x01\x01\x42\n\n\x08_on_diskB\x0f\n\r_is_principal\"Y\n\x0fUuidIndexParams\x12\x16\n\tis_tenant\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x14\n\x07on_disk\x18\x02 \x01(\x08H\x01\x88\x01\x01\x42\x0c\n\n_is_tenantB\n\n\x08_on_disk\"\xe8\x03\n\x12PayloadIndexParams\x12:\n\x14keyword_index_params\x18\x03 \x01(\x0b\x32\x1a.qdrant.KeywordIndexParamsH\x00\x12:\n\x14integer_index_params\x18\x02 \x01(\x0b\x32\x1a.qdrant.IntegerIndexParamsH\x00\x12\x36\n\x12\x66loat_index_params\x18\x04 \x01(\x0b\x32\x18.qdrant.FloatIndexParamsH\x00\x12\x32\n\x10geo_index_params\x18\x05 \x01(\x0b\x32\x16.qdrant.GeoIndexParamsH\x00\x12\x34\n\x11text_index_params\x18\x01 \x01(\x0b\x32\x17.qdrant.TextIndexParamsH\x00\x12\x34\n\x11\x62ool_index_params\x18\x06 \x01(\x0b\x32\x17.qdrant.BoolIndexParamsH\x00\x12<\n\x15\x64\x61tetime_index_params\x18\x07 \x01(\x0b\x32\x1b.qdrant.DatetimeIndexParamsH\x00\x12\x34\n\x11uuid_index_params\x18\x08 \x01(\x0b\x32\x17.qdrant.UuidIndexParamsH\x00\x42\x0e\n\x0cindex_params\"\x9d\x01\n\x11PayloadSchemaInfo\x12,\n\tdata_type\x18\x01 \x01(\x0e\x32\x19.qdrant.PayloadSchemaType\x12/\n\x06params\x18\x02 \x01(\x0b\x32\x1a.qdrant.PayloadIndexParamsH\x00\x88\x01\x01\x12\x13\n\x06points\x18\x03 \x01(\x04H\x01\x88\x01\x01\x42\t\n\x07_paramsB\t\n\x07_points\"\xe7\x03\n\x0e\x43ollectionInfo\x12(\n\x06status\x18\x01 \x01(\x0e\x32\x18.qdrant.CollectionStatus\x12\x31\n\x10optimizer_status\x18\x02 \x01(\x0b\x32\x17.qdrant.OptimizerStatus\x12\x1a\n\rvectors_count\x18\x03 \x01(\x04H\x00\x88\x01\x01\x12\x16\n\x0esegments_count\x18\x04 \x01(\x04\x12(\n\x06\x63onfig\x18\x07 \x01(\x0b\x32\x18.qdrant.CollectionConfig\x12\x41\n\x0epayload_schema\x18\x08 \x03(\x0b\x32).qdrant.CollectionInfo.PayloadSchemaEntry\x12\x19\n\x0cpoints_count\x18\t \x01(\x04H\x01\x88\x01\x01\x12\"\n\x15indexed_vectors_count\x18\n \x01(\x04H\x02\x88\x01\x01\x1aO\n\x12PayloadSchemaEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12(\n\x05value\x18\x02 \x01(\x0b\x32\x19.qdrant.PayloadSchemaInfo:\x02\x38\x01\x42\x10\n\x0e_vectors_countB\x0f\n\r_points_countB\x18\n\x16_indexed_vectors_countJ\x04\x08\x05\x10\x06J\x04\x08\x06\x10\x07\"[\n\rChangeAliases\x12(\n\x07\x61\x63tions\x18\x01 \x03(\x0b\x32\x17.qdrant.AliasOperations\x12\x14\n\x07timeout\x18\x02 \x01(\x04H\x00\x88\x01\x01\x42\n\n\x08_timeout\"\xa2\x01\n\x0f\x41liasOperations\x12+\n\x0c\x63reate_alias\x18\x01 \x01(\x0b\x32\x13.qdrant.CreateAliasH\x00\x12+\n\x0crename_alias\x18\x02 \x01(\x0b\x32\x13.qdrant.RenameAliasH\x00\x12+\n\x0c\x64\x65lete_alias\x18\x03 \x01(\x0b\x32\x13.qdrant.DeleteAliasH\x00\x42\x08\n\x06\x61\x63tion\":\n\x0b\x43reateAlias\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12\x12\n\nalias_name\x18\x02 \x01(\t\"=\n\x0bRenameAlias\x12\x16\n\x0eold_alias_name\x18\x01 \x01(\t\x12\x16\n\x0enew_alias_name\x18\x02 \x01(\t\"!\n\x0b\x44\x65leteAlias\x12\x12\n\nalias_name\x18\x01 \x01(\t\"\x14\n\x12ListAliasesRequest\"7\n\x1cListCollectionAliasesRequest\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\"?\n\x10\x41liasDescription\x12\x12\n\nalias_name\x18\x01 \x01(\t\x12\x17\n\x0f\x63ollection_name\x18\x02 \x01(\t\"N\n\x13ListAliasesResponse\x12)\n\x07\x61liases\x18\x01 \x03(\x0b\x32\x18.qdrant.AliasDescription\x12\x0c\n\x04time\x18\x02 \x01(\x01\"7\n\x1c\x43ollectionClusterInfoRequest\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\"6\n\x08ShardKey\x12\x11\n\x07keyword\x18\x01 \x01(\tH\x00\x12\x10\n\x06number\x18\x02 \x01(\x04H\x00\x42\x05\n\x03key\"\x95\x01\n\x0eLocalShardInfo\x12\x10\n\x08shard_id\x18\x01 \x01(\r\x12\x14\n\x0cpoints_count\x18\x02 \x01(\x04\x12#\n\x05state\x18\x03 \x01(\x0e\x32\x14.qdrant.ReplicaState\x12(\n\tshard_key\x18\x04 \x01(\x0b\x32\x10.qdrant.ShardKeyH\x00\x88\x01\x01\x42\x0c\n\n_shard_key\"\x91\x01\n\x0fRemoteShardInfo\x12\x10\n\x08shard_id\x18\x01 \x01(\r\x12\x0f\n\x07peer_id\x18\x02 \x01(\x04\x12#\n\x05state\x18\x03 \x01(\x0e\x32\x14.qdrant.ReplicaState\x12(\n\tshard_key\x18\x04 \x01(\x0b\x32\x10.qdrant.ShardKeyH\x00\x88\x01\x01\x42\x0c\n\n_shard_key\"w\n\x11ShardTransferInfo\x12\x10\n\x08shard_id\x18\x01 \x01(\r\x12\x18\n\x0bto_shard_id\x18\x05 \x01(\rH\x00\x88\x01\x01\x12\x0c\n\x04\x66rom\x18\x02 \x01(\x04\x12\n\n\x02to\x18\x03 \x01(\x04\x12\x0c\n\x04sync\x18\x04 \x01(\x08\x42\x0e\n\x0c_to_shard_id\"k\n\x0eReshardingInfo\x12\x10\n\x08shard_id\x18\x01 \x01(\r\x12\x0f\n\x07peer_id\x18\x02 \x01(\x04\x12(\n\tshard_key\x18\x03 \x01(\x0b\x32\x10.qdrant.ShardKeyH\x00\x88\x01\x01\x42\x0c\n\n_shard_key\"\xd7\x01\n\x1d\x43ollectionClusterInfoResponse\x12\x0f\n\x07peer_id\x18\x01 \x01(\x04\x12\x13\n\x0bshard_count\x18\x02 \x01(\x04\x12,\n\x0clocal_shards\x18\x03 \x03(\x0b\x32\x16.qdrant.LocalShardInfo\x12.\n\rremote_shards\x18\x04 \x03(\x0b\x32\x17.qdrant.RemoteShardInfo\x12\x32\n\x0fshard_transfers\x18\x05 \x03(\x0b\x32\x19.qdrant.ShardTransferInfo\"\xae\x01\n\tMoveShard\x12\x10\n\x08shard_id\x18\x01 \x01(\r\x12\x18\n\x0bto_shard_id\x18\x05 \x01(\rH\x00\x88\x01\x01\x12\x14\n\x0c\x66rom_peer_id\x18\x02 \x01(\x04\x12\x12\n\nto_peer_id\x18\x03 \x01(\x04\x12\x30\n\x06method\x18\x04 \x01(\x0e\x32\x1b.qdrant.ShardTransferMethodH\x01\x88\x01\x01\x42\x0e\n\x0c_to_shard_idB\t\n\x07_method\"\xb3\x01\n\x0eReplicateShard\x12\x10\n\x08shard_id\x18\x01 \x01(\r\x12\x18\n\x0bto_shard_id\x18\x05 \x01(\rH\x00\x88\x01\x01\x12\x14\n\x0c\x66rom_peer_id\x18\x02 \x01(\x04\x12\x12\n\nto_peer_id\x18\x03 \x01(\x04\x12\x30\n\x06method\x18\x04 \x01(\x0e\x32\x1b.qdrant.ShardTransferMethodH\x01\x88\x01\x01\x42\x0e\n\x0c_to_shard_idB\t\n\x07_method\"z\n\x12\x41\x62ortShardTransfer\x12\x10\n\x08shard_id\x18\x01 \x01(\r\x12\x18\n\x0bto_shard_id\x18\x04 \x01(\rH\x00\x88\x01\x01\x12\x14\n\x0c\x66rom_peer_id\x18\x02 \x01(\x04\x12\x12\n\nto_peer_id\x18\x03 \x01(\x04\x42\x0e\n\x0c_to_shard_id\"\xa4\x01\n\x0fRestartTransfer\x12\x10\n\x08shard_id\x18\x01 \x01(\r\x12\x18\n\x0bto_shard_id\x18\x05 \x01(\rH\x00\x88\x01\x01\x12\x14\n\x0c\x66rom_peer_id\x18\x02 \x01(\x04\x12\x12\n\nto_peer_id\x18\x03 \x01(\x04\x12+\n\x06method\x18\x04 \x01(\x0e\x32\x1b.qdrant.ShardTransferMethodB\x0e\n\x0c_to_shard_id\",\n\x07Replica\x12\x10\n\x08shard_id\x18\x01 \x01(\r\x12\x0f\n\x07peer_id\x18\x02 \x01(\x04\"\xae\x01\n\x0e\x43reateShardKey\x12#\n\tshard_key\x18\x01 \x01(\x0b\x32\x10.qdrant.ShardKey\x12\x1a\n\rshards_number\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x1f\n\x12replication_factor\x18\x03 \x01(\rH\x01\x88\x01\x01\x12\x11\n\tplacement\x18\x04 \x03(\x04\x42\x10\n\x0e_shards_numberB\x15\n\x13_replication_factor\"5\n\x0e\x44\x65leteShardKey\x12#\n\tshard_key\x18\x01 \x01(\x0b\x32\x10.qdrant.ShardKey\"\xc5\x03\n#UpdateCollectionClusterSetupRequest\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12\'\n\nmove_shard\x18\x02 \x01(\x0b\x32\x11.qdrant.MoveShardH\x00\x12\x31\n\x0freplicate_shard\x18\x03 \x01(\x0b\x32\x16.qdrant.ReplicateShardH\x00\x12\x34\n\x0e\x61\x62ort_transfer\x18\x04 \x01(\x0b\x32\x1a.qdrant.AbortShardTransferH\x00\x12\'\n\x0c\x64rop_replica\x18\x05 \x01(\x0b\x32\x0f.qdrant.ReplicaH\x00\x12\x32\n\x10\x63reate_shard_key\x18\x07 \x01(\x0b\x32\x16.qdrant.CreateShardKeyH\x00\x12\x32\n\x10\x64\x65lete_shard_key\x18\x08 \x01(\x0b\x32\x16.qdrant.DeleteShardKeyH\x00\x12\x33\n\x10restart_transfer\x18\t \x01(\x0b\x32\x17.qdrant.RestartTransferH\x00\x12\x14\n\x07timeout\x18\x06 \x01(\x04H\x01\x88\x01\x01\x42\x0b\n\toperationB\n\n\x08_timeout\"6\n$UpdateCollectionClusterSetupResponse\x12\x0e\n\x06result\x18\x01 \x01(\x08\"{\n\x15\x43reateShardKeyRequest\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12\'\n\x07request\x18\x02 \x01(\x0b\x32\x16.qdrant.CreateShardKey\x12\x14\n\x07timeout\x18\x03 \x01(\x04H\x00\x88\x01\x01\x42\n\n\x08_timeout\"{\n\x15\x44\x65leteShardKeyRequest\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12\'\n\x07request\x18\x02 \x01(\x0b\x32\x16.qdrant.DeleteShardKey\x12\x14\n\x07timeout\x18\x03 \x01(\x04H\x00\x88\x01\x01\x42\n\n\x08_timeout\"(\n\x16\x43reateShardKeyResponse\x12\x0e\n\x06result\x18\x01 \x01(\x08\"(\n\x16\x44\x65leteShardKeyResponse\x12\x0e\n\x06result\x18\x01 \x01(\x08*<\n\x08\x44\x61tatype\x12\x0b\n\x07\x44\x65\x66\x61ult\x10\x00\x12\x0b\n\x07\x46loat32\x10\x01\x12\t\n\x05Uint8\x10\x02\x12\x0b\n\x07\x46loat16\x10\x03*\x1d\n\x08Modifier\x12\x08\n\x04None\x10\x00\x12\x07\n\x03Idf\x10\x01*#\n\x15MultiVectorComparator\x12\n\n\x06MaxSim\x10\x00*O\n\x08\x44istance\x12\x13\n\x0fUnknownDistance\x10\x00\x12\n\n\x06\x43osine\x10\x01\x12\n\n\x06\x45uclid\x10\x02\x12\x07\n\x03\x44ot\x10\x03\x12\r\n\tManhattan\x10\x04*Y\n\x10\x43ollectionStatus\x12\x1b\n\x17UnknownCollectionStatus\x10\x00\x12\t\n\x05Green\x10\x01\x12\n\n\x06Yellow\x10\x02\x12\x07\n\x03Red\x10\x03\x12\x08\n\x04Grey\x10\x04*~\n\x11PayloadSchemaType\x12\x0f\n\x0bUnknownType\x10\x00\x12\x0b\n\x07Keyword\x10\x01\x12\x0b\n\x07Integer\x10\x02\x12\t\n\x05\x46loat\x10\x03\x12\x07\n\x03Geo\x10\x04\x12\x08\n\x04Text\x10\x05\x12\x08\n\x04\x42ool\x10\x06\x12\x0c\n\x08\x44\x61tetime\x10\x07\x12\x08\n\x04Uuid\x10\x08*5\n\x10QuantizationType\x12\x17\n\x13UnknownQuantization\x10\x00\x12\x08\n\x04Int8\x10\x01*=\n\x10\x43ompressionRatio\x12\x06\n\x02x4\x10\x00\x12\x06\n\x02x8\x10\x01\x12\x07\n\x03x16\x10\x02\x12\x07\n\x03x32\x10\x03\x12\x07\n\x03x64\x10\x04*&\n\x0eShardingMethod\x12\x08\n\x04\x41uto\x10\x00\x12\n\n\x06\x43ustom\x10\x01*T\n\rTokenizerType\x12\x0b\n\x07Unknown\x10\x00\x12\n\n\x06Prefix\x10\x01\x12\x0e\n\nWhitespace\x10\x02\x12\x08\n\x04Word\x10\x03\x12\x10\n\x0cMultilingual\x10\x04*\x84\x01\n\x0cReplicaState\x12\n\n\x06\x41\x63tive\x10\x00\x12\x08\n\x04\x44\x65\x61\x64\x10\x01\x12\x0b\n\x07Partial\x10\x02\x12\x10\n\x0cInitializing\x10\x03\x12\x0c\n\x08Listener\x10\x04\x12\x13\n\x0fPartialSnapshot\x10\x05\x12\x0c\n\x08Recovery\x10\x06\x12\x0e\n\nResharding\x10\x07*a\n\x13ShardTransferMethod\x12\x11\n\rStreamRecords\x10\x00\x12\x0c\n\x08Snapshot\x10\x01\x12\x0c\n\x08WalDelta\x10\x02\x12\x1b\n\x17ReshardingStreamRecords\x10\x03\x42\x15\xaa\x02\x12Qdrant.Client.Grpcb\x06proto3') _DATATYPE = DESCRIPTOR.enum_types_by_name['Datatype'] Datatype = enum_type_wrapper.EnumTypeWrapper(_DATATYPE) @@ -751,30 +751,30 @@ _SPARSEVECTORCONFIG_MAPENTRY._serialized_options = b'8\001' _COLLECTIONINFO_PAYLOADSCHEMAENTRY._options = None _COLLECTIONINFO_PAYLOADSCHEMAENTRY._serialized_options = b'8\001' - _DATATYPE._serialized_start=12330 - _DATATYPE._serialized_end=12390 - _MODIFIER._serialized_start=12392 - _MODIFIER._serialized_end=12421 - _MULTIVECTORCOMPARATOR._serialized_start=12423 - _MULTIVECTORCOMPARATOR._serialized_end=12458 - _DISTANCE._serialized_start=12460 - _DISTANCE._serialized_end=12539 - _COLLECTIONSTATUS._serialized_start=12541 - _COLLECTIONSTATUS._serialized_end=12630 - _PAYLOADSCHEMATYPE._serialized_start=12632 - _PAYLOADSCHEMATYPE._serialized_end=12758 - _QUANTIZATIONTYPE._serialized_start=12760 - _QUANTIZATIONTYPE._serialized_end=12813 - _COMPRESSIONRATIO._serialized_start=12815 - _COMPRESSIONRATIO._serialized_end=12876 - _SHARDINGMETHOD._serialized_start=12878 - _SHARDINGMETHOD._serialized_end=12916 - _TOKENIZERTYPE._serialized_start=12918 - _TOKENIZERTYPE._serialized_end=13002 - _REPLICASTATE._serialized_start=13005 - _REPLICASTATE._serialized_end=13137 - _SHARDTRANSFERMETHOD._serialized_start=13139 - _SHARDTRANSFERMETHOD._serialized_end=13236 + _DATATYPE._serialized_start=12412 + _DATATYPE._serialized_end=12472 + _MODIFIER._serialized_start=12474 + _MODIFIER._serialized_end=12503 + _MULTIVECTORCOMPARATOR._serialized_start=12505 + _MULTIVECTORCOMPARATOR._serialized_end=12540 + _DISTANCE._serialized_start=12542 + _DISTANCE._serialized_end=12621 + _COLLECTIONSTATUS._serialized_start=12623 + _COLLECTIONSTATUS._serialized_end=12712 + _PAYLOADSCHEMATYPE._serialized_start=12714 + _PAYLOADSCHEMATYPE._serialized_end=12840 + _QUANTIZATIONTYPE._serialized_start=12842 + _QUANTIZATIONTYPE._serialized_end=12895 + _COMPRESSIONRATIO._serialized_start=12897 + _COMPRESSIONRATIO._serialized_end=12958 + _SHARDINGMETHOD._serialized_start=12960 + _SHARDINGMETHOD._serialized_end=12998 + _TOKENIZERTYPE._serialized_start=13000 + _TOKENIZERTYPE._serialized_end=13084 + _REPLICASTATE._serialized_start=13087 + _REPLICASTATE._serialized_end=13219 + _SHARDTRANSFERMETHOD._serialized_start=13221 + _SHARDTRANSFERMETHOD._serialized_end=13318 _VECTORPARAMS._serialized_start=30 _VECTORPARAMS._serialized_end=417 _VECTORPARAMSDIFF._serialized_start=420 @@ -842,97 +842,97 @@ _CREATECOLLECTION._serialized_start=4269 _CREATECOLLECTION._serialized_end=5252 _UPDATECOLLECTION._serialized_start=5255 - _UPDATECOLLECTION._serialized_end=5799 - _DELETECOLLECTION._serialized_start=5801 - _DELETECOLLECTION._serialized_end=5878 - _COLLECTIONOPERATIONRESPONSE._serialized_start=5880 - _COLLECTIONOPERATIONRESPONSE._serialized_end=5939 - _COLLECTIONPARAMS._serialized_start=5942 - _COLLECTIONPARAMS._serialized_end=6436 - _COLLECTIONPARAMSDIFF._serialized_start=6439 - _COLLECTIONPARAMSDIFF._serialized_end=6693 - _COLLECTIONCONFIG._serialized_start=6696 - _COLLECTIONCONFIG._serialized_end=7068 - _KEYWORDINDEXPARAMS._serialized_start=7070 - _KEYWORDINDEXPARAMS._serialized_end=7162 - _INTEGERINDEXPARAMS._serialized_start=7165 - _INTEGERINDEXPARAMS._serialized_end=7325 - _FLOATINDEXPARAMS._serialized_start=7327 - _FLOATINDEXPARAMS._serialized_end=7423 - _GEOINDEXPARAMS._serialized_start=7425 - _GEOINDEXPARAMS._serialized_end=7475 - _TEXTINDEXPARAMS._serialized_start=7478 - _TEXTINDEXPARAMS._serialized_end=7701 - _BOOLINDEXPARAMS._serialized_start=7703 - _BOOLINDEXPARAMS._serialized_end=7720 - _DATETIMEINDEXPARAMS._serialized_start=7722 - _DATETIMEINDEXPARAMS._serialized_end=7821 - _UUIDINDEXPARAMS._serialized_start=7823 - _UUIDINDEXPARAMS._serialized_end=7912 - _PAYLOADINDEXPARAMS._serialized_start=7915 - _PAYLOADINDEXPARAMS._serialized_end=8403 - _PAYLOADSCHEMAINFO._serialized_start=8406 - _PAYLOADSCHEMAINFO._serialized_end=8563 - _COLLECTIONINFO._serialized_start=8566 - _COLLECTIONINFO._serialized_end=9053 - _COLLECTIONINFO_PAYLOADSCHEMAENTRY._serialized_start=8901 - _COLLECTIONINFO_PAYLOADSCHEMAENTRY._serialized_end=8980 - _CHANGEALIASES._serialized_start=9055 - _CHANGEALIASES._serialized_end=9146 - _ALIASOPERATIONS._serialized_start=9149 - _ALIASOPERATIONS._serialized_end=9311 - _CREATEALIAS._serialized_start=9313 - _CREATEALIAS._serialized_end=9371 - _RENAMEALIAS._serialized_start=9373 - _RENAMEALIAS._serialized_end=9434 - _DELETEALIAS._serialized_start=9436 - _DELETEALIAS._serialized_end=9469 - _LISTALIASESREQUEST._serialized_start=9471 - _LISTALIASESREQUEST._serialized_end=9491 - _LISTCOLLECTIONALIASESREQUEST._serialized_start=9493 - _LISTCOLLECTIONALIASESREQUEST._serialized_end=9548 - _ALIASDESCRIPTION._serialized_start=9550 - _ALIASDESCRIPTION._serialized_end=9613 - _LISTALIASESRESPONSE._serialized_start=9615 - _LISTALIASESRESPONSE._serialized_end=9693 - _COLLECTIONCLUSTERINFOREQUEST._serialized_start=9695 - _COLLECTIONCLUSTERINFOREQUEST._serialized_end=9750 - _SHARDKEY._serialized_start=9752 - _SHARDKEY._serialized_end=9806 - _LOCALSHARDINFO._serialized_start=9809 - _LOCALSHARDINFO._serialized_end=9958 - _REMOTESHARDINFO._serialized_start=9961 - _REMOTESHARDINFO._serialized_end=10106 - _SHARDTRANSFERINFO._serialized_start=10108 - _SHARDTRANSFERINFO._serialized_end=10227 - _RESHARDINGINFO._serialized_start=10229 - _RESHARDINGINFO._serialized_end=10336 - _COLLECTIONCLUSTERINFORESPONSE._serialized_start=10339 - _COLLECTIONCLUSTERINFORESPONSE._serialized_end=10554 - _MOVESHARD._serialized_start=10557 - _MOVESHARD._serialized_end=10731 - _REPLICATESHARD._serialized_start=10734 - _REPLICATESHARD._serialized_end=10913 - _ABORTSHARDTRANSFER._serialized_start=10915 - _ABORTSHARDTRANSFER._serialized_end=11037 - _RESTARTTRANSFER._serialized_start=11040 - _RESTARTTRANSFER._serialized_end=11204 - _REPLICA._serialized_start=11206 - _REPLICA._serialized_end=11250 - _CREATESHARDKEY._serialized_start=11253 - _CREATESHARDKEY._serialized_end=11427 - _DELETESHARDKEY._serialized_start=11429 - _DELETESHARDKEY._serialized_end=11482 - _UPDATECOLLECTIONCLUSTERSETUPREQUEST._serialized_start=11485 - _UPDATECOLLECTIONCLUSTERSETUPREQUEST._serialized_end=11938 - _UPDATECOLLECTIONCLUSTERSETUPRESPONSE._serialized_start=11940 - _UPDATECOLLECTIONCLUSTERSETUPRESPONSE._serialized_end=11994 - _CREATESHARDKEYREQUEST._serialized_start=11996 - _CREATESHARDKEYREQUEST._serialized_end=12119 - _DELETESHARDKEYREQUEST._serialized_start=12121 - _DELETESHARDKEYREQUEST._serialized_end=12244 - _CREATESHARDKEYRESPONSE._serialized_start=12246 - _CREATESHARDKEYRESPONSE._serialized_end=12286 - _DELETESHARDKEYRESPONSE._serialized_start=12288 - _DELETESHARDKEYRESPONSE._serialized_end=12328 + _UPDATECOLLECTION._serialized_end=5881 + _DELETECOLLECTION._serialized_start=5883 + _DELETECOLLECTION._serialized_end=5960 + _COLLECTIONOPERATIONRESPONSE._serialized_start=5962 + _COLLECTIONOPERATIONRESPONSE._serialized_end=6021 + _COLLECTIONPARAMS._serialized_start=6024 + _COLLECTIONPARAMS._serialized_end=6518 + _COLLECTIONPARAMSDIFF._serialized_start=6521 + _COLLECTIONPARAMSDIFF._serialized_end=6775 + _COLLECTIONCONFIG._serialized_start=6778 + _COLLECTIONCONFIG._serialized_end=7150 + _KEYWORDINDEXPARAMS._serialized_start=7152 + _KEYWORDINDEXPARAMS._serialized_end=7244 + _INTEGERINDEXPARAMS._serialized_start=7247 + _INTEGERINDEXPARAMS._serialized_end=7407 + _FLOATINDEXPARAMS._serialized_start=7409 + _FLOATINDEXPARAMS._serialized_end=7505 + _GEOINDEXPARAMS._serialized_start=7507 + _GEOINDEXPARAMS._serialized_end=7557 + _TEXTINDEXPARAMS._serialized_start=7560 + _TEXTINDEXPARAMS._serialized_end=7783 + _BOOLINDEXPARAMS._serialized_start=7785 + _BOOLINDEXPARAMS._serialized_end=7802 + _DATETIMEINDEXPARAMS._serialized_start=7804 + _DATETIMEINDEXPARAMS._serialized_end=7903 + _UUIDINDEXPARAMS._serialized_start=7905 + _UUIDINDEXPARAMS._serialized_end=7994 + _PAYLOADINDEXPARAMS._serialized_start=7997 + _PAYLOADINDEXPARAMS._serialized_end=8485 + _PAYLOADSCHEMAINFO._serialized_start=8488 + _PAYLOADSCHEMAINFO._serialized_end=8645 + _COLLECTIONINFO._serialized_start=8648 + _COLLECTIONINFO._serialized_end=9135 + _COLLECTIONINFO_PAYLOADSCHEMAENTRY._serialized_start=8983 + _COLLECTIONINFO_PAYLOADSCHEMAENTRY._serialized_end=9062 + _CHANGEALIASES._serialized_start=9137 + _CHANGEALIASES._serialized_end=9228 + _ALIASOPERATIONS._serialized_start=9231 + _ALIASOPERATIONS._serialized_end=9393 + _CREATEALIAS._serialized_start=9395 + _CREATEALIAS._serialized_end=9453 + _RENAMEALIAS._serialized_start=9455 + _RENAMEALIAS._serialized_end=9516 + _DELETEALIAS._serialized_start=9518 + _DELETEALIAS._serialized_end=9551 + _LISTALIASESREQUEST._serialized_start=9553 + _LISTALIASESREQUEST._serialized_end=9573 + _LISTCOLLECTIONALIASESREQUEST._serialized_start=9575 + _LISTCOLLECTIONALIASESREQUEST._serialized_end=9630 + _ALIASDESCRIPTION._serialized_start=9632 + _ALIASDESCRIPTION._serialized_end=9695 + _LISTALIASESRESPONSE._serialized_start=9697 + _LISTALIASESRESPONSE._serialized_end=9775 + _COLLECTIONCLUSTERINFOREQUEST._serialized_start=9777 + _COLLECTIONCLUSTERINFOREQUEST._serialized_end=9832 + _SHARDKEY._serialized_start=9834 + _SHARDKEY._serialized_end=9888 + _LOCALSHARDINFO._serialized_start=9891 + _LOCALSHARDINFO._serialized_end=10040 + _REMOTESHARDINFO._serialized_start=10043 + _REMOTESHARDINFO._serialized_end=10188 + _SHARDTRANSFERINFO._serialized_start=10190 + _SHARDTRANSFERINFO._serialized_end=10309 + _RESHARDINGINFO._serialized_start=10311 + _RESHARDINGINFO._serialized_end=10418 + _COLLECTIONCLUSTERINFORESPONSE._serialized_start=10421 + _COLLECTIONCLUSTERINFORESPONSE._serialized_end=10636 + _MOVESHARD._serialized_start=10639 + _MOVESHARD._serialized_end=10813 + _REPLICATESHARD._serialized_start=10816 + _REPLICATESHARD._serialized_end=10995 + _ABORTSHARDTRANSFER._serialized_start=10997 + _ABORTSHARDTRANSFER._serialized_end=11119 + _RESTARTTRANSFER._serialized_start=11122 + _RESTARTTRANSFER._serialized_end=11286 + _REPLICA._serialized_start=11288 + _REPLICA._serialized_end=11332 + _CREATESHARDKEY._serialized_start=11335 + _CREATESHARDKEY._serialized_end=11509 + _DELETESHARDKEY._serialized_start=11511 + _DELETESHARDKEY._serialized_end=11564 + _UPDATECOLLECTIONCLUSTERSETUPREQUEST._serialized_start=11567 + _UPDATECOLLECTIONCLUSTERSETUPREQUEST._serialized_end=12020 + _UPDATECOLLECTIONCLUSTERSETUPRESPONSE._serialized_start=12022 + _UPDATECOLLECTIONCLUSTERSETUPRESPONSE._serialized_end=12076 + _CREATESHARDKEYREQUEST._serialized_start=12078 + _CREATESHARDKEYREQUEST._serialized_end=12201 + _DELETESHARDKEYREQUEST._serialized_start=12203 + _DELETESHARDKEYREQUEST._serialized_end=12326 + _CREATESHARDKEYRESPONSE._serialized_start=12328 + _CREATESHARDKEYRESPONSE._serialized_end=12368 + _DELETESHARDKEYRESPONSE._serialized_start=12370 + _DELETESHARDKEYRESPONSE._serialized_end=12410 # @@protoc_insertion_point(module_scope) diff --git a/qdrant_client/grpc/points_pb2.py b/qdrant_client/grpc/points_pb2.py index d96a9efa..9cd3a81b 100644 --- a/qdrant_client/grpc/points_pb2.py +++ b/qdrant_client/grpc/points_pb2.py @@ -18,7 +18,7 @@ from . import json_with_int_pb2 as json__with__int__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0cpoints.proto\x12\x06qdrant\x1a\x11\x63ollections.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x13json_with_int.proto\"8\n\rWriteOrdering\x12\'\n\x04type\x18\x01 \x01(\x0e\x32\x19.qdrant.WriteOrderingType\"Y\n\x0fReadConsistency\x12+\n\x04type\x18\x01 \x01(\x0e\x32\x1b.qdrant.ReadConsistencyTypeH\x00\x12\x10\n\x06\x66\x61\x63tor\x18\x02 \x01(\x04H\x00\x42\x07\n\x05value\"<\n\x07PointId\x12\r\n\x03num\x18\x01 \x01(\x04H\x00\x12\x0e\n\x04uuid\x18\x02 \x01(\tH\x00\x42\x12\n\x10point_id_options\"\x1d\n\rSparseIndices\x12\x0c\n\x04\x64\x61ta\x18\x01 \x03(\r\"}\n\x06Vector\x12\x0c\n\x04\x64\x61ta\x18\x01 \x03(\x02\x12+\n\x07indices\x18\x02 \x01(\x0b\x32\x15.qdrant.SparseIndicesH\x00\x88\x01\x01\x12\x1a\n\rvectors_count\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\n\n\x08_indicesB\x10\n\x0e_vectors_count\"\x1b\n\x0b\x44\x65nseVector\x12\x0c\n\x04\x64\x61ta\x18\x01 \x03(\x02\"/\n\x0cSparseVector\x12\x0e\n\x06values\x18\x01 \x03(\x02\x12\x0f\n\x07indices\x18\x02 \x03(\r\"8\n\x10MultiDenseVector\x12$\n\x07vectors\x18\x01 \x03(\x0b\x32\x13.qdrant.DenseVector\"\xb6\x01\n\x0bVectorInput\x12\x1d\n\x02id\x18\x01 \x01(\x0b\x32\x0f.qdrant.PointIdH\x00\x12$\n\x05\x64\x65nse\x18\x02 \x01(\x0b\x32\x13.qdrant.DenseVectorH\x00\x12&\n\x06sparse\x18\x03 \x01(\x0b\x32\x14.qdrant.SparseVectorH\x00\x12/\n\x0bmulti_dense\x18\x04 \x01(\x0b\x32\x18.qdrant.MultiDenseVectorH\x00\x42\t\n\x07variant\"8\n\x10ShardKeySelector\x12$\n\nshard_keys\x18\x01 \x03(\x0b\x32\x10.qdrant.ShardKey\"\xf5\x01\n\x0cUpsertPoints\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12\x11\n\x04wait\x18\x02 \x01(\x08H\x00\x88\x01\x01\x12#\n\x06points\x18\x03 \x03(\x0b\x32\x13.qdrant.PointStruct\x12,\n\x08ordering\x18\x04 \x01(\x0b\x32\x15.qdrant.WriteOrderingH\x01\x88\x01\x01\x12\x39\n\x12shard_key_selector\x18\x05 \x01(\x0b\x32\x18.qdrant.ShardKeySelectorH\x02\x88\x01\x01\x42\x07\n\x05_waitB\x0b\n\t_orderingB\x15\n\x13_shard_key_selector\"\xf8\x01\n\x0c\x44\x65letePoints\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12\x11\n\x04wait\x18\x02 \x01(\x08H\x00\x88\x01\x01\x12&\n\x06points\x18\x03 \x01(\x0b\x32\x16.qdrant.PointsSelector\x12,\n\x08ordering\x18\x04 \x01(\x0b\x32\x15.qdrant.WriteOrderingH\x01\x88\x01\x01\x12\x39\n\x12shard_key_selector\x18\x05 \x01(\x0b\x32\x18.qdrant.ShardKeySelectorH\x02\x88\x01\x01\x42\x07\n\x05_waitB\x0b\n\t_orderingB\x15\n\x13_shard_key_selector\"\x85\x03\n\tGetPoints\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12\x1c\n\x03ids\x18\x02 \x03(\x0b\x32\x0f.qdrant.PointId\x12\x31\n\x0cwith_payload\x18\x04 \x01(\x0b\x32\x1b.qdrant.WithPayloadSelector\x12\x36\n\x0cwith_vectors\x18\x05 \x01(\x0b\x32\x1b.qdrant.WithVectorsSelectorH\x00\x88\x01\x01\x12\x36\n\x10read_consistency\x18\x06 \x01(\x0b\x32\x17.qdrant.ReadConsistencyH\x01\x88\x01\x01\x12\x39\n\x12shard_key_selector\x18\x07 \x01(\x0b\x32\x18.qdrant.ShardKeySelectorH\x02\x88\x01\x01\x12\x14\n\x07timeout\x18\x08 \x01(\x04H\x03\x88\x01\x01\x42\x0f\n\r_with_vectorsB\x13\n\x11_read_consistencyB\x15\n\x13_shard_key_selectorB\n\n\x08_timeoutJ\x04\x08\x03\x10\x04\"\xfc\x01\n\x12UpdatePointVectors\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12\x11\n\x04wait\x18\x02 \x01(\x08H\x00\x88\x01\x01\x12$\n\x06points\x18\x03 \x03(\x0b\x32\x14.qdrant.PointVectors\x12,\n\x08ordering\x18\x04 \x01(\x0b\x32\x15.qdrant.WriteOrderingH\x01\x88\x01\x01\x12\x39\n\x12shard_key_selector\x18\x05 \x01(\x0b\x32\x18.qdrant.ShardKeySelectorH\x02\x88\x01\x01\x42\x07\n\x05_waitB\x0b\n\t_orderingB\x15\n\x13_shard_key_selector\"M\n\x0cPointVectors\x12\x1b\n\x02id\x18\x01 \x01(\x0b\x32\x0f.qdrant.PointId\x12 \n\x07vectors\x18\x02 \x01(\x0b\x32\x0f.qdrant.Vectors\"\xb1\x02\n\x12\x44\x65letePointVectors\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12\x11\n\x04wait\x18\x02 \x01(\x08H\x00\x88\x01\x01\x12/\n\x0fpoints_selector\x18\x03 \x01(\x0b\x32\x16.qdrant.PointsSelector\x12(\n\x07vectors\x18\x04 \x01(\x0b\x32\x17.qdrant.VectorsSelector\x12,\n\x08ordering\x18\x05 \x01(\x0b\x32\x15.qdrant.WriteOrderingH\x01\x88\x01\x01\x12\x39\n\x12shard_key_selector\x18\x06 \x01(\x0b\x32\x18.qdrant.ShardKeySelectorH\x02\x88\x01\x01\x42\x07\n\x05_waitB\x0b\n\t_orderingB\x15\n\x13_shard_key_selector\"\xb5\x03\n\x10SetPayloadPoints\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12\x11\n\x04wait\x18\x02 \x01(\x08H\x00\x88\x01\x01\x12\x36\n\x07payload\x18\x03 \x03(\x0b\x32%.qdrant.SetPayloadPoints.PayloadEntry\x12\x34\n\x0fpoints_selector\x18\x05 \x01(\x0b\x32\x16.qdrant.PointsSelectorH\x01\x88\x01\x01\x12,\n\x08ordering\x18\x06 \x01(\x0b\x32\x15.qdrant.WriteOrderingH\x02\x88\x01\x01\x12\x39\n\x12shard_key_selector\x18\x07 \x01(\x0b\x32\x18.qdrant.ShardKeySelectorH\x03\x88\x01\x01\x12\x10\n\x03key\x18\x08 \x01(\tH\x04\x88\x01\x01\x1a=\n\x0cPayloadEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x1c\n\x05value\x18\x02 \x01(\x0b\x32\r.qdrant.Value:\x02\x38\x01\x42\x07\n\x05_waitB\x12\n\x10_points_selectorB\x0b\n\t_orderingB\x15\n\x13_shard_key_selectorB\x06\n\x04_keyJ\x04\x08\x04\x10\x05\"\xb5\x02\n\x13\x44\x65letePayloadPoints\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12\x11\n\x04wait\x18\x02 \x01(\x08H\x00\x88\x01\x01\x12\x0c\n\x04keys\x18\x03 \x03(\t\x12\x34\n\x0fpoints_selector\x18\x05 \x01(\x0b\x32\x16.qdrant.PointsSelectorH\x01\x88\x01\x01\x12,\n\x08ordering\x18\x06 \x01(\x0b\x32\x15.qdrant.WriteOrderingH\x02\x88\x01\x01\x12\x39\n\x12shard_key_selector\x18\x07 \x01(\x0b\x32\x18.qdrant.ShardKeySelectorH\x03\x88\x01\x01\x42\x07\n\x05_waitB\x12\n\x10_points_selectorB\x0b\n\t_orderingB\x15\n\x13_shard_key_selectorJ\x04\x08\x04\x10\x05\"\xfe\x01\n\x12\x43learPayloadPoints\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12\x11\n\x04wait\x18\x02 \x01(\x08H\x00\x88\x01\x01\x12&\n\x06points\x18\x03 \x01(\x0b\x32\x16.qdrant.PointsSelector\x12,\n\x08ordering\x18\x04 \x01(\x0b\x32\x15.qdrant.WriteOrderingH\x01\x88\x01\x01\x12\x39\n\x12shard_key_selector\x18\x05 \x01(\x0b\x32\x18.qdrant.ShardKeySelectorH\x02\x88\x01\x01\x42\x07\n\x05_waitB\x0b\n\t_orderingB\x15\n\x13_shard_key_selector\"\xaf\x02\n\x1a\x43reateFieldIndexCollection\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12\x11\n\x04wait\x18\x02 \x01(\x08H\x00\x88\x01\x01\x12\x12\n\nfield_name\x18\x03 \x01(\t\x12*\n\nfield_type\x18\x04 \x01(\x0e\x32\x11.qdrant.FieldTypeH\x01\x88\x01\x01\x12;\n\x12\x66ield_index_params\x18\x05 \x01(\x0b\x32\x1a.qdrant.PayloadIndexParamsH\x02\x88\x01\x01\x12,\n\x08ordering\x18\x06 \x01(\x0b\x32\x15.qdrant.WriteOrderingH\x03\x88\x01\x01\x42\x07\n\x05_waitB\r\n\x0b_field_typeB\x15\n\x13_field_index_paramsB\x0b\n\t_ordering\"\xa0\x01\n\x1a\x44\x65leteFieldIndexCollection\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12\x11\n\x04wait\x18\x02 \x01(\x08H\x00\x88\x01\x01\x12\x12\n\nfield_name\x18\x03 \x01(\t\x12,\n\x08ordering\x18\x04 \x01(\x0b\x32\x15.qdrant.WriteOrderingH\x01\x88\x01\x01\x42\x07\n\x05_waitB\x0b\n\t_ordering\"(\n\x16PayloadIncludeSelector\x12\x0e\n\x06\x66ields\x18\x01 \x03(\t\"(\n\x16PayloadExcludeSelector\x12\x0e\n\x06\x66ields\x18\x01 \x03(\t\"\xa1\x01\n\x13WithPayloadSelector\x12\x10\n\x06\x65nable\x18\x01 \x01(\x08H\x00\x12\x31\n\x07include\x18\x02 \x01(\x0b\x32\x1e.qdrant.PayloadIncludeSelectorH\x00\x12\x31\n\x07\x65xclude\x18\x03 \x01(\x0b\x32\x1e.qdrant.PayloadExcludeSelectorH\x00\x42\x12\n\x10selector_options\"\x82\x01\n\x0cNamedVectors\x12\x32\n\x07vectors\x18\x01 \x03(\x0b\x32!.qdrant.NamedVectors.VectorsEntry\x1a>\n\x0cVectorsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x1d\n\x05value\x18\x02 \x01(\x0b\x32\x0e.qdrant.Vector:\x02\x38\x01\"g\n\x07Vectors\x12 \n\x06vector\x18\x01 \x01(\x0b\x32\x0e.qdrant.VectorH\x00\x12\'\n\x07vectors\x18\x02 \x01(\x0b\x32\x14.qdrant.NamedVectorsH\x00\x42\x11\n\x0fvectors_options\" \n\x0fVectorsSelector\x12\r\n\x05names\x18\x01 \x03(\t\"g\n\x13WithVectorsSelector\x12\x10\n\x06\x65nable\x18\x01 \x01(\x08H\x00\x12*\n\x07include\x18\x02 \x01(\x0b\x32\x17.qdrant.VectorsSelectorH\x00\x42\x12\n\x10selector_options\"\x88\x01\n\x18QuantizationSearchParams\x12\x13\n\x06ignore\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x14\n\x07rescore\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\x19\n\x0coversampling\x18\x03 \x01(\x01H\x02\x88\x01\x01\x42\t\n\x07_ignoreB\n\n\x08_rescoreB\x0f\n\r_oversampling\"\xc8\x01\n\x0cSearchParams\x12\x14\n\x07hnsw_ef\x18\x01 \x01(\x04H\x00\x88\x01\x01\x12\x12\n\x05\x65xact\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12;\n\x0cquantization\x18\x03 \x01(\x0b\x32 .qdrant.QuantizationSearchParamsH\x02\x88\x01\x01\x12\x19\n\x0cindexed_only\x18\x04 \x01(\x08H\x03\x88\x01\x01\x42\n\n\x08_hnsw_efB\x08\n\x06_exactB\x0f\n\r_quantizationB\x0f\n\r_indexed_only\"\x92\x05\n\x0cSearchPoints\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12\x0e\n\x06vector\x18\x02 \x03(\x02\x12\x1e\n\x06\x66ilter\x18\x03 \x01(\x0b\x32\x0e.qdrant.Filter\x12\r\n\x05limit\x18\x04 \x01(\x04\x12\x31\n\x0cwith_payload\x18\x06 \x01(\x0b\x32\x1b.qdrant.WithPayloadSelector\x12$\n\x06params\x18\x07 \x01(\x0b\x32\x14.qdrant.SearchParams\x12\x1c\n\x0fscore_threshold\x18\x08 \x01(\x02H\x00\x88\x01\x01\x12\x13\n\x06offset\x18\t \x01(\x04H\x01\x88\x01\x01\x12\x18\n\x0bvector_name\x18\n \x01(\tH\x02\x88\x01\x01\x12\x36\n\x0cwith_vectors\x18\x0b \x01(\x0b\x32\x1b.qdrant.WithVectorsSelectorH\x03\x88\x01\x01\x12\x36\n\x10read_consistency\x18\x0c \x01(\x0b\x32\x17.qdrant.ReadConsistencyH\x04\x88\x01\x01\x12\x14\n\x07timeout\x18\r \x01(\x04H\x05\x88\x01\x01\x12\x39\n\x12shard_key_selector\x18\x0e \x01(\x0b\x32\x18.qdrant.ShardKeySelectorH\x06\x88\x01\x01\x12\x32\n\x0esparse_indices\x18\x0f \x01(\x0b\x32\x15.qdrant.SparseIndicesH\x07\x88\x01\x01\x42\x12\n\x10_score_thresholdB\t\n\x07_offsetB\x0e\n\x0c_vector_nameB\x0f\n\r_with_vectorsB\x13\n\x11_read_consistencyB\n\n\x08_timeoutB\x15\n\x13_shard_key_selectorB\x11\n\x0f_sparse_indicesJ\x04\x08\x05\x10\x06\"\xc8\x01\n\x11SearchBatchPoints\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12+\n\rsearch_points\x18\x02 \x03(\x0b\x32\x14.qdrant.SearchPoints\x12\x36\n\x10read_consistency\x18\x03 \x01(\x0b\x32\x17.qdrant.ReadConsistencyH\x00\x88\x01\x01\x12\x14\n\x07timeout\x18\x04 \x01(\x04H\x01\x88\x01\x01\x42\x13\n\x11_read_consistencyB\n\n\x08_timeout\"\xb2\x01\n\nWithLookup\x12\x12\n\ncollection\x18\x01 \x01(\t\x12\x36\n\x0cwith_payload\x18\x02 \x01(\x0b\x32\x1b.qdrant.WithPayloadSelectorH\x00\x88\x01\x01\x12\x36\n\x0cwith_vectors\x18\x03 \x01(\x0b\x32\x1b.qdrant.WithVectorsSelectorH\x01\x88\x01\x01\x42\x0f\n\r_with_payloadB\x0f\n\r_with_vectors\"\xd5\x05\n\x11SearchPointGroups\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12\x0e\n\x06vector\x18\x02 \x03(\x02\x12\x1e\n\x06\x66ilter\x18\x03 \x01(\x0b\x32\x0e.qdrant.Filter\x12\r\n\x05limit\x18\x04 \x01(\r\x12\x31\n\x0cwith_payload\x18\x05 \x01(\x0b\x32\x1b.qdrant.WithPayloadSelector\x12$\n\x06params\x18\x06 \x01(\x0b\x32\x14.qdrant.SearchParams\x12\x1c\n\x0fscore_threshold\x18\x07 \x01(\x02H\x00\x88\x01\x01\x12\x18\n\x0bvector_name\x18\x08 \x01(\tH\x01\x88\x01\x01\x12\x36\n\x0cwith_vectors\x18\t \x01(\x0b\x32\x1b.qdrant.WithVectorsSelectorH\x02\x88\x01\x01\x12\x10\n\x08group_by\x18\n \x01(\t\x12\x12\n\ngroup_size\x18\x0b \x01(\r\x12\x36\n\x10read_consistency\x18\x0c \x01(\x0b\x32\x17.qdrant.ReadConsistencyH\x03\x88\x01\x01\x12,\n\x0bwith_lookup\x18\r \x01(\x0b\x32\x12.qdrant.WithLookupH\x04\x88\x01\x01\x12\x14\n\x07timeout\x18\x0e \x01(\x04H\x05\x88\x01\x01\x12\x39\n\x12shard_key_selector\x18\x0f \x01(\x0b\x32\x18.qdrant.ShardKeySelectorH\x06\x88\x01\x01\x12\x32\n\x0esparse_indices\x18\x10 \x01(\x0b\x32\x15.qdrant.SparseIndicesH\x07\x88\x01\x01\x42\x12\n\x10_score_thresholdB\x0e\n\x0c_vector_nameB\x0f\n\r_with_vectorsB\x13\n\x11_read_consistencyB\x0e\n\x0c_with_lookupB\n\n\x08_timeoutB\x15\n\x13_shard_key_selectorB\x11\n\x0f_sparse_indices\"}\n\tStartFrom\x12\x0f\n\x05\x66loat\x18\x01 \x01(\x01H\x00\x12\x11\n\x07integer\x18\x02 \x01(\x03H\x00\x12/\n\ttimestamp\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00\x12\x12\n\x08\x64\x61tetime\x18\x04 \x01(\tH\x00\x42\x07\n\x05value\"\x8a\x01\n\x07OrderBy\x12\x0b\n\x03key\x18\x01 \x01(\t\x12)\n\tdirection\x18\x02 \x01(\x0e\x32\x11.qdrant.DirectionH\x00\x88\x01\x01\x12*\n\nstart_from\x18\x03 \x01(\x0b\x32\x11.qdrant.StartFromH\x01\x88\x01\x01\x42\x0c\n\n_directionB\r\n\x0b_start_from\"\x8e\x04\n\x0cScrollPoints\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12\x1e\n\x06\x66ilter\x18\x02 \x01(\x0b\x32\x0e.qdrant.Filter\x12$\n\x06offset\x18\x03 \x01(\x0b\x32\x0f.qdrant.PointIdH\x00\x88\x01\x01\x12\x12\n\x05limit\x18\x04 \x01(\rH\x01\x88\x01\x01\x12\x31\n\x0cwith_payload\x18\x06 \x01(\x0b\x32\x1b.qdrant.WithPayloadSelector\x12\x36\n\x0cwith_vectors\x18\x07 \x01(\x0b\x32\x1b.qdrant.WithVectorsSelectorH\x02\x88\x01\x01\x12\x36\n\x10read_consistency\x18\x08 \x01(\x0b\x32\x17.qdrant.ReadConsistencyH\x03\x88\x01\x01\x12\x39\n\x12shard_key_selector\x18\t \x01(\x0b\x32\x18.qdrant.ShardKeySelectorH\x04\x88\x01\x01\x12&\n\x08order_by\x18\n \x01(\x0b\x32\x0f.qdrant.OrderByH\x05\x88\x01\x01\x12\x14\n\x07timeout\x18\x0b \x01(\x04H\x06\x88\x01\x01\x42\t\n\x07_offsetB\x08\n\x06_limitB\x0f\n\r_with_vectorsB\x13\n\x11_read_consistencyB\x15\n\x13_shard_key_selectorB\x0b\n\t_order_byB\n\n\x08_timeoutJ\x04\x08\x05\x10\x06\"\xa5\x01\n\x0eLookupLocation\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12\x18\n\x0bvector_name\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x39\n\x12shard_key_selector\x18\x03 \x01(\x0b\x32\x18.qdrant.ShardKeySelectorH\x01\x88\x01\x01\x42\x0e\n\x0c_vector_nameB\x15\n\x13_shard_key_selector\"\xcd\x06\n\x0fRecommendPoints\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12!\n\x08positive\x18\x02 \x03(\x0b\x32\x0f.qdrant.PointId\x12!\n\x08negative\x18\x03 \x03(\x0b\x32\x0f.qdrant.PointId\x12\x1e\n\x06\x66ilter\x18\x04 \x01(\x0b\x32\x0e.qdrant.Filter\x12\r\n\x05limit\x18\x05 \x01(\x04\x12\x31\n\x0cwith_payload\x18\x07 \x01(\x0b\x32\x1b.qdrant.WithPayloadSelector\x12$\n\x06params\x18\x08 \x01(\x0b\x32\x14.qdrant.SearchParams\x12\x1c\n\x0fscore_threshold\x18\t \x01(\x02H\x00\x88\x01\x01\x12\x13\n\x06offset\x18\n \x01(\x04H\x01\x88\x01\x01\x12\x12\n\x05using\x18\x0b \x01(\tH\x02\x88\x01\x01\x12\x36\n\x0cwith_vectors\x18\x0c \x01(\x0b\x32\x1b.qdrant.WithVectorsSelectorH\x03\x88\x01\x01\x12\x30\n\x0blookup_from\x18\r \x01(\x0b\x32\x16.qdrant.LookupLocationH\x04\x88\x01\x01\x12\x36\n\x10read_consistency\x18\x0e \x01(\x0b\x32\x17.qdrant.ReadConsistencyH\x05\x88\x01\x01\x12\x30\n\x08strategy\x18\x10 \x01(\x0e\x32\x19.qdrant.RecommendStrategyH\x06\x88\x01\x01\x12(\n\x10positive_vectors\x18\x11 \x03(\x0b\x32\x0e.qdrant.Vector\x12(\n\x10negative_vectors\x18\x12 \x03(\x0b\x32\x0e.qdrant.Vector\x12\x14\n\x07timeout\x18\x13 \x01(\x04H\x07\x88\x01\x01\x12\x39\n\x12shard_key_selector\x18\x14 \x01(\x0b\x32\x18.qdrant.ShardKeySelectorH\x08\x88\x01\x01\x42\x12\n\x10_score_thresholdB\t\n\x07_offsetB\x08\n\x06_usingB\x0f\n\r_with_vectorsB\x0e\n\x0c_lookup_fromB\x13\n\x11_read_consistencyB\x0b\n\t_strategyB\n\n\x08_timeoutB\x15\n\x13_shard_key_selectorJ\x04\x08\x06\x10\x07\"\xd1\x01\n\x14RecommendBatchPoints\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12\x31\n\x10recommend_points\x18\x02 \x03(\x0b\x32\x17.qdrant.RecommendPoints\x12\x36\n\x10read_consistency\x18\x03 \x01(\x0b\x32\x17.qdrant.ReadConsistencyH\x00\x88\x01\x01\x12\x14\n\x07timeout\x18\x04 \x01(\x04H\x01\x88\x01\x01\x42\x13\n\x11_read_consistencyB\n\n\x08_timeout\"\x90\x07\n\x14RecommendPointGroups\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12!\n\x08positive\x18\x02 \x03(\x0b\x32\x0f.qdrant.PointId\x12!\n\x08negative\x18\x03 \x03(\x0b\x32\x0f.qdrant.PointId\x12\x1e\n\x06\x66ilter\x18\x04 \x01(\x0b\x32\x0e.qdrant.Filter\x12\r\n\x05limit\x18\x05 \x01(\r\x12\x31\n\x0cwith_payload\x18\x06 \x01(\x0b\x32\x1b.qdrant.WithPayloadSelector\x12$\n\x06params\x18\x07 \x01(\x0b\x32\x14.qdrant.SearchParams\x12\x1c\n\x0fscore_threshold\x18\x08 \x01(\x02H\x00\x88\x01\x01\x12\x12\n\x05using\x18\t \x01(\tH\x01\x88\x01\x01\x12\x36\n\x0cwith_vectors\x18\n \x01(\x0b\x32\x1b.qdrant.WithVectorsSelectorH\x02\x88\x01\x01\x12\x30\n\x0blookup_from\x18\x0b \x01(\x0b\x32\x16.qdrant.LookupLocationH\x03\x88\x01\x01\x12\x10\n\x08group_by\x18\x0c \x01(\t\x12\x12\n\ngroup_size\x18\r \x01(\r\x12\x36\n\x10read_consistency\x18\x0e \x01(\x0b\x32\x17.qdrant.ReadConsistencyH\x04\x88\x01\x01\x12,\n\x0bwith_lookup\x18\x0f \x01(\x0b\x32\x12.qdrant.WithLookupH\x05\x88\x01\x01\x12\x30\n\x08strategy\x18\x11 \x01(\x0e\x32\x19.qdrant.RecommendStrategyH\x06\x88\x01\x01\x12(\n\x10positive_vectors\x18\x12 \x03(\x0b\x32\x0e.qdrant.Vector\x12(\n\x10negative_vectors\x18\x13 \x03(\x0b\x32\x0e.qdrant.Vector\x12\x14\n\x07timeout\x18\x14 \x01(\x04H\x07\x88\x01\x01\x12\x39\n\x12shard_key_selector\x18\x15 \x01(\x0b\x32\x18.qdrant.ShardKeySelectorH\x08\x88\x01\x01\x42\x12\n\x10_score_thresholdB\x08\n\x06_usingB\x0f\n\r_with_vectorsB\x0e\n\x0c_lookup_fromB\x13\n\x11_read_consistencyB\x0e\n\x0c_with_lookupB\x0b\n\t_strategyB\n\n\x08_timeoutB\x15\n\x13_shard_key_selector\"A\n\x0cTargetVector\x12\'\n\x06single\x18\x01 \x01(\x0b\x32\x15.qdrant.VectorExampleH\x00\x42\x08\n\x06target\"[\n\rVectorExample\x12\x1d\n\x02id\x18\x01 \x01(\x0b\x32\x0f.qdrant.PointIdH\x00\x12 \n\x06vector\x18\x02 \x01(\x0b\x32\x0e.qdrant.VectorH\x00\x42\t\n\x07\x65xample\"f\n\x12\x43ontextExamplePair\x12\'\n\x08positive\x18\x01 \x01(\x0b\x32\x15.qdrant.VectorExample\x12\'\n\x08negative\x18\x02 \x01(\x0b\x32\x15.qdrant.VectorExample\"\x8e\x05\n\x0e\x44iscoverPoints\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12$\n\x06target\x18\x02 \x01(\x0b\x32\x14.qdrant.TargetVector\x12+\n\x07\x63ontext\x18\x03 \x03(\x0b\x32\x1a.qdrant.ContextExamplePair\x12\x1e\n\x06\x66ilter\x18\x04 \x01(\x0b\x32\x0e.qdrant.Filter\x12\r\n\x05limit\x18\x05 \x01(\x04\x12\x31\n\x0cwith_payload\x18\x06 \x01(\x0b\x32\x1b.qdrant.WithPayloadSelector\x12$\n\x06params\x18\x07 \x01(\x0b\x32\x14.qdrant.SearchParams\x12\x13\n\x06offset\x18\x08 \x01(\x04H\x00\x88\x01\x01\x12\x12\n\x05using\x18\t \x01(\tH\x01\x88\x01\x01\x12\x36\n\x0cwith_vectors\x18\n \x01(\x0b\x32\x1b.qdrant.WithVectorsSelectorH\x02\x88\x01\x01\x12\x30\n\x0blookup_from\x18\x0b \x01(\x0b\x32\x16.qdrant.LookupLocationH\x03\x88\x01\x01\x12\x36\n\x10read_consistency\x18\x0c \x01(\x0b\x32\x17.qdrant.ReadConsistencyH\x04\x88\x01\x01\x12\x14\n\x07timeout\x18\r \x01(\x04H\x05\x88\x01\x01\x12\x39\n\x12shard_key_selector\x18\x0e \x01(\x0b\x32\x18.qdrant.ShardKeySelectorH\x06\x88\x01\x01\x42\t\n\x07_offsetB\x08\n\x06_usingB\x0f\n\r_with_vectorsB\x0e\n\x0c_lookup_fromB\x13\n\x11_read_consistencyB\n\n\x08_timeoutB\x15\n\x13_shard_key_selector\"\xce\x01\n\x13\x44iscoverBatchPoints\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12/\n\x0f\x64iscover_points\x18\x02 \x03(\x0b\x32\x16.qdrant.DiscoverPoints\x12\x36\n\x10read_consistency\x18\x03 \x01(\x0b\x32\x17.qdrant.ReadConsistencyH\x00\x88\x01\x01\x12\x14\n\x07timeout\x18\x04 \x01(\x04H\x01\x88\x01\x01\x42\x13\n\x11_read_consistencyB\n\n\x08_timeout\"\xa5\x02\n\x0b\x43ountPoints\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12\x1e\n\x06\x66ilter\x18\x02 \x01(\x0b\x32\x0e.qdrant.Filter\x12\x12\n\x05\x65xact\x18\x03 \x01(\x08H\x00\x88\x01\x01\x12\x36\n\x10read_consistency\x18\x04 \x01(\x0b\x32\x17.qdrant.ReadConsistencyH\x01\x88\x01\x01\x12\x39\n\x12shard_key_selector\x18\x05 \x01(\x0b\x32\x18.qdrant.ShardKeySelectorH\x02\x88\x01\x01\x12\x14\n\x07timeout\x18\x06 \x01(\x04H\x03\x88\x01\x01\x42\x08\n\x06_exactB\x13\n\x11_read_consistencyB\x15\n\x13_shard_key_selectorB\n\n\x08_timeout\"\x9d\x01\n\x0eRecommendInput\x12%\n\x08positive\x18\x01 \x03(\x0b\x32\x13.qdrant.VectorInput\x12%\n\x08negative\x18\x02 \x03(\x0b\x32\x13.qdrant.VectorInput\x12\x30\n\x08strategy\x18\x03 \x01(\x0e\x32\x19.qdrant.RecommendStrategyH\x00\x88\x01\x01\x42\x0b\n\t_strategy\"`\n\x10\x43ontextInputPair\x12%\n\x08positive\x18\x01 \x01(\x0b\x32\x13.qdrant.VectorInput\x12%\n\x08negative\x18\x02 \x01(\x0b\x32\x13.qdrant.VectorInput\"[\n\rDiscoverInput\x12#\n\x06target\x18\x01 \x01(\x0b\x32\x13.qdrant.VectorInput\x12%\n\x07\x63ontext\x18\x02 \x01(\x0b\x32\x14.qdrant.ContextInput\"7\n\x0c\x43ontextInput\x12\'\n\x05pairs\x18\x01 \x03(\x0b\x32\x18.qdrant.ContextInputPair\"\xa4\x02\n\x05Query\x12&\n\x07nearest\x18\x01 \x01(\x0b\x32\x13.qdrant.VectorInputH\x00\x12+\n\trecommend\x18\x02 \x01(\x0b\x32\x16.qdrant.RecommendInputH\x00\x12)\n\x08\x64iscover\x18\x03 \x01(\x0b\x32\x15.qdrant.DiscoverInputH\x00\x12\'\n\x07\x63ontext\x18\x04 \x01(\x0b\x32\x14.qdrant.ContextInputH\x00\x12#\n\x08order_by\x18\x05 \x01(\x0b\x32\x0f.qdrant.OrderByH\x00\x12 \n\x06\x66usion\x18\x06 \x01(\x0e\x32\x0e.qdrant.FusionH\x00\x12 \n\x06sample\x18\x07 \x01(\x0e\x32\x0e.qdrant.SampleH\x00\x42\t\n\x07variant\"\xfb\x02\n\rPrefetchQuery\x12\'\n\x08prefetch\x18\x01 \x03(\x0b\x32\x15.qdrant.PrefetchQuery\x12!\n\x05query\x18\x02 \x01(\x0b\x32\r.qdrant.QueryH\x00\x88\x01\x01\x12\x12\n\x05using\x18\x03 \x01(\tH\x01\x88\x01\x01\x12#\n\x06\x66ilter\x18\x04 \x01(\x0b\x32\x0e.qdrant.FilterH\x02\x88\x01\x01\x12)\n\x06params\x18\x05 \x01(\x0b\x32\x14.qdrant.SearchParamsH\x03\x88\x01\x01\x12\x1c\n\x0fscore_threshold\x18\x06 \x01(\x02H\x04\x88\x01\x01\x12\x12\n\x05limit\x18\x07 \x01(\x04H\x05\x88\x01\x01\x12\x30\n\x0blookup_from\x18\x08 \x01(\x0b\x32\x16.qdrant.LookupLocationH\x06\x88\x01\x01\x42\x08\n\x06_queryB\x08\n\x06_usingB\t\n\x07_filterB\t\n\x07_paramsB\x12\n\x10_score_thresholdB\x08\n\x06_limitB\x0e\n\x0c_lookup_from\"\x85\x06\n\x0bQueryPoints\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12\'\n\x08prefetch\x18\x02 \x03(\x0b\x32\x15.qdrant.PrefetchQuery\x12!\n\x05query\x18\x03 \x01(\x0b\x32\r.qdrant.QueryH\x00\x88\x01\x01\x12\x12\n\x05using\x18\x04 \x01(\tH\x01\x88\x01\x01\x12#\n\x06\x66ilter\x18\x05 \x01(\x0b\x32\x0e.qdrant.FilterH\x02\x88\x01\x01\x12)\n\x06params\x18\x06 \x01(\x0b\x32\x14.qdrant.SearchParamsH\x03\x88\x01\x01\x12\x1c\n\x0fscore_threshold\x18\x07 \x01(\x02H\x04\x88\x01\x01\x12\x12\n\x05limit\x18\x08 \x01(\x04H\x05\x88\x01\x01\x12\x13\n\x06offset\x18\t \x01(\x04H\x06\x88\x01\x01\x12\x36\n\x0cwith_vectors\x18\n \x01(\x0b\x32\x1b.qdrant.WithVectorsSelectorH\x07\x88\x01\x01\x12\x36\n\x0cwith_payload\x18\x0b \x01(\x0b\x32\x1b.qdrant.WithPayloadSelectorH\x08\x88\x01\x01\x12\x36\n\x10read_consistency\x18\x0c \x01(\x0b\x32\x17.qdrant.ReadConsistencyH\t\x88\x01\x01\x12\x39\n\x12shard_key_selector\x18\r \x01(\x0b\x32\x18.qdrant.ShardKeySelectorH\n\x88\x01\x01\x12\x30\n\x0blookup_from\x18\x0e \x01(\x0b\x32\x16.qdrant.LookupLocationH\x0b\x88\x01\x01\x12\x14\n\x07timeout\x18\x0f \x01(\x04H\x0c\x88\x01\x01\x42\x08\n\x06_queryB\x08\n\x06_usingB\t\n\x07_filterB\t\n\x07_paramsB\x12\n\x10_score_thresholdB\x08\n\x06_limitB\t\n\x07_offsetB\x0f\n\r_with_vectorsB\x0f\n\r_with_payloadB\x13\n\x11_read_consistencyB\x15\n\x13_shard_key_selectorB\x0e\n\x0c_lookup_fromB\n\n\x08_timeout\"\xc5\x01\n\x10QueryBatchPoints\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12)\n\x0cquery_points\x18\x02 \x03(\x0b\x32\x13.qdrant.QueryPoints\x12\x36\n\x10read_consistency\x18\x03 \x01(\x0b\x32\x17.qdrant.ReadConsistencyH\x00\x88\x01\x01\x12\x14\n\x07timeout\x18\x04 \x01(\x04H\x01\x88\x01\x01\x42\x13\n\x11_read_consistencyB\n\n\x08_timeout\"\xcc\x06\n\x10QueryPointGroups\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12\'\n\x08prefetch\x18\x02 \x03(\x0b\x32\x15.qdrant.PrefetchQuery\x12!\n\x05query\x18\x03 \x01(\x0b\x32\r.qdrant.QueryH\x00\x88\x01\x01\x12\x12\n\x05using\x18\x04 \x01(\tH\x01\x88\x01\x01\x12#\n\x06\x66ilter\x18\x05 \x01(\x0b\x32\x0e.qdrant.FilterH\x02\x88\x01\x01\x12)\n\x06params\x18\x06 \x01(\x0b\x32\x14.qdrant.SearchParamsH\x03\x88\x01\x01\x12\x1c\n\x0fscore_threshold\x18\x07 \x01(\x02H\x04\x88\x01\x01\x12\x31\n\x0cwith_payload\x18\x08 \x01(\x0b\x32\x1b.qdrant.WithPayloadSelector\x12\x36\n\x0cwith_vectors\x18\t \x01(\x0b\x32\x1b.qdrant.WithVectorsSelectorH\x05\x88\x01\x01\x12\x30\n\x0blookup_from\x18\n \x01(\x0b\x32\x16.qdrant.LookupLocationH\x06\x88\x01\x01\x12\x12\n\x05limit\x18\x0b \x01(\x04H\x07\x88\x01\x01\x12\x17\n\ngroup_size\x18\x0c \x01(\x04H\x08\x88\x01\x01\x12\x10\n\x08group_by\x18\r \x01(\t\x12\x36\n\x10read_consistency\x18\x0e \x01(\x0b\x32\x17.qdrant.ReadConsistencyH\t\x88\x01\x01\x12,\n\x0bwith_lookup\x18\x0f \x01(\x0b\x32\x12.qdrant.WithLookupH\n\x88\x01\x01\x12\x14\n\x07timeout\x18\x10 \x01(\x04H\x0b\x88\x01\x01\x12\x39\n\x12shard_key_selector\x18\x11 \x01(\x0b\x32\x18.qdrant.ShardKeySelectorH\x0c\x88\x01\x01\x42\x08\n\x06_queryB\x08\n\x06_usingB\t\n\x07_filterB\t\n\x07_paramsB\x12\n\x10_score_thresholdB\x0f\n\r_with_vectorsB\x0e\n\x0c_lookup_fromB\x08\n\x06_limitB\r\n\x0b_group_sizeB\x13\n\x11_read_consistencyB\x0e\n\x0c_with_lookupB\n\n\x08_timeoutB\x15\n\x13_shard_key_selector\"\xe0\x02\n\x0b\x46\x61\x63\x65tCounts\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12\x0b\n\x03key\x18\x02 \x01(\t\x12#\n\x06\x66ilter\x18\x03 \x01(\x0b\x32\x0e.qdrant.FilterH\x00\x88\x01\x01\x12\x12\n\x05limit\x18\x04 \x01(\x04H\x01\x88\x01\x01\x12\x12\n\x05\x65xact\x18\x05 \x01(\x08H\x02\x88\x01\x01\x12\x14\n\x07timeout\x18\x06 \x01(\x04H\x03\x88\x01\x01\x12\x36\n\x10read_consistency\x18\x07 \x01(\x0b\x32\x17.qdrant.ReadConsistencyH\x04\x88\x01\x01\x12\x39\n\x12shard_key_selector\x18\x08 \x01(\x0b\x32\x18.qdrant.ShardKeySelectorH\x05\x88\x01\x01\x42\t\n\x07_filterB\x08\n\x06_limitB\x08\n\x06_exactB\n\n\x08_timeoutB\x13\n\x11_read_consistencyB\x15\n\x13_shard_key_selector\"^\n\nFacetValue\x12\x16\n\x0cstring_value\x18\x01 \x01(\tH\x00\x12\x17\n\rinteger_value\x18\x02 \x01(\x03H\x00\x12\x14\n\nbool_value\x18\x03 \x01(\x08H\x00\x42\t\n\x07variant\"<\n\x08\x46\x61\x63\x65tHit\x12!\n\x05value\x18\x01 \x01(\x0b\x32\x12.qdrant.FacetValue\x12\r\n\x05\x63ount\x18\x02 \x01(\x04\"\xfa\x02\n\x12SearchMatrixPoints\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12#\n\x06\x66ilter\x18\x02 \x01(\x0b\x32\x0e.qdrant.FilterH\x00\x88\x01\x01\x12\x13\n\x06sample\x18\x03 \x01(\x04H\x01\x88\x01\x01\x12\x12\n\x05limit\x18\x04 \x01(\x04H\x02\x88\x01\x01\x12\x12\n\x05using\x18\x05 \x01(\tH\x03\x88\x01\x01\x12\x14\n\x07timeout\x18\x06 \x01(\x04H\x04\x88\x01\x01\x12\x36\n\x10read_consistency\x18\x07 \x01(\x0b\x32\x17.qdrant.ReadConsistencyH\x05\x88\x01\x01\x12\x39\n\x12shard_key_selector\x18\x08 \x01(\x0b\x32\x18.qdrant.ShardKeySelectorH\x06\x88\x01\x01\x42\t\n\x07_filterB\t\n\x07_sampleB\x08\n\x06_limitB\x08\n\x06_usingB\n\n\x08_timeoutB\x13\n\x11_read_consistencyB\x15\n\x13_shard_key_selector\"<\n\x11SearchMatrixPairs\x12\'\n\x05pairs\x18\x01 \x03(\x0b\x32\x18.qdrant.SearchMatrixPair\"Y\n\x10SearchMatrixPair\x12\x1a\n\x01\x61\x18\x01 \x01(\x0b\x32\x0f.qdrant.PointId\x12\x1a\n\x01\x62\x18\x02 \x01(\x0b\x32\x0f.qdrant.PointId\x12\r\n\x05score\x18\x03 \x01(\x02\"m\n\x13SearchMatrixOffsets\x12\x13\n\x0boffsets_row\x18\x01 \x03(\x04\x12\x13\n\x0boffsets_col\x18\x02 \x03(\x04\x12\x0e\n\x06scores\x18\x03 \x03(\x02\x12\x1c\n\x03ids\x18\x04 \x03(\x0b\x32\x0f.qdrant.PointId\"\x95\x12\n\x15PointsUpdateOperation\x12?\n\x06upsert\x18\x01 \x01(\x0b\x32-.qdrant.PointsUpdateOperation.PointStructListH\x00\x12\x37\n\x11\x64\x65lete_deprecated\x18\x02 \x01(\x0b\x32\x16.qdrant.PointsSelectorB\x02\x18\x01H\x00\x12?\n\x0bset_payload\x18\x03 \x01(\x0b\x32(.qdrant.PointsUpdateOperation.SetPayloadH\x00\x12K\n\x11overwrite_payload\x18\x04 \x01(\x0b\x32..qdrant.PointsUpdateOperation.OverwritePayloadH\x00\x12\x45\n\x0e\x64\x65lete_payload\x18\x05 \x01(\x0b\x32+.qdrant.PointsUpdateOperation.DeletePayloadH\x00\x12>\n\x18\x63lear_payload_deprecated\x18\x06 \x01(\x0b\x32\x16.qdrant.PointsSelectorB\x02\x18\x01H\x00\x12\x45\n\x0eupdate_vectors\x18\x07 \x01(\x0b\x32+.qdrant.PointsUpdateOperation.UpdateVectorsH\x00\x12\x45\n\x0e\x64\x65lete_vectors\x18\x08 \x01(\x0b\x32+.qdrant.PointsUpdateOperation.DeleteVectorsH\x00\x12\x43\n\rdelete_points\x18\t \x01(\x0b\x32*.qdrant.PointsUpdateOperation.DeletePointsH\x00\x12\x43\n\rclear_payload\x18\n \x01(\x0b\x32*.qdrant.PointsUpdateOperation.ClearPayloadH\x00\x1a\x88\x01\n\x0fPointStructList\x12#\n\x06points\x18\x01 \x03(\x0b\x32\x13.qdrant.PointStruct\x12\x39\n\x12shard_key_selector\x18\x02 \x01(\x0b\x32\x18.qdrant.ShardKeySelectorH\x00\x88\x01\x01\x42\x15\n\x13_shard_key_selector\x1a\xc9\x02\n\nSetPayload\x12\x46\n\x07payload\x18\x01 \x03(\x0b\x32\x35.qdrant.PointsUpdateOperation.SetPayload.PayloadEntry\x12\x34\n\x0fpoints_selector\x18\x02 \x01(\x0b\x32\x16.qdrant.PointsSelectorH\x00\x88\x01\x01\x12\x39\n\x12shard_key_selector\x18\x03 \x01(\x0b\x32\x18.qdrant.ShardKeySelectorH\x01\x88\x01\x01\x12\x10\n\x03key\x18\x04 \x01(\tH\x02\x88\x01\x01\x1a=\n\x0cPayloadEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x1c\n\x05value\x18\x02 \x01(\x0b\x32\r.qdrant.Value:\x02\x38\x01\x42\x12\n\x10_points_selectorB\x15\n\x13_shard_key_selectorB\x06\n\x04_key\x1a\xd5\x02\n\x10OverwritePayload\x12L\n\x07payload\x18\x01 \x03(\x0b\x32;.qdrant.PointsUpdateOperation.OverwritePayload.PayloadEntry\x12\x34\n\x0fpoints_selector\x18\x02 \x01(\x0b\x32\x16.qdrant.PointsSelectorH\x00\x88\x01\x01\x12\x39\n\x12shard_key_selector\x18\x03 \x01(\x0b\x32\x18.qdrant.ShardKeySelectorH\x01\x88\x01\x01\x12\x10\n\x03key\x18\x04 \x01(\tH\x02\x88\x01\x01\x1a=\n\x0cPayloadEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x1c\n\x05value\x18\x02 \x01(\x0b\x32\r.qdrant.Value:\x02\x38\x01\x42\x12\n\x10_points_selectorB\x15\n\x13_shard_key_selectorB\x06\n\x04_key\x1a\xb9\x01\n\rDeletePayload\x12\x0c\n\x04keys\x18\x01 \x03(\t\x12\x34\n\x0fpoints_selector\x18\x02 \x01(\x0b\x32\x16.qdrant.PointsSelectorH\x00\x88\x01\x01\x12\x39\n\x12shard_key_selector\x18\x03 \x01(\x0b\x32\x18.qdrant.ShardKeySelectorH\x01\x88\x01\x01\x42\x12\n\x10_points_selectorB\x15\n\x13_shard_key_selector\x1a\x87\x01\n\rUpdateVectors\x12$\n\x06points\x18\x01 \x03(\x0b\x32\x14.qdrant.PointVectors\x12\x39\n\x12shard_key_selector\x18\x02 \x01(\x0b\x32\x18.qdrant.ShardKeySelectorH\x00\x88\x01\x01\x42\x15\n\x13_shard_key_selector\x1a\xbc\x01\n\rDeleteVectors\x12/\n\x0fpoints_selector\x18\x01 \x01(\x0b\x32\x16.qdrant.PointsSelector\x12(\n\x07vectors\x18\x02 \x01(\x0b\x32\x17.qdrant.VectorsSelector\x12\x39\n\x12shard_key_selector\x18\x03 \x01(\x0b\x32\x18.qdrant.ShardKeySelectorH\x00\x88\x01\x01\x42\x15\n\x13_shard_key_selector\x1a\x88\x01\n\x0c\x44\x65letePoints\x12&\n\x06points\x18\x01 \x01(\x0b\x32\x16.qdrant.PointsSelector\x12\x39\n\x12shard_key_selector\x18\x02 \x01(\x0b\x32\x18.qdrant.ShardKeySelectorH\x00\x88\x01\x01\x42\x15\n\x13_shard_key_selector\x1a\x88\x01\n\x0c\x43learPayload\x12&\n\x06points\x18\x01 \x01(\x0b\x32\x16.qdrant.PointsSelector\x12\x39\n\x12shard_key_selector\x18\x02 \x01(\x0b\x32\x18.qdrant.ShardKeySelectorH\x00\x88\x01\x01\x42\x15\n\x13_shard_key_selectorB\x0b\n\toperation\"\xb6\x01\n\x11UpdateBatchPoints\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12\x11\n\x04wait\x18\x02 \x01(\x08H\x00\x88\x01\x01\x12\x31\n\noperations\x18\x03 \x03(\x0b\x32\x1d.qdrant.PointsUpdateOperation\x12,\n\x08ordering\x18\x04 \x01(\x0b\x32\x15.qdrant.WriteOrderingH\x01\x88\x01\x01\x42\x07\n\x05_waitB\x0b\n\t_ordering\"M\n\x17PointsOperationResponse\x12$\n\x06result\x18\x01 \x01(\x0b\x32\x14.qdrant.UpdateResult\x12\x0c\n\x04time\x18\x02 \x01(\x01\"`\n\x0cUpdateResult\x12\x19\n\x0coperation_id\x18\x01 \x01(\x04H\x00\x88\x01\x01\x12$\n\x06status\x18\x02 \x01(\x0e\x32\x14.qdrant.UpdateStatusB\x0f\n\r_operation_id\"7\n\nOrderValue\x12\r\n\x03int\x18\x01 \x01(\x03H\x00\x12\x0f\n\x05\x66loat\x18\x02 \x01(\x01H\x00\x42\t\n\x07variant\"\xeb\x02\n\x0bScoredPoint\x12\x1b\n\x02id\x18\x01 \x01(\x0b\x32\x0f.qdrant.PointId\x12\x31\n\x07payload\x18\x02 \x03(\x0b\x32 .qdrant.ScoredPoint.PayloadEntry\x12\r\n\x05score\x18\x03 \x01(\x02\x12\x0f\n\x07version\x18\x05 \x01(\x04\x12%\n\x07vectors\x18\x06 \x01(\x0b\x32\x0f.qdrant.VectorsH\x00\x88\x01\x01\x12(\n\tshard_key\x18\x07 \x01(\x0b\x32\x10.qdrant.ShardKeyH\x01\x88\x01\x01\x12,\n\x0border_value\x18\x08 \x01(\x0b\x32\x12.qdrant.OrderValueH\x02\x88\x01\x01\x1a=\n\x0cPayloadEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x1c\n\x05value\x18\x02 \x01(\x0b\x32\r.qdrant.Value:\x02\x38\x01\x42\n\n\x08_vectorsB\x0c\n\n_shard_keyB\x0e\n\x0c_order_valueJ\x04\x08\x04\x10\x05\"\\\n\x07GroupId\x12\x18\n\x0eunsigned_value\x18\x01 \x01(\x04H\x00\x12\x17\n\rinteger_value\x18\x02 \x01(\x03H\x00\x12\x16\n\x0cstring_value\x18\x03 \x01(\tH\x00\x42\x06\n\x04kind\"t\n\nPointGroup\x12\x1b\n\x02id\x18\x01 \x01(\x0b\x32\x0f.qdrant.GroupId\x12!\n\x04hits\x18\x02 \x03(\x0b\x32\x13.qdrant.ScoredPoint\x12&\n\x06lookup\x18\x03 \x01(\x0b\x32\x16.qdrant.RetrievedPoint\"2\n\x0cGroupsResult\x12\"\n\x06groups\x18\x01 \x03(\x0b\x32\x12.qdrant.PointGroup\"C\n\x0eSearchResponse\x12#\n\x06result\x18\x01 \x03(\x0b\x32\x13.qdrant.ScoredPoint\x12\x0c\n\x04time\x18\x02 \x01(\x01\"B\n\rQueryResponse\x12#\n\x06result\x18\x01 \x03(\x0b\x32\x13.qdrant.ScoredPoint\x12\x0c\n\x04time\x18\x02 \x01(\x01\"G\n\x12QueryBatchResponse\x12#\n\x06result\x18\x01 \x03(\x0b\x32\x13.qdrant.BatchResult\x12\x0c\n\x04time\x18\x02 \x01(\x01\"I\n\x13QueryGroupsResponse\x12$\n\x06result\x18\x01 \x01(\x0b\x32\x14.qdrant.GroupsResult\x12\x0c\n\x04time\x18\x02 \x01(\x01\"2\n\x0b\x42\x61tchResult\x12#\n\x06result\x18\x01 \x03(\x0b\x32\x13.qdrant.ScoredPoint\"H\n\x13SearchBatchResponse\x12#\n\x06result\x18\x01 \x03(\x0b\x32\x13.qdrant.BatchResult\x12\x0c\n\x04time\x18\x02 \x01(\x01\"J\n\x14SearchGroupsResponse\x12$\n\x06result\x18\x01 \x01(\x0b\x32\x14.qdrant.GroupsResult\x12\x0c\n\x04time\x18\x02 \x01(\x01\"B\n\rCountResponse\x12#\n\x06result\x18\x01 \x01(\x0b\x32\x13.qdrant.CountResult\x12\x0c\n\x04time\x18\x02 \x01(\x01\"\x8b\x01\n\x0eScrollResponse\x12.\n\x10next_page_offset\x18\x01 \x01(\x0b\x32\x0f.qdrant.PointIdH\x00\x88\x01\x01\x12&\n\x06result\x18\x02 \x03(\x0b\x32\x16.qdrant.RetrievedPoint\x12\x0c\n\x04time\x18\x03 \x01(\x01\x42\x13\n\x11_next_page_offset\"\x1c\n\x0b\x43ountResult\x12\r\n\x05\x63ount\x18\x01 \x01(\x04\"\xd1\x02\n\x0eRetrievedPoint\x12\x1b\n\x02id\x18\x01 \x01(\x0b\x32\x0f.qdrant.PointId\x12\x34\n\x07payload\x18\x02 \x03(\x0b\x32#.qdrant.RetrievedPoint.PayloadEntry\x12%\n\x07vectors\x18\x04 \x01(\x0b\x32\x0f.qdrant.VectorsH\x00\x88\x01\x01\x12(\n\tshard_key\x18\x05 \x01(\x0b\x32\x10.qdrant.ShardKeyH\x01\x88\x01\x01\x12,\n\x0border_value\x18\x06 \x01(\x0b\x32\x12.qdrant.OrderValueH\x02\x88\x01\x01\x1a=\n\x0cPayloadEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x1c\n\x05value\x18\x02 \x01(\x0b\x32\r.qdrant.Value:\x02\x38\x01\x42\n\n\x08_vectorsB\x0c\n\n_shard_keyB\x0e\n\x0c_order_valueJ\x04\x08\x03\x10\x04\"C\n\x0bGetResponse\x12&\n\x06result\x18\x01 \x03(\x0b\x32\x16.qdrant.RetrievedPoint\x12\x0c\n\x04time\x18\x02 \x01(\x01\"F\n\x11RecommendResponse\x12#\n\x06result\x18\x01 \x03(\x0b\x32\x13.qdrant.ScoredPoint\x12\x0c\n\x04time\x18\x02 \x01(\x01\"K\n\x16RecommendBatchResponse\x12#\n\x06result\x18\x01 \x03(\x0b\x32\x13.qdrant.BatchResult\x12\x0c\n\x04time\x18\x02 \x01(\x01\"E\n\x10\x44iscoverResponse\x12#\n\x06result\x18\x01 \x03(\x0b\x32\x13.qdrant.ScoredPoint\x12\x0c\n\x04time\x18\x02 \x01(\x01\"J\n\x15\x44iscoverBatchResponse\x12#\n\x06result\x18\x01 \x03(\x0b\x32\x13.qdrant.BatchResult\x12\x0c\n\x04time\x18\x02 \x01(\x01\"M\n\x17RecommendGroupsResponse\x12$\n\x06result\x18\x01 \x01(\x0b\x32\x14.qdrant.GroupsResult\x12\x0c\n\x04time\x18\x02 \x01(\x01\"I\n\x13UpdateBatchResponse\x12$\n\x06result\x18\x01 \x03(\x0b\x32\x14.qdrant.UpdateResult\x12\x0c\n\x04time\x18\x02 \x01(\x01\"=\n\rFacetResponse\x12\x1e\n\x04hits\x18\x01 \x03(\x0b\x32\x10.qdrant.FacetHit\x12\x0c\n\x04time\x18\x02 \x01(\x01\"T\n\x19SearchMatrixPairsResponse\x12)\n\x06result\x18\x01 \x01(\x0b\x32\x19.qdrant.SearchMatrixPairs\x12\x0c\n\x04time\x18\x02 \x01(\x01\"X\n\x1bSearchMatrixOffsetsResponse\x12+\n\x06result\x18\x01 \x01(\x0b\x32\x1b.qdrant.SearchMatrixOffsets\x12\x0c\n\x04time\x18\x02 \x01(\x01\"\xac\x01\n\x06\x46ilter\x12!\n\x06should\x18\x01 \x03(\x0b\x32\x11.qdrant.Condition\x12\x1f\n\x04must\x18\x02 \x03(\x0b\x32\x11.qdrant.Condition\x12#\n\x08must_not\x18\x03 \x03(\x0b\x32\x11.qdrant.Condition\x12*\n\nmin_should\x18\x04 \x01(\x0b\x32\x11.qdrant.MinShouldH\x00\x88\x01\x01\x42\r\n\x0b_min_should\"E\n\tMinShould\x12%\n\nconditions\x18\x01 \x03(\x0b\x32\x11.qdrant.Condition\x12\x11\n\tmin_count\x18\x02 \x01(\x04\"\x99\x02\n\tCondition\x12\'\n\x05\x66ield\x18\x01 \x01(\x0b\x32\x16.qdrant.FieldConditionH\x00\x12,\n\x08is_empty\x18\x02 \x01(\x0b\x32\x18.qdrant.IsEmptyConditionH\x00\x12(\n\x06has_id\x18\x03 \x01(\x0b\x32\x16.qdrant.HasIdConditionH\x00\x12 \n\x06\x66ilter\x18\x04 \x01(\x0b\x32\x0e.qdrant.FilterH\x00\x12*\n\x07is_null\x18\x05 \x01(\x0b\x32\x17.qdrant.IsNullConditionH\x00\x12)\n\x06nested\x18\x06 \x01(\x0b\x32\x17.qdrant.NestedConditionH\x00\x42\x12\n\x10\x63ondition_one_of\"\x1f\n\x10IsEmptyCondition\x12\x0b\n\x03key\x18\x01 \x01(\t\"\x1e\n\x0fIsNullCondition\x12\x0b\n\x03key\x18\x01 \x01(\t\"1\n\x0eHasIdCondition\x12\x1f\n\x06has_id\x18\x01 \x03(\x0b\x32\x0f.qdrant.PointId\">\n\x0fNestedCondition\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x1e\n\x06\x66ilter\x18\x02 \x01(\x0b\x32\x0e.qdrant.Filter\"\xb5\x02\n\x0e\x46ieldCondition\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x1c\n\x05match\x18\x02 \x01(\x0b\x32\r.qdrant.Match\x12\x1c\n\x05range\x18\x03 \x01(\x0b\x32\r.qdrant.Range\x12\x30\n\x10geo_bounding_box\x18\x04 \x01(\x0b\x32\x16.qdrant.GeoBoundingBox\x12%\n\ngeo_radius\x18\x05 \x01(\x0b\x32\x11.qdrant.GeoRadius\x12)\n\x0cvalues_count\x18\x06 \x01(\x0b\x32\x13.qdrant.ValuesCount\x12\'\n\x0bgeo_polygon\x18\x07 \x01(\x0b\x32\x12.qdrant.GeoPolygon\x12-\n\x0e\x64\x61tetime_range\x18\x08 \x01(\x0b\x32\x15.qdrant.DatetimeRange\"\xa3\x02\n\x05Match\x12\x11\n\x07keyword\x18\x01 \x01(\tH\x00\x12\x11\n\x07integer\x18\x02 \x01(\x03H\x00\x12\x11\n\x07\x62oolean\x18\x03 \x01(\x08H\x00\x12\x0e\n\x04text\x18\x04 \x01(\tH\x00\x12+\n\x08keywords\x18\x05 \x01(\x0b\x32\x17.qdrant.RepeatedStringsH\x00\x12,\n\x08integers\x18\x06 \x01(\x0b\x32\x18.qdrant.RepeatedIntegersH\x00\x12\x33\n\x0f\x65xcept_integers\x18\x07 \x01(\x0b\x32\x18.qdrant.RepeatedIntegersH\x00\x12\x32\n\x0f\x65xcept_keywords\x18\x08 \x01(\x0b\x32\x17.qdrant.RepeatedStringsH\x00\x42\r\n\x0bmatch_value\"\"\n\x0fRepeatedStrings\x12\x0f\n\x07strings\x18\x01 \x03(\t\"$\n\x10RepeatedIntegers\x12\x10\n\x08integers\x18\x01 \x03(\x03\"k\n\x05Range\x12\x0f\n\x02lt\x18\x01 \x01(\x01H\x00\x88\x01\x01\x12\x0f\n\x02gt\x18\x02 \x01(\x01H\x01\x88\x01\x01\x12\x10\n\x03gte\x18\x03 \x01(\x01H\x02\x88\x01\x01\x12\x10\n\x03lte\x18\x04 \x01(\x01H\x03\x88\x01\x01\x42\x05\n\x03_ltB\x05\n\x03_gtB\x06\n\x04_gteB\x06\n\x04_lte\"\xe3\x01\n\rDatetimeRange\x12+\n\x02lt\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00\x88\x01\x01\x12+\n\x02gt\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x01\x88\x01\x01\x12,\n\x03gte\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x02\x88\x01\x01\x12,\n\x03lte\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x03\x88\x01\x01\x42\x05\n\x03_ltB\x05\n\x03_gtB\x06\n\x04_gteB\x06\n\x04_lte\"\\\n\x0eGeoBoundingBox\x12\"\n\x08top_left\x18\x01 \x01(\x0b\x32\x10.qdrant.GeoPoint\x12&\n\x0c\x62ottom_right\x18\x02 \x01(\x0b\x32\x10.qdrant.GeoPoint\"=\n\tGeoRadius\x12 \n\x06\x63\x65nter\x18\x01 \x01(\x0b\x32\x10.qdrant.GeoPoint\x12\x0e\n\x06radius\x18\x02 \x01(\x02\"1\n\rGeoLineString\x12 \n\x06points\x18\x01 \x03(\x0b\x32\x10.qdrant.GeoPoint\"_\n\nGeoPolygon\x12\'\n\x08\x65xterior\x18\x01 \x01(\x0b\x32\x15.qdrant.GeoLineString\x12(\n\tinteriors\x18\x02 \x03(\x0b\x32\x15.qdrant.GeoLineString\"q\n\x0bValuesCount\x12\x0f\n\x02lt\x18\x01 \x01(\x04H\x00\x88\x01\x01\x12\x0f\n\x02gt\x18\x02 \x01(\x04H\x01\x88\x01\x01\x12\x10\n\x03gte\x18\x03 \x01(\x04H\x02\x88\x01\x01\x12\x10\n\x03lte\x18\x04 \x01(\x04H\x03\x88\x01\x01\x42\x05\n\x03_ltB\x05\n\x03_gtB\x06\n\x04_gteB\x06\n\x04_lte\"u\n\x0ePointsSelector\x12\'\n\x06points\x18\x01 \x01(\x0b\x32\x15.qdrant.PointsIdsListH\x00\x12 \n\x06\x66ilter\x18\x02 \x01(\x0b\x32\x0e.qdrant.FilterH\x00\x42\x18\n\x16points_selector_one_of\"-\n\rPointsIdsList\x12\x1c\n\x03ids\x18\x01 \x03(\x0b\x32\x0f.qdrant.PointId\"\xd5\x01\n\x0bPointStruct\x12\x1b\n\x02id\x18\x01 \x01(\x0b\x32\x0f.qdrant.PointId\x12\x31\n\x07payload\x18\x03 \x03(\x0b\x32 .qdrant.PointStruct.PayloadEntry\x12%\n\x07vectors\x18\x04 \x01(\x0b\x32\x0f.qdrant.VectorsH\x00\x88\x01\x01\x1a=\n\x0cPayloadEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x1c\n\x05value\x18\x02 \x01(\x0b\x32\r.qdrant.Value:\x02\x38\x01\x42\n\n\x08_vectorsJ\x04\x08\x02\x10\x03\"$\n\x08GeoPoint\x12\x0b\n\x03lon\x18\x01 \x01(\x01\x12\x0b\n\x03lat\x18\x02 \x01(\x01*5\n\x11WriteOrderingType\x12\x08\n\x04Weak\x10\x00\x12\n\n\x06Medium\x10\x01\x12\n\n\x06Strong\x10\x02*8\n\x13ReadConsistencyType\x12\x07\n\x03\x41ll\x10\x00\x12\x0c\n\x08Majority\x10\x01\x12\n\n\x06Quorum\x10\x02*\xad\x01\n\tFieldType\x12\x14\n\x10\x46ieldTypeKeyword\x10\x00\x12\x14\n\x10\x46ieldTypeInteger\x10\x01\x12\x12\n\x0e\x46ieldTypeFloat\x10\x02\x12\x10\n\x0c\x46ieldTypeGeo\x10\x03\x12\x11\n\rFieldTypeText\x10\x04\x12\x11\n\rFieldTypeBool\x10\x05\x12\x15\n\x11\x46ieldTypeDatetime\x10\x06\x12\x11\n\rFieldTypeUuid\x10\x07*\x1e\n\tDirection\x12\x07\n\x03\x41sc\x10\x00\x12\x08\n\x04\x44\x65sc\x10\x01*5\n\x11RecommendStrategy\x12\x11\n\rAverageVector\x10\x00\x12\r\n\tBestScore\x10\x01*\x1b\n\x06\x46usion\x12\x07\n\x03RRF\x10\x00\x12\x08\n\x04\x44\x42SF\x10\x01*\x14\n\x06Sample\x12\n\n\x06Random\x10\x00*[\n\x0cUpdateStatus\x12\x17\n\x13UnknownUpdateStatus\x10\x00\x12\x10\n\x0c\x41\x63knowledged\x10\x01\x12\r\n\tCompleted\x10\x02\x12\x11\n\rClockRejected\x10\x03\x42\x15\xaa\x02\x12Qdrant.Client.Grpcb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0cpoints.proto\x12\x06qdrant\x1a\x11\x63ollections.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x13json_with_int.proto\"8\n\rWriteOrdering\x12\'\n\x04type\x18\x01 \x01(\x0e\x32\x19.qdrant.WriteOrderingType\"Y\n\x0fReadConsistency\x12+\n\x04type\x18\x01 \x01(\x0e\x32\x1b.qdrant.ReadConsistencyTypeH\x00\x12\x10\n\x06\x66\x61\x63tor\x18\x02 \x01(\x04H\x00\x42\x07\n\x05value\"<\n\x07PointId\x12\r\n\x03num\x18\x01 \x01(\x04H\x00\x12\x0e\n\x04uuid\x18\x02 \x01(\tH\x00\x42\x12\n\x10point_id_options\"\x1d\n\rSparseIndices\x12\x0c\n\x04\x64\x61ta\x18\x01 \x03(\r\"\xa5\x01\n\x08\x44ocument\x12\x0c\n\x04text\x18\x01 \x01(\t\x12\x12\n\x05model\x18\x03 \x01(\tH\x00\x88\x01\x01\x12.\n\x07options\x18\x04 \x03(\x0b\x32\x1d.qdrant.Document.OptionsEntry\x1a=\n\x0cOptionsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x1c\n\x05value\x18\x02 \x01(\x0b\x32\r.qdrant.Value:\x02\x38\x01\x42\x08\n\x06_model\"\xa0\x01\n\x05Image\x12\r\n\x05image\x18\x01 \x01(\t\x12\x12\n\x05model\x18\x02 \x01(\tH\x00\x88\x01\x01\x12+\n\x07options\x18\x03 \x03(\x0b\x32\x1a.qdrant.Image.OptionsEntry\x1a=\n\x0cOptionsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x1c\n\x05value\x18\x02 \x01(\x0b\x32\r.qdrant.Value:\x02\x38\x01\x42\x08\n\x06_model\"\xc4\x01\n\x0fInferenceObject\x12\x1d\n\x06object\x18\x01 \x01(\x0b\x32\r.qdrant.Value\x12\x12\n\x05model\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x35\n\x07options\x18\x03 \x03(\x0b\x32$.qdrant.InferenceObject.OptionsEntry\x1a=\n\x0cOptionsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x1c\n\x05value\x18\x02 \x01(\x0b\x32\r.qdrant.Value:\x02\x38\x01\x42\x08\n\x06_model\"\xf7\x02\n\x06Vector\x12\x0c\n\x04\x64\x61ta\x18\x01 \x03(\x02\x12+\n\x07indices\x18\x02 \x01(\x0b\x32\x15.qdrant.SparseIndicesH\x01\x88\x01\x01\x12\x1a\n\rvectors_count\x18\x03 \x01(\rH\x02\x88\x01\x01\x12$\n\x05\x64\x65nse\x18\x65 \x01(\x0b\x32\x13.qdrant.DenseVectorH\x00\x12&\n\x06sparse\x18\x66 \x01(\x0b\x32\x14.qdrant.SparseVectorH\x00\x12/\n\x0bmulti_dense\x18g \x01(\x0b\x32\x18.qdrant.MultiDenseVectorH\x00\x12$\n\x08\x64ocument\x18h \x01(\x0b\x32\x10.qdrant.DocumentH\x00\x12\x1e\n\x05image\x18i \x01(\x0b\x32\r.qdrant.ImageH\x00\x12)\n\x06object\x18j \x01(\x0b\x32\x17.qdrant.InferenceObjectH\x00\x42\x08\n\x06vectorB\n\n\x08_indicesB\x10\n\x0e_vectors_count\"\x8c\x02\n\x0cVectorOutput\x12\x0c\n\x04\x64\x61ta\x18\x01 \x03(\x02\x12+\n\x07indices\x18\x02 \x01(\x0b\x32\x15.qdrant.SparseIndicesH\x01\x88\x01\x01\x12\x1a\n\rvectors_count\x18\x03 \x01(\rH\x02\x88\x01\x01\x12$\n\x05\x64\x65nse\x18\x65 \x01(\x0b\x32\x13.qdrant.DenseVectorH\x00\x12&\n\x06sparse\x18\x66 \x01(\x0b\x32\x14.qdrant.SparseVectorH\x00\x12/\n\x0bmulti_dense\x18g \x01(\x0b\x32\x18.qdrant.MultiDenseVectorH\x00\x42\x08\n\x06vectorB\n\n\x08_indicesB\x10\n\x0e_vectors_count\"\x1b\n\x0b\x44\x65nseVector\x12\x0c\n\x04\x64\x61ta\x18\x01 \x03(\x02\"/\n\x0cSparseVector\x12\x0e\n\x06values\x18\x01 \x03(\x02\x12\x0f\n\x07indices\x18\x02 \x03(\r\"8\n\x10MultiDenseVector\x12$\n\x07vectors\x18\x01 \x03(\x0b\x32\x13.qdrant.DenseVector\"\xa7\x02\n\x0bVectorInput\x12\x1d\n\x02id\x18\x01 \x01(\x0b\x32\x0f.qdrant.PointIdH\x00\x12$\n\x05\x64\x65nse\x18\x02 \x01(\x0b\x32\x13.qdrant.DenseVectorH\x00\x12&\n\x06sparse\x18\x03 \x01(\x0b\x32\x14.qdrant.SparseVectorH\x00\x12/\n\x0bmulti_dense\x18\x04 \x01(\x0b\x32\x18.qdrant.MultiDenseVectorH\x00\x12$\n\x08\x64ocument\x18\x05 \x01(\x0b\x32\x10.qdrant.DocumentH\x00\x12\x1e\n\x05image\x18\x06 \x01(\x0b\x32\r.qdrant.ImageH\x00\x12)\n\x06object\x18\x07 \x01(\x0b\x32\x17.qdrant.InferenceObjectH\x00\x42\t\n\x07variant\"8\n\x10ShardKeySelector\x12$\n\nshard_keys\x18\x01 \x03(\x0b\x32\x10.qdrant.ShardKey\"\xf5\x01\n\x0cUpsertPoints\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12\x11\n\x04wait\x18\x02 \x01(\x08H\x00\x88\x01\x01\x12#\n\x06points\x18\x03 \x03(\x0b\x32\x13.qdrant.PointStruct\x12,\n\x08ordering\x18\x04 \x01(\x0b\x32\x15.qdrant.WriteOrderingH\x01\x88\x01\x01\x12\x39\n\x12shard_key_selector\x18\x05 \x01(\x0b\x32\x18.qdrant.ShardKeySelectorH\x02\x88\x01\x01\x42\x07\n\x05_waitB\x0b\n\t_orderingB\x15\n\x13_shard_key_selector\"\xf8\x01\n\x0c\x44\x65letePoints\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12\x11\n\x04wait\x18\x02 \x01(\x08H\x00\x88\x01\x01\x12&\n\x06points\x18\x03 \x01(\x0b\x32\x16.qdrant.PointsSelector\x12,\n\x08ordering\x18\x04 \x01(\x0b\x32\x15.qdrant.WriteOrderingH\x01\x88\x01\x01\x12\x39\n\x12shard_key_selector\x18\x05 \x01(\x0b\x32\x18.qdrant.ShardKeySelectorH\x02\x88\x01\x01\x42\x07\n\x05_waitB\x0b\n\t_orderingB\x15\n\x13_shard_key_selector\"\x85\x03\n\tGetPoints\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12\x1c\n\x03ids\x18\x02 \x03(\x0b\x32\x0f.qdrant.PointId\x12\x31\n\x0cwith_payload\x18\x04 \x01(\x0b\x32\x1b.qdrant.WithPayloadSelector\x12\x36\n\x0cwith_vectors\x18\x05 \x01(\x0b\x32\x1b.qdrant.WithVectorsSelectorH\x00\x88\x01\x01\x12\x36\n\x10read_consistency\x18\x06 \x01(\x0b\x32\x17.qdrant.ReadConsistencyH\x01\x88\x01\x01\x12\x39\n\x12shard_key_selector\x18\x07 \x01(\x0b\x32\x18.qdrant.ShardKeySelectorH\x02\x88\x01\x01\x12\x14\n\x07timeout\x18\x08 \x01(\x04H\x03\x88\x01\x01\x42\x0f\n\r_with_vectorsB\x13\n\x11_read_consistencyB\x15\n\x13_shard_key_selectorB\n\n\x08_timeoutJ\x04\x08\x03\x10\x04\"\xfc\x01\n\x12UpdatePointVectors\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12\x11\n\x04wait\x18\x02 \x01(\x08H\x00\x88\x01\x01\x12$\n\x06points\x18\x03 \x03(\x0b\x32\x14.qdrant.PointVectors\x12,\n\x08ordering\x18\x04 \x01(\x0b\x32\x15.qdrant.WriteOrderingH\x01\x88\x01\x01\x12\x39\n\x12shard_key_selector\x18\x05 \x01(\x0b\x32\x18.qdrant.ShardKeySelectorH\x02\x88\x01\x01\x42\x07\n\x05_waitB\x0b\n\t_orderingB\x15\n\x13_shard_key_selector\"M\n\x0cPointVectors\x12\x1b\n\x02id\x18\x01 \x01(\x0b\x32\x0f.qdrant.PointId\x12 \n\x07vectors\x18\x02 \x01(\x0b\x32\x0f.qdrant.Vectors\"\xb1\x02\n\x12\x44\x65letePointVectors\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12\x11\n\x04wait\x18\x02 \x01(\x08H\x00\x88\x01\x01\x12/\n\x0fpoints_selector\x18\x03 \x01(\x0b\x32\x16.qdrant.PointsSelector\x12(\n\x07vectors\x18\x04 \x01(\x0b\x32\x17.qdrant.VectorsSelector\x12,\n\x08ordering\x18\x05 \x01(\x0b\x32\x15.qdrant.WriteOrderingH\x01\x88\x01\x01\x12\x39\n\x12shard_key_selector\x18\x06 \x01(\x0b\x32\x18.qdrant.ShardKeySelectorH\x02\x88\x01\x01\x42\x07\n\x05_waitB\x0b\n\t_orderingB\x15\n\x13_shard_key_selector\"\xb5\x03\n\x10SetPayloadPoints\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12\x11\n\x04wait\x18\x02 \x01(\x08H\x00\x88\x01\x01\x12\x36\n\x07payload\x18\x03 \x03(\x0b\x32%.qdrant.SetPayloadPoints.PayloadEntry\x12\x34\n\x0fpoints_selector\x18\x05 \x01(\x0b\x32\x16.qdrant.PointsSelectorH\x01\x88\x01\x01\x12,\n\x08ordering\x18\x06 \x01(\x0b\x32\x15.qdrant.WriteOrderingH\x02\x88\x01\x01\x12\x39\n\x12shard_key_selector\x18\x07 \x01(\x0b\x32\x18.qdrant.ShardKeySelectorH\x03\x88\x01\x01\x12\x10\n\x03key\x18\x08 \x01(\tH\x04\x88\x01\x01\x1a=\n\x0cPayloadEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x1c\n\x05value\x18\x02 \x01(\x0b\x32\r.qdrant.Value:\x02\x38\x01\x42\x07\n\x05_waitB\x12\n\x10_points_selectorB\x0b\n\t_orderingB\x15\n\x13_shard_key_selectorB\x06\n\x04_keyJ\x04\x08\x04\x10\x05\"\xb5\x02\n\x13\x44\x65letePayloadPoints\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12\x11\n\x04wait\x18\x02 \x01(\x08H\x00\x88\x01\x01\x12\x0c\n\x04keys\x18\x03 \x03(\t\x12\x34\n\x0fpoints_selector\x18\x05 \x01(\x0b\x32\x16.qdrant.PointsSelectorH\x01\x88\x01\x01\x12,\n\x08ordering\x18\x06 \x01(\x0b\x32\x15.qdrant.WriteOrderingH\x02\x88\x01\x01\x12\x39\n\x12shard_key_selector\x18\x07 \x01(\x0b\x32\x18.qdrant.ShardKeySelectorH\x03\x88\x01\x01\x42\x07\n\x05_waitB\x12\n\x10_points_selectorB\x0b\n\t_orderingB\x15\n\x13_shard_key_selectorJ\x04\x08\x04\x10\x05\"\xfe\x01\n\x12\x43learPayloadPoints\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12\x11\n\x04wait\x18\x02 \x01(\x08H\x00\x88\x01\x01\x12&\n\x06points\x18\x03 \x01(\x0b\x32\x16.qdrant.PointsSelector\x12,\n\x08ordering\x18\x04 \x01(\x0b\x32\x15.qdrant.WriteOrderingH\x01\x88\x01\x01\x12\x39\n\x12shard_key_selector\x18\x05 \x01(\x0b\x32\x18.qdrant.ShardKeySelectorH\x02\x88\x01\x01\x42\x07\n\x05_waitB\x0b\n\t_orderingB\x15\n\x13_shard_key_selector\"\xaf\x02\n\x1a\x43reateFieldIndexCollection\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12\x11\n\x04wait\x18\x02 \x01(\x08H\x00\x88\x01\x01\x12\x12\n\nfield_name\x18\x03 \x01(\t\x12*\n\nfield_type\x18\x04 \x01(\x0e\x32\x11.qdrant.FieldTypeH\x01\x88\x01\x01\x12;\n\x12\x66ield_index_params\x18\x05 \x01(\x0b\x32\x1a.qdrant.PayloadIndexParamsH\x02\x88\x01\x01\x12,\n\x08ordering\x18\x06 \x01(\x0b\x32\x15.qdrant.WriteOrderingH\x03\x88\x01\x01\x42\x07\n\x05_waitB\r\n\x0b_field_typeB\x15\n\x13_field_index_paramsB\x0b\n\t_ordering\"\xa0\x01\n\x1a\x44\x65leteFieldIndexCollection\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12\x11\n\x04wait\x18\x02 \x01(\x08H\x00\x88\x01\x01\x12\x12\n\nfield_name\x18\x03 \x01(\t\x12,\n\x08ordering\x18\x04 \x01(\x0b\x32\x15.qdrant.WriteOrderingH\x01\x88\x01\x01\x42\x07\n\x05_waitB\x0b\n\t_ordering\"(\n\x16PayloadIncludeSelector\x12\x0e\n\x06\x66ields\x18\x01 \x03(\t\"(\n\x16PayloadExcludeSelector\x12\x0e\n\x06\x66ields\x18\x01 \x03(\t\"\xa1\x01\n\x13WithPayloadSelector\x12\x10\n\x06\x65nable\x18\x01 \x01(\x08H\x00\x12\x31\n\x07include\x18\x02 \x01(\x0b\x32\x1e.qdrant.PayloadIncludeSelectorH\x00\x12\x31\n\x07\x65xclude\x18\x03 \x01(\x0b\x32\x1e.qdrant.PayloadExcludeSelectorH\x00\x42\x12\n\x10selector_options\"\x82\x01\n\x0cNamedVectors\x12\x32\n\x07vectors\x18\x01 \x03(\x0b\x32!.qdrant.NamedVectors.VectorsEntry\x1a>\n\x0cVectorsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x1d\n\x05value\x18\x02 \x01(\x0b\x32\x0e.qdrant.Vector:\x02\x38\x01\"\x94\x01\n\x12NamedVectorsOutput\x12\x38\n\x07vectors\x18\x01 \x03(\x0b\x32\'.qdrant.NamedVectorsOutput.VectorsEntry\x1a\x44\n\x0cVectorsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12#\n\x05value\x18\x02 \x01(\x0b\x32\x14.qdrant.VectorOutput:\x02\x38\x01\"g\n\x07Vectors\x12 \n\x06vector\x18\x01 \x01(\x0b\x32\x0e.qdrant.VectorH\x00\x12\'\n\x07vectors\x18\x02 \x01(\x0b\x32\x14.qdrant.NamedVectorsH\x00\x42\x11\n\x0fvectors_options\"y\n\rVectorsOutput\x12&\n\x06vector\x18\x01 \x01(\x0b\x32\x14.qdrant.VectorOutputH\x00\x12-\n\x07vectors\x18\x02 \x01(\x0b\x32\x1a.qdrant.NamedVectorsOutputH\x00\x42\x11\n\x0fvectors_options\" \n\x0fVectorsSelector\x12\r\n\x05names\x18\x01 \x03(\t\"g\n\x13WithVectorsSelector\x12\x10\n\x06\x65nable\x18\x01 \x01(\x08H\x00\x12*\n\x07include\x18\x02 \x01(\x0b\x32\x17.qdrant.VectorsSelectorH\x00\x42\x12\n\x10selector_options\"\x88\x01\n\x18QuantizationSearchParams\x12\x13\n\x06ignore\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x14\n\x07rescore\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\x19\n\x0coversampling\x18\x03 \x01(\x01H\x02\x88\x01\x01\x42\t\n\x07_ignoreB\n\n\x08_rescoreB\x0f\n\r_oversampling\"\xc8\x01\n\x0cSearchParams\x12\x14\n\x07hnsw_ef\x18\x01 \x01(\x04H\x00\x88\x01\x01\x12\x12\n\x05\x65xact\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12;\n\x0cquantization\x18\x03 \x01(\x0b\x32 .qdrant.QuantizationSearchParamsH\x02\x88\x01\x01\x12\x19\n\x0cindexed_only\x18\x04 \x01(\x08H\x03\x88\x01\x01\x42\n\n\x08_hnsw_efB\x08\n\x06_exactB\x0f\n\r_quantizationB\x0f\n\r_indexed_only\"\x92\x05\n\x0cSearchPoints\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12\x0e\n\x06vector\x18\x02 \x03(\x02\x12\x1e\n\x06\x66ilter\x18\x03 \x01(\x0b\x32\x0e.qdrant.Filter\x12\r\n\x05limit\x18\x04 \x01(\x04\x12\x31\n\x0cwith_payload\x18\x06 \x01(\x0b\x32\x1b.qdrant.WithPayloadSelector\x12$\n\x06params\x18\x07 \x01(\x0b\x32\x14.qdrant.SearchParams\x12\x1c\n\x0fscore_threshold\x18\x08 \x01(\x02H\x00\x88\x01\x01\x12\x13\n\x06offset\x18\t \x01(\x04H\x01\x88\x01\x01\x12\x18\n\x0bvector_name\x18\n \x01(\tH\x02\x88\x01\x01\x12\x36\n\x0cwith_vectors\x18\x0b \x01(\x0b\x32\x1b.qdrant.WithVectorsSelectorH\x03\x88\x01\x01\x12\x36\n\x10read_consistency\x18\x0c \x01(\x0b\x32\x17.qdrant.ReadConsistencyH\x04\x88\x01\x01\x12\x14\n\x07timeout\x18\r \x01(\x04H\x05\x88\x01\x01\x12\x39\n\x12shard_key_selector\x18\x0e \x01(\x0b\x32\x18.qdrant.ShardKeySelectorH\x06\x88\x01\x01\x12\x32\n\x0esparse_indices\x18\x0f \x01(\x0b\x32\x15.qdrant.SparseIndicesH\x07\x88\x01\x01\x42\x12\n\x10_score_thresholdB\t\n\x07_offsetB\x0e\n\x0c_vector_nameB\x0f\n\r_with_vectorsB\x13\n\x11_read_consistencyB\n\n\x08_timeoutB\x15\n\x13_shard_key_selectorB\x11\n\x0f_sparse_indicesJ\x04\x08\x05\x10\x06\"\xc8\x01\n\x11SearchBatchPoints\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12+\n\rsearch_points\x18\x02 \x03(\x0b\x32\x14.qdrant.SearchPoints\x12\x36\n\x10read_consistency\x18\x03 \x01(\x0b\x32\x17.qdrant.ReadConsistencyH\x00\x88\x01\x01\x12\x14\n\x07timeout\x18\x04 \x01(\x04H\x01\x88\x01\x01\x42\x13\n\x11_read_consistencyB\n\n\x08_timeout\"\xb2\x01\n\nWithLookup\x12\x12\n\ncollection\x18\x01 \x01(\t\x12\x36\n\x0cwith_payload\x18\x02 \x01(\x0b\x32\x1b.qdrant.WithPayloadSelectorH\x00\x88\x01\x01\x12\x36\n\x0cwith_vectors\x18\x03 \x01(\x0b\x32\x1b.qdrant.WithVectorsSelectorH\x01\x88\x01\x01\x42\x0f\n\r_with_payloadB\x0f\n\r_with_vectors\"\xd5\x05\n\x11SearchPointGroups\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12\x0e\n\x06vector\x18\x02 \x03(\x02\x12\x1e\n\x06\x66ilter\x18\x03 \x01(\x0b\x32\x0e.qdrant.Filter\x12\r\n\x05limit\x18\x04 \x01(\r\x12\x31\n\x0cwith_payload\x18\x05 \x01(\x0b\x32\x1b.qdrant.WithPayloadSelector\x12$\n\x06params\x18\x06 \x01(\x0b\x32\x14.qdrant.SearchParams\x12\x1c\n\x0fscore_threshold\x18\x07 \x01(\x02H\x00\x88\x01\x01\x12\x18\n\x0bvector_name\x18\x08 \x01(\tH\x01\x88\x01\x01\x12\x36\n\x0cwith_vectors\x18\t \x01(\x0b\x32\x1b.qdrant.WithVectorsSelectorH\x02\x88\x01\x01\x12\x10\n\x08group_by\x18\n \x01(\t\x12\x12\n\ngroup_size\x18\x0b \x01(\r\x12\x36\n\x10read_consistency\x18\x0c \x01(\x0b\x32\x17.qdrant.ReadConsistencyH\x03\x88\x01\x01\x12,\n\x0bwith_lookup\x18\r \x01(\x0b\x32\x12.qdrant.WithLookupH\x04\x88\x01\x01\x12\x14\n\x07timeout\x18\x0e \x01(\x04H\x05\x88\x01\x01\x12\x39\n\x12shard_key_selector\x18\x0f \x01(\x0b\x32\x18.qdrant.ShardKeySelectorH\x06\x88\x01\x01\x12\x32\n\x0esparse_indices\x18\x10 \x01(\x0b\x32\x15.qdrant.SparseIndicesH\x07\x88\x01\x01\x42\x12\n\x10_score_thresholdB\x0e\n\x0c_vector_nameB\x0f\n\r_with_vectorsB\x13\n\x11_read_consistencyB\x0e\n\x0c_with_lookupB\n\n\x08_timeoutB\x15\n\x13_shard_key_selectorB\x11\n\x0f_sparse_indices\"}\n\tStartFrom\x12\x0f\n\x05\x66loat\x18\x01 \x01(\x01H\x00\x12\x11\n\x07integer\x18\x02 \x01(\x03H\x00\x12/\n\ttimestamp\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00\x12\x12\n\x08\x64\x61tetime\x18\x04 \x01(\tH\x00\x42\x07\n\x05value\"\x8a\x01\n\x07OrderBy\x12\x0b\n\x03key\x18\x01 \x01(\t\x12)\n\tdirection\x18\x02 \x01(\x0e\x32\x11.qdrant.DirectionH\x00\x88\x01\x01\x12*\n\nstart_from\x18\x03 \x01(\x0b\x32\x11.qdrant.StartFromH\x01\x88\x01\x01\x42\x0c\n\n_directionB\r\n\x0b_start_from\"\x8e\x04\n\x0cScrollPoints\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12\x1e\n\x06\x66ilter\x18\x02 \x01(\x0b\x32\x0e.qdrant.Filter\x12$\n\x06offset\x18\x03 \x01(\x0b\x32\x0f.qdrant.PointIdH\x00\x88\x01\x01\x12\x12\n\x05limit\x18\x04 \x01(\rH\x01\x88\x01\x01\x12\x31\n\x0cwith_payload\x18\x06 \x01(\x0b\x32\x1b.qdrant.WithPayloadSelector\x12\x36\n\x0cwith_vectors\x18\x07 \x01(\x0b\x32\x1b.qdrant.WithVectorsSelectorH\x02\x88\x01\x01\x12\x36\n\x10read_consistency\x18\x08 \x01(\x0b\x32\x17.qdrant.ReadConsistencyH\x03\x88\x01\x01\x12\x39\n\x12shard_key_selector\x18\t \x01(\x0b\x32\x18.qdrant.ShardKeySelectorH\x04\x88\x01\x01\x12&\n\x08order_by\x18\n \x01(\x0b\x32\x0f.qdrant.OrderByH\x05\x88\x01\x01\x12\x14\n\x07timeout\x18\x0b \x01(\x04H\x06\x88\x01\x01\x42\t\n\x07_offsetB\x08\n\x06_limitB\x0f\n\r_with_vectorsB\x13\n\x11_read_consistencyB\x15\n\x13_shard_key_selectorB\x0b\n\t_order_byB\n\n\x08_timeoutJ\x04\x08\x05\x10\x06\"\xa5\x01\n\x0eLookupLocation\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12\x18\n\x0bvector_name\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x39\n\x12shard_key_selector\x18\x03 \x01(\x0b\x32\x18.qdrant.ShardKeySelectorH\x01\x88\x01\x01\x42\x0e\n\x0c_vector_nameB\x15\n\x13_shard_key_selector\"\xcd\x06\n\x0fRecommendPoints\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12!\n\x08positive\x18\x02 \x03(\x0b\x32\x0f.qdrant.PointId\x12!\n\x08negative\x18\x03 \x03(\x0b\x32\x0f.qdrant.PointId\x12\x1e\n\x06\x66ilter\x18\x04 \x01(\x0b\x32\x0e.qdrant.Filter\x12\r\n\x05limit\x18\x05 \x01(\x04\x12\x31\n\x0cwith_payload\x18\x07 \x01(\x0b\x32\x1b.qdrant.WithPayloadSelector\x12$\n\x06params\x18\x08 \x01(\x0b\x32\x14.qdrant.SearchParams\x12\x1c\n\x0fscore_threshold\x18\t \x01(\x02H\x00\x88\x01\x01\x12\x13\n\x06offset\x18\n \x01(\x04H\x01\x88\x01\x01\x12\x12\n\x05using\x18\x0b \x01(\tH\x02\x88\x01\x01\x12\x36\n\x0cwith_vectors\x18\x0c \x01(\x0b\x32\x1b.qdrant.WithVectorsSelectorH\x03\x88\x01\x01\x12\x30\n\x0blookup_from\x18\r \x01(\x0b\x32\x16.qdrant.LookupLocationH\x04\x88\x01\x01\x12\x36\n\x10read_consistency\x18\x0e \x01(\x0b\x32\x17.qdrant.ReadConsistencyH\x05\x88\x01\x01\x12\x30\n\x08strategy\x18\x10 \x01(\x0e\x32\x19.qdrant.RecommendStrategyH\x06\x88\x01\x01\x12(\n\x10positive_vectors\x18\x11 \x03(\x0b\x32\x0e.qdrant.Vector\x12(\n\x10negative_vectors\x18\x12 \x03(\x0b\x32\x0e.qdrant.Vector\x12\x14\n\x07timeout\x18\x13 \x01(\x04H\x07\x88\x01\x01\x12\x39\n\x12shard_key_selector\x18\x14 \x01(\x0b\x32\x18.qdrant.ShardKeySelectorH\x08\x88\x01\x01\x42\x12\n\x10_score_thresholdB\t\n\x07_offsetB\x08\n\x06_usingB\x0f\n\r_with_vectorsB\x0e\n\x0c_lookup_fromB\x13\n\x11_read_consistencyB\x0b\n\t_strategyB\n\n\x08_timeoutB\x15\n\x13_shard_key_selectorJ\x04\x08\x06\x10\x07\"\xd1\x01\n\x14RecommendBatchPoints\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12\x31\n\x10recommend_points\x18\x02 \x03(\x0b\x32\x17.qdrant.RecommendPoints\x12\x36\n\x10read_consistency\x18\x03 \x01(\x0b\x32\x17.qdrant.ReadConsistencyH\x00\x88\x01\x01\x12\x14\n\x07timeout\x18\x04 \x01(\x04H\x01\x88\x01\x01\x42\x13\n\x11_read_consistencyB\n\n\x08_timeout\"\x90\x07\n\x14RecommendPointGroups\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12!\n\x08positive\x18\x02 \x03(\x0b\x32\x0f.qdrant.PointId\x12!\n\x08negative\x18\x03 \x03(\x0b\x32\x0f.qdrant.PointId\x12\x1e\n\x06\x66ilter\x18\x04 \x01(\x0b\x32\x0e.qdrant.Filter\x12\r\n\x05limit\x18\x05 \x01(\r\x12\x31\n\x0cwith_payload\x18\x06 \x01(\x0b\x32\x1b.qdrant.WithPayloadSelector\x12$\n\x06params\x18\x07 \x01(\x0b\x32\x14.qdrant.SearchParams\x12\x1c\n\x0fscore_threshold\x18\x08 \x01(\x02H\x00\x88\x01\x01\x12\x12\n\x05using\x18\t \x01(\tH\x01\x88\x01\x01\x12\x36\n\x0cwith_vectors\x18\n \x01(\x0b\x32\x1b.qdrant.WithVectorsSelectorH\x02\x88\x01\x01\x12\x30\n\x0blookup_from\x18\x0b \x01(\x0b\x32\x16.qdrant.LookupLocationH\x03\x88\x01\x01\x12\x10\n\x08group_by\x18\x0c \x01(\t\x12\x12\n\ngroup_size\x18\r \x01(\r\x12\x36\n\x10read_consistency\x18\x0e \x01(\x0b\x32\x17.qdrant.ReadConsistencyH\x04\x88\x01\x01\x12,\n\x0bwith_lookup\x18\x0f \x01(\x0b\x32\x12.qdrant.WithLookupH\x05\x88\x01\x01\x12\x30\n\x08strategy\x18\x11 \x01(\x0e\x32\x19.qdrant.RecommendStrategyH\x06\x88\x01\x01\x12(\n\x10positive_vectors\x18\x12 \x03(\x0b\x32\x0e.qdrant.Vector\x12(\n\x10negative_vectors\x18\x13 \x03(\x0b\x32\x0e.qdrant.Vector\x12\x14\n\x07timeout\x18\x14 \x01(\x04H\x07\x88\x01\x01\x12\x39\n\x12shard_key_selector\x18\x15 \x01(\x0b\x32\x18.qdrant.ShardKeySelectorH\x08\x88\x01\x01\x42\x12\n\x10_score_thresholdB\x08\n\x06_usingB\x0f\n\r_with_vectorsB\x0e\n\x0c_lookup_fromB\x13\n\x11_read_consistencyB\x0e\n\x0c_with_lookupB\x0b\n\t_strategyB\n\n\x08_timeoutB\x15\n\x13_shard_key_selector\"A\n\x0cTargetVector\x12\'\n\x06single\x18\x01 \x01(\x0b\x32\x15.qdrant.VectorExampleH\x00\x42\x08\n\x06target\"[\n\rVectorExample\x12\x1d\n\x02id\x18\x01 \x01(\x0b\x32\x0f.qdrant.PointIdH\x00\x12 \n\x06vector\x18\x02 \x01(\x0b\x32\x0e.qdrant.VectorH\x00\x42\t\n\x07\x65xample\"f\n\x12\x43ontextExamplePair\x12\'\n\x08positive\x18\x01 \x01(\x0b\x32\x15.qdrant.VectorExample\x12\'\n\x08negative\x18\x02 \x01(\x0b\x32\x15.qdrant.VectorExample\"\x8e\x05\n\x0e\x44iscoverPoints\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12$\n\x06target\x18\x02 \x01(\x0b\x32\x14.qdrant.TargetVector\x12+\n\x07\x63ontext\x18\x03 \x03(\x0b\x32\x1a.qdrant.ContextExamplePair\x12\x1e\n\x06\x66ilter\x18\x04 \x01(\x0b\x32\x0e.qdrant.Filter\x12\r\n\x05limit\x18\x05 \x01(\x04\x12\x31\n\x0cwith_payload\x18\x06 \x01(\x0b\x32\x1b.qdrant.WithPayloadSelector\x12$\n\x06params\x18\x07 \x01(\x0b\x32\x14.qdrant.SearchParams\x12\x13\n\x06offset\x18\x08 \x01(\x04H\x00\x88\x01\x01\x12\x12\n\x05using\x18\t \x01(\tH\x01\x88\x01\x01\x12\x36\n\x0cwith_vectors\x18\n \x01(\x0b\x32\x1b.qdrant.WithVectorsSelectorH\x02\x88\x01\x01\x12\x30\n\x0blookup_from\x18\x0b \x01(\x0b\x32\x16.qdrant.LookupLocationH\x03\x88\x01\x01\x12\x36\n\x10read_consistency\x18\x0c \x01(\x0b\x32\x17.qdrant.ReadConsistencyH\x04\x88\x01\x01\x12\x14\n\x07timeout\x18\r \x01(\x04H\x05\x88\x01\x01\x12\x39\n\x12shard_key_selector\x18\x0e \x01(\x0b\x32\x18.qdrant.ShardKeySelectorH\x06\x88\x01\x01\x42\t\n\x07_offsetB\x08\n\x06_usingB\x0f\n\r_with_vectorsB\x0e\n\x0c_lookup_fromB\x13\n\x11_read_consistencyB\n\n\x08_timeoutB\x15\n\x13_shard_key_selector\"\xce\x01\n\x13\x44iscoverBatchPoints\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12/\n\x0f\x64iscover_points\x18\x02 \x03(\x0b\x32\x16.qdrant.DiscoverPoints\x12\x36\n\x10read_consistency\x18\x03 \x01(\x0b\x32\x17.qdrant.ReadConsistencyH\x00\x88\x01\x01\x12\x14\n\x07timeout\x18\x04 \x01(\x04H\x01\x88\x01\x01\x42\x13\n\x11_read_consistencyB\n\n\x08_timeout\"\xa5\x02\n\x0b\x43ountPoints\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12\x1e\n\x06\x66ilter\x18\x02 \x01(\x0b\x32\x0e.qdrant.Filter\x12\x12\n\x05\x65xact\x18\x03 \x01(\x08H\x00\x88\x01\x01\x12\x36\n\x10read_consistency\x18\x04 \x01(\x0b\x32\x17.qdrant.ReadConsistencyH\x01\x88\x01\x01\x12\x39\n\x12shard_key_selector\x18\x05 \x01(\x0b\x32\x18.qdrant.ShardKeySelectorH\x02\x88\x01\x01\x12\x14\n\x07timeout\x18\x06 \x01(\x04H\x03\x88\x01\x01\x42\x08\n\x06_exactB\x13\n\x11_read_consistencyB\x15\n\x13_shard_key_selectorB\n\n\x08_timeout\"\x9d\x01\n\x0eRecommendInput\x12%\n\x08positive\x18\x01 \x03(\x0b\x32\x13.qdrant.VectorInput\x12%\n\x08negative\x18\x02 \x03(\x0b\x32\x13.qdrant.VectorInput\x12\x30\n\x08strategy\x18\x03 \x01(\x0e\x32\x19.qdrant.RecommendStrategyH\x00\x88\x01\x01\x42\x0b\n\t_strategy\"`\n\x10\x43ontextInputPair\x12%\n\x08positive\x18\x01 \x01(\x0b\x32\x13.qdrant.VectorInput\x12%\n\x08negative\x18\x02 \x01(\x0b\x32\x13.qdrant.VectorInput\"[\n\rDiscoverInput\x12#\n\x06target\x18\x01 \x01(\x0b\x32\x13.qdrant.VectorInput\x12%\n\x07\x63ontext\x18\x02 \x01(\x0b\x32\x14.qdrant.ContextInput\"7\n\x0c\x43ontextInput\x12\'\n\x05pairs\x18\x01 \x03(\x0b\x32\x18.qdrant.ContextInputPair\"\xa4\x02\n\x05Query\x12&\n\x07nearest\x18\x01 \x01(\x0b\x32\x13.qdrant.VectorInputH\x00\x12+\n\trecommend\x18\x02 \x01(\x0b\x32\x16.qdrant.RecommendInputH\x00\x12)\n\x08\x64iscover\x18\x03 \x01(\x0b\x32\x15.qdrant.DiscoverInputH\x00\x12\'\n\x07\x63ontext\x18\x04 \x01(\x0b\x32\x14.qdrant.ContextInputH\x00\x12#\n\x08order_by\x18\x05 \x01(\x0b\x32\x0f.qdrant.OrderByH\x00\x12 \n\x06\x66usion\x18\x06 \x01(\x0e\x32\x0e.qdrant.FusionH\x00\x12 \n\x06sample\x18\x07 \x01(\x0e\x32\x0e.qdrant.SampleH\x00\x42\t\n\x07variant\"\xfb\x02\n\rPrefetchQuery\x12\'\n\x08prefetch\x18\x01 \x03(\x0b\x32\x15.qdrant.PrefetchQuery\x12!\n\x05query\x18\x02 \x01(\x0b\x32\r.qdrant.QueryH\x00\x88\x01\x01\x12\x12\n\x05using\x18\x03 \x01(\tH\x01\x88\x01\x01\x12#\n\x06\x66ilter\x18\x04 \x01(\x0b\x32\x0e.qdrant.FilterH\x02\x88\x01\x01\x12)\n\x06params\x18\x05 \x01(\x0b\x32\x14.qdrant.SearchParamsH\x03\x88\x01\x01\x12\x1c\n\x0fscore_threshold\x18\x06 \x01(\x02H\x04\x88\x01\x01\x12\x12\n\x05limit\x18\x07 \x01(\x04H\x05\x88\x01\x01\x12\x30\n\x0blookup_from\x18\x08 \x01(\x0b\x32\x16.qdrant.LookupLocationH\x06\x88\x01\x01\x42\x08\n\x06_queryB\x08\n\x06_usingB\t\n\x07_filterB\t\n\x07_paramsB\x12\n\x10_score_thresholdB\x08\n\x06_limitB\x0e\n\x0c_lookup_from\"\x85\x06\n\x0bQueryPoints\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12\'\n\x08prefetch\x18\x02 \x03(\x0b\x32\x15.qdrant.PrefetchQuery\x12!\n\x05query\x18\x03 \x01(\x0b\x32\r.qdrant.QueryH\x00\x88\x01\x01\x12\x12\n\x05using\x18\x04 \x01(\tH\x01\x88\x01\x01\x12#\n\x06\x66ilter\x18\x05 \x01(\x0b\x32\x0e.qdrant.FilterH\x02\x88\x01\x01\x12)\n\x06params\x18\x06 \x01(\x0b\x32\x14.qdrant.SearchParamsH\x03\x88\x01\x01\x12\x1c\n\x0fscore_threshold\x18\x07 \x01(\x02H\x04\x88\x01\x01\x12\x12\n\x05limit\x18\x08 \x01(\x04H\x05\x88\x01\x01\x12\x13\n\x06offset\x18\t \x01(\x04H\x06\x88\x01\x01\x12\x36\n\x0cwith_vectors\x18\n \x01(\x0b\x32\x1b.qdrant.WithVectorsSelectorH\x07\x88\x01\x01\x12\x36\n\x0cwith_payload\x18\x0b \x01(\x0b\x32\x1b.qdrant.WithPayloadSelectorH\x08\x88\x01\x01\x12\x36\n\x10read_consistency\x18\x0c \x01(\x0b\x32\x17.qdrant.ReadConsistencyH\t\x88\x01\x01\x12\x39\n\x12shard_key_selector\x18\r \x01(\x0b\x32\x18.qdrant.ShardKeySelectorH\n\x88\x01\x01\x12\x30\n\x0blookup_from\x18\x0e \x01(\x0b\x32\x16.qdrant.LookupLocationH\x0b\x88\x01\x01\x12\x14\n\x07timeout\x18\x0f \x01(\x04H\x0c\x88\x01\x01\x42\x08\n\x06_queryB\x08\n\x06_usingB\t\n\x07_filterB\t\n\x07_paramsB\x12\n\x10_score_thresholdB\x08\n\x06_limitB\t\n\x07_offsetB\x0f\n\r_with_vectorsB\x0f\n\r_with_payloadB\x13\n\x11_read_consistencyB\x15\n\x13_shard_key_selectorB\x0e\n\x0c_lookup_fromB\n\n\x08_timeout\"\xc5\x01\n\x10QueryBatchPoints\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12)\n\x0cquery_points\x18\x02 \x03(\x0b\x32\x13.qdrant.QueryPoints\x12\x36\n\x10read_consistency\x18\x03 \x01(\x0b\x32\x17.qdrant.ReadConsistencyH\x00\x88\x01\x01\x12\x14\n\x07timeout\x18\x04 \x01(\x04H\x01\x88\x01\x01\x42\x13\n\x11_read_consistencyB\n\n\x08_timeout\"\xcc\x06\n\x10QueryPointGroups\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12\'\n\x08prefetch\x18\x02 \x03(\x0b\x32\x15.qdrant.PrefetchQuery\x12!\n\x05query\x18\x03 \x01(\x0b\x32\r.qdrant.QueryH\x00\x88\x01\x01\x12\x12\n\x05using\x18\x04 \x01(\tH\x01\x88\x01\x01\x12#\n\x06\x66ilter\x18\x05 \x01(\x0b\x32\x0e.qdrant.FilterH\x02\x88\x01\x01\x12)\n\x06params\x18\x06 \x01(\x0b\x32\x14.qdrant.SearchParamsH\x03\x88\x01\x01\x12\x1c\n\x0fscore_threshold\x18\x07 \x01(\x02H\x04\x88\x01\x01\x12\x31\n\x0cwith_payload\x18\x08 \x01(\x0b\x32\x1b.qdrant.WithPayloadSelector\x12\x36\n\x0cwith_vectors\x18\t \x01(\x0b\x32\x1b.qdrant.WithVectorsSelectorH\x05\x88\x01\x01\x12\x30\n\x0blookup_from\x18\n \x01(\x0b\x32\x16.qdrant.LookupLocationH\x06\x88\x01\x01\x12\x12\n\x05limit\x18\x0b \x01(\x04H\x07\x88\x01\x01\x12\x17\n\ngroup_size\x18\x0c \x01(\x04H\x08\x88\x01\x01\x12\x10\n\x08group_by\x18\r \x01(\t\x12\x36\n\x10read_consistency\x18\x0e \x01(\x0b\x32\x17.qdrant.ReadConsistencyH\t\x88\x01\x01\x12,\n\x0bwith_lookup\x18\x0f \x01(\x0b\x32\x12.qdrant.WithLookupH\n\x88\x01\x01\x12\x14\n\x07timeout\x18\x10 \x01(\x04H\x0b\x88\x01\x01\x12\x39\n\x12shard_key_selector\x18\x11 \x01(\x0b\x32\x18.qdrant.ShardKeySelectorH\x0c\x88\x01\x01\x42\x08\n\x06_queryB\x08\n\x06_usingB\t\n\x07_filterB\t\n\x07_paramsB\x12\n\x10_score_thresholdB\x0f\n\r_with_vectorsB\x0e\n\x0c_lookup_fromB\x08\n\x06_limitB\r\n\x0b_group_sizeB\x13\n\x11_read_consistencyB\x0e\n\x0c_with_lookupB\n\n\x08_timeoutB\x15\n\x13_shard_key_selector\"\xe0\x02\n\x0b\x46\x61\x63\x65tCounts\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12\x0b\n\x03key\x18\x02 \x01(\t\x12#\n\x06\x66ilter\x18\x03 \x01(\x0b\x32\x0e.qdrant.FilterH\x00\x88\x01\x01\x12\x12\n\x05limit\x18\x04 \x01(\x04H\x01\x88\x01\x01\x12\x12\n\x05\x65xact\x18\x05 \x01(\x08H\x02\x88\x01\x01\x12\x14\n\x07timeout\x18\x06 \x01(\x04H\x03\x88\x01\x01\x12\x36\n\x10read_consistency\x18\x07 \x01(\x0b\x32\x17.qdrant.ReadConsistencyH\x04\x88\x01\x01\x12\x39\n\x12shard_key_selector\x18\x08 \x01(\x0b\x32\x18.qdrant.ShardKeySelectorH\x05\x88\x01\x01\x42\t\n\x07_filterB\x08\n\x06_limitB\x08\n\x06_exactB\n\n\x08_timeoutB\x13\n\x11_read_consistencyB\x15\n\x13_shard_key_selector\"^\n\nFacetValue\x12\x16\n\x0cstring_value\x18\x01 \x01(\tH\x00\x12\x17\n\rinteger_value\x18\x02 \x01(\x03H\x00\x12\x14\n\nbool_value\x18\x03 \x01(\x08H\x00\x42\t\n\x07variant\"<\n\x08\x46\x61\x63\x65tHit\x12!\n\x05value\x18\x01 \x01(\x0b\x32\x12.qdrant.FacetValue\x12\r\n\x05\x63ount\x18\x02 \x01(\x04\"\xfa\x02\n\x12SearchMatrixPoints\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12#\n\x06\x66ilter\x18\x02 \x01(\x0b\x32\x0e.qdrant.FilterH\x00\x88\x01\x01\x12\x13\n\x06sample\x18\x03 \x01(\x04H\x01\x88\x01\x01\x12\x12\n\x05limit\x18\x04 \x01(\x04H\x02\x88\x01\x01\x12\x12\n\x05using\x18\x05 \x01(\tH\x03\x88\x01\x01\x12\x14\n\x07timeout\x18\x06 \x01(\x04H\x04\x88\x01\x01\x12\x36\n\x10read_consistency\x18\x07 \x01(\x0b\x32\x17.qdrant.ReadConsistencyH\x05\x88\x01\x01\x12\x39\n\x12shard_key_selector\x18\x08 \x01(\x0b\x32\x18.qdrant.ShardKeySelectorH\x06\x88\x01\x01\x42\t\n\x07_filterB\t\n\x07_sampleB\x08\n\x06_limitB\x08\n\x06_usingB\n\n\x08_timeoutB\x13\n\x11_read_consistencyB\x15\n\x13_shard_key_selector\"<\n\x11SearchMatrixPairs\x12\'\n\x05pairs\x18\x01 \x03(\x0b\x32\x18.qdrant.SearchMatrixPair\"Y\n\x10SearchMatrixPair\x12\x1a\n\x01\x61\x18\x01 \x01(\x0b\x32\x0f.qdrant.PointId\x12\x1a\n\x01\x62\x18\x02 \x01(\x0b\x32\x0f.qdrant.PointId\x12\r\n\x05score\x18\x03 \x01(\x02\"m\n\x13SearchMatrixOffsets\x12\x13\n\x0boffsets_row\x18\x01 \x03(\x04\x12\x13\n\x0boffsets_col\x18\x02 \x03(\x04\x12\x0e\n\x06scores\x18\x03 \x03(\x02\x12\x1c\n\x03ids\x18\x04 \x03(\x0b\x32\x0f.qdrant.PointId\"\x95\x12\n\x15PointsUpdateOperation\x12?\n\x06upsert\x18\x01 \x01(\x0b\x32-.qdrant.PointsUpdateOperation.PointStructListH\x00\x12\x37\n\x11\x64\x65lete_deprecated\x18\x02 \x01(\x0b\x32\x16.qdrant.PointsSelectorB\x02\x18\x01H\x00\x12?\n\x0bset_payload\x18\x03 \x01(\x0b\x32(.qdrant.PointsUpdateOperation.SetPayloadH\x00\x12K\n\x11overwrite_payload\x18\x04 \x01(\x0b\x32..qdrant.PointsUpdateOperation.OverwritePayloadH\x00\x12\x45\n\x0e\x64\x65lete_payload\x18\x05 \x01(\x0b\x32+.qdrant.PointsUpdateOperation.DeletePayloadH\x00\x12>\n\x18\x63lear_payload_deprecated\x18\x06 \x01(\x0b\x32\x16.qdrant.PointsSelectorB\x02\x18\x01H\x00\x12\x45\n\x0eupdate_vectors\x18\x07 \x01(\x0b\x32+.qdrant.PointsUpdateOperation.UpdateVectorsH\x00\x12\x45\n\x0e\x64\x65lete_vectors\x18\x08 \x01(\x0b\x32+.qdrant.PointsUpdateOperation.DeleteVectorsH\x00\x12\x43\n\rdelete_points\x18\t \x01(\x0b\x32*.qdrant.PointsUpdateOperation.DeletePointsH\x00\x12\x43\n\rclear_payload\x18\n \x01(\x0b\x32*.qdrant.PointsUpdateOperation.ClearPayloadH\x00\x1a\x88\x01\n\x0fPointStructList\x12#\n\x06points\x18\x01 \x03(\x0b\x32\x13.qdrant.PointStruct\x12\x39\n\x12shard_key_selector\x18\x02 \x01(\x0b\x32\x18.qdrant.ShardKeySelectorH\x00\x88\x01\x01\x42\x15\n\x13_shard_key_selector\x1a\xc9\x02\n\nSetPayload\x12\x46\n\x07payload\x18\x01 \x03(\x0b\x32\x35.qdrant.PointsUpdateOperation.SetPayload.PayloadEntry\x12\x34\n\x0fpoints_selector\x18\x02 \x01(\x0b\x32\x16.qdrant.PointsSelectorH\x00\x88\x01\x01\x12\x39\n\x12shard_key_selector\x18\x03 \x01(\x0b\x32\x18.qdrant.ShardKeySelectorH\x01\x88\x01\x01\x12\x10\n\x03key\x18\x04 \x01(\tH\x02\x88\x01\x01\x1a=\n\x0cPayloadEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x1c\n\x05value\x18\x02 \x01(\x0b\x32\r.qdrant.Value:\x02\x38\x01\x42\x12\n\x10_points_selectorB\x15\n\x13_shard_key_selectorB\x06\n\x04_key\x1a\xd5\x02\n\x10OverwritePayload\x12L\n\x07payload\x18\x01 \x03(\x0b\x32;.qdrant.PointsUpdateOperation.OverwritePayload.PayloadEntry\x12\x34\n\x0fpoints_selector\x18\x02 \x01(\x0b\x32\x16.qdrant.PointsSelectorH\x00\x88\x01\x01\x12\x39\n\x12shard_key_selector\x18\x03 \x01(\x0b\x32\x18.qdrant.ShardKeySelectorH\x01\x88\x01\x01\x12\x10\n\x03key\x18\x04 \x01(\tH\x02\x88\x01\x01\x1a=\n\x0cPayloadEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x1c\n\x05value\x18\x02 \x01(\x0b\x32\r.qdrant.Value:\x02\x38\x01\x42\x12\n\x10_points_selectorB\x15\n\x13_shard_key_selectorB\x06\n\x04_key\x1a\xb9\x01\n\rDeletePayload\x12\x0c\n\x04keys\x18\x01 \x03(\t\x12\x34\n\x0fpoints_selector\x18\x02 \x01(\x0b\x32\x16.qdrant.PointsSelectorH\x00\x88\x01\x01\x12\x39\n\x12shard_key_selector\x18\x03 \x01(\x0b\x32\x18.qdrant.ShardKeySelectorH\x01\x88\x01\x01\x42\x12\n\x10_points_selectorB\x15\n\x13_shard_key_selector\x1a\x87\x01\n\rUpdateVectors\x12$\n\x06points\x18\x01 \x03(\x0b\x32\x14.qdrant.PointVectors\x12\x39\n\x12shard_key_selector\x18\x02 \x01(\x0b\x32\x18.qdrant.ShardKeySelectorH\x00\x88\x01\x01\x42\x15\n\x13_shard_key_selector\x1a\xbc\x01\n\rDeleteVectors\x12/\n\x0fpoints_selector\x18\x01 \x01(\x0b\x32\x16.qdrant.PointsSelector\x12(\n\x07vectors\x18\x02 \x01(\x0b\x32\x17.qdrant.VectorsSelector\x12\x39\n\x12shard_key_selector\x18\x03 \x01(\x0b\x32\x18.qdrant.ShardKeySelectorH\x00\x88\x01\x01\x42\x15\n\x13_shard_key_selector\x1a\x88\x01\n\x0c\x44\x65letePoints\x12&\n\x06points\x18\x01 \x01(\x0b\x32\x16.qdrant.PointsSelector\x12\x39\n\x12shard_key_selector\x18\x02 \x01(\x0b\x32\x18.qdrant.ShardKeySelectorH\x00\x88\x01\x01\x42\x15\n\x13_shard_key_selector\x1a\x88\x01\n\x0c\x43learPayload\x12&\n\x06points\x18\x01 \x01(\x0b\x32\x16.qdrant.PointsSelector\x12\x39\n\x12shard_key_selector\x18\x02 \x01(\x0b\x32\x18.qdrant.ShardKeySelectorH\x00\x88\x01\x01\x42\x15\n\x13_shard_key_selectorB\x0b\n\toperation\"\xb6\x01\n\x11UpdateBatchPoints\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12\x11\n\x04wait\x18\x02 \x01(\x08H\x00\x88\x01\x01\x12\x31\n\noperations\x18\x03 \x03(\x0b\x32\x1d.qdrant.PointsUpdateOperation\x12,\n\x08ordering\x18\x04 \x01(\x0b\x32\x15.qdrant.WriteOrderingH\x01\x88\x01\x01\x42\x07\n\x05_waitB\x0b\n\t_ordering\"M\n\x17PointsOperationResponse\x12$\n\x06result\x18\x01 \x01(\x0b\x32\x14.qdrant.UpdateResult\x12\x0c\n\x04time\x18\x02 \x01(\x01\"`\n\x0cUpdateResult\x12\x19\n\x0coperation_id\x18\x01 \x01(\x04H\x00\x88\x01\x01\x12$\n\x06status\x18\x02 \x01(\x0e\x32\x14.qdrant.UpdateStatusB\x0f\n\r_operation_id\"7\n\nOrderValue\x12\r\n\x03int\x18\x01 \x01(\x03H\x00\x12\x0f\n\x05\x66loat\x18\x02 \x01(\x01H\x00\x42\t\n\x07variant\"\xf1\x02\n\x0bScoredPoint\x12\x1b\n\x02id\x18\x01 \x01(\x0b\x32\x0f.qdrant.PointId\x12\x31\n\x07payload\x18\x02 \x03(\x0b\x32 .qdrant.ScoredPoint.PayloadEntry\x12\r\n\x05score\x18\x03 \x01(\x02\x12\x0f\n\x07version\x18\x05 \x01(\x04\x12+\n\x07vectors\x18\x06 \x01(\x0b\x32\x15.qdrant.VectorsOutputH\x00\x88\x01\x01\x12(\n\tshard_key\x18\x07 \x01(\x0b\x32\x10.qdrant.ShardKeyH\x01\x88\x01\x01\x12,\n\x0border_value\x18\x08 \x01(\x0b\x32\x12.qdrant.OrderValueH\x02\x88\x01\x01\x1a=\n\x0cPayloadEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x1c\n\x05value\x18\x02 \x01(\x0b\x32\r.qdrant.Value:\x02\x38\x01\x42\n\n\x08_vectorsB\x0c\n\n_shard_keyB\x0e\n\x0c_order_valueJ\x04\x08\x04\x10\x05\"\\\n\x07GroupId\x12\x18\n\x0eunsigned_value\x18\x01 \x01(\x04H\x00\x12\x17\n\rinteger_value\x18\x02 \x01(\x03H\x00\x12\x16\n\x0cstring_value\x18\x03 \x01(\tH\x00\x42\x06\n\x04kind\"t\n\nPointGroup\x12\x1b\n\x02id\x18\x01 \x01(\x0b\x32\x0f.qdrant.GroupId\x12!\n\x04hits\x18\x02 \x03(\x0b\x32\x13.qdrant.ScoredPoint\x12&\n\x06lookup\x18\x03 \x01(\x0b\x32\x16.qdrant.RetrievedPoint\"2\n\x0cGroupsResult\x12\"\n\x06groups\x18\x01 \x03(\x0b\x32\x12.qdrant.PointGroup\"C\n\x0eSearchResponse\x12#\n\x06result\x18\x01 \x03(\x0b\x32\x13.qdrant.ScoredPoint\x12\x0c\n\x04time\x18\x02 \x01(\x01\"B\n\rQueryResponse\x12#\n\x06result\x18\x01 \x03(\x0b\x32\x13.qdrant.ScoredPoint\x12\x0c\n\x04time\x18\x02 \x01(\x01\"G\n\x12QueryBatchResponse\x12#\n\x06result\x18\x01 \x03(\x0b\x32\x13.qdrant.BatchResult\x12\x0c\n\x04time\x18\x02 \x01(\x01\"I\n\x13QueryGroupsResponse\x12$\n\x06result\x18\x01 \x01(\x0b\x32\x14.qdrant.GroupsResult\x12\x0c\n\x04time\x18\x02 \x01(\x01\"2\n\x0b\x42\x61tchResult\x12#\n\x06result\x18\x01 \x03(\x0b\x32\x13.qdrant.ScoredPoint\"H\n\x13SearchBatchResponse\x12#\n\x06result\x18\x01 \x03(\x0b\x32\x13.qdrant.BatchResult\x12\x0c\n\x04time\x18\x02 \x01(\x01\"J\n\x14SearchGroupsResponse\x12$\n\x06result\x18\x01 \x01(\x0b\x32\x14.qdrant.GroupsResult\x12\x0c\n\x04time\x18\x02 \x01(\x01\"B\n\rCountResponse\x12#\n\x06result\x18\x01 \x01(\x0b\x32\x13.qdrant.CountResult\x12\x0c\n\x04time\x18\x02 \x01(\x01\"\x8b\x01\n\x0eScrollResponse\x12.\n\x10next_page_offset\x18\x01 \x01(\x0b\x32\x0f.qdrant.PointIdH\x00\x88\x01\x01\x12&\n\x06result\x18\x02 \x03(\x0b\x32\x16.qdrant.RetrievedPoint\x12\x0c\n\x04time\x18\x03 \x01(\x01\x42\x13\n\x11_next_page_offset\"\x1c\n\x0b\x43ountResult\x12\r\n\x05\x63ount\x18\x01 \x01(\x04\"\xd7\x02\n\x0eRetrievedPoint\x12\x1b\n\x02id\x18\x01 \x01(\x0b\x32\x0f.qdrant.PointId\x12\x34\n\x07payload\x18\x02 \x03(\x0b\x32#.qdrant.RetrievedPoint.PayloadEntry\x12+\n\x07vectors\x18\x04 \x01(\x0b\x32\x15.qdrant.VectorsOutputH\x00\x88\x01\x01\x12(\n\tshard_key\x18\x05 \x01(\x0b\x32\x10.qdrant.ShardKeyH\x01\x88\x01\x01\x12,\n\x0border_value\x18\x06 \x01(\x0b\x32\x12.qdrant.OrderValueH\x02\x88\x01\x01\x1a=\n\x0cPayloadEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x1c\n\x05value\x18\x02 \x01(\x0b\x32\r.qdrant.Value:\x02\x38\x01\x42\n\n\x08_vectorsB\x0c\n\n_shard_keyB\x0e\n\x0c_order_valueJ\x04\x08\x03\x10\x04\"C\n\x0bGetResponse\x12&\n\x06result\x18\x01 \x03(\x0b\x32\x16.qdrant.RetrievedPoint\x12\x0c\n\x04time\x18\x02 \x01(\x01\"F\n\x11RecommendResponse\x12#\n\x06result\x18\x01 \x03(\x0b\x32\x13.qdrant.ScoredPoint\x12\x0c\n\x04time\x18\x02 \x01(\x01\"K\n\x16RecommendBatchResponse\x12#\n\x06result\x18\x01 \x03(\x0b\x32\x13.qdrant.BatchResult\x12\x0c\n\x04time\x18\x02 \x01(\x01\"E\n\x10\x44iscoverResponse\x12#\n\x06result\x18\x01 \x03(\x0b\x32\x13.qdrant.ScoredPoint\x12\x0c\n\x04time\x18\x02 \x01(\x01\"J\n\x15\x44iscoverBatchResponse\x12#\n\x06result\x18\x01 \x03(\x0b\x32\x13.qdrant.BatchResult\x12\x0c\n\x04time\x18\x02 \x01(\x01\"M\n\x17RecommendGroupsResponse\x12$\n\x06result\x18\x01 \x01(\x0b\x32\x14.qdrant.GroupsResult\x12\x0c\n\x04time\x18\x02 \x01(\x01\"I\n\x13UpdateBatchResponse\x12$\n\x06result\x18\x01 \x03(\x0b\x32\x14.qdrant.UpdateResult\x12\x0c\n\x04time\x18\x02 \x01(\x01\"=\n\rFacetResponse\x12\x1e\n\x04hits\x18\x01 \x03(\x0b\x32\x10.qdrant.FacetHit\x12\x0c\n\x04time\x18\x02 \x01(\x01\"T\n\x19SearchMatrixPairsResponse\x12)\n\x06result\x18\x01 \x01(\x0b\x32\x19.qdrant.SearchMatrixPairs\x12\x0c\n\x04time\x18\x02 \x01(\x01\"X\n\x1bSearchMatrixOffsetsResponse\x12+\n\x06result\x18\x01 \x01(\x0b\x32\x1b.qdrant.SearchMatrixOffsets\x12\x0c\n\x04time\x18\x02 \x01(\x01\"\xac\x01\n\x06\x46ilter\x12!\n\x06should\x18\x01 \x03(\x0b\x32\x11.qdrant.Condition\x12\x1f\n\x04must\x18\x02 \x03(\x0b\x32\x11.qdrant.Condition\x12#\n\x08must_not\x18\x03 \x03(\x0b\x32\x11.qdrant.Condition\x12*\n\nmin_should\x18\x04 \x01(\x0b\x32\x11.qdrant.MinShouldH\x00\x88\x01\x01\x42\r\n\x0b_min_should\"E\n\tMinShould\x12%\n\nconditions\x18\x01 \x03(\x0b\x32\x11.qdrant.Condition\x12\x11\n\tmin_count\x18\x02 \x01(\x04\"\xcb\x02\n\tCondition\x12\'\n\x05\x66ield\x18\x01 \x01(\x0b\x32\x16.qdrant.FieldConditionH\x00\x12,\n\x08is_empty\x18\x02 \x01(\x0b\x32\x18.qdrant.IsEmptyConditionH\x00\x12(\n\x06has_id\x18\x03 \x01(\x0b\x32\x16.qdrant.HasIdConditionH\x00\x12 \n\x06\x66ilter\x18\x04 \x01(\x0b\x32\x0e.qdrant.FilterH\x00\x12*\n\x07is_null\x18\x05 \x01(\x0b\x32\x17.qdrant.IsNullConditionH\x00\x12)\n\x06nested\x18\x06 \x01(\x0b\x32\x17.qdrant.NestedConditionH\x00\x12\x30\n\nhas_vector\x18\x07 \x01(\x0b\x32\x1a.qdrant.HasVectorConditionH\x00\x42\x12\n\x10\x63ondition_one_of\"\x1f\n\x10IsEmptyCondition\x12\x0b\n\x03key\x18\x01 \x01(\t\"\x1e\n\x0fIsNullCondition\x12\x0b\n\x03key\x18\x01 \x01(\t\"1\n\x0eHasIdCondition\x12\x1f\n\x06has_id\x18\x01 \x03(\x0b\x32\x0f.qdrant.PointId\"(\n\x12HasVectorCondition\x12\x12\n\nhas_vector\x18\x01 \x01(\t\">\n\x0fNestedCondition\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x1e\n\x06\x66ilter\x18\x02 \x01(\x0b\x32\x0e.qdrant.Filter\"\xb5\x02\n\x0e\x46ieldCondition\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x1c\n\x05match\x18\x02 \x01(\x0b\x32\r.qdrant.Match\x12\x1c\n\x05range\x18\x03 \x01(\x0b\x32\r.qdrant.Range\x12\x30\n\x10geo_bounding_box\x18\x04 \x01(\x0b\x32\x16.qdrant.GeoBoundingBox\x12%\n\ngeo_radius\x18\x05 \x01(\x0b\x32\x11.qdrant.GeoRadius\x12)\n\x0cvalues_count\x18\x06 \x01(\x0b\x32\x13.qdrant.ValuesCount\x12\'\n\x0bgeo_polygon\x18\x07 \x01(\x0b\x32\x12.qdrant.GeoPolygon\x12-\n\x0e\x64\x61tetime_range\x18\x08 \x01(\x0b\x32\x15.qdrant.DatetimeRange\"\xa3\x02\n\x05Match\x12\x11\n\x07keyword\x18\x01 \x01(\tH\x00\x12\x11\n\x07integer\x18\x02 \x01(\x03H\x00\x12\x11\n\x07\x62oolean\x18\x03 \x01(\x08H\x00\x12\x0e\n\x04text\x18\x04 \x01(\tH\x00\x12+\n\x08keywords\x18\x05 \x01(\x0b\x32\x17.qdrant.RepeatedStringsH\x00\x12,\n\x08integers\x18\x06 \x01(\x0b\x32\x18.qdrant.RepeatedIntegersH\x00\x12\x33\n\x0f\x65xcept_integers\x18\x07 \x01(\x0b\x32\x18.qdrant.RepeatedIntegersH\x00\x12\x32\n\x0f\x65xcept_keywords\x18\x08 \x01(\x0b\x32\x17.qdrant.RepeatedStringsH\x00\x42\r\n\x0bmatch_value\"\"\n\x0fRepeatedStrings\x12\x0f\n\x07strings\x18\x01 \x03(\t\"$\n\x10RepeatedIntegers\x12\x10\n\x08integers\x18\x01 \x03(\x03\"k\n\x05Range\x12\x0f\n\x02lt\x18\x01 \x01(\x01H\x00\x88\x01\x01\x12\x0f\n\x02gt\x18\x02 \x01(\x01H\x01\x88\x01\x01\x12\x10\n\x03gte\x18\x03 \x01(\x01H\x02\x88\x01\x01\x12\x10\n\x03lte\x18\x04 \x01(\x01H\x03\x88\x01\x01\x42\x05\n\x03_ltB\x05\n\x03_gtB\x06\n\x04_gteB\x06\n\x04_lte\"\xe3\x01\n\rDatetimeRange\x12+\n\x02lt\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00\x88\x01\x01\x12+\n\x02gt\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x01\x88\x01\x01\x12,\n\x03gte\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x02\x88\x01\x01\x12,\n\x03lte\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x03\x88\x01\x01\x42\x05\n\x03_ltB\x05\n\x03_gtB\x06\n\x04_gteB\x06\n\x04_lte\"\\\n\x0eGeoBoundingBox\x12\"\n\x08top_left\x18\x01 \x01(\x0b\x32\x10.qdrant.GeoPoint\x12&\n\x0c\x62ottom_right\x18\x02 \x01(\x0b\x32\x10.qdrant.GeoPoint\"=\n\tGeoRadius\x12 \n\x06\x63\x65nter\x18\x01 \x01(\x0b\x32\x10.qdrant.GeoPoint\x12\x0e\n\x06radius\x18\x02 \x01(\x02\"1\n\rGeoLineString\x12 \n\x06points\x18\x01 \x03(\x0b\x32\x10.qdrant.GeoPoint\"_\n\nGeoPolygon\x12\'\n\x08\x65xterior\x18\x01 \x01(\x0b\x32\x15.qdrant.GeoLineString\x12(\n\tinteriors\x18\x02 \x03(\x0b\x32\x15.qdrant.GeoLineString\"q\n\x0bValuesCount\x12\x0f\n\x02lt\x18\x01 \x01(\x04H\x00\x88\x01\x01\x12\x0f\n\x02gt\x18\x02 \x01(\x04H\x01\x88\x01\x01\x12\x10\n\x03gte\x18\x03 \x01(\x04H\x02\x88\x01\x01\x12\x10\n\x03lte\x18\x04 \x01(\x04H\x03\x88\x01\x01\x42\x05\n\x03_ltB\x05\n\x03_gtB\x06\n\x04_gteB\x06\n\x04_lte\"u\n\x0ePointsSelector\x12\'\n\x06points\x18\x01 \x01(\x0b\x32\x15.qdrant.PointsIdsListH\x00\x12 \n\x06\x66ilter\x18\x02 \x01(\x0b\x32\x0e.qdrant.FilterH\x00\x42\x18\n\x16points_selector_one_of\"-\n\rPointsIdsList\x12\x1c\n\x03ids\x18\x01 \x03(\x0b\x32\x0f.qdrant.PointId\"\xd5\x01\n\x0bPointStruct\x12\x1b\n\x02id\x18\x01 \x01(\x0b\x32\x0f.qdrant.PointId\x12\x31\n\x07payload\x18\x03 \x03(\x0b\x32 .qdrant.PointStruct.PayloadEntry\x12%\n\x07vectors\x18\x04 \x01(\x0b\x32\x0f.qdrant.VectorsH\x00\x88\x01\x01\x1a=\n\x0cPayloadEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x1c\n\x05value\x18\x02 \x01(\x0b\x32\r.qdrant.Value:\x02\x38\x01\x42\n\n\x08_vectorsJ\x04\x08\x02\x10\x03\"$\n\x08GeoPoint\x12\x0b\n\x03lon\x18\x01 \x01(\x01\x12\x0b\n\x03lat\x18\x02 \x01(\x01*5\n\x11WriteOrderingType\x12\x08\n\x04Weak\x10\x00\x12\n\n\x06Medium\x10\x01\x12\n\n\x06Strong\x10\x02*8\n\x13ReadConsistencyType\x12\x07\n\x03\x41ll\x10\x00\x12\x0c\n\x08Majority\x10\x01\x12\n\n\x06Quorum\x10\x02*\xad\x01\n\tFieldType\x12\x14\n\x10\x46ieldTypeKeyword\x10\x00\x12\x14\n\x10\x46ieldTypeInteger\x10\x01\x12\x12\n\x0e\x46ieldTypeFloat\x10\x02\x12\x10\n\x0c\x46ieldTypeGeo\x10\x03\x12\x11\n\rFieldTypeText\x10\x04\x12\x11\n\rFieldTypeBool\x10\x05\x12\x15\n\x11\x46ieldTypeDatetime\x10\x06\x12\x11\n\rFieldTypeUuid\x10\x07*\x1e\n\tDirection\x12\x07\n\x03\x41sc\x10\x00\x12\x08\n\x04\x44\x65sc\x10\x01*5\n\x11RecommendStrategy\x12\x11\n\rAverageVector\x10\x00\x12\r\n\tBestScore\x10\x01*\x1b\n\x06\x46usion\x12\x07\n\x03RRF\x10\x00\x12\x08\n\x04\x44\x42SF\x10\x01*\x14\n\x06Sample\x12\n\n\x06Random\x10\x00*[\n\x0cUpdateStatus\x12\x17\n\x13UnknownUpdateStatus\x10\x00\x12\x10\n\x0c\x41\x63knowledged\x10\x01\x12\r\n\tCompleted\x10\x02\x12\x11\n\rClockRejected\x10\x03\x42\x15\xaa\x02\x12Qdrant.Client.Grpcb\x06proto3') _WRITEORDERINGTYPE = DESCRIPTOR.enum_types_by_name['WriteOrderingType'] WriteOrderingType = enum_type_wrapper.EnumTypeWrapper(_WRITEORDERINGTYPE) @@ -67,7 +67,14 @@ _READCONSISTENCY = DESCRIPTOR.message_types_by_name['ReadConsistency'] _POINTID = DESCRIPTOR.message_types_by_name['PointId'] _SPARSEINDICES = DESCRIPTOR.message_types_by_name['SparseIndices'] +_DOCUMENT = DESCRIPTOR.message_types_by_name['Document'] +_DOCUMENT_OPTIONSENTRY = _DOCUMENT.nested_types_by_name['OptionsEntry'] +_IMAGE = DESCRIPTOR.message_types_by_name['Image'] +_IMAGE_OPTIONSENTRY = _IMAGE.nested_types_by_name['OptionsEntry'] +_INFERENCEOBJECT = DESCRIPTOR.message_types_by_name['InferenceObject'] +_INFERENCEOBJECT_OPTIONSENTRY = _INFERENCEOBJECT.nested_types_by_name['OptionsEntry'] _VECTOR = DESCRIPTOR.message_types_by_name['Vector'] +_VECTOROUTPUT = DESCRIPTOR.message_types_by_name['VectorOutput'] _DENSEVECTOR = DESCRIPTOR.message_types_by_name['DenseVector'] _SPARSEVECTOR = DESCRIPTOR.message_types_by_name['SparseVector'] _MULTIDENSEVECTOR = DESCRIPTOR.message_types_by_name['MultiDenseVector'] @@ -90,7 +97,10 @@ _WITHPAYLOADSELECTOR = DESCRIPTOR.message_types_by_name['WithPayloadSelector'] _NAMEDVECTORS = DESCRIPTOR.message_types_by_name['NamedVectors'] _NAMEDVECTORS_VECTORSENTRY = _NAMEDVECTORS.nested_types_by_name['VectorsEntry'] +_NAMEDVECTORSOUTPUT = DESCRIPTOR.message_types_by_name['NamedVectorsOutput'] +_NAMEDVECTORSOUTPUT_VECTORSENTRY = _NAMEDVECTORSOUTPUT.nested_types_by_name['VectorsEntry'] _VECTORS = DESCRIPTOR.message_types_by_name['Vectors'] +_VECTORSOUTPUT = DESCRIPTOR.message_types_by_name['VectorsOutput'] _VECTORSSELECTOR = DESCRIPTOR.message_types_by_name['VectorsSelector'] _WITHVECTORSSELECTOR = DESCRIPTOR.message_types_by_name['WithVectorsSelector'] _QUANTIZATIONSEARCHPARAMS = DESCRIPTOR.message_types_by_name['QuantizationSearchParams'] @@ -176,6 +186,7 @@ _ISEMPTYCONDITION = DESCRIPTOR.message_types_by_name['IsEmptyCondition'] _ISNULLCONDITION = DESCRIPTOR.message_types_by_name['IsNullCondition'] _HASIDCONDITION = DESCRIPTOR.message_types_by_name['HasIdCondition'] +_HASVECTORCONDITION = DESCRIPTOR.message_types_by_name['HasVectorCondition'] _NESTEDCONDITION = DESCRIPTOR.message_types_by_name['NestedCondition'] _FIELDCONDITION = DESCRIPTOR.message_types_by_name['FieldCondition'] _MATCH = DESCRIPTOR.message_types_by_name['Match'] @@ -221,6 +232,51 @@ }) _sym_db.RegisterMessage(SparseIndices) +Document = _reflection.GeneratedProtocolMessageType('Document', (_message.Message,), { + + 'OptionsEntry' : _reflection.GeneratedProtocolMessageType('OptionsEntry', (_message.Message,), { + 'DESCRIPTOR' : _DOCUMENT_OPTIONSENTRY, + '__module__' : 'points_pb2' + # @@protoc_insertion_point(class_scope:qdrant.Document.OptionsEntry) + }) + , + 'DESCRIPTOR' : _DOCUMENT, + '__module__' : 'points_pb2' + # @@protoc_insertion_point(class_scope:qdrant.Document) + }) +_sym_db.RegisterMessage(Document) +_sym_db.RegisterMessage(Document.OptionsEntry) + +Image = _reflection.GeneratedProtocolMessageType('Image', (_message.Message,), { + + 'OptionsEntry' : _reflection.GeneratedProtocolMessageType('OptionsEntry', (_message.Message,), { + 'DESCRIPTOR' : _IMAGE_OPTIONSENTRY, + '__module__' : 'points_pb2' + # @@protoc_insertion_point(class_scope:qdrant.Image.OptionsEntry) + }) + , + 'DESCRIPTOR' : _IMAGE, + '__module__' : 'points_pb2' + # @@protoc_insertion_point(class_scope:qdrant.Image) + }) +_sym_db.RegisterMessage(Image) +_sym_db.RegisterMessage(Image.OptionsEntry) + +InferenceObject = _reflection.GeneratedProtocolMessageType('InferenceObject', (_message.Message,), { + + 'OptionsEntry' : _reflection.GeneratedProtocolMessageType('OptionsEntry', (_message.Message,), { + 'DESCRIPTOR' : _INFERENCEOBJECT_OPTIONSENTRY, + '__module__' : 'points_pb2' + # @@protoc_insertion_point(class_scope:qdrant.InferenceObject.OptionsEntry) + }) + , + 'DESCRIPTOR' : _INFERENCEOBJECT, + '__module__' : 'points_pb2' + # @@protoc_insertion_point(class_scope:qdrant.InferenceObject) + }) +_sym_db.RegisterMessage(InferenceObject) +_sym_db.RegisterMessage(InferenceObject.OptionsEntry) + Vector = _reflection.GeneratedProtocolMessageType('Vector', (_message.Message,), { 'DESCRIPTOR' : _VECTOR, '__module__' : 'points_pb2' @@ -228,6 +284,13 @@ }) _sym_db.RegisterMessage(Vector) +VectorOutput = _reflection.GeneratedProtocolMessageType('VectorOutput', (_message.Message,), { + 'DESCRIPTOR' : _VECTOROUTPUT, + '__module__' : 'points_pb2' + # @@protoc_insertion_point(class_scope:qdrant.VectorOutput) + }) +_sym_db.RegisterMessage(VectorOutput) + DenseVector = _reflection.GeneratedProtocolMessageType('DenseVector', (_message.Message,), { 'DESCRIPTOR' : _DENSEVECTOR, '__module__' : 'points_pb2' @@ -384,6 +447,21 @@ _sym_db.RegisterMessage(NamedVectors) _sym_db.RegisterMessage(NamedVectors.VectorsEntry) +NamedVectorsOutput = _reflection.GeneratedProtocolMessageType('NamedVectorsOutput', (_message.Message,), { + + 'VectorsEntry' : _reflection.GeneratedProtocolMessageType('VectorsEntry', (_message.Message,), { + 'DESCRIPTOR' : _NAMEDVECTORSOUTPUT_VECTORSENTRY, + '__module__' : 'points_pb2' + # @@protoc_insertion_point(class_scope:qdrant.NamedVectorsOutput.VectorsEntry) + }) + , + 'DESCRIPTOR' : _NAMEDVECTORSOUTPUT, + '__module__' : 'points_pb2' + # @@protoc_insertion_point(class_scope:qdrant.NamedVectorsOutput) + }) +_sym_db.RegisterMessage(NamedVectorsOutput) +_sym_db.RegisterMessage(NamedVectorsOutput.VectorsEntry) + Vectors = _reflection.GeneratedProtocolMessageType('Vectors', (_message.Message,), { 'DESCRIPTOR' : _VECTORS, '__module__' : 'points_pb2' @@ -391,6 +469,13 @@ }) _sym_db.RegisterMessage(Vectors) +VectorsOutput = _reflection.GeneratedProtocolMessageType('VectorsOutput', (_message.Message,), { + 'DESCRIPTOR' : _VECTORSOUTPUT, + '__module__' : 'points_pb2' + # @@protoc_insertion_point(class_scope:qdrant.VectorsOutput) + }) +_sym_db.RegisterMessage(VectorsOutput) + VectorsSelector = _reflection.GeneratedProtocolMessageType('VectorsSelector', (_message.Message,), { 'DESCRIPTOR' : _VECTORSSELECTOR, '__module__' : 'points_pb2' @@ -998,6 +1083,13 @@ }) _sym_db.RegisterMessage(HasIdCondition) +HasVectorCondition = _reflection.GeneratedProtocolMessageType('HasVectorCondition', (_message.Message,), { + 'DESCRIPTOR' : _HASVECTORCONDITION, + '__module__' : 'points_pb2' + # @@protoc_insertion_point(class_scope:qdrant.HasVectorCondition) + }) +_sym_db.RegisterMessage(HasVectorCondition) + NestedCondition = _reflection.GeneratedProtocolMessageType('NestedCondition', (_message.Message,), { 'DESCRIPTOR' : _NESTEDCONDITION, '__module__' : 'points_pb2' @@ -1122,10 +1214,18 @@ DESCRIPTOR._options = None DESCRIPTOR._serialized_options = b'\252\002\022Qdrant.Client.Grpc' + _DOCUMENT_OPTIONSENTRY._options = None + _DOCUMENT_OPTIONSENTRY._serialized_options = b'8\001' + _IMAGE_OPTIONSENTRY._options = None + _IMAGE_OPTIONSENTRY._serialized_options = b'8\001' + _INFERENCEOBJECT_OPTIONSENTRY._options = None + _INFERENCEOBJECT_OPTIONSENTRY._serialized_options = b'8\001' _SETPAYLOADPOINTS_PAYLOADENTRY._options = None _SETPAYLOADPOINTS_PAYLOADENTRY._serialized_options = b'8\001' _NAMEDVECTORS_VECTORSENTRY._options = None _NAMEDVECTORS_VECTORSENTRY._serialized_options = b'8\001' + _NAMEDVECTORSOUTPUT_VECTORSENTRY._options = None + _NAMEDVECTORSOUTPUT_VECTORSENTRY._serialized_options = b'8\001' _POINTSUPDATEOPERATION_SETPAYLOAD_PAYLOADENTRY._options = None _POINTSUPDATEOPERATION_SETPAYLOAD_PAYLOADENTRY._serialized_options = b'8\001' _POINTSUPDATEOPERATION_OVERWRITEPAYLOAD_PAYLOADENTRY._options = None @@ -1140,22 +1240,22 @@ _RETRIEVEDPOINT_PAYLOADENTRY._serialized_options = b'8\001' _POINTSTRUCT_PAYLOADENTRY._options = None _POINTSTRUCT_PAYLOADENTRY._serialized_options = b'8\001' - _WRITEORDERINGTYPE._serialized_start=22799 - _WRITEORDERINGTYPE._serialized_end=22852 - _READCONSISTENCYTYPE._serialized_start=22854 - _READCONSISTENCYTYPE._serialized_end=22910 - _FIELDTYPE._serialized_start=22913 - _FIELDTYPE._serialized_end=23086 - _DIRECTION._serialized_start=23088 - _DIRECTION._serialized_end=23118 - _RECOMMENDSTRATEGY._serialized_start=23120 - _RECOMMENDSTRATEGY._serialized_end=23173 - _FUSION._serialized_start=23175 - _FUSION._serialized_end=23202 - _SAMPLE._serialized_start=23204 - _SAMPLE._serialized_end=23224 - _UPDATESTATUS._serialized_start=23226 - _UPDATESTATUS._serialized_end=23317 + _WRITEORDERINGTYPE._serialized_start=24342 + _WRITEORDERINGTYPE._serialized_end=24395 + _READCONSISTENCYTYPE._serialized_start=24397 + _READCONSISTENCYTYPE._serialized_end=24453 + _FIELDTYPE._serialized_start=24456 + _FIELDTYPE._serialized_end=24629 + _DIRECTION._serialized_start=24631 + _DIRECTION._serialized_end=24661 + _RECOMMENDSTRATEGY._serialized_start=24663 + _RECOMMENDSTRATEGY._serialized_end=24716 + _FUSION._serialized_start=24718 + _FUSION._serialized_end=24745 + _SAMPLE._serialized_start=24747 + _SAMPLE._serialized_end=24767 + _UPDATESTATUS._serialized_start=24769 + _UPDATESTATUS._serialized_end=24860 _WRITEORDERING._serialized_start=97 _WRITEORDERING._serialized_end=153 _READCONSISTENCY._serialized_start=155 @@ -1164,256 +1264,278 @@ _POINTID._serialized_end=306 _SPARSEINDICES._serialized_start=308 _SPARSEINDICES._serialized_end=337 - _VECTOR._serialized_start=339 - _VECTOR._serialized_end=464 - _DENSEVECTOR._serialized_start=466 - _DENSEVECTOR._serialized_end=493 - _SPARSEVECTOR._serialized_start=495 - _SPARSEVECTOR._serialized_end=542 - _MULTIDENSEVECTOR._serialized_start=544 - _MULTIDENSEVECTOR._serialized_end=600 - _VECTORINPUT._serialized_start=603 - _VECTORINPUT._serialized_end=785 - _SHARDKEYSELECTOR._serialized_start=787 - _SHARDKEYSELECTOR._serialized_end=843 - _UPSERTPOINTS._serialized_start=846 - _UPSERTPOINTS._serialized_end=1091 - _DELETEPOINTS._serialized_start=1094 - _DELETEPOINTS._serialized_end=1342 - _GETPOINTS._serialized_start=1345 - _GETPOINTS._serialized_end=1734 - _UPDATEPOINTVECTORS._serialized_start=1737 - _UPDATEPOINTVECTORS._serialized_end=1989 - _POINTVECTORS._serialized_start=1991 - _POINTVECTORS._serialized_end=2068 - _DELETEPOINTVECTORS._serialized_start=2071 - _DELETEPOINTVECTORS._serialized_end=2376 - _SETPAYLOADPOINTS._serialized_start=2379 - _SETPAYLOADPOINTS._serialized_end=2816 - _SETPAYLOADPOINTS_PAYLOADENTRY._serialized_start=2676 - _SETPAYLOADPOINTS_PAYLOADENTRY._serialized_end=2737 - _DELETEPAYLOADPOINTS._serialized_start=2819 - _DELETEPAYLOADPOINTS._serialized_end=3128 - _CLEARPAYLOADPOINTS._serialized_start=3131 - _CLEARPAYLOADPOINTS._serialized_end=3385 - _CREATEFIELDINDEXCOLLECTION._serialized_start=3388 - _CREATEFIELDINDEXCOLLECTION._serialized_end=3691 - _DELETEFIELDINDEXCOLLECTION._serialized_start=3694 - _DELETEFIELDINDEXCOLLECTION._serialized_end=3854 - _PAYLOADINCLUDESELECTOR._serialized_start=3856 - _PAYLOADINCLUDESELECTOR._serialized_end=3896 - _PAYLOADEXCLUDESELECTOR._serialized_start=3898 - _PAYLOADEXCLUDESELECTOR._serialized_end=3938 - _WITHPAYLOADSELECTOR._serialized_start=3941 - _WITHPAYLOADSELECTOR._serialized_end=4102 - _NAMEDVECTORS._serialized_start=4105 - _NAMEDVECTORS._serialized_end=4235 - _NAMEDVECTORS_VECTORSENTRY._serialized_start=4173 - _NAMEDVECTORS_VECTORSENTRY._serialized_end=4235 - _VECTORS._serialized_start=4237 - _VECTORS._serialized_end=4340 - _VECTORSSELECTOR._serialized_start=4342 - _VECTORSSELECTOR._serialized_end=4374 - _WITHVECTORSSELECTOR._serialized_start=4376 - _WITHVECTORSSELECTOR._serialized_end=4479 - _QUANTIZATIONSEARCHPARAMS._serialized_start=4482 - _QUANTIZATIONSEARCHPARAMS._serialized_end=4618 - _SEARCHPARAMS._serialized_start=4621 - _SEARCHPARAMS._serialized_end=4821 - _SEARCHPOINTS._serialized_start=4824 - _SEARCHPOINTS._serialized_end=5482 - _SEARCHBATCHPOINTS._serialized_start=5485 - _SEARCHBATCHPOINTS._serialized_end=5685 - _WITHLOOKUP._serialized_start=5688 - _WITHLOOKUP._serialized_end=5866 - _SEARCHPOINTGROUPS._serialized_start=5869 - _SEARCHPOINTGROUPS._serialized_end=6594 - _STARTFROM._serialized_start=6596 - _STARTFROM._serialized_end=6721 - _ORDERBY._serialized_start=6724 - _ORDERBY._serialized_end=6862 - _SCROLLPOINTS._serialized_start=6865 - _SCROLLPOINTS._serialized_end=7391 - _LOOKUPLOCATION._serialized_start=7394 - _LOOKUPLOCATION._serialized_end=7559 - _RECOMMENDPOINTS._serialized_start=7562 - _RECOMMENDPOINTS._serialized_end=8407 - _RECOMMENDBATCHPOINTS._serialized_start=8410 - _RECOMMENDBATCHPOINTS._serialized_end=8619 - _RECOMMENDPOINTGROUPS._serialized_start=8622 - _RECOMMENDPOINTGROUPS._serialized_end=9534 - _TARGETVECTOR._serialized_start=9536 - _TARGETVECTOR._serialized_end=9601 - _VECTOREXAMPLE._serialized_start=9603 - _VECTOREXAMPLE._serialized_end=9694 - _CONTEXTEXAMPLEPAIR._serialized_start=9696 - _CONTEXTEXAMPLEPAIR._serialized_end=9798 - _DISCOVERPOINTS._serialized_start=9801 - _DISCOVERPOINTS._serialized_end=10455 - _DISCOVERBATCHPOINTS._serialized_start=10458 - _DISCOVERBATCHPOINTS._serialized_end=10664 - _COUNTPOINTS._serialized_start=10667 - _COUNTPOINTS._serialized_end=10960 - _RECOMMENDINPUT._serialized_start=10963 - _RECOMMENDINPUT._serialized_end=11120 - _CONTEXTINPUTPAIR._serialized_start=11122 - _CONTEXTINPUTPAIR._serialized_end=11218 - _DISCOVERINPUT._serialized_start=11220 - _DISCOVERINPUT._serialized_end=11311 - _CONTEXTINPUT._serialized_start=11313 - _CONTEXTINPUT._serialized_end=11368 - _QUERY._serialized_start=11371 - _QUERY._serialized_end=11663 - _PREFETCHQUERY._serialized_start=11666 - _PREFETCHQUERY._serialized_end=12045 - _QUERYPOINTS._serialized_start=12048 - _QUERYPOINTS._serialized_end=12821 - _QUERYBATCHPOINTS._serialized_start=12824 - _QUERYBATCHPOINTS._serialized_end=13021 - _QUERYPOINTGROUPS._serialized_start=13024 - _QUERYPOINTGROUPS._serialized_end=13868 - _FACETCOUNTS._serialized_start=13871 - _FACETCOUNTS._serialized_end=14223 - _FACETVALUE._serialized_start=14225 - _FACETVALUE._serialized_end=14319 - _FACETHIT._serialized_start=14321 - _FACETHIT._serialized_end=14381 - _SEARCHMATRIXPOINTS._serialized_start=14384 - _SEARCHMATRIXPOINTS._serialized_end=14762 - _SEARCHMATRIXPAIRS._serialized_start=14764 - _SEARCHMATRIXPAIRS._serialized_end=14824 - _SEARCHMATRIXPAIR._serialized_start=14826 - _SEARCHMATRIXPAIR._serialized_end=14915 - _SEARCHMATRIXOFFSETS._serialized_start=14917 - _SEARCHMATRIXOFFSETS._serialized_end=15026 - _POINTSUPDATEOPERATION._serialized_start=15029 - _POINTSUPDATEOPERATION._serialized_end=17354 - _POINTSUPDATEOPERATION_POINTSTRUCTLIST._serialized_start=15734 - _POINTSUPDATEOPERATION_POINTSTRUCTLIST._serialized_end=15870 - _POINTSUPDATEOPERATION_SETPAYLOAD._serialized_start=15873 - _POINTSUPDATEOPERATION_SETPAYLOAD._serialized_end=16202 - _POINTSUPDATEOPERATION_SETPAYLOAD_PAYLOADENTRY._serialized_start=2676 - _POINTSUPDATEOPERATION_SETPAYLOAD_PAYLOADENTRY._serialized_end=2737 - _POINTSUPDATEOPERATION_OVERWRITEPAYLOAD._serialized_start=16205 - _POINTSUPDATEOPERATION_OVERWRITEPAYLOAD._serialized_end=16546 - _POINTSUPDATEOPERATION_OVERWRITEPAYLOAD_PAYLOADENTRY._serialized_start=2676 - _POINTSUPDATEOPERATION_OVERWRITEPAYLOAD_PAYLOADENTRY._serialized_end=2737 - _POINTSUPDATEOPERATION_DELETEPAYLOAD._serialized_start=16549 - _POINTSUPDATEOPERATION_DELETEPAYLOAD._serialized_end=16734 - _POINTSUPDATEOPERATION_UPDATEVECTORS._serialized_start=16737 - _POINTSUPDATEOPERATION_UPDATEVECTORS._serialized_end=16872 - _POINTSUPDATEOPERATION_DELETEVECTORS._serialized_start=16875 - _POINTSUPDATEOPERATION_DELETEVECTORS._serialized_end=17063 - _POINTSUPDATEOPERATION_DELETEPOINTS._serialized_start=17066 - _POINTSUPDATEOPERATION_DELETEPOINTS._serialized_end=17202 - _POINTSUPDATEOPERATION_CLEARPAYLOAD._serialized_start=17205 - _POINTSUPDATEOPERATION_CLEARPAYLOAD._serialized_end=17341 - _UPDATEBATCHPOINTS._serialized_start=17357 - _UPDATEBATCHPOINTS._serialized_end=17539 - _POINTSOPERATIONRESPONSE._serialized_start=17541 - _POINTSOPERATIONRESPONSE._serialized_end=17618 - _UPDATERESULT._serialized_start=17620 - _UPDATERESULT._serialized_end=17716 - _ORDERVALUE._serialized_start=17718 - _ORDERVALUE._serialized_end=17773 - _SCOREDPOINT._serialized_start=17776 - _SCOREDPOINT._serialized_end=18139 - _SCOREDPOINT_PAYLOADENTRY._serialized_start=2676 - _SCOREDPOINT_PAYLOADENTRY._serialized_end=2737 - _GROUPID._serialized_start=18141 - _GROUPID._serialized_end=18233 - _POINTGROUP._serialized_start=18235 - _POINTGROUP._serialized_end=18351 - _GROUPSRESULT._serialized_start=18353 - _GROUPSRESULT._serialized_end=18403 - _SEARCHRESPONSE._serialized_start=18405 - _SEARCHRESPONSE._serialized_end=18472 - _QUERYRESPONSE._serialized_start=18474 - _QUERYRESPONSE._serialized_end=18540 - _QUERYBATCHRESPONSE._serialized_start=18542 - _QUERYBATCHRESPONSE._serialized_end=18613 - _QUERYGROUPSRESPONSE._serialized_start=18615 - _QUERYGROUPSRESPONSE._serialized_end=18688 - _BATCHRESULT._serialized_start=18690 - _BATCHRESULT._serialized_end=18740 - _SEARCHBATCHRESPONSE._serialized_start=18742 - _SEARCHBATCHRESPONSE._serialized_end=18814 - _SEARCHGROUPSRESPONSE._serialized_start=18816 - _SEARCHGROUPSRESPONSE._serialized_end=18890 - _COUNTRESPONSE._serialized_start=18892 - _COUNTRESPONSE._serialized_end=18958 - _SCROLLRESPONSE._serialized_start=18961 - _SCROLLRESPONSE._serialized_end=19100 - _COUNTRESULT._serialized_start=19102 - _COUNTRESULT._serialized_end=19130 - _RETRIEVEDPOINT._serialized_start=19133 - _RETRIEVEDPOINT._serialized_end=19470 - _RETRIEVEDPOINT_PAYLOADENTRY._serialized_start=2676 - _RETRIEVEDPOINT_PAYLOADENTRY._serialized_end=2737 - _GETRESPONSE._serialized_start=19472 - _GETRESPONSE._serialized_end=19539 - _RECOMMENDRESPONSE._serialized_start=19541 - _RECOMMENDRESPONSE._serialized_end=19611 - _RECOMMENDBATCHRESPONSE._serialized_start=19613 - _RECOMMENDBATCHRESPONSE._serialized_end=19688 - _DISCOVERRESPONSE._serialized_start=19690 - _DISCOVERRESPONSE._serialized_end=19759 - _DISCOVERBATCHRESPONSE._serialized_start=19761 - _DISCOVERBATCHRESPONSE._serialized_end=19835 - _RECOMMENDGROUPSRESPONSE._serialized_start=19837 - _RECOMMENDGROUPSRESPONSE._serialized_end=19914 - _UPDATEBATCHRESPONSE._serialized_start=19916 - _UPDATEBATCHRESPONSE._serialized_end=19989 - _FACETRESPONSE._serialized_start=19991 - _FACETRESPONSE._serialized_end=20052 - _SEARCHMATRIXPAIRSRESPONSE._serialized_start=20054 - _SEARCHMATRIXPAIRSRESPONSE._serialized_end=20138 - _SEARCHMATRIXOFFSETSRESPONSE._serialized_start=20140 - _SEARCHMATRIXOFFSETSRESPONSE._serialized_end=20228 - _FILTER._serialized_start=20231 - _FILTER._serialized_end=20403 - _MINSHOULD._serialized_start=20405 - _MINSHOULD._serialized_end=20474 - _CONDITION._serialized_start=20477 - _CONDITION._serialized_end=20758 - _ISEMPTYCONDITION._serialized_start=20760 - _ISEMPTYCONDITION._serialized_end=20791 - _ISNULLCONDITION._serialized_start=20793 - _ISNULLCONDITION._serialized_end=20823 - _HASIDCONDITION._serialized_start=20825 - _HASIDCONDITION._serialized_end=20874 - _NESTEDCONDITION._serialized_start=20876 - _NESTEDCONDITION._serialized_end=20938 - _FIELDCONDITION._serialized_start=20941 - _FIELDCONDITION._serialized_end=21250 - _MATCH._serialized_start=21253 - _MATCH._serialized_end=21544 - _REPEATEDSTRINGS._serialized_start=21546 - _REPEATEDSTRINGS._serialized_end=21580 - _REPEATEDINTEGERS._serialized_start=21582 - _REPEATEDINTEGERS._serialized_end=21618 - _RANGE._serialized_start=21620 - _RANGE._serialized_end=21727 - _DATETIMERANGE._serialized_start=21730 - _DATETIMERANGE._serialized_end=21957 - _GEOBOUNDINGBOX._serialized_start=21959 - _GEOBOUNDINGBOX._serialized_end=22051 - _GEORADIUS._serialized_start=22053 - _GEORADIUS._serialized_end=22114 - _GEOLINESTRING._serialized_start=22116 - _GEOLINESTRING._serialized_end=22165 - _GEOPOLYGON._serialized_start=22167 - _GEOPOLYGON._serialized_end=22262 - _VALUESCOUNT._serialized_start=22264 - _VALUESCOUNT._serialized_end=22377 - _POINTSSELECTOR._serialized_start=22379 - _POINTSSELECTOR._serialized_end=22496 - _POINTSIDSLIST._serialized_start=22498 - _POINTSIDSLIST._serialized_end=22543 - _POINTSTRUCT._serialized_start=22546 - _POINTSTRUCT._serialized_end=22759 - _POINTSTRUCT_PAYLOADENTRY._serialized_start=2676 - _POINTSTRUCT_PAYLOADENTRY._serialized_end=2737 - _GEOPOINT._serialized_start=22761 - _GEOPOINT._serialized_end=22797 + _DOCUMENT._serialized_start=340 + _DOCUMENT._serialized_end=505 + _DOCUMENT_OPTIONSENTRY._serialized_start=434 + _DOCUMENT_OPTIONSENTRY._serialized_end=495 + _IMAGE._serialized_start=508 + _IMAGE._serialized_end=668 + _IMAGE_OPTIONSENTRY._serialized_start=434 + _IMAGE_OPTIONSENTRY._serialized_end=495 + _INFERENCEOBJECT._serialized_start=671 + _INFERENCEOBJECT._serialized_end=867 + _INFERENCEOBJECT_OPTIONSENTRY._serialized_start=434 + _INFERENCEOBJECT_OPTIONSENTRY._serialized_end=495 + _VECTOR._serialized_start=870 + _VECTOR._serialized_end=1245 + _VECTOROUTPUT._serialized_start=1248 + _VECTOROUTPUT._serialized_end=1516 + _DENSEVECTOR._serialized_start=1518 + _DENSEVECTOR._serialized_end=1545 + _SPARSEVECTOR._serialized_start=1547 + _SPARSEVECTOR._serialized_end=1594 + _MULTIDENSEVECTOR._serialized_start=1596 + _MULTIDENSEVECTOR._serialized_end=1652 + _VECTORINPUT._serialized_start=1655 + _VECTORINPUT._serialized_end=1950 + _SHARDKEYSELECTOR._serialized_start=1952 + _SHARDKEYSELECTOR._serialized_end=2008 + _UPSERTPOINTS._serialized_start=2011 + _UPSERTPOINTS._serialized_end=2256 + _DELETEPOINTS._serialized_start=2259 + _DELETEPOINTS._serialized_end=2507 + _GETPOINTS._serialized_start=2510 + _GETPOINTS._serialized_end=2899 + _UPDATEPOINTVECTORS._serialized_start=2902 + _UPDATEPOINTVECTORS._serialized_end=3154 + _POINTVECTORS._serialized_start=3156 + _POINTVECTORS._serialized_end=3233 + _DELETEPOINTVECTORS._serialized_start=3236 + _DELETEPOINTVECTORS._serialized_end=3541 + _SETPAYLOADPOINTS._serialized_start=3544 + _SETPAYLOADPOINTS._serialized_end=3981 + _SETPAYLOADPOINTS_PAYLOADENTRY._serialized_start=3841 + _SETPAYLOADPOINTS_PAYLOADENTRY._serialized_end=3902 + _DELETEPAYLOADPOINTS._serialized_start=3984 + _DELETEPAYLOADPOINTS._serialized_end=4293 + _CLEARPAYLOADPOINTS._serialized_start=4296 + _CLEARPAYLOADPOINTS._serialized_end=4550 + _CREATEFIELDINDEXCOLLECTION._serialized_start=4553 + _CREATEFIELDINDEXCOLLECTION._serialized_end=4856 + _DELETEFIELDINDEXCOLLECTION._serialized_start=4859 + _DELETEFIELDINDEXCOLLECTION._serialized_end=5019 + _PAYLOADINCLUDESELECTOR._serialized_start=5021 + _PAYLOADINCLUDESELECTOR._serialized_end=5061 + _PAYLOADEXCLUDESELECTOR._serialized_start=5063 + _PAYLOADEXCLUDESELECTOR._serialized_end=5103 + _WITHPAYLOADSELECTOR._serialized_start=5106 + _WITHPAYLOADSELECTOR._serialized_end=5267 + _NAMEDVECTORS._serialized_start=5270 + _NAMEDVECTORS._serialized_end=5400 + _NAMEDVECTORS_VECTORSENTRY._serialized_start=5338 + _NAMEDVECTORS_VECTORSENTRY._serialized_end=5400 + _NAMEDVECTORSOUTPUT._serialized_start=5403 + _NAMEDVECTORSOUTPUT._serialized_end=5551 + _NAMEDVECTORSOUTPUT_VECTORSENTRY._serialized_start=5483 + _NAMEDVECTORSOUTPUT_VECTORSENTRY._serialized_end=5551 + _VECTORS._serialized_start=5553 + _VECTORS._serialized_end=5656 + _VECTORSOUTPUT._serialized_start=5658 + _VECTORSOUTPUT._serialized_end=5779 + _VECTORSSELECTOR._serialized_start=5781 + _VECTORSSELECTOR._serialized_end=5813 + _WITHVECTORSSELECTOR._serialized_start=5815 + _WITHVECTORSSELECTOR._serialized_end=5918 + _QUANTIZATIONSEARCHPARAMS._serialized_start=5921 + _QUANTIZATIONSEARCHPARAMS._serialized_end=6057 + _SEARCHPARAMS._serialized_start=6060 + _SEARCHPARAMS._serialized_end=6260 + _SEARCHPOINTS._serialized_start=6263 + _SEARCHPOINTS._serialized_end=6921 + _SEARCHBATCHPOINTS._serialized_start=6924 + _SEARCHBATCHPOINTS._serialized_end=7124 + _WITHLOOKUP._serialized_start=7127 + _WITHLOOKUP._serialized_end=7305 + _SEARCHPOINTGROUPS._serialized_start=7308 + _SEARCHPOINTGROUPS._serialized_end=8033 + _STARTFROM._serialized_start=8035 + _STARTFROM._serialized_end=8160 + _ORDERBY._serialized_start=8163 + _ORDERBY._serialized_end=8301 + _SCROLLPOINTS._serialized_start=8304 + _SCROLLPOINTS._serialized_end=8830 + _LOOKUPLOCATION._serialized_start=8833 + _LOOKUPLOCATION._serialized_end=8998 + _RECOMMENDPOINTS._serialized_start=9001 + _RECOMMENDPOINTS._serialized_end=9846 + _RECOMMENDBATCHPOINTS._serialized_start=9849 + _RECOMMENDBATCHPOINTS._serialized_end=10058 + _RECOMMENDPOINTGROUPS._serialized_start=10061 + _RECOMMENDPOINTGROUPS._serialized_end=10973 + _TARGETVECTOR._serialized_start=10975 + _TARGETVECTOR._serialized_end=11040 + _VECTOREXAMPLE._serialized_start=11042 + _VECTOREXAMPLE._serialized_end=11133 + _CONTEXTEXAMPLEPAIR._serialized_start=11135 + _CONTEXTEXAMPLEPAIR._serialized_end=11237 + _DISCOVERPOINTS._serialized_start=11240 + _DISCOVERPOINTS._serialized_end=11894 + _DISCOVERBATCHPOINTS._serialized_start=11897 + _DISCOVERBATCHPOINTS._serialized_end=12103 + _COUNTPOINTS._serialized_start=12106 + _COUNTPOINTS._serialized_end=12399 + _RECOMMENDINPUT._serialized_start=12402 + _RECOMMENDINPUT._serialized_end=12559 + _CONTEXTINPUTPAIR._serialized_start=12561 + _CONTEXTINPUTPAIR._serialized_end=12657 + _DISCOVERINPUT._serialized_start=12659 + _DISCOVERINPUT._serialized_end=12750 + _CONTEXTINPUT._serialized_start=12752 + _CONTEXTINPUT._serialized_end=12807 + _QUERY._serialized_start=12810 + _QUERY._serialized_end=13102 + _PREFETCHQUERY._serialized_start=13105 + _PREFETCHQUERY._serialized_end=13484 + _QUERYPOINTS._serialized_start=13487 + _QUERYPOINTS._serialized_end=14260 + _QUERYBATCHPOINTS._serialized_start=14263 + _QUERYBATCHPOINTS._serialized_end=14460 + _QUERYPOINTGROUPS._serialized_start=14463 + _QUERYPOINTGROUPS._serialized_end=15307 + _FACETCOUNTS._serialized_start=15310 + _FACETCOUNTS._serialized_end=15662 + _FACETVALUE._serialized_start=15664 + _FACETVALUE._serialized_end=15758 + _FACETHIT._serialized_start=15760 + _FACETHIT._serialized_end=15820 + _SEARCHMATRIXPOINTS._serialized_start=15823 + _SEARCHMATRIXPOINTS._serialized_end=16201 + _SEARCHMATRIXPAIRS._serialized_start=16203 + _SEARCHMATRIXPAIRS._serialized_end=16263 + _SEARCHMATRIXPAIR._serialized_start=16265 + _SEARCHMATRIXPAIR._serialized_end=16354 + _SEARCHMATRIXOFFSETS._serialized_start=16356 + _SEARCHMATRIXOFFSETS._serialized_end=16465 + _POINTSUPDATEOPERATION._serialized_start=16468 + _POINTSUPDATEOPERATION._serialized_end=18793 + _POINTSUPDATEOPERATION_POINTSTRUCTLIST._serialized_start=17173 + _POINTSUPDATEOPERATION_POINTSTRUCTLIST._serialized_end=17309 + _POINTSUPDATEOPERATION_SETPAYLOAD._serialized_start=17312 + _POINTSUPDATEOPERATION_SETPAYLOAD._serialized_end=17641 + _POINTSUPDATEOPERATION_SETPAYLOAD_PAYLOADENTRY._serialized_start=3841 + _POINTSUPDATEOPERATION_SETPAYLOAD_PAYLOADENTRY._serialized_end=3902 + _POINTSUPDATEOPERATION_OVERWRITEPAYLOAD._serialized_start=17644 + _POINTSUPDATEOPERATION_OVERWRITEPAYLOAD._serialized_end=17985 + _POINTSUPDATEOPERATION_OVERWRITEPAYLOAD_PAYLOADENTRY._serialized_start=3841 + _POINTSUPDATEOPERATION_OVERWRITEPAYLOAD_PAYLOADENTRY._serialized_end=3902 + _POINTSUPDATEOPERATION_DELETEPAYLOAD._serialized_start=17988 + _POINTSUPDATEOPERATION_DELETEPAYLOAD._serialized_end=18173 + _POINTSUPDATEOPERATION_UPDATEVECTORS._serialized_start=18176 + _POINTSUPDATEOPERATION_UPDATEVECTORS._serialized_end=18311 + _POINTSUPDATEOPERATION_DELETEVECTORS._serialized_start=18314 + _POINTSUPDATEOPERATION_DELETEVECTORS._serialized_end=18502 + _POINTSUPDATEOPERATION_DELETEPOINTS._serialized_start=18505 + _POINTSUPDATEOPERATION_DELETEPOINTS._serialized_end=18641 + _POINTSUPDATEOPERATION_CLEARPAYLOAD._serialized_start=18644 + _POINTSUPDATEOPERATION_CLEARPAYLOAD._serialized_end=18780 + _UPDATEBATCHPOINTS._serialized_start=18796 + _UPDATEBATCHPOINTS._serialized_end=18978 + _POINTSOPERATIONRESPONSE._serialized_start=18980 + _POINTSOPERATIONRESPONSE._serialized_end=19057 + _UPDATERESULT._serialized_start=19059 + _UPDATERESULT._serialized_end=19155 + _ORDERVALUE._serialized_start=19157 + _ORDERVALUE._serialized_end=19212 + _SCOREDPOINT._serialized_start=19215 + _SCOREDPOINT._serialized_end=19584 + _SCOREDPOINT_PAYLOADENTRY._serialized_start=3841 + _SCOREDPOINT_PAYLOADENTRY._serialized_end=3902 + _GROUPID._serialized_start=19586 + _GROUPID._serialized_end=19678 + _POINTGROUP._serialized_start=19680 + _POINTGROUP._serialized_end=19796 + _GROUPSRESULT._serialized_start=19798 + _GROUPSRESULT._serialized_end=19848 + _SEARCHRESPONSE._serialized_start=19850 + _SEARCHRESPONSE._serialized_end=19917 + _QUERYRESPONSE._serialized_start=19919 + _QUERYRESPONSE._serialized_end=19985 + _QUERYBATCHRESPONSE._serialized_start=19987 + _QUERYBATCHRESPONSE._serialized_end=20058 + _QUERYGROUPSRESPONSE._serialized_start=20060 + _QUERYGROUPSRESPONSE._serialized_end=20133 + _BATCHRESULT._serialized_start=20135 + _BATCHRESULT._serialized_end=20185 + _SEARCHBATCHRESPONSE._serialized_start=20187 + _SEARCHBATCHRESPONSE._serialized_end=20259 + _SEARCHGROUPSRESPONSE._serialized_start=20261 + _SEARCHGROUPSRESPONSE._serialized_end=20335 + _COUNTRESPONSE._serialized_start=20337 + _COUNTRESPONSE._serialized_end=20403 + _SCROLLRESPONSE._serialized_start=20406 + _SCROLLRESPONSE._serialized_end=20545 + _COUNTRESULT._serialized_start=20547 + _COUNTRESULT._serialized_end=20575 + _RETRIEVEDPOINT._serialized_start=20578 + _RETRIEVEDPOINT._serialized_end=20921 + _RETRIEVEDPOINT_PAYLOADENTRY._serialized_start=3841 + _RETRIEVEDPOINT_PAYLOADENTRY._serialized_end=3902 + _GETRESPONSE._serialized_start=20923 + _GETRESPONSE._serialized_end=20990 + _RECOMMENDRESPONSE._serialized_start=20992 + _RECOMMENDRESPONSE._serialized_end=21062 + _RECOMMENDBATCHRESPONSE._serialized_start=21064 + _RECOMMENDBATCHRESPONSE._serialized_end=21139 + _DISCOVERRESPONSE._serialized_start=21141 + _DISCOVERRESPONSE._serialized_end=21210 + _DISCOVERBATCHRESPONSE._serialized_start=21212 + _DISCOVERBATCHRESPONSE._serialized_end=21286 + _RECOMMENDGROUPSRESPONSE._serialized_start=21288 + _RECOMMENDGROUPSRESPONSE._serialized_end=21365 + _UPDATEBATCHRESPONSE._serialized_start=21367 + _UPDATEBATCHRESPONSE._serialized_end=21440 + _FACETRESPONSE._serialized_start=21442 + _FACETRESPONSE._serialized_end=21503 + _SEARCHMATRIXPAIRSRESPONSE._serialized_start=21505 + _SEARCHMATRIXPAIRSRESPONSE._serialized_end=21589 + _SEARCHMATRIXOFFSETSRESPONSE._serialized_start=21591 + _SEARCHMATRIXOFFSETSRESPONSE._serialized_end=21679 + _FILTER._serialized_start=21682 + _FILTER._serialized_end=21854 + _MINSHOULD._serialized_start=21856 + _MINSHOULD._serialized_end=21925 + _CONDITION._serialized_start=21928 + _CONDITION._serialized_end=22259 + _ISEMPTYCONDITION._serialized_start=22261 + _ISEMPTYCONDITION._serialized_end=22292 + _ISNULLCONDITION._serialized_start=22294 + _ISNULLCONDITION._serialized_end=22324 + _HASIDCONDITION._serialized_start=22326 + _HASIDCONDITION._serialized_end=22375 + _HASVECTORCONDITION._serialized_start=22377 + _HASVECTORCONDITION._serialized_end=22417 + _NESTEDCONDITION._serialized_start=22419 + _NESTEDCONDITION._serialized_end=22481 + _FIELDCONDITION._serialized_start=22484 + _FIELDCONDITION._serialized_end=22793 + _MATCH._serialized_start=22796 + _MATCH._serialized_end=23087 + _REPEATEDSTRINGS._serialized_start=23089 + _REPEATEDSTRINGS._serialized_end=23123 + _REPEATEDINTEGERS._serialized_start=23125 + _REPEATEDINTEGERS._serialized_end=23161 + _RANGE._serialized_start=23163 + _RANGE._serialized_end=23270 + _DATETIMERANGE._serialized_start=23273 + _DATETIMERANGE._serialized_end=23500 + _GEOBOUNDINGBOX._serialized_start=23502 + _GEOBOUNDINGBOX._serialized_end=23594 + _GEORADIUS._serialized_start=23596 + _GEORADIUS._serialized_end=23657 + _GEOLINESTRING._serialized_start=23659 + _GEOLINESTRING._serialized_end=23708 + _GEOPOLYGON._serialized_start=23710 + _GEOPOLYGON._serialized_end=23805 + _VALUESCOUNT._serialized_start=23807 + _VALUESCOUNT._serialized_end=23920 + _POINTSSELECTOR._serialized_start=23922 + _POINTSSELECTOR._serialized_end=24039 + _POINTSIDSLIST._serialized_start=24041 + _POINTSIDSLIST._serialized_end=24086 + _POINTSTRUCT._serialized_start=24089 + _POINTSTRUCT._serialized_end=24302 + _POINTSTRUCT_PAYLOADENTRY._serialized_start=3841 + _POINTSTRUCT_PAYLOADENTRY._serialized_end=3902 + _GEOPOINT._serialized_start=24304 + _GEOPOINT._serialized_end=24340 # @@protoc_insertion_point(module_scope) diff --git a/qdrant_client/proto/collections.proto b/qdrant_client/proto/collections.proto index 474735f6..589a9616 100644 --- a/qdrant_client/proto/collections.proto +++ b/qdrant_client/proto/collections.proto @@ -351,6 +351,7 @@ message UpdateCollection { optional VectorsConfigDiff vectors_config = 6; // New vector parameters optional QuantizationConfigDiff quantization_config = 7; // Quantization configuration of vector optional SparseVectorConfig sparse_vectors_config = 8; // New sparse vector parameters + optional StrictModeConfig strict_mode_config = 9; // New strict mode configuration } message DeleteCollection { diff --git a/qdrant_client/proto/points.proto b/qdrant_client/proto/points.proto index 03fa593c..fad5415a 100644 --- a/qdrant_client/proto/points.proto +++ b/qdrant_client/proto/points.proto @@ -46,11 +46,48 @@ message SparseIndices { repeated uint32 data = 1; } +message Document { + string text = 1; // Text of the document + optional string model = 3; // Model name + map options = 4; // Model options +} + +message Image { + string image = 1; // Image data, either base64 encoded or URL + optional string model = 2; // Model name + map options = 3; // Model options +} + +message InferenceObject { + Value object = 1; // Object to infer + optional string model = 2; // Model name + map options = 3; // Model options +} + // Legacy vector format, which determines the vector type by the configuration of its fields. message Vector { - repeated float data = 1; // Vector data (flatten for multi vectors) - optional SparseIndices indices = 2; // Sparse indices for sparse vectors - optional uint32 vectors_count = 3; // Number of vectors per multi vector + repeated float data = 1; // Vector data (flatten for multi vectors), deprecated + optional SparseIndices indices = 2; // Sparse indices for sparse vectors, deprecated + optional uint32 vectors_count = 3; // Number of vectors per multi vector, deprecated + oneof vector { + DenseVector dense = 101; // Dense vector + SparseVector sparse = 102; // Sparse vector + MultiDenseVector multi_dense = 103; // Multi dense vector + Document document = 104; + Image image = 105; + InferenceObject object = 106; + } +} + +message VectorOutput { + repeated float data = 1; // Vector data (flatten for multi vectors), deprecated + optional SparseIndices indices = 2; // Sparse indices for sparse vectors, deprecated + optional uint32 vectors_count = 3; // Number of vectors per multi vector, deprecated + oneof vector { + DenseVector dense = 101; // Dense vector + SparseVector sparse = 102; // Sparse vector + MultiDenseVector multi_dense = 103; // Multi dense vector + } } message DenseVector { @@ -73,6 +110,9 @@ message VectorInput { DenseVector dense = 2; SparseVector sparse = 3; MultiDenseVector multi_dense = 4; + Document document = 5; + Image image = 6; + InferenceObject object = 7; } } @@ -214,6 +254,10 @@ message NamedVectors { map vectors = 1; } +message NamedVectorsOutput { + map vectors = 1; +} + message Vectors { oneof vectors_options { Vector vector = 1; @@ -221,6 +265,13 @@ message Vectors { } } +message VectorsOutput { + oneof vectors_options { + VectorOutput vector = 1; + NamedVectorsOutput vectors = 2; + } +} + message VectorsSelector { repeated string names = 1; // List of vectors to include into result } @@ -737,7 +788,7 @@ message ScoredPoint { float score = 3; // Similarity score reserved 4; // deprecated "vector" field uint64 version = 5; // Last update operation applied to this point - optional Vectors vectors = 6; // Vectors to search + optional VectorsOutput vectors = 6; // Vectors to search optional ShardKey shard_key = 7; // Shard key optional OrderValue order_value = 8; // Order by value } @@ -816,7 +867,7 @@ message RetrievedPoint { PointId id = 1; map payload = 2; reserved 3; // deprecated "vector" field - optional Vectors vectors = 4; + optional VectorsOutput vectors = 4; optional ShardKey shard_key = 5; // Shard key optional OrderValue order_value = 6; // Order-by value } @@ -895,6 +946,7 @@ message Condition { Filter filter = 4; IsNullCondition is_null = 5; NestedCondition nested = 6; + HasVectorCondition has_vector = 7; } } @@ -910,6 +962,10 @@ message HasIdCondition { repeated PointId has_id = 1; } +message HasVectorCondition { + string has_vector = 1; +} + message NestedCondition { string key = 1; // Path to nested object Filter filter = 2; // Filter condition From b308c505b1101fd298104895f331e69890181579 Mon Sep 17 00:00:00 2001 From: George Panchuk Date: Fri, 1 Nov 2024 18:47:10 +0100 Subject: [PATCH 2/8] fix: rollback too recent changes to proto --- qdrant_client/grpc/collections_pb2.py | 236 +++++++++++++------------- qdrant_client/grpc/points_pb2.py | 122 ++++++------- qdrant_client/proto/collections.proto | 1 - qdrant_client/proto/points.proto | 5 - 4 files changed, 174 insertions(+), 190 deletions(-) diff --git a/qdrant_client/grpc/collections_pb2.py b/qdrant_client/grpc/collections_pb2.py index 165932f0..4c6aef4c 100644 --- a/qdrant_client/grpc/collections_pb2.py +++ b/qdrant_client/grpc/collections_pb2.py @@ -15,7 +15,7 @@ -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x11\x63ollections.proto\x12\x06qdrant\"\x83\x03\n\x0cVectorParams\x12\x0c\n\x04size\x18\x01 \x01(\x04\x12\"\n\x08\x64istance\x18\x02 \x01(\x0e\x32\x10.qdrant.Distance\x12\x30\n\x0bhnsw_config\x18\x03 \x01(\x0b\x32\x16.qdrant.HnswConfigDiffH\x00\x88\x01\x01\x12<\n\x13quantization_config\x18\x04 \x01(\x0b\x32\x1a.qdrant.QuantizationConfigH\x01\x88\x01\x01\x12\x14\n\x07on_disk\x18\x05 \x01(\x08H\x02\x88\x01\x01\x12\'\n\x08\x64\x61tatype\x18\x06 \x01(\x0e\x32\x10.qdrant.DatatypeH\x03\x88\x01\x01\x12:\n\x12multivector_config\x18\x07 \x01(\x0b\x32\x19.qdrant.MultiVectorConfigH\x04\x88\x01\x01\x42\x0e\n\x0c_hnsw_configB\x16\n\x14_quantization_configB\n\n\x08_on_diskB\x0b\n\t_datatypeB\x15\n\x13_multivector_config\"\xd0\x01\n\x10VectorParamsDiff\x12\x30\n\x0bhnsw_config\x18\x01 \x01(\x0b\x32\x16.qdrant.HnswConfigDiffH\x00\x88\x01\x01\x12@\n\x13quantization_config\x18\x02 \x01(\x0b\x32\x1e.qdrant.QuantizationConfigDiffH\x01\x88\x01\x01\x12\x14\n\x07on_disk\x18\x03 \x01(\x08H\x02\x88\x01\x01\x42\x0e\n\x0c_hnsw_configB\x16\n\x14_quantization_configB\n\n\x08_on_disk\"\x82\x01\n\x0fVectorParamsMap\x12-\n\x03map\x18\x01 \x03(\x0b\x32 .qdrant.VectorParamsMap.MapEntry\x1a@\n\x08MapEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12#\n\x05value\x18\x02 \x01(\x0b\x32\x14.qdrant.VectorParams:\x02\x38\x01\"\x8e\x01\n\x13VectorParamsDiffMap\x12\x31\n\x03map\x18\x01 \x03(\x0b\x32$.qdrant.VectorParamsDiffMap.MapEntry\x1a\x44\n\x08MapEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\'\n\x05value\x18\x02 \x01(\x0b\x32\x18.qdrant.VectorParamsDiff:\x02\x38\x01\"p\n\rVectorsConfig\x12&\n\x06params\x18\x01 \x01(\x0b\x32\x14.qdrant.VectorParamsH\x00\x12-\n\nparams_map\x18\x02 \x01(\x0b\x32\x17.qdrant.VectorParamsMapH\x00\x42\x08\n\x06\x63onfig\"|\n\x11VectorsConfigDiff\x12*\n\x06params\x18\x01 \x01(\x0b\x32\x18.qdrant.VectorParamsDiffH\x00\x12\x31\n\nparams_map\x18\x02 \x01(\x0b\x32\x1b.qdrant.VectorParamsDiffMapH\x00\x42\x08\n\x06\x63onfig\"\x83\x01\n\x12SparseVectorParams\x12-\n\x05index\x18\x01 \x01(\x0b\x32\x19.qdrant.SparseIndexConfigH\x00\x88\x01\x01\x12\'\n\x08modifier\x18\x02 \x01(\x0e\x32\x10.qdrant.ModifierH\x01\x88\x01\x01\x42\x08\n\x06_indexB\x0b\n\t_modifier\"\x8e\x01\n\x12SparseVectorConfig\x12\x30\n\x03map\x18\x01 \x03(\x0b\x32#.qdrant.SparseVectorConfig.MapEntry\x1a\x46\n\x08MapEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12)\n\x05value\x18\x02 \x01(\x0b\x32\x1a.qdrant.SparseVectorParams:\x02\x38\x01\"F\n\x11MultiVectorConfig\x12\x31\n\ncomparator\x18\x01 \x01(\x0e\x32\x1d.qdrant.MultiVectorComparator\"3\n\x18GetCollectionInfoRequest\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\"2\n\x17\x43ollectionExistsRequest\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\"\"\n\x10\x43ollectionExists\x12\x0e\n\x06\x65xists\x18\x01 \x01(\x08\"R\n\x18\x43ollectionExistsResponse\x12(\n\x06result\x18\x01 \x01(\x0b\x32\x18.qdrant.CollectionExists\x12\x0c\n\x04time\x18\x02 \x01(\x01\"\x18\n\x16ListCollectionsRequest\"%\n\x15\x43ollectionDescription\x12\x0c\n\x04name\x18\x01 \x01(\t\"Q\n\x19GetCollectionInfoResponse\x12&\n\x06result\x18\x01 \x01(\x0b\x32\x16.qdrant.CollectionInfo\x12\x0c\n\x04time\x18\x02 \x01(\x01\"[\n\x17ListCollectionsResponse\x12\x32\n\x0b\x63ollections\x18\x01 \x03(\x0b\x32\x1d.qdrant.CollectionDescription\x12\x0c\n\x04time\x18\x02 \x01(\x01\",\n\x0fOptimizerStatus\x12\n\n\x02ok\x18\x01 \x01(\x08\x12\r\n\x05\x65rror\x18\x02 \x01(\t\"\x90\x02\n\x0eHnswConfigDiff\x12\x0e\n\x01m\x18\x01 \x01(\x04H\x00\x88\x01\x01\x12\x19\n\x0c\x65\x66_construct\x18\x02 \x01(\x04H\x01\x88\x01\x01\x12 \n\x13\x66ull_scan_threshold\x18\x03 \x01(\x04H\x02\x88\x01\x01\x12!\n\x14max_indexing_threads\x18\x04 \x01(\x04H\x03\x88\x01\x01\x12\x14\n\x07on_disk\x18\x05 \x01(\x08H\x04\x88\x01\x01\x12\x16\n\tpayload_m\x18\x06 \x01(\x04H\x05\x88\x01\x01\x42\x04\n\x02_mB\x0f\n\r_ef_constructB\x16\n\x14_full_scan_thresholdB\x17\n\x15_max_indexing_threadsB\n\n\x08_on_diskB\x0c\n\n_payload_m\"\xa5\x01\n\x11SparseIndexConfig\x12 \n\x13\x66ull_scan_threshold\x18\x01 \x01(\x04H\x00\x88\x01\x01\x12\x14\n\x07on_disk\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\'\n\x08\x64\x61tatype\x18\x03 \x01(\x0e\x32\x10.qdrant.DatatypeH\x02\x88\x01\x01\x42\x16\n\x14_full_scan_thresholdB\n\n\x08_on_diskB\x0b\n\t_datatype\"y\n\rWalConfigDiff\x12\x1c\n\x0fwal_capacity_mb\x18\x01 \x01(\x04H\x00\x88\x01\x01\x12\x1f\n\x12wal_segments_ahead\x18\x02 \x01(\x04H\x01\x88\x01\x01\x42\x12\n\x10_wal_capacity_mbB\x15\n\x13_wal_segments_ahead\"\xec\x03\n\x14OptimizersConfigDiff\x12\x1e\n\x11\x64\x65leted_threshold\x18\x01 \x01(\x01H\x00\x88\x01\x01\x12%\n\x18vacuum_min_vector_number\x18\x02 \x01(\x04H\x01\x88\x01\x01\x12#\n\x16\x64\x65\x66\x61ult_segment_number\x18\x03 \x01(\x04H\x02\x88\x01\x01\x12\x1d\n\x10max_segment_size\x18\x04 \x01(\x04H\x03\x88\x01\x01\x12\x1d\n\x10memmap_threshold\x18\x05 \x01(\x04H\x04\x88\x01\x01\x12\x1f\n\x12indexing_threshold\x18\x06 \x01(\x04H\x05\x88\x01\x01\x12\x1f\n\x12\x66lush_interval_sec\x18\x07 \x01(\x04H\x06\x88\x01\x01\x12%\n\x18max_optimization_threads\x18\x08 \x01(\x04H\x07\x88\x01\x01\x42\x14\n\x12_deleted_thresholdB\x1b\n\x19_vacuum_min_vector_numberB\x19\n\x17_default_segment_numberB\x13\n\x11_max_segment_sizeB\x13\n\x11_memmap_thresholdB\x15\n\x13_indexing_thresholdB\x15\n\x13_flush_interval_secB\x1b\n\x19_max_optimization_threads\"\x88\x01\n\x12ScalarQuantization\x12&\n\x04type\x18\x01 \x01(\x0e\x32\x18.qdrant.QuantizationType\x12\x15\n\x08quantile\x18\x02 \x01(\x02H\x00\x88\x01\x01\x12\x17\n\nalways_ram\x18\x03 \x01(\x08H\x01\x88\x01\x01\x42\x0b\n\t_quantileB\r\n\x0b_always_ram\"l\n\x13ProductQuantization\x12-\n\x0b\x63ompression\x18\x01 \x01(\x0e\x32\x18.qdrant.CompressionRatio\x12\x17\n\nalways_ram\x18\x02 \x01(\x08H\x00\x88\x01\x01\x42\r\n\x0b_always_ram\"<\n\x12\x42inaryQuantization\x12\x17\n\nalways_ram\x18\x01 \x01(\x08H\x00\x88\x01\x01\x42\r\n\x0b_always_ram\"\xb0\x01\n\x12QuantizationConfig\x12,\n\x06scalar\x18\x01 \x01(\x0b\x32\x1a.qdrant.ScalarQuantizationH\x00\x12.\n\x07product\x18\x02 \x01(\x0b\x32\x1b.qdrant.ProductQuantizationH\x00\x12,\n\x06\x62inary\x18\x03 \x01(\x0b\x32\x1a.qdrant.BinaryQuantizationH\x00\x42\x0e\n\x0cquantization\"\n\n\x08\x44isabled\"\xda\x01\n\x16QuantizationConfigDiff\x12,\n\x06scalar\x18\x01 \x01(\x0b\x32\x1a.qdrant.ScalarQuantizationH\x00\x12.\n\x07product\x18\x02 \x01(\x0b\x32\x1b.qdrant.ProductQuantizationH\x00\x12$\n\x08\x64isabled\x18\x03 \x01(\x0b\x32\x10.qdrant.DisabledH\x00\x12,\n\x06\x62inary\x18\x04 \x01(\x0b\x32\x1a.qdrant.BinaryQuantizationH\x00\x42\x0e\n\x0cquantization\"\xd6\x03\n\x10StrictModeConfig\x12\x14\n\x07\x65nabled\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x1c\n\x0fmax_query_limit\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x18\n\x0bmax_timeout\x18\x03 \x01(\rH\x02\x88\x01\x01\x12)\n\x1cunindexed_filtering_retrieve\x18\x04 \x01(\x08H\x03\x88\x01\x01\x12\'\n\x1aunindexed_filtering_update\x18\x05 \x01(\x08H\x04\x88\x01\x01\x12\x1f\n\x12search_max_hnsw_ef\x18\x06 \x01(\rH\x05\x88\x01\x01\x12\x1f\n\x12search_allow_exact\x18\x07 \x01(\x08H\x06\x88\x01\x01\x12$\n\x17search_max_oversampling\x18\x08 \x01(\x02H\x07\x88\x01\x01\x42\n\n\x08_enabledB\x12\n\x10_max_query_limitB\x0e\n\x0c_max_timeoutB\x1f\n\x1d_unindexed_filtering_retrieveB\x1d\n\x1b_unindexed_filtering_updateB\x15\n\x13_search_max_hnsw_efB\x15\n\x13_search_allow_exactB\x1a\n\x18_search_max_oversampling\"\xd7\x07\n\x10\x43reateCollection\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12\x30\n\x0bhnsw_config\x18\x04 \x01(\x0b\x32\x16.qdrant.HnswConfigDiffH\x00\x88\x01\x01\x12.\n\nwal_config\x18\x05 \x01(\x0b\x32\x15.qdrant.WalConfigDiffH\x01\x88\x01\x01\x12<\n\x11optimizers_config\x18\x06 \x01(\x0b\x32\x1c.qdrant.OptimizersConfigDiffH\x02\x88\x01\x01\x12\x19\n\x0cshard_number\x18\x07 \x01(\rH\x03\x88\x01\x01\x12\x1c\n\x0fon_disk_payload\x18\x08 \x01(\x08H\x04\x88\x01\x01\x12\x14\n\x07timeout\x18\t \x01(\x04H\x05\x88\x01\x01\x12\x32\n\x0evectors_config\x18\n \x01(\x0b\x32\x15.qdrant.VectorsConfigH\x06\x88\x01\x01\x12\x1f\n\x12replication_factor\x18\x0b \x01(\rH\x07\x88\x01\x01\x12%\n\x18write_consistency_factor\x18\x0c \x01(\rH\x08\x88\x01\x01\x12!\n\x14init_from_collection\x18\r \x01(\tH\t\x88\x01\x01\x12<\n\x13quantization_config\x18\x0e \x01(\x0b\x32\x1a.qdrant.QuantizationConfigH\n\x88\x01\x01\x12\x34\n\x0fsharding_method\x18\x0f \x01(\x0e\x32\x16.qdrant.ShardingMethodH\x0b\x88\x01\x01\x12>\n\x15sparse_vectors_config\x18\x10 \x01(\x0b\x32\x1a.qdrant.SparseVectorConfigH\x0c\x88\x01\x01\x12\x39\n\x12strict_mode_config\x18\x11 \x01(\x0b\x32\x18.qdrant.StrictModeConfigH\r\x88\x01\x01\x42\x0e\n\x0c_hnsw_configB\r\n\x0b_wal_configB\x14\n\x12_optimizers_configB\x0f\n\r_shard_numberB\x12\n\x10_on_disk_payloadB\n\n\x08_timeoutB\x11\n\x0f_vectors_configB\x15\n\x13_replication_factorB\x1b\n\x19_write_consistency_factorB\x17\n\x15_init_from_collectionB\x16\n\x14_quantization_configB\x12\n\x10_sharding_methodB\x18\n\x16_sparse_vectors_configB\x15\n\x13_strict_mode_configJ\x04\x08\x02\x10\x03J\x04\x08\x03\x10\x04\"\xf2\x04\n\x10UpdateCollection\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12<\n\x11optimizers_config\x18\x02 \x01(\x0b\x32\x1c.qdrant.OptimizersConfigDiffH\x00\x88\x01\x01\x12\x14\n\x07timeout\x18\x03 \x01(\x04H\x01\x88\x01\x01\x12\x31\n\x06params\x18\x04 \x01(\x0b\x32\x1c.qdrant.CollectionParamsDiffH\x02\x88\x01\x01\x12\x30\n\x0bhnsw_config\x18\x05 \x01(\x0b\x32\x16.qdrant.HnswConfigDiffH\x03\x88\x01\x01\x12\x36\n\x0evectors_config\x18\x06 \x01(\x0b\x32\x19.qdrant.VectorsConfigDiffH\x04\x88\x01\x01\x12@\n\x13quantization_config\x18\x07 \x01(\x0b\x32\x1e.qdrant.QuantizationConfigDiffH\x05\x88\x01\x01\x12>\n\x15sparse_vectors_config\x18\x08 \x01(\x0b\x32\x1a.qdrant.SparseVectorConfigH\x06\x88\x01\x01\x12\x39\n\x12strict_mode_config\x18\t \x01(\x0b\x32\x18.qdrant.StrictModeConfigH\x07\x88\x01\x01\x42\x14\n\x12_optimizers_configB\n\n\x08_timeoutB\t\n\x07_paramsB\x0e\n\x0c_hnsw_configB\x11\n\x0f_vectors_configB\x16\n\x14_quantization_configB\x18\n\x16_sparse_vectors_configB\x15\n\x13_strict_mode_config\"M\n\x10\x44\x65leteCollection\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12\x14\n\x07timeout\x18\x02 \x01(\x04H\x00\x88\x01\x01\x42\n\n\x08_timeout\";\n\x1b\x43ollectionOperationResponse\x12\x0e\n\x06result\x18\x01 \x01(\x08\x12\x0c\n\x04time\x18\x02 \x01(\x01\"\xee\x03\n\x10\x43ollectionParams\x12\x14\n\x0cshard_number\x18\x03 \x01(\r\x12\x17\n\x0fon_disk_payload\x18\x04 \x01(\x08\x12\x32\n\x0evectors_config\x18\x05 \x01(\x0b\x32\x15.qdrant.VectorsConfigH\x00\x88\x01\x01\x12\x1f\n\x12replication_factor\x18\x06 \x01(\rH\x01\x88\x01\x01\x12%\n\x18write_consistency_factor\x18\x07 \x01(\rH\x02\x88\x01\x01\x12 \n\x13read_fan_out_factor\x18\x08 \x01(\rH\x03\x88\x01\x01\x12\x34\n\x0fsharding_method\x18\t \x01(\x0e\x32\x16.qdrant.ShardingMethodH\x04\x88\x01\x01\x12>\n\x15sparse_vectors_config\x18\n \x01(\x0b\x32\x1a.qdrant.SparseVectorConfigH\x05\x88\x01\x01\x42\x11\n\x0f_vectors_configB\x15\n\x13_replication_factorB\x1b\n\x19_write_consistency_factorB\x16\n\x14_read_fan_out_factorB\x12\n\x10_sharding_methodB\x18\n\x16_sparse_vectors_configJ\x04\x08\x01\x10\x02J\x04\x08\x02\x10\x03\"\xfe\x01\n\x14\x43ollectionParamsDiff\x12\x1f\n\x12replication_factor\x18\x01 \x01(\rH\x00\x88\x01\x01\x12%\n\x18write_consistency_factor\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x1c\n\x0fon_disk_payload\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12 \n\x13read_fan_out_factor\x18\x04 \x01(\rH\x03\x88\x01\x01\x42\x15\n\x13_replication_factorB\x1b\n\x19_write_consistency_factorB\x12\n\x10_on_disk_payloadB\x16\n\x14_read_fan_out_factor\"\xf4\x02\n\x10\x43ollectionConfig\x12(\n\x06params\x18\x01 \x01(\x0b\x32\x18.qdrant.CollectionParams\x12+\n\x0bhnsw_config\x18\x02 \x01(\x0b\x32\x16.qdrant.HnswConfigDiff\x12\x36\n\x10optimizer_config\x18\x03 \x01(\x0b\x32\x1c.qdrant.OptimizersConfigDiff\x12)\n\nwal_config\x18\x04 \x01(\x0b\x32\x15.qdrant.WalConfigDiff\x12<\n\x13quantization_config\x18\x05 \x01(\x0b\x32\x1a.qdrant.QuantizationConfigH\x00\x88\x01\x01\x12\x39\n\x12strict_mode_config\x18\x06 \x01(\x0b\x32\x18.qdrant.StrictModeConfigH\x01\x88\x01\x01\x42\x16\n\x14_quantization_configB\x15\n\x13_strict_mode_config\"\\\n\x12KeywordIndexParams\x12\x16\n\tis_tenant\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x14\n\x07on_disk\x18\x02 \x01(\x08H\x01\x88\x01\x01\x42\x0c\n\n_is_tenantB\n\n\x08_on_disk\"\xa0\x01\n\x12IntegerIndexParams\x12\x13\n\x06lookup\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x12\n\x05range\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\x19\n\x0cis_principal\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12\x14\n\x07on_disk\x18\x04 \x01(\x08H\x03\x88\x01\x01\x42\t\n\x07_lookupB\x08\n\x06_rangeB\x0f\n\r_is_principalB\n\n\x08_on_disk\"`\n\x10\x46loatIndexParams\x12\x14\n\x07on_disk\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x19\n\x0cis_principal\x18\x02 \x01(\x08H\x01\x88\x01\x01\x42\n\n\x08_on_diskB\x0f\n\r_is_principal\"2\n\x0eGeoIndexParams\x12\x14\n\x07on_disk\x18\x01 \x01(\x08H\x00\x88\x01\x01\x42\n\n\x08_on_disk\"\xdf\x01\n\x0fTextIndexParams\x12(\n\ttokenizer\x18\x01 \x01(\x0e\x32\x15.qdrant.TokenizerType\x12\x16\n\tlowercase\x18\x02 \x01(\x08H\x00\x88\x01\x01\x12\x1a\n\rmin_token_len\x18\x03 \x01(\x04H\x01\x88\x01\x01\x12\x1a\n\rmax_token_len\x18\x04 \x01(\x04H\x02\x88\x01\x01\x12\x14\n\x07on_disk\x18\x05 \x01(\x08H\x03\x88\x01\x01\x42\x0c\n\n_lowercaseB\x10\n\x0e_min_token_lenB\x10\n\x0e_max_token_lenB\n\n\x08_on_disk\"\x11\n\x0f\x42oolIndexParams\"c\n\x13\x44\x61tetimeIndexParams\x12\x14\n\x07on_disk\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x19\n\x0cis_principal\x18\x02 \x01(\x08H\x01\x88\x01\x01\x42\n\n\x08_on_diskB\x0f\n\r_is_principal\"Y\n\x0fUuidIndexParams\x12\x16\n\tis_tenant\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x14\n\x07on_disk\x18\x02 \x01(\x08H\x01\x88\x01\x01\x42\x0c\n\n_is_tenantB\n\n\x08_on_disk\"\xe8\x03\n\x12PayloadIndexParams\x12:\n\x14keyword_index_params\x18\x03 \x01(\x0b\x32\x1a.qdrant.KeywordIndexParamsH\x00\x12:\n\x14integer_index_params\x18\x02 \x01(\x0b\x32\x1a.qdrant.IntegerIndexParamsH\x00\x12\x36\n\x12\x66loat_index_params\x18\x04 \x01(\x0b\x32\x18.qdrant.FloatIndexParamsH\x00\x12\x32\n\x10geo_index_params\x18\x05 \x01(\x0b\x32\x16.qdrant.GeoIndexParamsH\x00\x12\x34\n\x11text_index_params\x18\x01 \x01(\x0b\x32\x17.qdrant.TextIndexParamsH\x00\x12\x34\n\x11\x62ool_index_params\x18\x06 \x01(\x0b\x32\x17.qdrant.BoolIndexParamsH\x00\x12<\n\x15\x64\x61tetime_index_params\x18\x07 \x01(\x0b\x32\x1b.qdrant.DatetimeIndexParamsH\x00\x12\x34\n\x11uuid_index_params\x18\x08 \x01(\x0b\x32\x17.qdrant.UuidIndexParamsH\x00\x42\x0e\n\x0cindex_params\"\x9d\x01\n\x11PayloadSchemaInfo\x12,\n\tdata_type\x18\x01 \x01(\x0e\x32\x19.qdrant.PayloadSchemaType\x12/\n\x06params\x18\x02 \x01(\x0b\x32\x1a.qdrant.PayloadIndexParamsH\x00\x88\x01\x01\x12\x13\n\x06points\x18\x03 \x01(\x04H\x01\x88\x01\x01\x42\t\n\x07_paramsB\t\n\x07_points\"\xe7\x03\n\x0e\x43ollectionInfo\x12(\n\x06status\x18\x01 \x01(\x0e\x32\x18.qdrant.CollectionStatus\x12\x31\n\x10optimizer_status\x18\x02 \x01(\x0b\x32\x17.qdrant.OptimizerStatus\x12\x1a\n\rvectors_count\x18\x03 \x01(\x04H\x00\x88\x01\x01\x12\x16\n\x0esegments_count\x18\x04 \x01(\x04\x12(\n\x06\x63onfig\x18\x07 \x01(\x0b\x32\x18.qdrant.CollectionConfig\x12\x41\n\x0epayload_schema\x18\x08 \x03(\x0b\x32).qdrant.CollectionInfo.PayloadSchemaEntry\x12\x19\n\x0cpoints_count\x18\t \x01(\x04H\x01\x88\x01\x01\x12\"\n\x15indexed_vectors_count\x18\n \x01(\x04H\x02\x88\x01\x01\x1aO\n\x12PayloadSchemaEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12(\n\x05value\x18\x02 \x01(\x0b\x32\x19.qdrant.PayloadSchemaInfo:\x02\x38\x01\x42\x10\n\x0e_vectors_countB\x0f\n\r_points_countB\x18\n\x16_indexed_vectors_countJ\x04\x08\x05\x10\x06J\x04\x08\x06\x10\x07\"[\n\rChangeAliases\x12(\n\x07\x61\x63tions\x18\x01 \x03(\x0b\x32\x17.qdrant.AliasOperations\x12\x14\n\x07timeout\x18\x02 \x01(\x04H\x00\x88\x01\x01\x42\n\n\x08_timeout\"\xa2\x01\n\x0f\x41liasOperations\x12+\n\x0c\x63reate_alias\x18\x01 \x01(\x0b\x32\x13.qdrant.CreateAliasH\x00\x12+\n\x0crename_alias\x18\x02 \x01(\x0b\x32\x13.qdrant.RenameAliasH\x00\x12+\n\x0c\x64\x65lete_alias\x18\x03 \x01(\x0b\x32\x13.qdrant.DeleteAliasH\x00\x42\x08\n\x06\x61\x63tion\":\n\x0b\x43reateAlias\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12\x12\n\nalias_name\x18\x02 \x01(\t\"=\n\x0bRenameAlias\x12\x16\n\x0eold_alias_name\x18\x01 \x01(\t\x12\x16\n\x0enew_alias_name\x18\x02 \x01(\t\"!\n\x0b\x44\x65leteAlias\x12\x12\n\nalias_name\x18\x01 \x01(\t\"\x14\n\x12ListAliasesRequest\"7\n\x1cListCollectionAliasesRequest\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\"?\n\x10\x41liasDescription\x12\x12\n\nalias_name\x18\x01 \x01(\t\x12\x17\n\x0f\x63ollection_name\x18\x02 \x01(\t\"N\n\x13ListAliasesResponse\x12)\n\x07\x61liases\x18\x01 \x03(\x0b\x32\x18.qdrant.AliasDescription\x12\x0c\n\x04time\x18\x02 \x01(\x01\"7\n\x1c\x43ollectionClusterInfoRequest\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\"6\n\x08ShardKey\x12\x11\n\x07keyword\x18\x01 \x01(\tH\x00\x12\x10\n\x06number\x18\x02 \x01(\x04H\x00\x42\x05\n\x03key\"\x95\x01\n\x0eLocalShardInfo\x12\x10\n\x08shard_id\x18\x01 \x01(\r\x12\x14\n\x0cpoints_count\x18\x02 \x01(\x04\x12#\n\x05state\x18\x03 \x01(\x0e\x32\x14.qdrant.ReplicaState\x12(\n\tshard_key\x18\x04 \x01(\x0b\x32\x10.qdrant.ShardKeyH\x00\x88\x01\x01\x42\x0c\n\n_shard_key\"\x91\x01\n\x0fRemoteShardInfo\x12\x10\n\x08shard_id\x18\x01 \x01(\r\x12\x0f\n\x07peer_id\x18\x02 \x01(\x04\x12#\n\x05state\x18\x03 \x01(\x0e\x32\x14.qdrant.ReplicaState\x12(\n\tshard_key\x18\x04 \x01(\x0b\x32\x10.qdrant.ShardKeyH\x00\x88\x01\x01\x42\x0c\n\n_shard_key\"w\n\x11ShardTransferInfo\x12\x10\n\x08shard_id\x18\x01 \x01(\r\x12\x18\n\x0bto_shard_id\x18\x05 \x01(\rH\x00\x88\x01\x01\x12\x0c\n\x04\x66rom\x18\x02 \x01(\x04\x12\n\n\x02to\x18\x03 \x01(\x04\x12\x0c\n\x04sync\x18\x04 \x01(\x08\x42\x0e\n\x0c_to_shard_id\"k\n\x0eReshardingInfo\x12\x10\n\x08shard_id\x18\x01 \x01(\r\x12\x0f\n\x07peer_id\x18\x02 \x01(\x04\x12(\n\tshard_key\x18\x03 \x01(\x0b\x32\x10.qdrant.ShardKeyH\x00\x88\x01\x01\x42\x0c\n\n_shard_key\"\xd7\x01\n\x1d\x43ollectionClusterInfoResponse\x12\x0f\n\x07peer_id\x18\x01 \x01(\x04\x12\x13\n\x0bshard_count\x18\x02 \x01(\x04\x12,\n\x0clocal_shards\x18\x03 \x03(\x0b\x32\x16.qdrant.LocalShardInfo\x12.\n\rremote_shards\x18\x04 \x03(\x0b\x32\x17.qdrant.RemoteShardInfo\x12\x32\n\x0fshard_transfers\x18\x05 \x03(\x0b\x32\x19.qdrant.ShardTransferInfo\"\xae\x01\n\tMoveShard\x12\x10\n\x08shard_id\x18\x01 \x01(\r\x12\x18\n\x0bto_shard_id\x18\x05 \x01(\rH\x00\x88\x01\x01\x12\x14\n\x0c\x66rom_peer_id\x18\x02 \x01(\x04\x12\x12\n\nto_peer_id\x18\x03 \x01(\x04\x12\x30\n\x06method\x18\x04 \x01(\x0e\x32\x1b.qdrant.ShardTransferMethodH\x01\x88\x01\x01\x42\x0e\n\x0c_to_shard_idB\t\n\x07_method\"\xb3\x01\n\x0eReplicateShard\x12\x10\n\x08shard_id\x18\x01 \x01(\r\x12\x18\n\x0bto_shard_id\x18\x05 \x01(\rH\x00\x88\x01\x01\x12\x14\n\x0c\x66rom_peer_id\x18\x02 \x01(\x04\x12\x12\n\nto_peer_id\x18\x03 \x01(\x04\x12\x30\n\x06method\x18\x04 \x01(\x0e\x32\x1b.qdrant.ShardTransferMethodH\x01\x88\x01\x01\x42\x0e\n\x0c_to_shard_idB\t\n\x07_method\"z\n\x12\x41\x62ortShardTransfer\x12\x10\n\x08shard_id\x18\x01 \x01(\r\x12\x18\n\x0bto_shard_id\x18\x04 \x01(\rH\x00\x88\x01\x01\x12\x14\n\x0c\x66rom_peer_id\x18\x02 \x01(\x04\x12\x12\n\nto_peer_id\x18\x03 \x01(\x04\x42\x0e\n\x0c_to_shard_id\"\xa4\x01\n\x0fRestartTransfer\x12\x10\n\x08shard_id\x18\x01 \x01(\r\x12\x18\n\x0bto_shard_id\x18\x05 \x01(\rH\x00\x88\x01\x01\x12\x14\n\x0c\x66rom_peer_id\x18\x02 \x01(\x04\x12\x12\n\nto_peer_id\x18\x03 \x01(\x04\x12+\n\x06method\x18\x04 \x01(\x0e\x32\x1b.qdrant.ShardTransferMethodB\x0e\n\x0c_to_shard_id\",\n\x07Replica\x12\x10\n\x08shard_id\x18\x01 \x01(\r\x12\x0f\n\x07peer_id\x18\x02 \x01(\x04\"\xae\x01\n\x0e\x43reateShardKey\x12#\n\tshard_key\x18\x01 \x01(\x0b\x32\x10.qdrant.ShardKey\x12\x1a\n\rshards_number\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x1f\n\x12replication_factor\x18\x03 \x01(\rH\x01\x88\x01\x01\x12\x11\n\tplacement\x18\x04 \x03(\x04\x42\x10\n\x0e_shards_numberB\x15\n\x13_replication_factor\"5\n\x0e\x44\x65leteShardKey\x12#\n\tshard_key\x18\x01 \x01(\x0b\x32\x10.qdrant.ShardKey\"\xc5\x03\n#UpdateCollectionClusterSetupRequest\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12\'\n\nmove_shard\x18\x02 \x01(\x0b\x32\x11.qdrant.MoveShardH\x00\x12\x31\n\x0freplicate_shard\x18\x03 \x01(\x0b\x32\x16.qdrant.ReplicateShardH\x00\x12\x34\n\x0e\x61\x62ort_transfer\x18\x04 \x01(\x0b\x32\x1a.qdrant.AbortShardTransferH\x00\x12\'\n\x0c\x64rop_replica\x18\x05 \x01(\x0b\x32\x0f.qdrant.ReplicaH\x00\x12\x32\n\x10\x63reate_shard_key\x18\x07 \x01(\x0b\x32\x16.qdrant.CreateShardKeyH\x00\x12\x32\n\x10\x64\x65lete_shard_key\x18\x08 \x01(\x0b\x32\x16.qdrant.DeleteShardKeyH\x00\x12\x33\n\x10restart_transfer\x18\t \x01(\x0b\x32\x17.qdrant.RestartTransferH\x00\x12\x14\n\x07timeout\x18\x06 \x01(\x04H\x01\x88\x01\x01\x42\x0b\n\toperationB\n\n\x08_timeout\"6\n$UpdateCollectionClusterSetupResponse\x12\x0e\n\x06result\x18\x01 \x01(\x08\"{\n\x15\x43reateShardKeyRequest\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12\'\n\x07request\x18\x02 \x01(\x0b\x32\x16.qdrant.CreateShardKey\x12\x14\n\x07timeout\x18\x03 \x01(\x04H\x00\x88\x01\x01\x42\n\n\x08_timeout\"{\n\x15\x44\x65leteShardKeyRequest\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12\'\n\x07request\x18\x02 \x01(\x0b\x32\x16.qdrant.DeleteShardKey\x12\x14\n\x07timeout\x18\x03 \x01(\x04H\x00\x88\x01\x01\x42\n\n\x08_timeout\"(\n\x16\x43reateShardKeyResponse\x12\x0e\n\x06result\x18\x01 \x01(\x08\"(\n\x16\x44\x65leteShardKeyResponse\x12\x0e\n\x06result\x18\x01 \x01(\x08*<\n\x08\x44\x61tatype\x12\x0b\n\x07\x44\x65\x66\x61ult\x10\x00\x12\x0b\n\x07\x46loat32\x10\x01\x12\t\n\x05Uint8\x10\x02\x12\x0b\n\x07\x46loat16\x10\x03*\x1d\n\x08Modifier\x12\x08\n\x04None\x10\x00\x12\x07\n\x03Idf\x10\x01*#\n\x15MultiVectorComparator\x12\n\n\x06MaxSim\x10\x00*O\n\x08\x44istance\x12\x13\n\x0fUnknownDistance\x10\x00\x12\n\n\x06\x43osine\x10\x01\x12\n\n\x06\x45uclid\x10\x02\x12\x07\n\x03\x44ot\x10\x03\x12\r\n\tManhattan\x10\x04*Y\n\x10\x43ollectionStatus\x12\x1b\n\x17UnknownCollectionStatus\x10\x00\x12\t\n\x05Green\x10\x01\x12\n\n\x06Yellow\x10\x02\x12\x07\n\x03Red\x10\x03\x12\x08\n\x04Grey\x10\x04*~\n\x11PayloadSchemaType\x12\x0f\n\x0bUnknownType\x10\x00\x12\x0b\n\x07Keyword\x10\x01\x12\x0b\n\x07Integer\x10\x02\x12\t\n\x05\x46loat\x10\x03\x12\x07\n\x03Geo\x10\x04\x12\x08\n\x04Text\x10\x05\x12\x08\n\x04\x42ool\x10\x06\x12\x0c\n\x08\x44\x61tetime\x10\x07\x12\x08\n\x04Uuid\x10\x08*5\n\x10QuantizationType\x12\x17\n\x13UnknownQuantization\x10\x00\x12\x08\n\x04Int8\x10\x01*=\n\x10\x43ompressionRatio\x12\x06\n\x02x4\x10\x00\x12\x06\n\x02x8\x10\x01\x12\x07\n\x03x16\x10\x02\x12\x07\n\x03x32\x10\x03\x12\x07\n\x03x64\x10\x04*&\n\x0eShardingMethod\x12\x08\n\x04\x41uto\x10\x00\x12\n\n\x06\x43ustom\x10\x01*T\n\rTokenizerType\x12\x0b\n\x07Unknown\x10\x00\x12\n\n\x06Prefix\x10\x01\x12\x0e\n\nWhitespace\x10\x02\x12\x08\n\x04Word\x10\x03\x12\x10\n\x0cMultilingual\x10\x04*\x84\x01\n\x0cReplicaState\x12\n\n\x06\x41\x63tive\x10\x00\x12\x08\n\x04\x44\x65\x61\x64\x10\x01\x12\x0b\n\x07Partial\x10\x02\x12\x10\n\x0cInitializing\x10\x03\x12\x0c\n\x08Listener\x10\x04\x12\x13\n\x0fPartialSnapshot\x10\x05\x12\x0c\n\x08Recovery\x10\x06\x12\x0e\n\nResharding\x10\x07*a\n\x13ShardTransferMethod\x12\x11\n\rStreamRecords\x10\x00\x12\x0c\n\x08Snapshot\x10\x01\x12\x0c\n\x08WalDelta\x10\x02\x12\x1b\n\x17ReshardingStreamRecords\x10\x03\x42\x15\xaa\x02\x12Qdrant.Client.Grpcb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x11\x63ollections.proto\x12\x06qdrant\"\x83\x03\n\x0cVectorParams\x12\x0c\n\x04size\x18\x01 \x01(\x04\x12\"\n\x08\x64istance\x18\x02 \x01(\x0e\x32\x10.qdrant.Distance\x12\x30\n\x0bhnsw_config\x18\x03 \x01(\x0b\x32\x16.qdrant.HnswConfigDiffH\x00\x88\x01\x01\x12<\n\x13quantization_config\x18\x04 \x01(\x0b\x32\x1a.qdrant.QuantizationConfigH\x01\x88\x01\x01\x12\x14\n\x07on_disk\x18\x05 \x01(\x08H\x02\x88\x01\x01\x12\'\n\x08\x64\x61tatype\x18\x06 \x01(\x0e\x32\x10.qdrant.DatatypeH\x03\x88\x01\x01\x12:\n\x12multivector_config\x18\x07 \x01(\x0b\x32\x19.qdrant.MultiVectorConfigH\x04\x88\x01\x01\x42\x0e\n\x0c_hnsw_configB\x16\n\x14_quantization_configB\n\n\x08_on_diskB\x0b\n\t_datatypeB\x15\n\x13_multivector_config\"\xd0\x01\n\x10VectorParamsDiff\x12\x30\n\x0bhnsw_config\x18\x01 \x01(\x0b\x32\x16.qdrant.HnswConfigDiffH\x00\x88\x01\x01\x12@\n\x13quantization_config\x18\x02 \x01(\x0b\x32\x1e.qdrant.QuantizationConfigDiffH\x01\x88\x01\x01\x12\x14\n\x07on_disk\x18\x03 \x01(\x08H\x02\x88\x01\x01\x42\x0e\n\x0c_hnsw_configB\x16\n\x14_quantization_configB\n\n\x08_on_disk\"\x82\x01\n\x0fVectorParamsMap\x12-\n\x03map\x18\x01 \x03(\x0b\x32 .qdrant.VectorParamsMap.MapEntry\x1a@\n\x08MapEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12#\n\x05value\x18\x02 \x01(\x0b\x32\x14.qdrant.VectorParams:\x02\x38\x01\"\x8e\x01\n\x13VectorParamsDiffMap\x12\x31\n\x03map\x18\x01 \x03(\x0b\x32$.qdrant.VectorParamsDiffMap.MapEntry\x1a\x44\n\x08MapEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\'\n\x05value\x18\x02 \x01(\x0b\x32\x18.qdrant.VectorParamsDiff:\x02\x38\x01\"p\n\rVectorsConfig\x12&\n\x06params\x18\x01 \x01(\x0b\x32\x14.qdrant.VectorParamsH\x00\x12-\n\nparams_map\x18\x02 \x01(\x0b\x32\x17.qdrant.VectorParamsMapH\x00\x42\x08\n\x06\x63onfig\"|\n\x11VectorsConfigDiff\x12*\n\x06params\x18\x01 \x01(\x0b\x32\x18.qdrant.VectorParamsDiffH\x00\x12\x31\n\nparams_map\x18\x02 \x01(\x0b\x32\x1b.qdrant.VectorParamsDiffMapH\x00\x42\x08\n\x06\x63onfig\"\x83\x01\n\x12SparseVectorParams\x12-\n\x05index\x18\x01 \x01(\x0b\x32\x19.qdrant.SparseIndexConfigH\x00\x88\x01\x01\x12\'\n\x08modifier\x18\x02 \x01(\x0e\x32\x10.qdrant.ModifierH\x01\x88\x01\x01\x42\x08\n\x06_indexB\x0b\n\t_modifier\"\x8e\x01\n\x12SparseVectorConfig\x12\x30\n\x03map\x18\x01 \x03(\x0b\x32#.qdrant.SparseVectorConfig.MapEntry\x1a\x46\n\x08MapEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12)\n\x05value\x18\x02 \x01(\x0b\x32\x1a.qdrant.SparseVectorParams:\x02\x38\x01\"F\n\x11MultiVectorConfig\x12\x31\n\ncomparator\x18\x01 \x01(\x0e\x32\x1d.qdrant.MultiVectorComparator\"3\n\x18GetCollectionInfoRequest\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\"2\n\x17\x43ollectionExistsRequest\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\"\"\n\x10\x43ollectionExists\x12\x0e\n\x06\x65xists\x18\x01 \x01(\x08\"R\n\x18\x43ollectionExistsResponse\x12(\n\x06result\x18\x01 \x01(\x0b\x32\x18.qdrant.CollectionExists\x12\x0c\n\x04time\x18\x02 \x01(\x01\"\x18\n\x16ListCollectionsRequest\"%\n\x15\x43ollectionDescription\x12\x0c\n\x04name\x18\x01 \x01(\t\"Q\n\x19GetCollectionInfoResponse\x12&\n\x06result\x18\x01 \x01(\x0b\x32\x16.qdrant.CollectionInfo\x12\x0c\n\x04time\x18\x02 \x01(\x01\"[\n\x17ListCollectionsResponse\x12\x32\n\x0b\x63ollections\x18\x01 \x03(\x0b\x32\x1d.qdrant.CollectionDescription\x12\x0c\n\x04time\x18\x02 \x01(\x01\",\n\x0fOptimizerStatus\x12\n\n\x02ok\x18\x01 \x01(\x08\x12\r\n\x05\x65rror\x18\x02 \x01(\t\"\x90\x02\n\x0eHnswConfigDiff\x12\x0e\n\x01m\x18\x01 \x01(\x04H\x00\x88\x01\x01\x12\x19\n\x0c\x65\x66_construct\x18\x02 \x01(\x04H\x01\x88\x01\x01\x12 \n\x13\x66ull_scan_threshold\x18\x03 \x01(\x04H\x02\x88\x01\x01\x12!\n\x14max_indexing_threads\x18\x04 \x01(\x04H\x03\x88\x01\x01\x12\x14\n\x07on_disk\x18\x05 \x01(\x08H\x04\x88\x01\x01\x12\x16\n\tpayload_m\x18\x06 \x01(\x04H\x05\x88\x01\x01\x42\x04\n\x02_mB\x0f\n\r_ef_constructB\x16\n\x14_full_scan_thresholdB\x17\n\x15_max_indexing_threadsB\n\n\x08_on_diskB\x0c\n\n_payload_m\"\xa5\x01\n\x11SparseIndexConfig\x12 \n\x13\x66ull_scan_threshold\x18\x01 \x01(\x04H\x00\x88\x01\x01\x12\x14\n\x07on_disk\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\'\n\x08\x64\x61tatype\x18\x03 \x01(\x0e\x32\x10.qdrant.DatatypeH\x02\x88\x01\x01\x42\x16\n\x14_full_scan_thresholdB\n\n\x08_on_diskB\x0b\n\t_datatype\"y\n\rWalConfigDiff\x12\x1c\n\x0fwal_capacity_mb\x18\x01 \x01(\x04H\x00\x88\x01\x01\x12\x1f\n\x12wal_segments_ahead\x18\x02 \x01(\x04H\x01\x88\x01\x01\x42\x12\n\x10_wal_capacity_mbB\x15\n\x13_wal_segments_ahead\"\xec\x03\n\x14OptimizersConfigDiff\x12\x1e\n\x11\x64\x65leted_threshold\x18\x01 \x01(\x01H\x00\x88\x01\x01\x12%\n\x18vacuum_min_vector_number\x18\x02 \x01(\x04H\x01\x88\x01\x01\x12#\n\x16\x64\x65\x66\x61ult_segment_number\x18\x03 \x01(\x04H\x02\x88\x01\x01\x12\x1d\n\x10max_segment_size\x18\x04 \x01(\x04H\x03\x88\x01\x01\x12\x1d\n\x10memmap_threshold\x18\x05 \x01(\x04H\x04\x88\x01\x01\x12\x1f\n\x12indexing_threshold\x18\x06 \x01(\x04H\x05\x88\x01\x01\x12\x1f\n\x12\x66lush_interval_sec\x18\x07 \x01(\x04H\x06\x88\x01\x01\x12%\n\x18max_optimization_threads\x18\x08 \x01(\x04H\x07\x88\x01\x01\x42\x14\n\x12_deleted_thresholdB\x1b\n\x19_vacuum_min_vector_numberB\x19\n\x17_default_segment_numberB\x13\n\x11_max_segment_sizeB\x13\n\x11_memmap_thresholdB\x15\n\x13_indexing_thresholdB\x15\n\x13_flush_interval_secB\x1b\n\x19_max_optimization_threads\"\x88\x01\n\x12ScalarQuantization\x12&\n\x04type\x18\x01 \x01(\x0e\x32\x18.qdrant.QuantizationType\x12\x15\n\x08quantile\x18\x02 \x01(\x02H\x00\x88\x01\x01\x12\x17\n\nalways_ram\x18\x03 \x01(\x08H\x01\x88\x01\x01\x42\x0b\n\t_quantileB\r\n\x0b_always_ram\"l\n\x13ProductQuantization\x12-\n\x0b\x63ompression\x18\x01 \x01(\x0e\x32\x18.qdrant.CompressionRatio\x12\x17\n\nalways_ram\x18\x02 \x01(\x08H\x00\x88\x01\x01\x42\r\n\x0b_always_ram\"<\n\x12\x42inaryQuantization\x12\x17\n\nalways_ram\x18\x01 \x01(\x08H\x00\x88\x01\x01\x42\r\n\x0b_always_ram\"\xb0\x01\n\x12QuantizationConfig\x12,\n\x06scalar\x18\x01 \x01(\x0b\x32\x1a.qdrant.ScalarQuantizationH\x00\x12.\n\x07product\x18\x02 \x01(\x0b\x32\x1b.qdrant.ProductQuantizationH\x00\x12,\n\x06\x62inary\x18\x03 \x01(\x0b\x32\x1a.qdrant.BinaryQuantizationH\x00\x42\x0e\n\x0cquantization\"\n\n\x08\x44isabled\"\xda\x01\n\x16QuantizationConfigDiff\x12,\n\x06scalar\x18\x01 \x01(\x0b\x32\x1a.qdrant.ScalarQuantizationH\x00\x12.\n\x07product\x18\x02 \x01(\x0b\x32\x1b.qdrant.ProductQuantizationH\x00\x12$\n\x08\x64isabled\x18\x03 \x01(\x0b\x32\x10.qdrant.DisabledH\x00\x12,\n\x06\x62inary\x18\x04 \x01(\x0b\x32\x1a.qdrant.BinaryQuantizationH\x00\x42\x0e\n\x0cquantization\"\xd6\x03\n\x10StrictModeConfig\x12\x14\n\x07\x65nabled\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x1c\n\x0fmax_query_limit\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x18\n\x0bmax_timeout\x18\x03 \x01(\rH\x02\x88\x01\x01\x12)\n\x1cunindexed_filtering_retrieve\x18\x04 \x01(\x08H\x03\x88\x01\x01\x12\'\n\x1aunindexed_filtering_update\x18\x05 \x01(\x08H\x04\x88\x01\x01\x12\x1f\n\x12search_max_hnsw_ef\x18\x06 \x01(\rH\x05\x88\x01\x01\x12\x1f\n\x12search_allow_exact\x18\x07 \x01(\x08H\x06\x88\x01\x01\x12$\n\x17search_max_oversampling\x18\x08 \x01(\x02H\x07\x88\x01\x01\x42\n\n\x08_enabledB\x12\n\x10_max_query_limitB\x0e\n\x0c_max_timeoutB\x1f\n\x1d_unindexed_filtering_retrieveB\x1d\n\x1b_unindexed_filtering_updateB\x15\n\x13_search_max_hnsw_efB\x15\n\x13_search_allow_exactB\x1a\n\x18_search_max_oversampling\"\xd7\x07\n\x10\x43reateCollection\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12\x30\n\x0bhnsw_config\x18\x04 \x01(\x0b\x32\x16.qdrant.HnswConfigDiffH\x00\x88\x01\x01\x12.\n\nwal_config\x18\x05 \x01(\x0b\x32\x15.qdrant.WalConfigDiffH\x01\x88\x01\x01\x12<\n\x11optimizers_config\x18\x06 \x01(\x0b\x32\x1c.qdrant.OptimizersConfigDiffH\x02\x88\x01\x01\x12\x19\n\x0cshard_number\x18\x07 \x01(\rH\x03\x88\x01\x01\x12\x1c\n\x0fon_disk_payload\x18\x08 \x01(\x08H\x04\x88\x01\x01\x12\x14\n\x07timeout\x18\t \x01(\x04H\x05\x88\x01\x01\x12\x32\n\x0evectors_config\x18\n \x01(\x0b\x32\x15.qdrant.VectorsConfigH\x06\x88\x01\x01\x12\x1f\n\x12replication_factor\x18\x0b \x01(\rH\x07\x88\x01\x01\x12%\n\x18write_consistency_factor\x18\x0c \x01(\rH\x08\x88\x01\x01\x12!\n\x14init_from_collection\x18\r \x01(\tH\t\x88\x01\x01\x12<\n\x13quantization_config\x18\x0e \x01(\x0b\x32\x1a.qdrant.QuantizationConfigH\n\x88\x01\x01\x12\x34\n\x0fsharding_method\x18\x0f \x01(\x0e\x32\x16.qdrant.ShardingMethodH\x0b\x88\x01\x01\x12>\n\x15sparse_vectors_config\x18\x10 \x01(\x0b\x32\x1a.qdrant.SparseVectorConfigH\x0c\x88\x01\x01\x12\x39\n\x12strict_mode_config\x18\x11 \x01(\x0b\x32\x18.qdrant.StrictModeConfigH\r\x88\x01\x01\x42\x0e\n\x0c_hnsw_configB\r\n\x0b_wal_configB\x14\n\x12_optimizers_configB\x0f\n\r_shard_numberB\x12\n\x10_on_disk_payloadB\n\n\x08_timeoutB\x11\n\x0f_vectors_configB\x15\n\x13_replication_factorB\x1b\n\x19_write_consistency_factorB\x17\n\x15_init_from_collectionB\x16\n\x14_quantization_configB\x12\n\x10_sharding_methodB\x18\n\x16_sparse_vectors_configB\x15\n\x13_strict_mode_configJ\x04\x08\x02\x10\x03J\x04\x08\x03\x10\x04\"\xa0\x04\n\x10UpdateCollection\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12<\n\x11optimizers_config\x18\x02 \x01(\x0b\x32\x1c.qdrant.OptimizersConfigDiffH\x00\x88\x01\x01\x12\x14\n\x07timeout\x18\x03 \x01(\x04H\x01\x88\x01\x01\x12\x31\n\x06params\x18\x04 \x01(\x0b\x32\x1c.qdrant.CollectionParamsDiffH\x02\x88\x01\x01\x12\x30\n\x0bhnsw_config\x18\x05 \x01(\x0b\x32\x16.qdrant.HnswConfigDiffH\x03\x88\x01\x01\x12\x36\n\x0evectors_config\x18\x06 \x01(\x0b\x32\x19.qdrant.VectorsConfigDiffH\x04\x88\x01\x01\x12@\n\x13quantization_config\x18\x07 \x01(\x0b\x32\x1e.qdrant.QuantizationConfigDiffH\x05\x88\x01\x01\x12>\n\x15sparse_vectors_config\x18\x08 \x01(\x0b\x32\x1a.qdrant.SparseVectorConfigH\x06\x88\x01\x01\x42\x14\n\x12_optimizers_configB\n\n\x08_timeoutB\t\n\x07_paramsB\x0e\n\x0c_hnsw_configB\x11\n\x0f_vectors_configB\x16\n\x14_quantization_configB\x18\n\x16_sparse_vectors_config\"M\n\x10\x44\x65leteCollection\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12\x14\n\x07timeout\x18\x02 \x01(\x04H\x00\x88\x01\x01\x42\n\n\x08_timeout\";\n\x1b\x43ollectionOperationResponse\x12\x0e\n\x06result\x18\x01 \x01(\x08\x12\x0c\n\x04time\x18\x02 \x01(\x01\"\xee\x03\n\x10\x43ollectionParams\x12\x14\n\x0cshard_number\x18\x03 \x01(\r\x12\x17\n\x0fon_disk_payload\x18\x04 \x01(\x08\x12\x32\n\x0evectors_config\x18\x05 \x01(\x0b\x32\x15.qdrant.VectorsConfigH\x00\x88\x01\x01\x12\x1f\n\x12replication_factor\x18\x06 \x01(\rH\x01\x88\x01\x01\x12%\n\x18write_consistency_factor\x18\x07 \x01(\rH\x02\x88\x01\x01\x12 \n\x13read_fan_out_factor\x18\x08 \x01(\rH\x03\x88\x01\x01\x12\x34\n\x0fsharding_method\x18\t \x01(\x0e\x32\x16.qdrant.ShardingMethodH\x04\x88\x01\x01\x12>\n\x15sparse_vectors_config\x18\n \x01(\x0b\x32\x1a.qdrant.SparseVectorConfigH\x05\x88\x01\x01\x42\x11\n\x0f_vectors_configB\x15\n\x13_replication_factorB\x1b\n\x19_write_consistency_factorB\x16\n\x14_read_fan_out_factorB\x12\n\x10_sharding_methodB\x18\n\x16_sparse_vectors_configJ\x04\x08\x01\x10\x02J\x04\x08\x02\x10\x03\"\xfe\x01\n\x14\x43ollectionParamsDiff\x12\x1f\n\x12replication_factor\x18\x01 \x01(\rH\x00\x88\x01\x01\x12%\n\x18write_consistency_factor\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x1c\n\x0fon_disk_payload\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12 \n\x13read_fan_out_factor\x18\x04 \x01(\rH\x03\x88\x01\x01\x42\x15\n\x13_replication_factorB\x1b\n\x19_write_consistency_factorB\x12\n\x10_on_disk_payloadB\x16\n\x14_read_fan_out_factor\"\xf4\x02\n\x10\x43ollectionConfig\x12(\n\x06params\x18\x01 \x01(\x0b\x32\x18.qdrant.CollectionParams\x12+\n\x0bhnsw_config\x18\x02 \x01(\x0b\x32\x16.qdrant.HnswConfigDiff\x12\x36\n\x10optimizer_config\x18\x03 \x01(\x0b\x32\x1c.qdrant.OptimizersConfigDiff\x12)\n\nwal_config\x18\x04 \x01(\x0b\x32\x15.qdrant.WalConfigDiff\x12<\n\x13quantization_config\x18\x05 \x01(\x0b\x32\x1a.qdrant.QuantizationConfigH\x00\x88\x01\x01\x12\x39\n\x12strict_mode_config\x18\x06 \x01(\x0b\x32\x18.qdrant.StrictModeConfigH\x01\x88\x01\x01\x42\x16\n\x14_quantization_configB\x15\n\x13_strict_mode_config\"\\\n\x12KeywordIndexParams\x12\x16\n\tis_tenant\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x14\n\x07on_disk\x18\x02 \x01(\x08H\x01\x88\x01\x01\x42\x0c\n\n_is_tenantB\n\n\x08_on_disk\"\xa0\x01\n\x12IntegerIndexParams\x12\x13\n\x06lookup\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x12\n\x05range\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\x19\n\x0cis_principal\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12\x14\n\x07on_disk\x18\x04 \x01(\x08H\x03\x88\x01\x01\x42\t\n\x07_lookupB\x08\n\x06_rangeB\x0f\n\r_is_principalB\n\n\x08_on_disk\"`\n\x10\x46loatIndexParams\x12\x14\n\x07on_disk\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x19\n\x0cis_principal\x18\x02 \x01(\x08H\x01\x88\x01\x01\x42\n\n\x08_on_diskB\x0f\n\r_is_principal\"2\n\x0eGeoIndexParams\x12\x14\n\x07on_disk\x18\x01 \x01(\x08H\x00\x88\x01\x01\x42\n\n\x08_on_disk\"\xdf\x01\n\x0fTextIndexParams\x12(\n\ttokenizer\x18\x01 \x01(\x0e\x32\x15.qdrant.TokenizerType\x12\x16\n\tlowercase\x18\x02 \x01(\x08H\x00\x88\x01\x01\x12\x1a\n\rmin_token_len\x18\x03 \x01(\x04H\x01\x88\x01\x01\x12\x1a\n\rmax_token_len\x18\x04 \x01(\x04H\x02\x88\x01\x01\x12\x14\n\x07on_disk\x18\x05 \x01(\x08H\x03\x88\x01\x01\x42\x0c\n\n_lowercaseB\x10\n\x0e_min_token_lenB\x10\n\x0e_max_token_lenB\n\n\x08_on_disk\"\x11\n\x0f\x42oolIndexParams\"c\n\x13\x44\x61tetimeIndexParams\x12\x14\n\x07on_disk\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x19\n\x0cis_principal\x18\x02 \x01(\x08H\x01\x88\x01\x01\x42\n\n\x08_on_diskB\x0f\n\r_is_principal\"Y\n\x0fUuidIndexParams\x12\x16\n\tis_tenant\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x14\n\x07on_disk\x18\x02 \x01(\x08H\x01\x88\x01\x01\x42\x0c\n\n_is_tenantB\n\n\x08_on_disk\"\xe8\x03\n\x12PayloadIndexParams\x12:\n\x14keyword_index_params\x18\x03 \x01(\x0b\x32\x1a.qdrant.KeywordIndexParamsH\x00\x12:\n\x14integer_index_params\x18\x02 \x01(\x0b\x32\x1a.qdrant.IntegerIndexParamsH\x00\x12\x36\n\x12\x66loat_index_params\x18\x04 \x01(\x0b\x32\x18.qdrant.FloatIndexParamsH\x00\x12\x32\n\x10geo_index_params\x18\x05 \x01(\x0b\x32\x16.qdrant.GeoIndexParamsH\x00\x12\x34\n\x11text_index_params\x18\x01 \x01(\x0b\x32\x17.qdrant.TextIndexParamsH\x00\x12\x34\n\x11\x62ool_index_params\x18\x06 \x01(\x0b\x32\x17.qdrant.BoolIndexParamsH\x00\x12<\n\x15\x64\x61tetime_index_params\x18\x07 \x01(\x0b\x32\x1b.qdrant.DatetimeIndexParamsH\x00\x12\x34\n\x11uuid_index_params\x18\x08 \x01(\x0b\x32\x17.qdrant.UuidIndexParamsH\x00\x42\x0e\n\x0cindex_params\"\x9d\x01\n\x11PayloadSchemaInfo\x12,\n\tdata_type\x18\x01 \x01(\x0e\x32\x19.qdrant.PayloadSchemaType\x12/\n\x06params\x18\x02 \x01(\x0b\x32\x1a.qdrant.PayloadIndexParamsH\x00\x88\x01\x01\x12\x13\n\x06points\x18\x03 \x01(\x04H\x01\x88\x01\x01\x42\t\n\x07_paramsB\t\n\x07_points\"\xe7\x03\n\x0e\x43ollectionInfo\x12(\n\x06status\x18\x01 \x01(\x0e\x32\x18.qdrant.CollectionStatus\x12\x31\n\x10optimizer_status\x18\x02 \x01(\x0b\x32\x17.qdrant.OptimizerStatus\x12\x1a\n\rvectors_count\x18\x03 \x01(\x04H\x00\x88\x01\x01\x12\x16\n\x0esegments_count\x18\x04 \x01(\x04\x12(\n\x06\x63onfig\x18\x07 \x01(\x0b\x32\x18.qdrant.CollectionConfig\x12\x41\n\x0epayload_schema\x18\x08 \x03(\x0b\x32).qdrant.CollectionInfo.PayloadSchemaEntry\x12\x19\n\x0cpoints_count\x18\t \x01(\x04H\x01\x88\x01\x01\x12\"\n\x15indexed_vectors_count\x18\n \x01(\x04H\x02\x88\x01\x01\x1aO\n\x12PayloadSchemaEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12(\n\x05value\x18\x02 \x01(\x0b\x32\x19.qdrant.PayloadSchemaInfo:\x02\x38\x01\x42\x10\n\x0e_vectors_countB\x0f\n\r_points_countB\x18\n\x16_indexed_vectors_countJ\x04\x08\x05\x10\x06J\x04\x08\x06\x10\x07\"[\n\rChangeAliases\x12(\n\x07\x61\x63tions\x18\x01 \x03(\x0b\x32\x17.qdrant.AliasOperations\x12\x14\n\x07timeout\x18\x02 \x01(\x04H\x00\x88\x01\x01\x42\n\n\x08_timeout\"\xa2\x01\n\x0f\x41liasOperations\x12+\n\x0c\x63reate_alias\x18\x01 \x01(\x0b\x32\x13.qdrant.CreateAliasH\x00\x12+\n\x0crename_alias\x18\x02 \x01(\x0b\x32\x13.qdrant.RenameAliasH\x00\x12+\n\x0c\x64\x65lete_alias\x18\x03 \x01(\x0b\x32\x13.qdrant.DeleteAliasH\x00\x42\x08\n\x06\x61\x63tion\":\n\x0b\x43reateAlias\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12\x12\n\nalias_name\x18\x02 \x01(\t\"=\n\x0bRenameAlias\x12\x16\n\x0eold_alias_name\x18\x01 \x01(\t\x12\x16\n\x0enew_alias_name\x18\x02 \x01(\t\"!\n\x0b\x44\x65leteAlias\x12\x12\n\nalias_name\x18\x01 \x01(\t\"\x14\n\x12ListAliasesRequest\"7\n\x1cListCollectionAliasesRequest\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\"?\n\x10\x41liasDescription\x12\x12\n\nalias_name\x18\x01 \x01(\t\x12\x17\n\x0f\x63ollection_name\x18\x02 \x01(\t\"N\n\x13ListAliasesResponse\x12)\n\x07\x61liases\x18\x01 \x03(\x0b\x32\x18.qdrant.AliasDescription\x12\x0c\n\x04time\x18\x02 \x01(\x01\"7\n\x1c\x43ollectionClusterInfoRequest\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\"6\n\x08ShardKey\x12\x11\n\x07keyword\x18\x01 \x01(\tH\x00\x12\x10\n\x06number\x18\x02 \x01(\x04H\x00\x42\x05\n\x03key\"\x95\x01\n\x0eLocalShardInfo\x12\x10\n\x08shard_id\x18\x01 \x01(\r\x12\x14\n\x0cpoints_count\x18\x02 \x01(\x04\x12#\n\x05state\x18\x03 \x01(\x0e\x32\x14.qdrant.ReplicaState\x12(\n\tshard_key\x18\x04 \x01(\x0b\x32\x10.qdrant.ShardKeyH\x00\x88\x01\x01\x42\x0c\n\n_shard_key\"\x91\x01\n\x0fRemoteShardInfo\x12\x10\n\x08shard_id\x18\x01 \x01(\r\x12\x0f\n\x07peer_id\x18\x02 \x01(\x04\x12#\n\x05state\x18\x03 \x01(\x0e\x32\x14.qdrant.ReplicaState\x12(\n\tshard_key\x18\x04 \x01(\x0b\x32\x10.qdrant.ShardKeyH\x00\x88\x01\x01\x42\x0c\n\n_shard_key\"w\n\x11ShardTransferInfo\x12\x10\n\x08shard_id\x18\x01 \x01(\r\x12\x18\n\x0bto_shard_id\x18\x05 \x01(\rH\x00\x88\x01\x01\x12\x0c\n\x04\x66rom\x18\x02 \x01(\x04\x12\n\n\x02to\x18\x03 \x01(\x04\x12\x0c\n\x04sync\x18\x04 \x01(\x08\x42\x0e\n\x0c_to_shard_id\"k\n\x0eReshardingInfo\x12\x10\n\x08shard_id\x18\x01 \x01(\r\x12\x0f\n\x07peer_id\x18\x02 \x01(\x04\x12(\n\tshard_key\x18\x03 \x01(\x0b\x32\x10.qdrant.ShardKeyH\x00\x88\x01\x01\x42\x0c\n\n_shard_key\"\xd7\x01\n\x1d\x43ollectionClusterInfoResponse\x12\x0f\n\x07peer_id\x18\x01 \x01(\x04\x12\x13\n\x0bshard_count\x18\x02 \x01(\x04\x12,\n\x0clocal_shards\x18\x03 \x03(\x0b\x32\x16.qdrant.LocalShardInfo\x12.\n\rremote_shards\x18\x04 \x03(\x0b\x32\x17.qdrant.RemoteShardInfo\x12\x32\n\x0fshard_transfers\x18\x05 \x03(\x0b\x32\x19.qdrant.ShardTransferInfo\"\xae\x01\n\tMoveShard\x12\x10\n\x08shard_id\x18\x01 \x01(\r\x12\x18\n\x0bto_shard_id\x18\x05 \x01(\rH\x00\x88\x01\x01\x12\x14\n\x0c\x66rom_peer_id\x18\x02 \x01(\x04\x12\x12\n\nto_peer_id\x18\x03 \x01(\x04\x12\x30\n\x06method\x18\x04 \x01(\x0e\x32\x1b.qdrant.ShardTransferMethodH\x01\x88\x01\x01\x42\x0e\n\x0c_to_shard_idB\t\n\x07_method\"\xb3\x01\n\x0eReplicateShard\x12\x10\n\x08shard_id\x18\x01 \x01(\r\x12\x18\n\x0bto_shard_id\x18\x05 \x01(\rH\x00\x88\x01\x01\x12\x14\n\x0c\x66rom_peer_id\x18\x02 \x01(\x04\x12\x12\n\nto_peer_id\x18\x03 \x01(\x04\x12\x30\n\x06method\x18\x04 \x01(\x0e\x32\x1b.qdrant.ShardTransferMethodH\x01\x88\x01\x01\x42\x0e\n\x0c_to_shard_idB\t\n\x07_method\"z\n\x12\x41\x62ortShardTransfer\x12\x10\n\x08shard_id\x18\x01 \x01(\r\x12\x18\n\x0bto_shard_id\x18\x04 \x01(\rH\x00\x88\x01\x01\x12\x14\n\x0c\x66rom_peer_id\x18\x02 \x01(\x04\x12\x12\n\nto_peer_id\x18\x03 \x01(\x04\x42\x0e\n\x0c_to_shard_id\"\xa4\x01\n\x0fRestartTransfer\x12\x10\n\x08shard_id\x18\x01 \x01(\r\x12\x18\n\x0bto_shard_id\x18\x05 \x01(\rH\x00\x88\x01\x01\x12\x14\n\x0c\x66rom_peer_id\x18\x02 \x01(\x04\x12\x12\n\nto_peer_id\x18\x03 \x01(\x04\x12+\n\x06method\x18\x04 \x01(\x0e\x32\x1b.qdrant.ShardTransferMethodB\x0e\n\x0c_to_shard_id\",\n\x07Replica\x12\x10\n\x08shard_id\x18\x01 \x01(\r\x12\x0f\n\x07peer_id\x18\x02 \x01(\x04\"\xae\x01\n\x0e\x43reateShardKey\x12#\n\tshard_key\x18\x01 \x01(\x0b\x32\x10.qdrant.ShardKey\x12\x1a\n\rshards_number\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x1f\n\x12replication_factor\x18\x03 \x01(\rH\x01\x88\x01\x01\x12\x11\n\tplacement\x18\x04 \x03(\x04\x42\x10\n\x0e_shards_numberB\x15\n\x13_replication_factor\"5\n\x0e\x44\x65leteShardKey\x12#\n\tshard_key\x18\x01 \x01(\x0b\x32\x10.qdrant.ShardKey\"\xc5\x03\n#UpdateCollectionClusterSetupRequest\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12\'\n\nmove_shard\x18\x02 \x01(\x0b\x32\x11.qdrant.MoveShardH\x00\x12\x31\n\x0freplicate_shard\x18\x03 \x01(\x0b\x32\x16.qdrant.ReplicateShardH\x00\x12\x34\n\x0e\x61\x62ort_transfer\x18\x04 \x01(\x0b\x32\x1a.qdrant.AbortShardTransferH\x00\x12\'\n\x0c\x64rop_replica\x18\x05 \x01(\x0b\x32\x0f.qdrant.ReplicaH\x00\x12\x32\n\x10\x63reate_shard_key\x18\x07 \x01(\x0b\x32\x16.qdrant.CreateShardKeyH\x00\x12\x32\n\x10\x64\x65lete_shard_key\x18\x08 \x01(\x0b\x32\x16.qdrant.DeleteShardKeyH\x00\x12\x33\n\x10restart_transfer\x18\t \x01(\x0b\x32\x17.qdrant.RestartTransferH\x00\x12\x14\n\x07timeout\x18\x06 \x01(\x04H\x01\x88\x01\x01\x42\x0b\n\toperationB\n\n\x08_timeout\"6\n$UpdateCollectionClusterSetupResponse\x12\x0e\n\x06result\x18\x01 \x01(\x08\"{\n\x15\x43reateShardKeyRequest\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12\'\n\x07request\x18\x02 \x01(\x0b\x32\x16.qdrant.CreateShardKey\x12\x14\n\x07timeout\x18\x03 \x01(\x04H\x00\x88\x01\x01\x42\n\n\x08_timeout\"{\n\x15\x44\x65leteShardKeyRequest\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12\'\n\x07request\x18\x02 \x01(\x0b\x32\x16.qdrant.DeleteShardKey\x12\x14\n\x07timeout\x18\x03 \x01(\x04H\x00\x88\x01\x01\x42\n\n\x08_timeout\"(\n\x16\x43reateShardKeyResponse\x12\x0e\n\x06result\x18\x01 \x01(\x08\"(\n\x16\x44\x65leteShardKeyResponse\x12\x0e\n\x06result\x18\x01 \x01(\x08*<\n\x08\x44\x61tatype\x12\x0b\n\x07\x44\x65\x66\x61ult\x10\x00\x12\x0b\n\x07\x46loat32\x10\x01\x12\t\n\x05Uint8\x10\x02\x12\x0b\n\x07\x46loat16\x10\x03*\x1d\n\x08Modifier\x12\x08\n\x04None\x10\x00\x12\x07\n\x03Idf\x10\x01*#\n\x15MultiVectorComparator\x12\n\n\x06MaxSim\x10\x00*O\n\x08\x44istance\x12\x13\n\x0fUnknownDistance\x10\x00\x12\n\n\x06\x43osine\x10\x01\x12\n\n\x06\x45uclid\x10\x02\x12\x07\n\x03\x44ot\x10\x03\x12\r\n\tManhattan\x10\x04*Y\n\x10\x43ollectionStatus\x12\x1b\n\x17UnknownCollectionStatus\x10\x00\x12\t\n\x05Green\x10\x01\x12\n\n\x06Yellow\x10\x02\x12\x07\n\x03Red\x10\x03\x12\x08\n\x04Grey\x10\x04*~\n\x11PayloadSchemaType\x12\x0f\n\x0bUnknownType\x10\x00\x12\x0b\n\x07Keyword\x10\x01\x12\x0b\n\x07Integer\x10\x02\x12\t\n\x05\x46loat\x10\x03\x12\x07\n\x03Geo\x10\x04\x12\x08\n\x04Text\x10\x05\x12\x08\n\x04\x42ool\x10\x06\x12\x0c\n\x08\x44\x61tetime\x10\x07\x12\x08\n\x04Uuid\x10\x08*5\n\x10QuantizationType\x12\x17\n\x13UnknownQuantization\x10\x00\x12\x08\n\x04Int8\x10\x01*=\n\x10\x43ompressionRatio\x12\x06\n\x02x4\x10\x00\x12\x06\n\x02x8\x10\x01\x12\x07\n\x03x16\x10\x02\x12\x07\n\x03x32\x10\x03\x12\x07\n\x03x64\x10\x04*&\n\x0eShardingMethod\x12\x08\n\x04\x41uto\x10\x00\x12\n\n\x06\x43ustom\x10\x01*T\n\rTokenizerType\x12\x0b\n\x07Unknown\x10\x00\x12\n\n\x06Prefix\x10\x01\x12\x0e\n\nWhitespace\x10\x02\x12\x08\n\x04Word\x10\x03\x12\x10\n\x0cMultilingual\x10\x04*\x84\x01\n\x0cReplicaState\x12\n\n\x06\x41\x63tive\x10\x00\x12\x08\n\x04\x44\x65\x61\x64\x10\x01\x12\x0b\n\x07Partial\x10\x02\x12\x10\n\x0cInitializing\x10\x03\x12\x0c\n\x08Listener\x10\x04\x12\x13\n\x0fPartialSnapshot\x10\x05\x12\x0c\n\x08Recovery\x10\x06\x12\x0e\n\nResharding\x10\x07*a\n\x13ShardTransferMethod\x12\x11\n\rStreamRecords\x10\x00\x12\x0c\n\x08Snapshot\x10\x01\x12\x0c\n\x08WalDelta\x10\x02\x12\x1b\n\x17ReshardingStreamRecords\x10\x03\x42\x15\xaa\x02\x12Qdrant.Client.Grpcb\x06proto3') _DATATYPE = DESCRIPTOR.enum_types_by_name['Datatype'] Datatype = enum_type_wrapper.EnumTypeWrapper(_DATATYPE) @@ -751,30 +751,30 @@ _SPARSEVECTORCONFIG_MAPENTRY._serialized_options = b'8\001' _COLLECTIONINFO_PAYLOADSCHEMAENTRY._options = None _COLLECTIONINFO_PAYLOADSCHEMAENTRY._serialized_options = b'8\001' - _DATATYPE._serialized_start=12412 - _DATATYPE._serialized_end=12472 - _MODIFIER._serialized_start=12474 - _MODIFIER._serialized_end=12503 - _MULTIVECTORCOMPARATOR._serialized_start=12505 - _MULTIVECTORCOMPARATOR._serialized_end=12540 - _DISTANCE._serialized_start=12542 - _DISTANCE._serialized_end=12621 - _COLLECTIONSTATUS._serialized_start=12623 - _COLLECTIONSTATUS._serialized_end=12712 - _PAYLOADSCHEMATYPE._serialized_start=12714 - _PAYLOADSCHEMATYPE._serialized_end=12840 - _QUANTIZATIONTYPE._serialized_start=12842 - _QUANTIZATIONTYPE._serialized_end=12895 - _COMPRESSIONRATIO._serialized_start=12897 - _COMPRESSIONRATIO._serialized_end=12958 - _SHARDINGMETHOD._serialized_start=12960 - _SHARDINGMETHOD._serialized_end=12998 - _TOKENIZERTYPE._serialized_start=13000 - _TOKENIZERTYPE._serialized_end=13084 - _REPLICASTATE._serialized_start=13087 - _REPLICASTATE._serialized_end=13219 - _SHARDTRANSFERMETHOD._serialized_start=13221 - _SHARDTRANSFERMETHOD._serialized_end=13318 + _DATATYPE._serialized_start=12330 + _DATATYPE._serialized_end=12390 + _MODIFIER._serialized_start=12392 + _MODIFIER._serialized_end=12421 + _MULTIVECTORCOMPARATOR._serialized_start=12423 + _MULTIVECTORCOMPARATOR._serialized_end=12458 + _DISTANCE._serialized_start=12460 + _DISTANCE._serialized_end=12539 + _COLLECTIONSTATUS._serialized_start=12541 + _COLLECTIONSTATUS._serialized_end=12630 + _PAYLOADSCHEMATYPE._serialized_start=12632 + _PAYLOADSCHEMATYPE._serialized_end=12758 + _QUANTIZATIONTYPE._serialized_start=12760 + _QUANTIZATIONTYPE._serialized_end=12813 + _COMPRESSIONRATIO._serialized_start=12815 + _COMPRESSIONRATIO._serialized_end=12876 + _SHARDINGMETHOD._serialized_start=12878 + _SHARDINGMETHOD._serialized_end=12916 + _TOKENIZERTYPE._serialized_start=12918 + _TOKENIZERTYPE._serialized_end=13002 + _REPLICASTATE._serialized_start=13005 + _REPLICASTATE._serialized_end=13137 + _SHARDTRANSFERMETHOD._serialized_start=13139 + _SHARDTRANSFERMETHOD._serialized_end=13236 _VECTORPARAMS._serialized_start=30 _VECTORPARAMS._serialized_end=417 _VECTORPARAMSDIFF._serialized_start=420 @@ -842,97 +842,97 @@ _CREATECOLLECTION._serialized_start=4269 _CREATECOLLECTION._serialized_end=5252 _UPDATECOLLECTION._serialized_start=5255 - _UPDATECOLLECTION._serialized_end=5881 - _DELETECOLLECTION._serialized_start=5883 - _DELETECOLLECTION._serialized_end=5960 - _COLLECTIONOPERATIONRESPONSE._serialized_start=5962 - _COLLECTIONOPERATIONRESPONSE._serialized_end=6021 - _COLLECTIONPARAMS._serialized_start=6024 - _COLLECTIONPARAMS._serialized_end=6518 - _COLLECTIONPARAMSDIFF._serialized_start=6521 - _COLLECTIONPARAMSDIFF._serialized_end=6775 - _COLLECTIONCONFIG._serialized_start=6778 - _COLLECTIONCONFIG._serialized_end=7150 - _KEYWORDINDEXPARAMS._serialized_start=7152 - _KEYWORDINDEXPARAMS._serialized_end=7244 - _INTEGERINDEXPARAMS._serialized_start=7247 - _INTEGERINDEXPARAMS._serialized_end=7407 - _FLOATINDEXPARAMS._serialized_start=7409 - _FLOATINDEXPARAMS._serialized_end=7505 - _GEOINDEXPARAMS._serialized_start=7507 - _GEOINDEXPARAMS._serialized_end=7557 - _TEXTINDEXPARAMS._serialized_start=7560 - _TEXTINDEXPARAMS._serialized_end=7783 - _BOOLINDEXPARAMS._serialized_start=7785 - _BOOLINDEXPARAMS._serialized_end=7802 - _DATETIMEINDEXPARAMS._serialized_start=7804 - _DATETIMEINDEXPARAMS._serialized_end=7903 - _UUIDINDEXPARAMS._serialized_start=7905 - _UUIDINDEXPARAMS._serialized_end=7994 - _PAYLOADINDEXPARAMS._serialized_start=7997 - _PAYLOADINDEXPARAMS._serialized_end=8485 - _PAYLOADSCHEMAINFO._serialized_start=8488 - _PAYLOADSCHEMAINFO._serialized_end=8645 - _COLLECTIONINFO._serialized_start=8648 - _COLLECTIONINFO._serialized_end=9135 - _COLLECTIONINFO_PAYLOADSCHEMAENTRY._serialized_start=8983 - _COLLECTIONINFO_PAYLOADSCHEMAENTRY._serialized_end=9062 - _CHANGEALIASES._serialized_start=9137 - _CHANGEALIASES._serialized_end=9228 - _ALIASOPERATIONS._serialized_start=9231 - _ALIASOPERATIONS._serialized_end=9393 - _CREATEALIAS._serialized_start=9395 - _CREATEALIAS._serialized_end=9453 - _RENAMEALIAS._serialized_start=9455 - _RENAMEALIAS._serialized_end=9516 - _DELETEALIAS._serialized_start=9518 - _DELETEALIAS._serialized_end=9551 - _LISTALIASESREQUEST._serialized_start=9553 - _LISTALIASESREQUEST._serialized_end=9573 - _LISTCOLLECTIONALIASESREQUEST._serialized_start=9575 - _LISTCOLLECTIONALIASESREQUEST._serialized_end=9630 - _ALIASDESCRIPTION._serialized_start=9632 - _ALIASDESCRIPTION._serialized_end=9695 - _LISTALIASESRESPONSE._serialized_start=9697 - _LISTALIASESRESPONSE._serialized_end=9775 - _COLLECTIONCLUSTERINFOREQUEST._serialized_start=9777 - _COLLECTIONCLUSTERINFOREQUEST._serialized_end=9832 - _SHARDKEY._serialized_start=9834 - _SHARDKEY._serialized_end=9888 - _LOCALSHARDINFO._serialized_start=9891 - _LOCALSHARDINFO._serialized_end=10040 - _REMOTESHARDINFO._serialized_start=10043 - _REMOTESHARDINFO._serialized_end=10188 - _SHARDTRANSFERINFO._serialized_start=10190 - _SHARDTRANSFERINFO._serialized_end=10309 - _RESHARDINGINFO._serialized_start=10311 - _RESHARDINGINFO._serialized_end=10418 - _COLLECTIONCLUSTERINFORESPONSE._serialized_start=10421 - _COLLECTIONCLUSTERINFORESPONSE._serialized_end=10636 - _MOVESHARD._serialized_start=10639 - _MOVESHARD._serialized_end=10813 - _REPLICATESHARD._serialized_start=10816 - _REPLICATESHARD._serialized_end=10995 - _ABORTSHARDTRANSFER._serialized_start=10997 - _ABORTSHARDTRANSFER._serialized_end=11119 - _RESTARTTRANSFER._serialized_start=11122 - _RESTARTTRANSFER._serialized_end=11286 - _REPLICA._serialized_start=11288 - _REPLICA._serialized_end=11332 - _CREATESHARDKEY._serialized_start=11335 - _CREATESHARDKEY._serialized_end=11509 - _DELETESHARDKEY._serialized_start=11511 - _DELETESHARDKEY._serialized_end=11564 - _UPDATECOLLECTIONCLUSTERSETUPREQUEST._serialized_start=11567 - _UPDATECOLLECTIONCLUSTERSETUPREQUEST._serialized_end=12020 - _UPDATECOLLECTIONCLUSTERSETUPRESPONSE._serialized_start=12022 - _UPDATECOLLECTIONCLUSTERSETUPRESPONSE._serialized_end=12076 - _CREATESHARDKEYREQUEST._serialized_start=12078 - _CREATESHARDKEYREQUEST._serialized_end=12201 - _DELETESHARDKEYREQUEST._serialized_start=12203 - _DELETESHARDKEYREQUEST._serialized_end=12326 - _CREATESHARDKEYRESPONSE._serialized_start=12328 - _CREATESHARDKEYRESPONSE._serialized_end=12368 - _DELETESHARDKEYRESPONSE._serialized_start=12370 - _DELETESHARDKEYRESPONSE._serialized_end=12410 + _UPDATECOLLECTION._serialized_end=5799 + _DELETECOLLECTION._serialized_start=5801 + _DELETECOLLECTION._serialized_end=5878 + _COLLECTIONOPERATIONRESPONSE._serialized_start=5880 + _COLLECTIONOPERATIONRESPONSE._serialized_end=5939 + _COLLECTIONPARAMS._serialized_start=5942 + _COLLECTIONPARAMS._serialized_end=6436 + _COLLECTIONPARAMSDIFF._serialized_start=6439 + _COLLECTIONPARAMSDIFF._serialized_end=6693 + _COLLECTIONCONFIG._serialized_start=6696 + _COLLECTIONCONFIG._serialized_end=7068 + _KEYWORDINDEXPARAMS._serialized_start=7070 + _KEYWORDINDEXPARAMS._serialized_end=7162 + _INTEGERINDEXPARAMS._serialized_start=7165 + _INTEGERINDEXPARAMS._serialized_end=7325 + _FLOATINDEXPARAMS._serialized_start=7327 + _FLOATINDEXPARAMS._serialized_end=7423 + _GEOINDEXPARAMS._serialized_start=7425 + _GEOINDEXPARAMS._serialized_end=7475 + _TEXTINDEXPARAMS._serialized_start=7478 + _TEXTINDEXPARAMS._serialized_end=7701 + _BOOLINDEXPARAMS._serialized_start=7703 + _BOOLINDEXPARAMS._serialized_end=7720 + _DATETIMEINDEXPARAMS._serialized_start=7722 + _DATETIMEINDEXPARAMS._serialized_end=7821 + _UUIDINDEXPARAMS._serialized_start=7823 + _UUIDINDEXPARAMS._serialized_end=7912 + _PAYLOADINDEXPARAMS._serialized_start=7915 + _PAYLOADINDEXPARAMS._serialized_end=8403 + _PAYLOADSCHEMAINFO._serialized_start=8406 + _PAYLOADSCHEMAINFO._serialized_end=8563 + _COLLECTIONINFO._serialized_start=8566 + _COLLECTIONINFO._serialized_end=9053 + _COLLECTIONINFO_PAYLOADSCHEMAENTRY._serialized_start=8901 + _COLLECTIONINFO_PAYLOADSCHEMAENTRY._serialized_end=8980 + _CHANGEALIASES._serialized_start=9055 + _CHANGEALIASES._serialized_end=9146 + _ALIASOPERATIONS._serialized_start=9149 + _ALIASOPERATIONS._serialized_end=9311 + _CREATEALIAS._serialized_start=9313 + _CREATEALIAS._serialized_end=9371 + _RENAMEALIAS._serialized_start=9373 + _RENAMEALIAS._serialized_end=9434 + _DELETEALIAS._serialized_start=9436 + _DELETEALIAS._serialized_end=9469 + _LISTALIASESREQUEST._serialized_start=9471 + _LISTALIASESREQUEST._serialized_end=9491 + _LISTCOLLECTIONALIASESREQUEST._serialized_start=9493 + _LISTCOLLECTIONALIASESREQUEST._serialized_end=9548 + _ALIASDESCRIPTION._serialized_start=9550 + _ALIASDESCRIPTION._serialized_end=9613 + _LISTALIASESRESPONSE._serialized_start=9615 + _LISTALIASESRESPONSE._serialized_end=9693 + _COLLECTIONCLUSTERINFOREQUEST._serialized_start=9695 + _COLLECTIONCLUSTERINFOREQUEST._serialized_end=9750 + _SHARDKEY._serialized_start=9752 + _SHARDKEY._serialized_end=9806 + _LOCALSHARDINFO._serialized_start=9809 + _LOCALSHARDINFO._serialized_end=9958 + _REMOTESHARDINFO._serialized_start=9961 + _REMOTESHARDINFO._serialized_end=10106 + _SHARDTRANSFERINFO._serialized_start=10108 + _SHARDTRANSFERINFO._serialized_end=10227 + _RESHARDINGINFO._serialized_start=10229 + _RESHARDINGINFO._serialized_end=10336 + _COLLECTIONCLUSTERINFORESPONSE._serialized_start=10339 + _COLLECTIONCLUSTERINFORESPONSE._serialized_end=10554 + _MOVESHARD._serialized_start=10557 + _MOVESHARD._serialized_end=10731 + _REPLICATESHARD._serialized_start=10734 + _REPLICATESHARD._serialized_end=10913 + _ABORTSHARDTRANSFER._serialized_start=10915 + _ABORTSHARDTRANSFER._serialized_end=11037 + _RESTARTTRANSFER._serialized_start=11040 + _RESTARTTRANSFER._serialized_end=11204 + _REPLICA._serialized_start=11206 + _REPLICA._serialized_end=11250 + _CREATESHARDKEY._serialized_start=11253 + _CREATESHARDKEY._serialized_end=11427 + _DELETESHARDKEY._serialized_start=11429 + _DELETESHARDKEY._serialized_end=11482 + _UPDATECOLLECTIONCLUSTERSETUPREQUEST._serialized_start=11485 + _UPDATECOLLECTIONCLUSTERSETUPREQUEST._serialized_end=11938 + _UPDATECOLLECTIONCLUSTERSETUPRESPONSE._serialized_start=11940 + _UPDATECOLLECTIONCLUSTERSETUPRESPONSE._serialized_end=11994 + _CREATESHARDKEYREQUEST._serialized_start=11996 + _CREATESHARDKEYREQUEST._serialized_end=12119 + _DELETESHARDKEYREQUEST._serialized_start=12121 + _DELETESHARDKEYREQUEST._serialized_end=12244 + _CREATESHARDKEYRESPONSE._serialized_start=12246 + _CREATESHARDKEYRESPONSE._serialized_end=12286 + _DELETESHARDKEYRESPONSE._serialized_start=12288 + _DELETESHARDKEYRESPONSE._serialized_end=12328 # @@protoc_insertion_point(module_scope) diff --git a/qdrant_client/grpc/points_pb2.py b/qdrant_client/grpc/points_pb2.py index 9cd3a81b..bd8ff4dc 100644 --- a/qdrant_client/grpc/points_pb2.py +++ b/qdrant_client/grpc/points_pb2.py @@ -18,7 +18,7 @@ from . import json_with_int_pb2 as json__with__int__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0cpoints.proto\x12\x06qdrant\x1a\x11\x63ollections.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x13json_with_int.proto\"8\n\rWriteOrdering\x12\'\n\x04type\x18\x01 \x01(\x0e\x32\x19.qdrant.WriteOrderingType\"Y\n\x0fReadConsistency\x12+\n\x04type\x18\x01 \x01(\x0e\x32\x1b.qdrant.ReadConsistencyTypeH\x00\x12\x10\n\x06\x66\x61\x63tor\x18\x02 \x01(\x04H\x00\x42\x07\n\x05value\"<\n\x07PointId\x12\r\n\x03num\x18\x01 \x01(\x04H\x00\x12\x0e\n\x04uuid\x18\x02 \x01(\tH\x00\x42\x12\n\x10point_id_options\"\x1d\n\rSparseIndices\x12\x0c\n\x04\x64\x61ta\x18\x01 \x03(\r\"\xa5\x01\n\x08\x44ocument\x12\x0c\n\x04text\x18\x01 \x01(\t\x12\x12\n\x05model\x18\x03 \x01(\tH\x00\x88\x01\x01\x12.\n\x07options\x18\x04 \x03(\x0b\x32\x1d.qdrant.Document.OptionsEntry\x1a=\n\x0cOptionsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x1c\n\x05value\x18\x02 \x01(\x0b\x32\r.qdrant.Value:\x02\x38\x01\x42\x08\n\x06_model\"\xa0\x01\n\x05Image\x12\r\n\x05image\x18\x01 \x01(\t\x12\x12\n\x05model\x18\x02 \x01(\tH\x00\x88\x01\x01\x12+\n\x07options\x18\x03 \x03(\x0b\x32\x1a.qdrant.Image.OptionsEntry\x1a=\n\x0cOptionsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x1c\n\x05value\x18\x02 \x01(\x0b\x32\r.qdrant.Value:\x02\x38\x01\x42\x08\n\x06_model\"\xc4\x01\n\x0fInferenceObject\x12\x1d\n\x06object\x18\x01 \x01(\x0b\x32\r.qdrant.Value\x12\x12\n\x05model\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x35\n\x07options\x18\x03 \x03(\x0b\x32$.qdrant.InferenceObject.OptionsEntry\x1a=\n\x0cOptionsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x1c\n\x05value\x18\x02 \x01(\x0b\x32\r.qdrant.Value:\x02\x38\x01\x42\x08\n\x06_model\"\xf7\x02\n\x06Vector\x12\x0c\n\x04\x64\x61ta\x18\x01 \x03(\x02\x12+\n\x07indices\x18\x02 \x01(\x0b\x32\x15.qdrant.SparseIndicesH\x01\x88\x01\x01\x12\x1a\n\rvectors_count\x18\x03 \x01(\rH\x02\x88\x01\x01\x12$\n\x05\x64\x65nse\x18\x65 \x01(\x0b\x32\x13.qdrant.DenseVectorH\x00\x12&\n\x06sparse\x18\x66 \x01(\x0b\x32\x14.qdrant.SparseVectorH\x00\x12/\n\x0bmulti_dense\x18g \x01(\x0b\x32\x18.qdrant.MultiDenseVectorH\x00\x12$\n\x08\x64ocument\x18h \x01(\x0b\x32\x10.qdrant.DocumentH\x00\x12\x1e\n\x05image\x18i \x01(\x0b\x32\r.qdrant.ImageH\x00\x12)\n\x06object\x18j \x01(\x0b\x32\x17.qdrant.InferenceObjectH\x00\x42\x08\n\x06vectorB\n\n\x08_indicesB\x10\n\x0e_vectors_count\"\x8c\x02\n\x0cVectorOutput\x12\x0c\n\x04\x64\x61ta\x18\x01 \x03(\x02\x12+\n\x07indices\x18\x02 \x01(\x0b\x32\x15.qdrant.SparseIndicesH\x01\x88\x01\x01\x12\x1a\n\rvectors_count\x18\x03 \x01(\rH\x02\x88\x01\x01\x12$\n\x05\x64\x65nse\x18\x65 \x01(\x0b\x32\x13.qdrant.DenseVectorH\x00\x12&\n\x06sparse\x18\x66 \x01(\x0b\x32\x14.qdrant.SparseVectorH\x00\x12/\n\x0bmulti_dense\x18g \x01(\x0b\x32\x18.qdrant.MultiDenseVectorH\x00\x42\x08\n\x06vectorB\n\n\x08_indicesB\x10\n\x0e_vectors_count\"\x1b\n\x0b\x44\x65nseVector\x12\x0c\n\x04\x64\x61ta\x18\x01 \x03(\x02\"/\n\x0cSparseVector\x12\x0e\n\x06values\x18\x01 \x03(\x02\x12\x0f\n\x07indices\x18\x02 \x03(\r\"8\n\x10MultiDenseVector\x12$\n\x07vectors\x18\x01 \x03(\x0b\x32\x13.qdrant.DenseVector\"\xa7\x02\n\x0bVectorInput\x12\x1d\n\x02id\x18\x01 \x01(\x0b\x32\x0f.qdrant.PointIdH\x00\x12$\n\x05\x64\x65nse\x18\x02 \x01(\x0b\x32\x13.qdrant.DenseVectorH\x00\x12&\n\x06sparse\x18\x03 \x01(\x0b\x32\x14.qdrant.SparseVectorH\x00\x12/\n\x0bmulti_dense\x18\x04 \x01(\x0b\x32\x18.qdrant.MultiDenseVectorH\x00\x12$\n\x08\x64ocument\x18\x05 \x01(\x0b\x32\x10.qdrant.DocumentH\x00\x12\x1e\n\x05image\x18\x06 \x01(\x0b\x32\r.qdrant.ImageH\x00\x12)\n\x06object\x18\x07 \x01(\x0b\x32\x17.qdrant.InferenceObjectH\x00\x42\t\n\x07variant\"8\n\x10ShardKeySelector\x12$\n\nshard_keys\x18\x01 \x03(\x0b\x32\x10.qdrant.ShardKey\"\xf5\x01\n\x0cUpsertPoints\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12\x11\n\x04wait\x18\x02 \x01(\x08H\x00\x88\x01\x01\x12#\n\x06points\x18\x03 \x03(\x0b\x32\x13.qdrant.PointStruct\x12,\n\x08ordering\x18\x04 \x01(\x0b\x32\x15.qdrant.WriteOrderingH\x01\x88\x01\x01\x12\x39\n\x12shard_key_selector\x18\x05 \x01(\x0b\x32\x18.qdrant.ShardKeySelectorH\x02\x88\x01\x01\x42\x07\n\x05_waitB\x0b\n\t_orderingB\x15\n\x13_shard_key_selector\"\xf8\x01\n\x0c\x44\x65letePoints\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12\x11\n\x04wait\x18\x02 \x01(\x08H\x00\x88\x01\x01\x12&\n\x06points\x18\x03 \x01(\x0b\x32\x16.qdrant.PointsSelector\x12,\n\x08ordering\x18\x04 \x01(\x0b\x32\x15.qdrant.WriteOrderingH\x01\x88\x01\x01\x12\x39\n\x12shard_key_selector\x18\x05 \x01(\x0b\x32\x18.qdrant.ShardKeySelectorH\x02\x88\x01\x01\x42\x07\n\x05_waitB\x0b\n\t_orderingB\x15\n\x13_shard_key_selector\"\x85\x03\n\tGetPoints\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12\x1c\n\x03ids\x18\x02 \x03(\x0b\x32\x0f.qdrant.PointId\x12\x31\n\x0cwith_payload\x18\x04 \x01(\x0b\x32\x1b.qdrant.WithPayloadSelector\x12\x36\n\x0cwith_vectors\x18\x05 \x01(\x0b\x32\x1b.qdrant.WithVectorsSelectorH\x00\x88\x01\x01\x12\x36\n\x10read_consistency\x18\x06 \x01(\x0b\x32\x17.qdrant.ReadConsistencyH\x01\x88\x01\x01\x12\x39\n\x12shard_key_selector\x18\x07 \x01(\x0b\x32\x18.qdrant.ShardKeySelectorH\x02\x88\x01\x01\x12\x14\n\x07timeout\x18\x08 \x01(\x04H\x03\x88\x01\x01\x42\x0f\n\r_with_vectorsB\x13\n\x11_read_consistencyB\x15\n\x13_shard_key_selectorB\n\n\x08_timeoutJ\x04\x08\x03\x10\x04\"\xfc\x01\n\x12UpdatePointVectors\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12\x11\n\x04wait\x18\x02 \x01(\x08H\x00\x88\x01\x01\x12$\n\x06points\x18\x03 \x03(\x0b\x32\x14.qdrant.PointVectors\x12,\n\x08ordering\x18\x04 \x01(\x0b\x32\x15.qdrant.WriteOrderingH\x01\x88\x01\x01\x12\x39\n\x12shard_key_selector\x18\x05 \x01(\x0b\x32\x18.qdrant.ShardKeySelectorH\x02\x88\x01\x01\x42\x07\n\x05_waitB\x0b\n\t_orderingB\x15\n\x13_shard_key_selector\"M\n\x0cPointVectors\x12\x1b\n\x02id\x18\x01 \x01(\x0b\x32\x0f.qdrant.PointId\x12 \n\x07vectors\x18\x02 \x01(\x0b\x32\x0f.qdrant.Vectors\"\xb1\x02\n\x12\x44\x65letePointVectors\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12\x11\n\x04wait\x18\x02 \x01(\x08H\x00\x88\x01\x01\x12/\n\x0fpoints_selector\x18\x03 \x01(\x0b\x32\x16.qdrant.PointsSelector\x12(\n\x07vectors\x18\x04 \x01(\x0b\x32\x17.qdrant.VectorsSelector\x12,\n\x08ordering\x18\x05 \x01(\x0b\x32\x15.qdrant.WriteOrderingH\x01\x88\x01\x01\x12\x39\n\x12shard_key_selector\x18\x06 \x01(\x0b\x32\x18.qdrant.ShardKeySelectorH\x02\x88\x01\x01\x42\x07\n\x05_waitB\x0b\n\t_orderingB\x15\n\x13_shard_key_selector\"\xb5\x03\n\x10SetPayloadPoints\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12\x11\n\x04wait\x18\x02 \x01(\x08H\x00\x88\x01\x01\x12\x36\n\x07payload\x18\x03 \x03(\x0b\x32%.qdrant.SetPayloadPoints.PayloadEntry\x12\x34\n\x0fpoints_selector\x18\x05 \x01(\x0b\x32\x16.qdrant.PointsSelectorH\x01\x88\x01\x01\x12,\n\x08ordering\x18\x06 \x01(\x0b\x32\x15.qdrant.WriteOrderingH\x02\x88\x01\x01\x12\x39\n\x12shard_key_selector\x18\x07 \x01(\x0b\x32\x18.qdrant.ShardKeySelectorH\x03\x88\x01\x01\x12\x10\n\x03key\x18\x08 \x01(\tH\x04\x88\x01\x01\x1a=\n\x0cPayloadEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x1c\n\x05value\x18\x02 \x01(\x0b\x32\r.qdrant.Value:\x02\x38\x01\x42\x07\n\x05_waitB\x12\n\x10_points_selectorB\x0b\n\t_orderingB\x15\n\x13_shard_key_selectorB\x06\n\x04_keyJ\x04\x08\x04\x10\x05\"\xb5\x02\n\x13\x44\x65letePayloadPoints\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12\x11\n\x04wait\x18\x02 \x01(\x08H\x00\x88\x01\x01\x12\x0c\n\x04keys\x18\x03 \x03(\t\x12\x34\n\x0fpoints_selector\x18\x05 \x01(\x0b\x32\x16.qdrant.PointsSelectorH\x01\x88\x01\x01\x12,\n\x08ordering\x18\x06 \x01(\x0b\x32\x15.qdrant.WriteOrderingH\x02\x88\x01\x01\x12\x39\n\x12shard_key_selector\x18\x07 \x01(\x0b\x32\x18.qdrant.ShardKeySelectorH\x03\x88\x01\x01\x42\x07\n\x05_waitB\x12\n\x10_points_selectorB\x0b\n\t_orderingB\x15\n\x13_shard_key_selectorJ\x04\x08\x04\x10\x05\"\xfe\x01\n\x12\x43learPayloadPoints\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12\x11\n\x04wait\x18\x02 \x01(\x08H\x00\x88\x01\x01\x12&\n\x06points\x18\x03 \x01(\x0b\x32\x16.qdrant.PointsSelector\x12,\n\x08ordering\x18\x04 \x01(\x0b\x32\x15.qdrant.WriteOrderingH\x01\x88\x01\x01\x12\x39\n\x12shard_key_selector\x18\x05 \x01(\x0b\x32\x18.qdrant.ShardKeySelectorH\x02\x88\x01\x01\x42\x07\n\x05_waitB\x0b\n\t_orderingB\x15\n\x13_shard_key_selector\"\xaf\x02\n\x1a\x43reateFieldIndexCollection\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12\x11\n\x04wait\x18\x02 \x01(\x08H\x00\x88\x01\x01\x12\x12\n\nfield_name\x18\x03 \x01(\t\x12*\n\nfield_type\x18\x04 \x01(\x0e\x32\x11.qdrant.FieldTypeH\x01\x88\x01\x01\x12;\n\x12\x66ield_index_params\x18\x05 \x01(\x0b\x32\x1a.qdrant.PayloadIndexParamsH\x02\x88\x01\x01\x12,\n\x08ordering\x18\x06 \x01(\x0b\x32\x15.qdrant.WriteOrderingH\x03\x88\x01\x01\x42\x07\n\x05_waitB\r\n\x0b_field_typeB\x15\n\x13_field_index_paramsB\x0b\n\t_ordering\"\xa0\x01\n\x1a\x44\x65leteFieldIndexCollection\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12\x11\n\x04wait\x18\x02 \x01(\x08H\x00\x88\x01\x01\x12\x12\n\nfield_name\x18\x03 \x01(\t\x12,\n\x08ordering\x18\x04 \x01(\x0b\x32\x15.qdrant.WriteOrderingH\x01\x88\x01\x01\x42\x07\n\x05_waitB\x0b\n\t_ordering\"(\n\x16PayloadIncludeSelector\x12\x0e\n\x06\x66ields\x18\x01 \x03(\t\"(\n\x16PayloadExcludeSelector\x12\x0e\n\x06\x66ields\x18\x01 \x03(\t\"\xa1\x01\n\x13WithPayloadSelector\x12\x10\n\x06\x65nable\x18\x01 \x01(\x08H\x00\x12\x31\n\x07include\x18\x02 \x01(\x0b\x32\x1e.qdrant.PayloadIncludeSelectorH\x00\x12\x31\n\x07\x65xclude\x18\x03 \x01(\x0b\x32\x1e.qdrant.PayloadExcludeSelectorH\x00\x42\x12\n\x10selector_options\"\x82\x01\n\x0cNamedVectors\x12\x32\n\x07vectors\x18\x01 \x03(\x0b\x32!.qdrant.NamedVectors.VectorsEntry\x1a>\n\x0cVectorsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x1d\n\x05value\x18\x02 \x01(\x0b\x32\x0e.qdrant.Vector:\x02\x38\x01\"\x94\x01\n\x12NamedVectorsOutput\x12\x38\n\x07vectors\x18\x01 \x03(\x0b\x32\'.qdrant.NamedVectorsOutput.VectorsEntry\x1a\x44\n\x0cVectorsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12#\n\x05value\x18\x02 \x01(\x0b\x32\x14.qdrant.VectorOutput:\x02\x38\x01\"g\n\x07Vectors\x12 \n\x06vector\x18\x01 \x01(\x0b\x32\x0e.qdrant.VectorH\x00\x12\'\n\x07vectors\x18\x02 \x01(\x0b\x32\x14.qdrant.NamedVectorsH\x00\x42\x11\n\x0fvectors_options\"y\n\rVectorsOutput\x12&\n\x06vector\x18\x01 \x01(\x0b\x32\x14.qdrant.VectorOutputH\x00\x12-\n\x07vectors\x18\x02 \x01(\x0b\x32\x1a.qdrant.NamedVectorsOutputH\x00\x42\x11\n\x0fvectors_options\" \n\x0fVectorsSelector\x12\r\n\x05names\x18\x01 \x03(\t\"g\n\x13WithVectorsSelector\x12\x10\n\x06\x65nable\x18\x01 \x01(\x08H\x00\x12*\n\x07include\x18\x02 \x01(\x0b\x32\x17.qdrant.VectorsSelectorH\x00\x42\x12\n\x10selector_options\"\x88\x01\n\x18QuantizationSearchParams\x12\x13\n\x06ignore\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x14\n\x07rescore\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\x19\n\x0coversampling\x18\x03 \x01(\x01H\x02\x88\x01\x01\x42\t\n\x07_ignoreB\n\n\x08_rescoreB\x0f\n\r_oversampling\"\xc8\x01\n\x0cSearchParams\x12\x14\n\x07hnsw_ef\x18\x01 \x01(\x04H\x00\x88\x01\x01\x12\x12\n\x05\x65xact\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12;\n\x0cquantization\x18\x03 \x01(\x0b\x32 .qdrant.QuantizationSearchParamsH\x02\x88\x01\x01\x12\x19\n\x0cindexed_only\x18\x04 \x01(\x08H\x03\x88\x01\x01\x42\n\n\x08_hnsw_efB\x08\n\x06_exactB\x0f\n\r_quantizationB\x0f\n\r_indexed_only\"\x92\x05\n\x0cSearchPoints\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12\x0e\n\x06vector\x18\x02 \x03(\x02\x12\x1e\n\x06\x66ilter\x18\x03 \x01(\x0b\x32\x0e.qdrant.Filter\x12\r\n\x05limit\x18\x04 \x01(\x04\x12\x31\n\x0cwith_payload\x18\x06 \x01(\x0b\x32\x1b.qdrant.WithPayloadSelector\x12$\n\x06params\x18\x07 \x01(\x0b\x32\x14.qdrant.SearchParams\x12\x1c\n\x0fscore_threshold\x18\x08 \x01(\x02H\x00\x88\x01\x01\x12\x13\n\x06offset\x18\t \x01(\x04H\x01\x88\x01\x01\x12\x18\n\x0bvector_name\x18\n \x01(\tH\x02\x88\x01\x01\x12\x36\n\x0cwith_vectors\x18\x0b \x01(\x0b\x32\x1b.qdrant.WithVectorsSelectorH\x03\x88\x01\x01\x12\x36\n\x10read_consistency\x18\x0c \x01(\x0b\x32\x17.qdrant.ReadConsistencyH\x04\x88\x01\x01\x12\x14\n\x07timeout\x18\r \x01(\x04H\x05\x88\x01\x01\x12\x39\n\x12shard_key_selector\x18\x0e \x01(\x0b\x32\x18.qdrant.ShardKeySelectorH\x06\x88\x01\x01\x12\x32\n\x0esparse_indices\x18\x0f \x01(\x0b\x32\x15.qdrant.SparseIndicesH\x07\x88\x01\x01\x42\x12\n\x10_score_thresholdB\t\n\x07_offsetB\x0e\n\x0c_vector_nameB\x0f\n\r_with_vectorsB\x13\n\x11_read_consistencyB\n\n\x08_timeoutB\x15\n\x13_shard_key_selectorB\x11\n\x0f_sparse_indicesJ\x04\x08\x05\x10\x06\"\xc8\x01\n\x11SearchBatchPoints\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12+\n\rsearch_points\x18\x02 \x03(\x0b\x32\x14.qdrant.SearchPoints\x12\x36\n\x10read_consistency\x18\x03 \x01(\x0b\x32\x17.qdrant.ReadConsistencyH\x00\x88\x01\x01\x12\x14\n\x07timeout\x18\x04 \x01(\x04H\x01\x88\x01\x01\x42\x13\n\x11_read_consistencyB\n\n\x08_timeout\"\xb2\x01\n\nWithLookup\x12\x12\n\ncollection\x18\x01 \x01(\t\x12\x36\n\x0cwith_payload\x18\x02 \x01(\x0b\x32\x1b.qdrant.WithPayloadSelectorH\x00\x88\x01\x01\x12\x36\n\x0cwith_vectors\x18\x03 \x01(\x0b\x32\x1b.qdrant.WithVectorsSelectorH\x01\x88\x01\x01\x42\x0f\n\r_with_payloadB\x0f\n\r_with_vectors\"\xd5\x05\n\x11SearchPointGroups\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12\x0e\n\x06vector\x18\x02 \x03(\x02\x12\x1e\n\x06\x66ilter\x18\x03 \x01(\x0b\x32\x0e.qdrant.Filter\x12\r\n\x05limit\x18\x04 \x01(\r\x12\x31\n\x0cwith_payload\x18\x05 \x01(\x0b\x32\x1b.qdrant.WithPayloadSelector\x12$\n\x06params\x18\x06 \x01(\x0b\x32\x14.qdrant.SearchParams\x12\x1c\n\x0fscore_threshold\x18\x07 \x01(\x02H\x00\x88\x01\x01\x12\x18\n\x0bvector_name\x18\x08 \x01(\tH\x01\x88\x01\x01\x12\x36\n\x0cwith_vectors\x18\t \x01(\x0b\x32\x1b.qdrant.WithVectorsSelectorH\x02\x88\x01\x01\x12\x10\n\x08group_by\x18\n \x01(\t\x12\x12\n\ngroup_size\x18\x0b \x01(\r\x12\x36\n\x10read_consistency\x18\x0c \x01(\x0b\x32\x17.qdrant.ReadConsistencyH\x03\x88\x01\x01\x12,\n\x0bwith_lookup\x18\r \x01(\x0b\x32\x12.qdrant.WithLookupH\x04\x88\x01\x01\x12\x14\n\x07timeout\x18\x0e \x01(\x04H\x05\x88\x01\x01\x12\x39\n\x12shard_key_selector\x18\x0f \x01(\x0b\x32\x18.qdrant.ShardKeySelectorH\x06\x88\x01\x01\x12\x32\n\x0esparse_indices\x18\x10 \x01(\x0b\x32\x15.qdrant.SparseIndicesH\x07\x88\x01\x01\x42\x12\n\x10_score_thresholdB\x0e\n\x0c_vector_nameB\x0f\n\r_with_vectorsB\x13\n\x11_read_consistencyB\x0e\n\x0c_with_lookupB\n\n\x08_timeoutB\x15\n\x13_shard_key_selectorB\x11\n\x0f_sparse_indices\"}\n\tStartFrom\x12\x0f\n\x05\x66loat\x18\x01 \x01(\x01H\x00\x12\x11\n\x07integer\x18\x02 \x01(\x03H\x00\x12/\n\ttimestamp\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00\x12\x12\n\x08\x64\x61tetime\x18\x04 \x01(\tH\x00\x42\x07\n\x05value\"\x8a\x01\n\x07OrderBy\x12\x0b\n\x03key\x18\x01 \x01(\t\x12)\n\tdirection\x18\x02 \x01(\x0e\x32\x11.qdrant.DirectionH\x00\x88\x01\x01\x12*\n\nstart_from\x18\x03 \x01(\x0b\x32\x11.qdrant.StartFromH\x01\x88\x01\x01\x42\x0c\n\n_directionB\r\n\x0b_start_from\"\x8e\x04\n\x0cScrollPoints\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12\x1e\n\x06\x66ilter\x18\x02 \x01(\x0b\x32\x0e.qdrant.Filter\x12$\n\x06offset\x18\x03 \x01(\x0b\x32\x0f.qdrant.PointIdH\x00\x88\x01\x01\x12\x12\n\x05limit\x18\x04 \x01(\rH\x01\x88\x01\x01\x12\x31\n\x0cwith_payload\x18\x06 \x01(\x0b\x32\x1b.qdrant.WithPayloadSelector\x12\x36\n\x0cwith_vectors\x18\x07 \x01(\x0b\x32\x1b.qdrant.WithVectorsSelectorH\x02\x88\x01\x01\x12\x36\n\x10read_consistency\x18\x08 \x01(\x0b\x32\x17.qdrant.ReadConsistencyH\x03\x88\x01\x01\x12\x39\n\x12shard_key_selector\x18\t \x01(\x0b\x32\x18.qdrant.ShardKeySelectorH\x04\x88\x01\x01\x12&\n\x08order_by\x18\n \x01(\x0b\x32\x0f.qdrant.OrderByH\x05\x88\x01\x01\x12\x14\n\x07timeout\x18\x0b \x01(\x04H\x06\x88\x01\x01\x42\t\n\x07_offsetB\x08\n\x06_limitB\x0f\n\r_with_vectorsB\x13\n\x11_read_consistencyB\x15\n\x13_shard_key_selectorB\x0b\n\t_order_byB\n\n\x08_timeoutJ\x04\x08\x05\x10\x06\"\xa5\x01\n\x0eLookupLocation\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12\x18\n\x0bvector_name\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x39\n\x12shard_key_selector\x18\x03 \x01(\x0b\x32\x18.qdrant.ShardKeySelectorH\x01\x88\x01\x01\x42\x0e\n\x0c_vector_nameB\x15\n\x13_shard_key_selector\"\xcd\x06\n\x0fRecommendPoints\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12!\n\x08positive\x18\x02 \x03(\x0b\x32\x0f.qdrant.PointId\x12!\n\x08negative\x18\x03 \x03(\x0b\x32\x0f.qdrant.PointId\x12\x1e\n\x06\x66ilter\x18\x04 \x01(\x0b\x32\x0e.qdrant.Filter\x12\r\n\x05limit\x18\x05 \x01(\x04\x12\x31\n\x0cwith_payload\x18\x07 \x01(\x0b\x32\x1b.qdrant.WithPayloadSelector\x12$\n\x06params\x18\x08 \x01(\x0b\x32\x14.qdrant.SearchParams\x12\x1c\n\x0fscore_threshold\x18\t \x01(\x02H\x00\x88\x01\x01\x12\x13\n\x06offset\x18\n \x01(\x04H\x01\x88\x01\x01\x12\x12\n\x05using\x18\x0b \x01(\tH\x02\x88\x01\x01\x12\x36\n\x0cwith_vectors\x18\x0c \x01(\x0b\x32\x1b.qdrant.WithVectorsSelectorH\x03\x88\x01\x01\x12\x30\n\x0blookup_from\x18\r \x01(\x0b\x32\x16.qdrant.LookupLocationH\x04\x88\x01\x01\x12\x36\n\x10read_consistency\x18\x0e \x01(\x0b\x32\x17.qdrant.ReadConsistencyH\x05\x88\x01\x01\x12\x30\n\x08strategy\x18\x10 \x01(\x0e\x32\x19.qdrant.RecommendStrategyH\x06\x88\x01\x01\x12(\n\x10positive_vectors\x18\x11 \x03(\x0b\x32\x0e.qdrant.Vector\x12(\n\x10negative_vectors\x18\x12 \x03(\x0b\x32\x0e.qdrant.Vector\x12\x14\n\x07timeout\x18\x13 \x01(\x04H\x07\x88\x01\x01\x12\x39\n\x12shard_key_selector\x18\x14 \x01(\x0b\x32\x18.qdrant.ShardKeySelectorH\x08\x88\x01\x01\x42\x12\n\x10_score_thresholdB\t\n\x07_offsetB\x08\n\x06_usingB\x0f\n\r_with_vectorsB\x0e\n\x0c_lookup_fromB\x13\n\x11_read_consistencyB\x0b\n\t_strategyB\n\n\x08_timeoutB\x15\n\x13_shard_key_selectorJ\x04\x08\x06\x10\x07\"\xd1\x01\n\x14RecommendBatchPoints\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12\x31\n\x10recommend_points\x18\x02 \x03(\x0b\x32\x17.qdrant.RecommendPoints\x12\x36\n\x10read_consistency\x18\x03 \x01(\x0b\x32\x17.qdrant.ReadConsistencyH\x00\x88\x01\x01\x12\x14\n\x07timeout\x18\x04 \x01(\x04H\x01\x88\x01\x01\x42\x13\n\x11_read_consistencyB\n\n\x08_timeout\"\x90\x07\n\x14RecommendPointGroups\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12!\n\x08positive\x18\x02 \x03(\x0b\x32\x0f.qdrant.PointId\x12!\n\x08negative\x18\x03 \x03(\x0b\x32\x0f.qdrant.PointId\x12\x1e\n\x06\x66ilter\x18\x04 \x01(\x0b\x32\x0e.qdrant.Filter\x12\r\n\x05limit\x18\x05 \x01(\r\x12\x31\n\x0cwith_payload\x18\x06 \x01(\x0b\x32\x1b.qdrant.WithPayloadSelector\x12$\n\x06params\x18\x07 \x01(\x0b\x32\x14.qdrant.SearchParams\x12\x1c\n\x0fscore_threshold\x18\x08 \x01(\x02H\x00\x88\x01\x01\x12\x12\n\x05using\x18\t \x01(\tH\x01\x88\x01\x01\x12\x36\n\x0cwith_vectors\x18\n \x01(\x0b\x32\x1b.qdrant.WithVectorsSelectorH\x02\x88\x01\x01\x12\x30\n\x0blookup_from\x18\x0b \x01(\x0b\x32\x16.qdrant.LookupLocationH\x03\x88\x01\x01\x12\x10\n\x08group_by\x18\x0c \x01(\t\x12\x12\n\ngroup_size\x18\r \x01(\r\x12\x36\n\x10read_consistency\x18\x0e \x01(\x0b\x32\x17.qdrant.ReadConsistencyH\x04\x88\x01\x01\x12,\n\x0bwith_lookup\x18\x0f \x01(\x0b\x32\x12.qdrant.WithLookupH\x05\x88\x01\x01\x12\x30\n\x08strategy\x18\x11 \x01(\x0e\x32\x19.qdrant.RecommendStrategyH\x06\x88\x01\x01\x12(\n\x10positive_vectors\x18\x12 \x03(\x0b\x32\x0e.qdrant.Vector\x12(\n\x10negative_vectors\x18\x13 \x03(\x0b\x32\x0e.qdrant.Vector\x12\x14\n\x07timeout\x18\x14 \x01(\x04H\x07\x88\x01\x01\x12\x39\n\x12shard_key_selector\x18\x15 \x01(\x0b\x32\x18.qdrant.ShardKeySelectorH\x08\x88\x01\x01\x42\x12\n\x10_score_thresholdB\x08\n\x06_usingB\x0f\n\r_with_vectorsB\x0e\n\x0c_lookup_fromB\x13\n\x11_read_consistencyB\x0e\n\x0c_with_lookupB\x0b\n\t_strategyB\n\n\x08_timeoutB\x15\n\x13_shard_key_selector\"A\n\x0cTargetVector\x12\'\n\x06single\x18\x01 \x01(\x0b\x32\x15.qdrant.VectorExampleH\x00\x42\x08\n\x06target\"[\n\rVectorExample\x12\x1d\n\x02id\x18\x01 \x01(\x0b\x32\x0f.qdrant.PointIdH\x00\x12 \n\x06vector\x18\x02 \x01(\x0b\x32\x0e.qdrant.VectorH\x00\x42\t\n\x07\x65xample\"f\n\x12\x43ontextExamplePair\x12\'\n\x08positive\x18\x01 \x01(\x0b\x32\x15.qdrant.VectorExample\x12\'\n\x08negative\x18\x02 \x01(\x0b\x32\x15.qdrant.VectorExample\"\x8e\x05\n\x0e\x44iscoverPoints\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12$\n\x06target\x18\x02 \x01(\x0b\x32\x14.qdrant.TargetVector\x12+\n\x07\x63ontext\x18\x03 \x03(\x0b\x32\x1a.qdrant.ContextExamplePair\x12\x1e\n\x06\x66ilter\x18\x04 \x01(\x0b\x32\x0e.qdrant.Filter\x12\r\n\x05limit\x18\x05 \x01(\x04\x12\x31\n\x0cwith_payload\x18\x06 \x01(\x0b\x32\x1b.qdrant.WithPayloadSelector\x12$\n\x06params\x18\x07 \x01(\x0b\x32\x14.qdrant.SearchParams\x12\x13\n\x06offset\x18\x08 \x01(\x04H\x00\x88\x01\x01\x12\x12\n\x05using\x18\t \x01(\tH\x01\x88\x01\x01\x12\x36\n\x0cwith_vectors\x18\n \x01(\x0b\x32\x1b.qdrant.WithVectorsSelectorH\x02\x88\x01\x01\x12\x30\n\x0blookup_from\x18\x0b \x01(\x0b\x32\x16.qdrant.LookupLocationH\x03\x88\x01\x01\x12\x36\n\x10read_consistency\x18\x0c \x01(\x0b\x32\x17.qdrant.ReadConsistencyH\x04\x88\x01\x01\x12\x14\n\x07timeout\x18\r \x01(\x04H\x05\x88\x01\x01\x12\x39\n\x12shard_key_selector\x18\x0e \x01(\x0b\x32\x18.qdrant.ShardKeySelectorH\x06\x88\x01\x01\x42\t\n\x07_offsetB\x08\n\x06_usingB\x0f\n\r_with_vectorsB\x0e\n\x0c_lookup_fromB\x13\n\x11_read_consistencyB\n\n\x08_timeoutB\x15\n\x13_shard_key_selector\"\xce\x01\n\x13\x44iscoverBatchPoints\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12/\n\x0f\x64iscover_points\x18\x02 \x03(\x0b\x32\x16.qdrant.DiscoverPoints\x12\x36\n\x10read_consistency\x18\x03 \x01(\x0b\x32\x17.qdrant.ReadConsistencyH\x00\x88\x01\x01\x12\x14\n\x07timeout\x18\x04 \x01(\x04H\x01\x88\x01\x01\x42\x13\n\x11_read_consistencyB\n\n\x08_timeout\"\xa5\x02\n\x0b\x43ountPoints\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12\x1e\n\x06\x66ilter\x18\x02 \x01(\x0b\x32\x0e.qdrant.Filter\x12\x12\n\x05\x65xact\x18\x03 \x01(\x08H\x00\x88\x01\x01\x12\x36\n\x10read_consistency\x18\x04 \x01(\x0b\x32\x17.qdrant.ReadConsistencyH\x01\x88\x01\x01\x12\x39\n\x12shard_key_selector\x18\x05 \x01(\x0b\x32\x18.qdrant.ShardKeySelectorH\x02\x88\x01\x01\x12\x14\n\x07timeout\x18\x06 \x01(\x04H\x03\x88\x01\x01\x42\x08\n\x06_exactB\x13\n\x11_read_consistencyB\x15\n\x13_shard_key_selectorB\n\n\x08_timeout\"\x9d\x01\n\x0eRecommendInput\x12%\n\x08positive\x18\x01 \x03(\x0b\x32\x13.qdrant.VectorInput\x12%\n\x08negative\x18\x02 \x03(\x0b\x32\x13.qdrant.VectorInput\x12\x30\n\x08strategy\x18\x03 \x01(\x0e\x32\x19.qdrant.RecommendStrategyH\x00\x88\x01\x01\x42\x0b\n\t_strategy\"`\n\x10\x43ontextInputPair\x12%\n\x08positive\x18\x01 \x01(\x0b\x32\x13.qdrant.VectorInput\x12%\n\x08negative\x18\x02 \x01(\x0b\x32\x13.qdrant.VectorInput\"[\n\rDiscoverInput\x12#\n\x06target\x18\x01 \x01(\x0b\x32\x13.qdrant.VectorInput\x12%\n\x07\x63ontext\x18\x02 \x01(\x0b\x32\x14.qdrant.ContextInput\"7\n\x0c\x43ontextInput\x12\'\n\x05pairs\x18\x01 \x03(\x0b\x32\x18.qdrant.ContextInputPair\"\xa4\x02\n\x05Query\x12&\n\x07nearest\x18\x01 \x01(\x0b\x32\x13.qdrant.VectorInputH\x00\x12+\n\trecommend\x18\x02 \x01(\x0b\x32\x16.qdrant.RecommendInputH\x00\x12)\n\x08\x64iscover\x18\x03 \x01(\x0b\x32\x15.qdrant.DiscoverInputH\x00\x12\'\n\x07\x63ontext\x18\x04 \x01(\x0b\x32\x14.qdrant.ContextInputH\x00\x12#\n\x08order_by\x18\x05 \x01(\x0b\x32\x0f.qdrant.OrderByH\x00\x12 \n\x06\x66usion\x18\x06 \x01(\x0e\x32\x0e.qdrant.FusionH\x00\x12 \n\x06sample\x18\x07 \x01(\x0e\x32\x0e.qdrant.SampleH\x00\x42\t\n\x07variant\"\xfb\x02\n\rPrefetchQuery\x12\'\n\x08prefetch\x18\x01 \x03(\x0b\x32\x15.qdrant.PrefetchQuery\x12!\n\x05query\x18\x02 \x01(\x0b\x32\r.qdrant.QueryH\x00\x88\x01\x01\x12\x12\n\x05using\x18\x03 \x01(\tH\x01\x88\x01\x01\x12#\n\x06\x66ilter\x18\x04 \x01(\x0b\x32\x0e.qdrant.FilterH\x02\x88\x01\x01\x12)\n\x06params\x18\x05 \x01(\x0b\x32\x14.qdrant.SearchParamsH\x03\x88\x01\x01\x12\x1c\n\x0fscore_threshold\x18\x06 \x01(\x02H\x04\x88\x01\x01\x12\x12\n\x05limit\x18\x07 \x01(\x04H\x05\x88\x01\x01\x12\x30\n\x0blookup_from\x18\x08 \x01(\x0b\x32\x16.qdrant.LookupLocationH\x06\x88\x01\x01\x42\x08\n\x06_queryB\x08\n\x06_usingB\t\n\x07_filterB\t\n\x07_paramsB\x12\n\x10_score_thresholdB\x08\n\x06_limitB\x0e\n\x0c_lookup_from\"\x85\x06\n\x0bQueryPoints\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12\'\n\x08prefetch\x18\x02 \x03(\x0b\x32\x15.qdrant.PrefetchQuery\x12!\n\x05query\x18\x03 \x01(\x0b\x32\r.qdrant.QueryH\x00\x88\x01\x01\x12\x12\n\x05using\x18\x04 \x01(\tH\x01\x88\x01\x01\x12#\n\x06\x66ilter\x18\x05 \x01(\x0b\x32\x0e.qdrant.FilterH\x02\x88\x01\x01\x12)\n\x06params\x18\x06 \x01(\x0b\x32\x14.qdrant.SearchParamsH\x03\x88\x01\x01\x12\x1c\n\x0fscore_threshold\x18\x07 \x01(\x02H\x04\x88\x01\x01\x12\x12\n\x05limit\x18\x08 \x01(\x04H\x05\x88\x01\x01\x12\x13\n\x06offset\x18\t \x01(\x04H\x06\x88\x01\x01\x12\x36\n\x0cwith_vectors\x18\n \x01(\x0b\x32\x1b.qdrant.WithVectorsSelectorH\x07\x88\x01\x01\x12\x36\n\x0cwith_payload\x18\x0b \x01(\x0b\x32\x1b.qdrant.WithPayloadSelectorH\x08\x88\x01\x01\x12\x36\n\x10read_consistency\x18\x0c \x01(\x0b\x32\x17.qdrant.ReadConsistencyH\t\x88\x01\x01\x12\x39\n\x12shard_key_selector\x18\r \x01(\x0b\x32\x18.qdrant.ShardKeySelectorH\n\x88\x01\x01\x12\x30\n\x0blookup_from\x18\x0e \x01(\x0b\x32\x16.qdrant.LookupLocationH\x0b\x88\x01\x01\x12\x14\n\x07timeout\x18\x0f \x01(\x04H\x0c\x88\x01\x01\x42\x08\n\x06_queryB\x08\n\x06_usingB\t\n\x07_filterB\t\n\x07_paramsB\x12\n\x10_score_thresholdB\x08\n\x06_limitB\t\n\x07_offsetB\x0f\n\r_with_vectorsB\x0f\n\r_with_payloadB\x13\n\x11_read_consistencyB\x15\n\x13_shard_key_selectorB\x0e\n\x0c_lookup_fromB\n\n\x08_timeout\"\xc5\x01\n\x10QueryBatchPoints\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12)\n\x0cquery_points\x18\x02 \x03(\x0b\x32\x13.qdrant.QueryPoints\x12\x36\n\x10read_consistency\x18\x03 \x01(\x0b\x32\x17.qdrant.ReadConsistencyH\x00\x88\x01\x01\x12\x14\n\x07timeout\x18\x04 \x01(\x04H\x01\x88\x01\x01\x42\x13\n\x11_read_consistencyB\n\n\x08_timeout\"\xcc\x06\n\x10QueryPointGroups\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12\'\n\x08prefetch\x18\x02 \x03(\x0b\x32\x15.qdrant.PrefetchQuery\x12!\n\x05query\x18\x03 \x01(\x0b\x32\r.qdrant.QueryH\x00\x88\x01\x01\x12\x12\n\x05using\x18\x04 \x01(\tH\x01\x88\x01\x01\x12#\n\x06\x66ilter\x18\x05 \x01(\x0b\x32\x0e.qdrant.FilterH\x02\x88\x01\x01\x12)\n\x06params\x18\x06 \x01(\x0b\x32\x14.qdrant.SearchParamsH\x03\x88\x01\x01\x12\x1c\n\x0fscore_threshold\x18\x07 \x01(\x02H\x04\x88\x01\x01\x12\x31\n\x0cwith_payload\x18\x08 \x01(\x0b\x32\x1b.qdrant.WithPayloadSelector\x12\x36\n\x0cwith_vectors\x18\t \x01(\x0b\x32\x1b.qdrant.WithVectorsSelectorH\x05\x88\x01\x01\x12\x30\n\x0blookup_from\x18\n \x01(\x0b\x32\x16.qdrant.LookupLocationH\x06\x88\x01\x01\x12\x12\n\x05limit\x18\x0b \x01(\x04H\x07\x88\x01\x01\x12\x17\n\ngroup_size\x18\x0c \x01(\x04H\x08\x88\x01\x01\x12\x10\n\x08group_by\x18\r \x01(\t\x12\x36\n\x10read_consistency\x18\x0e \x01(\x0b\x32\x17.qdrant.ReadConsistencyH\t\x88\x01\x01\x12,\n\x0bwith_lookup\x18\x0f \x01(\x0b\x32\x12.qdrant.WithLookupH\n\x88\x01\x01\x12\x14\n\x07timeout\x18\x10 \x01(\x04H\x0b\x88\x01\x01\x12\x39\n\x12shard_key_selector\x18\x11 \x01(\x0b\x32\x18.qdrant.ShardKeySelectorH\x0c\x88\x01\x01\x42\x08\n\x06_queryB\x08\n\x06_usingB\t\n\x07_filterB\t\n\x07_paramsB\x12\n\x10_score_thresholdB\x0f\n\r_with_vectorsB\x0e\n\x0c_lookup_fromB\x08\n\x06_limitB\r\n\x0b_group_sizeB\x13\n\x11_read_consistencyB\x0e\n\x0c_with_lookupB\n\n\x08_timeoutB\x15\n\x13_shard_key_selector\"\xe0\x02\n\x0b\x46\x61\x63\x65tCounts\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12\x0b\n\x03key\x18\x02 \x01(\t\x12#\n\x06\x66ilter\x18\x03 \x01(\x0b\x32\x0e.qdrant.FilterH\x00\x88\x01\x01\x12\x12\n\x05limit\x18\x04 \x01(\x04H\x01\x88\x01\x01\x12\x12\n\x05\x65xact\x18\x05 \x01(\x08H\x02\x88\x01\x01\x12\x14\n\x07timeout\x18\x06 \x01(\x04H\x03\x88\x01\x01\x12\x36\n\x10read_consistency\x18\x07 \x01(\x0b\x32\x17.qdrant.ReadConsistencyH\x04\x88\x01\x01\x12\x39\n\x12shard_key_selector\x18\x08 \x01(\x0b\x32\x18.qdrant.ShardKeySelectorH\x05\x88\x01\x01\x42\t\n\x07_filterB\x08\n\x06_limitB\x08\n\x06_exactB\n\n\x08_timeoutB\x13\n\x11_read_consistencyB\x15\n\x13_shard_key_selector\"^\n\nFacetValue\x12\x16\n\x0cstring_value\x18\x01 \x01(\tH\x00\x12\x17\n\rinteger_value\x18\x02 \x01(\x03H\x00\x12\x14\n\nbool_value\x18\x03 \x01(\x08H\x00\x42\t\n\x07variant\"<\n\x08\x46\x61\x63\x65tHit\x12!\n\x05value\x18\x01 \x01(\x0b\x32\x12.qdrant.FacetValue\x12\r\n\x05\x63ount\x18\x02 \x01(\x04\"\xfa\x02\n\x12SearchMatrixPoints\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12#\n\x06\x66ilter\x18\x02 \x01(\x0b\x32\x0e.qdrant.FilterH\x00\x88\x01\x01\x12\x13\n\x06sample\x18\x03 \x01(\x04H\x01\x88\x01\x01\x12\x12\n\x05limit\x18\x04 \x01(\x04H\x02\x88\x01\x01\x12\x12\n\x05using\x18\x05 \x01(\tH\x03\x88\x01\x01\x12\x14\n\x07timeout\x18\x06 \x01(\x04H\x04\x88\x01\x01\x12\x36\n\x10read_consistency\x18\x07 \x01(\x0b\x32\x17.qdrant.ReadConsistencyH\x05\x88\x01\x01\x12\x39\n\x12shard_key_selector\x18\x08 \x01(\x0b\x32\x18.qdrant.ShardKeySelectorH\x06\x88\x01\x01\x42\t\n\x07_filterB\t\n\x07_sampleB\x08\n\x06_limitB\x08\n\x06_usingB\n\n\x08_timeoutB\x13\n\x11_read_consistencyB\x15\n\x13_shard_key_selector\"<\n\x11SearchMatrixPairs\x12\'\n\x05pairs\x18\x01 \x03(\x0b\x32\x18.qdrant.SearchMatrixPair\"Y\n\x10SearchMatrixPair\x12\x1a\n\x01\x61\x18\x01 \x01(\x0b\x32\x0f.qdrant.PointId\x12\x1a\n\x01\x62\x18\x02 \x01(\x0b\x32\x0f.qdrant.PointId\x12\r\n\x05score\x18\x03 \x01(\x02\"m\n\x13SearchMatrixOffsets\x12\x13\n\x0boffsets_row\x18\x01 \x03(\x04\x12\x13\n\x0boffsets_col\x18\x02 \x03(\x04\x12\x0e\n\x06scores\x18\x03 \x03(\x02\x12\x1c\n\x03ids\x18\x04 \x03(\x0b\x32\x0f.qdrant.PointId\"\x95\x12\n\x15PointsUpdateOperation\x12?\n\x06upsert\x18\x01 \x01(\x0b\x32-.qdrant.PointsUpdateOperation.PointStructListH\x00\x12\x37\n\x11\x64\x65lete_deprecated\x18\x02 \x01(\x0b\x32\x16.qdrant.PointsSelectorB\x02\x18\x01H\x00\x12?\n\x0bset_payload\x18\x03 \x01(\x0b\x32(.qdrant.PointsUpdateOperation.SetPayloadH\x00\x12K\n\x11overwrite_payload\x18\x04 \x01(\x0b\x32..qdrant.PointsUpdateOperation.OverwritePayloadH\x00\x12\x45\n\x0e\x64\x65lete_payload\x18\x05 \x01(\x0b\x32+.qdrant.PointsUpdateOperation.DeletePayloadH\x00\x12>\n\x18\x63lear_payload_deprecated\x18\x06 \x01(\x0b\x32\x16.qdrant.PointsSelectorB\x02\x18\x01H\x00\x12\x45\n\x0eupdate_vectors\x18\x07 \x01(\x0b\x32+.qdrant.PointsUpdateOperation.UpdateVectorsH\x00\x12\x45\n\x0e\x64\x65lete_vectors\x18\x08 \x01(\x0b\x32+.qdrant.PointsUpdateOperation.DeleteVectorsH\x00\x12\x43\n\rdelete_points\x18\t \x01(\x0b\x32*.qdrant.PointsUpdateOperation.DeletePointsH\x00\x12\x43\n\rclear_payload\x18\n \x01(\x0b\x32*.qdrant.PointsUpdateOperation.ClearPayloadH\x00\x1a\x88\x01\n\x0fPointStructList\x12#\n\x06points\x18\x01 \x03(\x0b\x32\x13.qdrant.PointStruct\x12\x39\n\x12shard_key_selector\x18\x02 \x01(\x0b\x32\x18.qdrant.ShardKeySelectorH\x00\x88\x01\x01\x42\x15\n\x13_shard_key_selector\x1a\xc9\x02\n\nSetPayload\x12\x46\n\x07payload\x18\x01 \x03(\x0b\x32\x35.qdrant.PointsUpdateOperation.SetPayload.PayloadEntry\x12\x34\n\x0fpoints_selector\x18\x02 \x01(\x0b\x32\x16.qdrant.PointsSelectorH\x00\x88\x01\x01\x12\x39\n\x12shard_key_selector\x18\x03 \x01(\x0b\x32\x18.qdrant.ShardKeySelectorH\x01\x88\x01\x01\x12\x10\n\x03key\x18\x04 \x01(\tH\x02\x88\x01\x01\x1a=\n\x0cPayloadEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x1c\n\x05value\x18\x02 \x01(\x0b\x32\r.qdrant.Value:\x02\x38\x01\x42\x12\n\x10_points_selectorB\x15\n\x13_shard_key_selectorB\x06\n\x04_key\x1a\xd5\x02\n\x10OverwritePayload\x12L\n\x07payload\x18\x01 \x03(\x0b\x32;.qdrant.PointsUpdateOperation.OverwritePayload.PayloadEntry\x12\x34\n\x0fpoints_selector\x18\x02 \x01(\x0b\x32\x16.qdrant.PointsSelectorH\x00\x88\x01\x01\x12\x39\n\x12shard_key_selector\x18\x03 \x01(\x0b\x32\x18.qdrant.ShardKeySelectorH\x01\x88\x01\x01\x12\x10\n\x03key\x18\x04 \x01(\tH\x02\x88\x01\x01\x1a=\n\x0cPayloadEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x1c\n\x05value\x18\x02 \x01(\x0b\x32\r.qdrant.Value:\x02\x38\x01\x42\x12\n\x10_points_selectorB\x15\n\x13_shard_key_selectorB\x06\n\x04_key\x1a\xb9\x01\n\rDeletePayload\x12\x0c\n\x04keys\x18\x01 \x03(\t\x12\x34\n\x0fpoints_selector\x18\x02 \x01(\x0b\x32\x16.qdrant.PointsSelectorH\x00\x88\x01\x01\x12\x39\n\x12shard_key_selector\x18\x03 \x01(\x0b\x32\x18.qdrant.ShardKeySelectorH\x01\x88\x01\x01\x42\x12\n\x10_points_selectorB\x15\n\x13_shard_key_selector\x1a\x87\x01\n\rUpdateVectors\x12$\n\x06points\x18\x01 \x03(\x0b\x32\x14.qdrant.PointVectors\x12\x39\n\x12shard_key_selector\x18\x02 \x01(\x0b\x32\x18.qdrant.ShardKeySelectorH\x00\x88\x01\x01\x42\x15\n\x13_shard_key_selector\x1a\xbc\x01\n\rDeleteVectors\x12/\n\x0fpoints_selector\x18\x01 \x01(\x0b\x32\x16.qdrant.PointsSelector\x12(\n\x07vectors\x18\x02 \x01(\x0b\x32\x17.qdrant.VectorsSelector\x12\x39\n\x12shard_key_selector\x18\x03 \x01(\x0b\x32\x18.qdrant.ShardKeySelectorH\x00\x88\x01\x01\x42\x15\n\x13_shard_key_selector\x1a\x88\x01\n\x0c\x44\x65letePoints\x12&\n\x06points\x18\x01 \x01(\x0b\x32\x16.qdrant.PointsSelector\x12\x39\n\x12shard_key_selector\x18\x02 \x01(\x0b\x32\x18.qdrant.ShardKeySelectorH\x00\x88\x01\x01\x42\x15\n\x13_shard_key_selector\x1a\x88\x01\n\x0c\x43learPayload\x12&\n\x06points\x18\x01 \x01(\x0b\x32\x16.qdrant.PointsSelector\x12\x39\n\x12shard_key_selector\x18\x02 \x01(\x0b\x32\x18.qdrant.ShardKeySelectorH\x00\x88\x01\x01\x42\x15\n\x13_shard_key_selectorB\x0b\n\toperation\"\xb6\x01\n\x11UpdateBatchPoints\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12\x11\n\x04wait\x18\x02 \x01(\x08H\x00\x88\x01\x01\x12\x31\n\noperations\x18\x03 \x03(\x0b\x32\x1d.qdrant.PointsUpdateOperation\x12,\n\x08ordering\x18\x04 \x01(\x0b\x32\x15.qdrant.WriteOrderingH\x01\x88\x01\x01\x42\x07\n\x05_waitB\x0b\n\t_ordering\"M\n\x17PointsOperationResponse\x12$\n\x06result\x18\x01 \x01(\x0b\x32\x14.qdrant.UpdateResult\x12\x0c\n\x04time\x18\x02 \x01(\x01\"`\n\x0cUpdateResult\x12\x19\n\x0coperation_id\x18\x01 \x01(\x04H\x00\x88\x01\x01\x12$\n\x06status\x18\x02 \x01(\x0e\x32\x14.qdrant.UpdateStatusB\x0f\n\r_operation_id\"7\n\nOrderValue\x12\r\n\x03int\x18\x01 \x01(\x03H\x00\x12\x0f\n\x05\x66loat\x18\x02 \x01(\x01H\x00\x42\t\n\x07variant\"\xf1\x02\n\x0bScoredPoint\x12\x1b\n\x02id\x18\x01 \x01(\x0b\x32\x0f.qdrant.PointId\x12\x31\n\x07payload\x18\x02 \x03(\x0b\x32 .qdrant.ScoredPoint.PayloadEntry\x12\r\n\x05score\x18\x03 \x01(\x02\x12\x0f\n\x07version\x18\x05 \x01(\x04\x12+\n\x07vectors\x18\x06 \x01(\x0b\x32\x15.qdrant.VectorsOutputH\x00\x88\x01\x01\x12(\n\tshard_key\x18\x07 \x01(\x0b\x32\x10.qdrant.ShardKeyH\x01\x88\x01\x01\x12,\n\x0border_value\x18\x08 \x01(\x0b\x32\x12.qdrant.OrderValueH\x02\x88\x01\x01\x1a=\n\x0cPayloadEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x1c\n\x05value\x18\x02 \x01(\x0b\x32\r.qdrant.Value:\x02\x38\x01\x42\n\n\x08_vectorsB\x0c\n\n_shard_keyB\x0e\n\x0c_order_valueJ\x04\x08\x04\x10\x05\"\\\n\x07GroupId\x12\x18\n\x0eunsigned_value\x18\x01 \x01(\x04H\x00\x12\x17\n\rinteger_value\x18\x02 \x01(\x03H\x00\x12\x16\n\x0cstring_value\x18\x03 \x01(\tH\x00\x42\x06\n\x04kind\"t\n\nPointGroup\x12\x1b\n\x02id\x18\x01 \x01(\x0b\x32\x0f.qdrant.GroupId\x12!\n\x04hits\x18\x02 \x03(\x0b\x32\x13.qdrant.ScoredPoint\x12&\n\x06lookup\x18\x03 \x01(\x0b\x32\x16.qdrant.RetrievedPoint\"2\n\x0cGroupsResult\x12\"\n\x06groups\x18\x01 \x03(\x0b\x32\x12.qdrant.PointGroup\"C\n\x0eSearchResponse\x12#\n\x06result\x18\x01 \x03(\x0b\x32\x13.qdrant.ScoredPoint\x12\x0c\n\x04time\x18\x02 \x01(\x01\"B\n\rQueryResponse\x12#\n\x06result\x18\x01 \x03(\x0b\x32\x13.qdrant.ScoredPoint\x12\x0c\n\x04time\x18\x02 \x01(\x01\"G\n\x12QueryBatchResponse\x12#\n\x06result\x18\x01 \x03(\x0b\x32\x13.qdrant.BatchResult\x12\x0c\n\x04time\x18\x02 \x01(\x01\"I\n\x13QueryGroupsResponse\x12$\n\x06result\x18\x01 \x01(\x0b\x32\x14.qdrant.GroupsResult\x12\x0c\n\x04time\x18\x02 \x01(\x01\"2\n\x0b\x42\x61tchResult\x12#\n\x06result\x18\x01 \x03(\x0b\x32\x13.qdrant.ScoredPoint\"H\n\x13SearchBatchResponse\x12#\n\x06result\x18\x01 \x03(\x0b\x32\x13.qdrant.BatchResult\x12\x0c\n\x04time\x18\x02 \x01(\x01\"J\n\x14SearchGroupsResponse\x12$\n\x06result\x18\x01 \x01(\x0b\x32\x14.qdrant.GroupsResult\x12\x0c\n\x04time\x18\x02 \x01(\x01\"B\n\rCountResponse\x12#\n\x06result\x18\x01 \x01(\x0b\x32\x13.qdrant.CountResult\x12\x0c\n\x04time\x18\x02 \x01(\x01\"\x8b\x01\n\x0eScrollResponse\x12.\n\x10next_page_offset\x18\x01 \x01(\x0b\x32\x0f.qdrant.PointIdH\x00\x88\x01\x01\x12&\n\x06result\x18\x02 \x03(\x0b\x32\x16.qdrant.RetrievedPoint\x12\x0c\n\x04time\x18\x03 \x01(\x01\x42\x13\n\x11_next_page_offset\"\x1c\n\x0b\x43ountResult\x12\r\n\x05\x63ount\x18\x01 \x01(\x04\"\xd7\x02\n\x0eRetrievedPoint\x12\x1b\n\x02id\x18\x01 \x01(\x0b\x32\x0f.qdrant.PointId\x12\x34\n\x07payload\x18\x02 \x03(\x0b\x32#.qdrant.RetrievedPoint.PayloadEntry\x12+\n\x07vectors\x18\x04 \x01(\x0b\x32\x15.qdrant.VectorsOutputH\x00\x88\x01\x01\x12(\n\tshard_key\x18\x05 \x01(\x0b\x32\x10.qdrant.ShardKeyH\x01\x88\x01\x01\x12,\n\x0border_value\x18\x06 \x01(\x0b\x32\x12.qdrant.OrderValueH\x02\x88\x01\x01\x1a=\n\x0cPayloadEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x1c\n\x05value\x18\x02 \x01(\x0b\x32\r.qdrant.Value:\x02\x38\x01\x42\n\n\x08_vectorsB\x0c\n\n_shard_keyB\x0e\n\x0c_order_valueJ\x04\x08\x03\x10\x04\"C\n\x0bGetResponse\x12&\n\x06result\x18\x01 \x03(\x0b\x32\x16.qdrant.RetrievedPoint\x12\x0c\n\x04time\x18\x02 \x01(\x01\"F\n\x11RecommendResponse\x12#\n\x06result\x18\x01 \x03(\x0b\x32\x13.qdrant.ScoredPoint\x12\x0c\n\x04time\x18\x02 \x01(\x01\"K\n\x16RecommendBatchResponse\x12#\n\x06result\x18\x01 \x03(\x0b\x32\x13.qdrant.BatchResult\x12\x0c\n\x04time\x18\x02 \x01(\x01\"E\n\x10\x44iscoverResponse\x12#\n\x06result\x18\x01 \x03(\x0b\x32\x13.qdrant.ScoredPoint\x12\x0c\n\x04time\x18\x02 \x01(\x01\"J\n\x15\x44iscoverBatchResponse\x12#\n\x06result\x18\x01 \x03(\x0b\x32\x13.qdrant.BatchResult\x12\x0c\n\x04time\x18\x02 \x01(\x01\"M\n\x17RecommendGroupsResponse\x12$\n\x06result\x18\x01 \x01(\x0b\x32\x14.qdrant.GroupsResult\x12\x0c\n\x04time\x18\x02 \x01(\x01\"I\n\x13UpdateBatchResponse\x12$\n\x06result\x18\x01 \x03(\x0b\x32\x14.qdrant.UpdateResult\x12\x0c\n\x04time\x18\x02 \x01(\x01\"=\n\rFacetResponse\x12\x1e\n\x04hits\x18\x01 \x03(\x0b\x32\x10.qdrant.FacetHit\x12\x0c\n\x04time\x18\x02 \x01(\x01\"T\n\x19SearchMatrixPairsResponse\x12)\n\x06result\x18\x01 \x01(\x0b\x32\x19.qdrant.SearchMatrixPairs\x12\x0c\n\x04time\x18\x02 \x01(\x01\"X\n\x1bSearchMatrixOffsetsResponse\x12+\n\x06result\x18\x01 \x01(\x0b\x32\x1b.qdrant.SearchMatrixOffsets\x12\x0c\n\x04time\x18\x02 \x01(\x01\"\xac\x01\n\x06\x46ilter\x12!\n\x06should\x18\x01 \x03(\x0b\x32\x11.qdrant.Condition\x12\x1f\n\x04must\x18\x02 \x03(\x0b\x32\x11.qdrant.Condition\x12#\n\x08must_not\x18\x03 \x03(\x0b\x32\x11.qdrant.Condition\x12*\n\nmin_should\x18\x04 \x01(\x0b\x32\x11.qdrant.MinShouldH\x00\x88\x01\x01\x42\r\n\x0b_min_should\"E\n\tMinShould\x12%\n\nconditions\x18\x01 \x03(\x0b\x32\x11.qdrant.Condition\x12\x11\n\tmin_count\x18\x02 \x01(\x04\"\xcb\x02\n\tCondition\x12\'\n\x05\x66ield\x18\x01 \x01(\x0b\x32\x16.qdrant.FieldConditionH\x00\x12,\n\x08is_empty\x18\x02 \x01(\x0b\x32\x18.qdrant.IsEmptyConditionH\x00\x12(\n\x06has_id\x18\x03 \x01(\x0b\x32\x16.qdrant.HasIdConditionH\x00\x12 \n\x06\x66ilter\x18\x04 \x01(\x0b\x32\x0e.qdrant.FilterH\x00\x12*\n\x07is_null\x18\x05 \x01(\x0b\x32\x17.qdrant.IsNullConditionH\x00\x12)\n\x06nested\x18\x06 \x01(\x0b\x32\x17.qdrant.NestedConditionH\x00\x12\x30\n\nhas_vector\x18\x07 \x01(\x0b\x32\x1a.qdrant.HasVectorConditionH\x00\x42\x12\n\x10\x63ondition_one_of\"\x1f\n\x10IsEmptyCondition\x12\x0b\n\x03key\x18\x01 \x01(\t\"\x1e\n\x0fIsNullCondition\x12\x0b\n\x03key\x18\x01 \x01(\t\"1\n\x0eHasIdCondition\x12\x1f\n\x06has_id\x18\x01 \x03(\x0b\x32\x0f.qdrant.PointId\"(\n\x12HasVectorCondition\x12\x12\n\nhas_vector\x18\x01 \x01(\t\">\n\x0fNestedCondition\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x1e\n\x06\x66ilter\x18\x02 \x01(\x0b\x32\x0e.qdrant.Filter\"\xb5\x02\n\x0e\x46ieldCondition\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x1c\n\x05match\x18\x02 \x01(\x0b\x32\r.qdrant.Match\x12\x1c\n\x05range\x18\x03 \x01(\x0b\x32\r.qdrant.Range\x12\x30\n\x10geo_bounding_box\x18\x04 \x01(\x0b\x32\x16.qdrant.GeoBoundingBox\x12%\n\ngeo_radius\x18\x05 \x01(\x0b\x32\x11.qdrant.GeoRadius\x12)\n\x0cvalues_count\x18\x06 \x01(\x0b\x32\x13.qdrant.ValuesCount\x12\'\n\x0bgeo_polygon\x18\x07 \x01(\x0b\x32\x12.qdrant.GeoPolygon\x12-\n\x0e\x64\x61tetime_range\x18\x08 \x01(\x0b\x32\x15.qdrant.DatetimeRange\"\xa3\x02\n\x05Match\x12\x11\n\x07keyword\x18\x01 \x01(\tH\x00\x12\x11\n\x07integer\x18\x02 \x01(\x03H\x00\x12\x11\n\x07\x62oolean\x18\x03 \x01(\x08H\x00\x12\x0e\n\x04text\x18\x04 \x01(\tH\x00\x12+\n\x08keywords\x18\x05 \x01(\x0b\x32\x17.qdrant.RepeatedStringsH\x00\x12,\n\x08integers\x18\x06 \x01(\x0b\x32\x18.qdrant.RepeatedIntegersH\x00\x12\x33\n\x0f\x65xcept_integers\x18\x07 \x01(\x0b\x32\x18.qdrant.RepeatedIntegersH\x00\x12\x32\n\x0f\x65xcept_keywords\x18\x08 \x01(\x0b\x32\x17.qdrant.RepeatedStringsH\x00\x42\r\n\x0bmatch_value\"\"\n\x0fRepeatedStrings\x12\x0f\n\x07strings\x18\x01 \x03(\t\"$\n\x10RepeatedIntegers\x12\x10\n\x08integers\x18\x01 \x03(\x03\"k\n\x05Range\x12\x0f\n\x02lt\x18\x01 \x01(\x01H\x00\x88\x01\x01\x12\x0f\n\x02gt\x18\x02 \x01(\x01H\x01\x88\x01\x01\x12\x10\n\x03gte\x18\x03 \x01(\x01H\x02\x88\x01\x01\x12\x10\n\x03lte\x18\x04 \x01(\x01H\x03\x88\x01\x01\x42\x05\n\x03_ltB\x05\n\x03_gtB\x06\n\x04_gteB\x06\n\x04_lte\"\xe3\x01\n\rDatetimeRange\x12+\n\x02lt\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00\x88\x01\x01\x12+\n\x02gt\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x01\x88\x01\x01\x12,\n\x03gte\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x02\x88\x01\x01\x12,\n\x03lte\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x03\x88\x01\x01\x42\x05\n\x03_ltB\x05\n\x03_gtB\x06\n\x04_gteB\x06\n\x04_lte\"\\\n\x0eGeoBoundingBox\x12\"\n\x08top_left\x18\x01 \x01(\x0b\x32\x10.qdrant.GeoPoint\x12&\n\x0c\x62ottom_right\x18\x02 \x01(\x0b\x32\x10.qdrant.GeoPoint\"=\n\tGeoRadius\x12 \n\x06\x63\x65nter\x18\x01 \x01(\x0b\x32\x10.qdrant.GeoPoint\x12\x0e\n\x06radius\x18\x02 \x01(\x02\"1\n\rGeoLineString\x12 \n\x06points\x18\x01 \x03(\x0b\x32\x10.qdrant.GeoPoint\"_\n\nGeoPolygon\x12\'\n\x08\x65xterior\x18\x01 \x01(\x0b\x32\x15.qdrant.GeoLineString\x12(\n\tinteriors\x18\x02 \x03(\x0b\x32\x15.qdrant.GeoLineString\"q\n\x0bValuesCount\x12\x0f\n\x02lt\x18\x01 \x01(\x04H\x00\x88\x01\x01\x12\x0f\n\x02gt\x18\x02 \x01(\x04H\x01\x88\x01\x01\x12\x10\n\x03gte\x18\x03 \x01(\x04H\x02\x88\x01\x01\x12\x10\n\x03lte\x18\x04 \x01(\x04H\x03\x88\x01\x01\x42\x05\n\x03_ltB\x05\n\x03_gtB\x06\n\x04_gteB\x06\n\x04_lte\"u\n\x0ePointsSelector\x12\'\n\x06points\x18\x01 \x01(\x0b\x32\x15.qdrant.PointsIdsListH\x00\x12 \n\x06\x66ilter\x18\x02 \x01(\x0b\x32\x0e.qdrant.FilterH\x00\x42\x18\n\x16points_selector_one_of\"-\n\rPointsIdsList\x12\x1c\n\x03ids\x18\x01 \x03(\x0b\x32\x0f.qdrant.PointId\"\xd5\x01\n\x0bPointStruct\x12\x1b\n\x02id\x18\x01 \x01(\x0b\x32\x0f.qdrant.PointId\x12\x31\n\x07payload\x18\x03 \x03(\x0b\x32 .qdrant.PointStruct.PayloadEntry\x12%\n\x07vectors\x18\x04 \x01(\x0b\x32\x0f.qdrant.VectorsH\x00\x88\x01\x01\x1a=\n\x0cPayloadEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x1c\n\x05value\x18\x02 \x01(\x0b\x32\r.qdrant.Value:\x02\x38\x01\x42\n\n\x08_vectorsJ\x04\x08\x02\x10\x03\"$\n\x08GeoPoint\x12\x0b\n\x03lon\x18\x01 \x01(\x01\x12\x0b\n\x03lat\x18\x02 \x01(\x01*5\n\x11WriteOrderingType\x12\x08\n\x04Weak\x10\x00\x12\n\n\x06Medium\x10\x01\x12\n\n\x06Strong\x10\x02*8\n\x13ReadConsistencyType\x12\x07\n\x03\x41ll\x10\x00\x12\x0c\n\x08Majority\x10\x01\x12\n\n\x06Quorum\x10\x02*\xad\x01\n\tFieldType\x12\x14\n\x10\x46ieldTypeKeyword\x10\x00\x12\x14\n\x10\x46ieldTypeInteger\x10\x01\x12\x12\n\x0e\x46ieldTypeFloat\x10\x02\x12\x10\n\x0c\x46ieldTypeGeo\x10\x03\x12\x11\n\rFieldTypeText\x10\x04\x12\x11\n\rFieldTypeBool\x10\x05\x12\x15\n\x11\x46ieldTypeDatetime\x10\x06\x12\x11\n\rFieldTypeUuid\x10\x07*\x1e\n\tDirection\x12\x07\n\x03\x41sc\x10\x00\x12\x08\n\x04\x44\x65sc\x10\x01*5\n\x11RecommendStrategy\x12\x11\n\rAverageVector\x10\x00\x12\r\n\tBestScore\x10\x01*\x1b\n\x06\x46usion\x12\x07\n\x03RRF\x10\x00\x12\x08\n\x04\x44\x42SF\x10\x01*\x14\n\x06Sample\x12\n\n\x06Random\x10\x00*[\n\x0cUpdateStatus\x12\x17\n\x13UnknownUpdateStatus\x10\x00\x12\x10\n\x0c\x41\x63knowledged\x10\x01\x12\r\n\tCompleted\x10\x02\x12\x11\n\rClockRejected\x10\x03\x42\x15\xaa\x02\x12Qdrant.Client.Grpcb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0cpoints.proto\x12\x06qdrant\x1a\x11\x63ollections.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x13json_with_int.proto\"8\n\rWriteOrdering\x12\'\n\x04type\x18\x01 \x01(\x0e\x32\x19.qdrant.WriteOrderingType\"Y\n\x0fReadConsistency\x12+\n\x04type\x18\x01 \x01(\x0e\x32\x1b.qdrant.ReadConsistencyTypeH\x00\x12\x10\n\x06\x66\x61\x63tor\x18\x02 \x01(\x04H\x00\x42\x07\n\x05value\"<\n\x07PointId\x12\r\n\x03num\x18\x01 \x01(\x04H\x00\x12\x0e\n\x04uuid\x18\x02 \x01(\tH\x00\x42\x12\n\x10point_id_options\"\x1d\n\rSparseIndices\x12\x0c\n\x04\x64\x61ta\x18\x01 \x03(\r\"\xa5\x01\n\x08\x44ocument\x12\x0c\n\x04text\x18\x01 \x01(\t\x12\x12\n\x05model\x18\x03 \x01(\tH\x00\x88\x01\x01\x12.\n\x07options\x18\x04 \x03(\x0b\x32\x1d.qdrant.Document.OptionsEntry\x1a=\n\x0cOptionsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x1c\n\x05value\x18\x02 \x01(\x0b\x32\r.qdrant.Value:\x02\x38\x01\x42\x08\n\x06_model\"\xa0\x01\n\x05Image\x12\r\n\x05image\x18\x01 \x01(\t\x12\x12\n\x05model\x18\x02 \x01(\tH\x00\x88\x01\x01\x12+\n\x07options\x18\x03 \x03(\x0b\x32\x1a.qdrant.Image.OptionsEntry\x1a=\n\x0cOptionsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x1c\n\x05value\x18\x02 \x01(\x0b\x32\r.qdrant.Value:\x02\x38\x01\x42\x08\n\x06_model\"\xc4\x01\n\x0fInferenceObject\x12\x1d\n\x06object\x18\x01 \x01(\x0b\x32\r.qdrant.Value\x12\x12\n\x05model\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x35\n\x07options\x18\x03 \x03(\x0b\x32$.qdrant.InferenceObject.OptionsEntry\x1a=\n\x0cOptionsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x1c\n\x05value\x18\x02 \x01(\x0b\x32\r.qdrant.Value:\x02\x38\x01\x42\x08\n\x06_model\"\xf7\x02\n\x06Vector\x12\x0c\n\x04\x64\x61ta\x18\x01 \x03(\x02\x12+\n\x07indices\x18\x02 \x01(\x0b\x32\x15.qdrant.SparseIndicesH\x01\x88\x01\x01\x12\x1a\n\rvectors_count\x18\x03 \x01(\rH\x02\x88\x01\x01\x12$\n\x05\x64\x65nse\x18\x65 \x01(\x0b\x32\x13.qdrant.DenseVectorH\x00\x12&\n\x06sparse\x18\x66 \x01(\x0b\x32\x14.qdrant.SparseVectorH\x00\x12/\n\x0bmulti_dense\x18g \x01(\x0b\x32\x18.qdrant.MultiDenseVectorH\x00\x12$\n\x08\x64ocument\x18h \x01(\x0b\x32\x10.qdrant.DocumentH\x00\x12\x1e\n\x05image\x18i \x01(\x0b\x32\r.qdrant.ImageH\x00\x12)\n\x06object\x18j \x01(\x0b\x32\x17.qdrant.InferenceObjectH\x00\x42\x08\n\x06vectorB\n\n\x08_indicesB\x10\n\x0e_vectors_count\"\x8c\x02\n\x0cVectorOutput\x12\x0c\n\x04\x64\x61ta\x18\x01 \x03(\x02\x12+\n\x07indices\x18\x02 \x01(\x0b\x32\x15.qdrant.SparseIndicesH\x01\x88\x01\x01\x12\x1a\n\rvectors_count\x18\x03 \x01(\rH\x02\x88\x01\x01\x12$\n\x05\x64\x65nse\x18\x65 \x01(\x0b\x32\x13.qdrant.DenseVectorH\x00\x12&\n\x06sparse\x18\x66 \x01(\x0b\x32\x14.qdrant.SparseVectorH\x00\x12/\n\x0bmulti_dense\x18g \x01(\x0b\x32\x18.qdrant.MultiDenseVectorH\x00\x42\x08\n\x06vectorB\n\n\x08_indicesB\x10\n\x0e_vectors_count\"\x1b\n\x0b\x44\x65nseVector\x12\x0c\n\x04\x64\x61ta\x18\x01 \x03(\x02\"/\n\x0cSparseVector\x12\x0e\n\x06values\x18\x01 \x03(\x02\x12\x0f\n\x07indices\x18\x02 \x03(\r\"8\n\x10MultiDenseVector\x12$\n\x07vectors\x18\x01 \x03(\x0b\x32\x13.qdrant.DenseVector\"\xa7\x02\n\x0bVectorInput\x12\x1d\n\x02id\x18\x01 \x01(\x0b\x32\x0f.qdrant.PointIdH\x00\x12$\n\x05\x64\x65nse\x18\x02 \x01(\x0b\x32\x13.qdrant.DenseVectorH\x00\x12&\n\x06sparse\x18\x03 \x01(\x0b\x32\x14.qdrant.SparseVectorH\x00\x12/\n\x0bmulti_dense\x18\x04 \x01(\x0b\x32\x18.qdrant.MultiDenseVectorH\x00\x12$\n\x08\x64ocument\x18\x05 \x01(\x0b\x32\x10.qdrant.DocumentH\x00\x12\x1e\n\x05image\x18\x06 \x01(\x0b\x32\r.qdrant.ImageH\x00\x12)\n\x06object\x18\x07 \x01(\x0b\x32\x17.qdrant.InferenceObjectH\x00\x42\t\n\x07variant\"8\n\x10ShardKeySelector\x12$\n\nshard_keys\x18\x01 \x03(\x0b\x32\x10.qdrant.ShardKey\"\xf5\x01\n\x0cUpsertPoints\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12\x11\n\x04wait\x18\x02 \x01(\x08H\x00\x88\x01\x01\x12#\n\x06points\x18\x03 \x03(\x0b\x32\x13.qdrant.PointStruct\x12,\n\x08ordering\x18\x04 \x01(\x0b\x32\x15.qdrant.WriteOrderingH\x01\x88\x01\x01\x12\x39\n\x12shard_key_selector\x18\x05 \x01(\x0b\x32\x18.qdrant.ShardKeySelectorH\x02\x88\x01\x01\x42\x07\n\x05_waitB\x0b\n\t_orderingB\x15\n\x13_shard_key_selector\"\xf8\x01\n\x0c\x44\x65letePoints\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12\x11\n\x04wait\x18\x02 \x01(\x08H\x00\x88\x01\x01\x12&\n\x06points\x18\x03 \x01(\x0b\x32\x16.qdrant.PointsSelector\x12,\n\x08ordering\x18\x04 \x01(\x0b\x32\x15.qdrant.WriteOrderingH\x01\x88\x01\x01\x12\x39\n\x12shard_key_selector\x18\x05 \x01(\x0b\x32\x18.qdrant.ShardKeySelectorH\x02\x88\x01\x01\x42\x07\n\x05_waitB\x0b\n\t_orderingB\x15\n\x13_shard_key_selector\"\x85\x03\n\tGetPoints\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12\x1c\n\x03ids\x18\x02 \x03(\x0b\x32\x0f.qdrant.PointId\x12\x31\n\x0cwith_payload\x18\x04 \x01(\x0b\x32\x1b.qdrant.WithPayloadSelector\x12\x36\n\x0cwith_vectors\x18\x05 \x01(\x0b\x32\x1b.qdrant.WithVectorsSelectorH\x00\x88\x01\x01\x12\x36\n\x10read_consistency\x18\x06 \x01(\x0b\x32\x17.qdrant.ReadConsistencyH\x01\x88\x01\x01\x12\x39\n\x12shard_key_selector\x18\x07 \x01(\x0b\x32\x18.qdrant.ShardKeySelectorH\x02\x88\x01\x01\x12\x14\n\x07timeout\x18\x08 \x01(\x04H\x03\x88\x01\x01\x42\x0f\n\r_with_vectorsB\x13\n\x11_read_consistencyB\x15\n\x13_shard_key_selectorB\n\n\x08_timeoutJ\x04\x08\x03\x10\x04\"\xfc\x01\n\x12UpdatePointVectors\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12\x11\n\x04wait\x18\x02 \x01(\x08H\x00\x88\x01\x01\x12$\n\x06points\x18\x03 \x03(\x0b\x32\x14.qdrant.PointVectors\x12,\n\x08ordering\x18\x04 \x01(\x0b\x32\x15.qdrant.WriteOrderingH\x01\x88\x01\x01\x12\x39\n\x12shard_key_selector\x18\x05 \x01(\x0b\x32\x18.qdrant.ShardKeySelectorH\x02\x88\x01\x01\x42\x07\n\x05_waitB\x0b\n\t_orderingB\x15\n\x13_shard_key_selector\"M\n\x0cPointVectors\x12\x1b\n\x02id\x18\x01 \x01(\x0b\x32\x0f.qdrant.PointId\x12 \n\x07vectors\x18\x02 \x01(\x0b\x32\x0f.qdrant.Vectors\"\xb1\x02\n\x12\x44\x65letePointVectors\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12\x11\n\x04wait\x18\x02 \x01(\x08H\x00\x88\x01\x01\x12/\n\x0fpoints_selector\x18\x03 \x01(\x0b\x32\x16.qdrant.PointsSelector\x12(\n\x07vectors\x18\x04 \x01(\x0b\x32\x17.qdrant.VectorsSelector\x12,\n\x08ordering\x18\x05 \x01(\x0b\x32\x15.qdrant.WriteOrderingH\x01\x88\x01\x01\x12\x39\n\x12shard_key_selector\x18\x06 \x01(\x0b\x32\x18.qdrant.ShardKeySelectorH\x02\x88\x01\x01\x42\x07\n\x05_waitB\x0b\n\t_orderingB\x15\n\x13_shard_key_selector\"\xb5\x03\n\x10SetPayloadPoints\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12\x11\n\x04wait\x18\x02 \x01(\x08H\x00\x88\x01\x01\x12\x36\n\x07payload\x18\x03 \x03(\x0b\x32%.qdrant.SetPayloadPoints.PayloadEntry\x12\x34\n\x0fpoints_selector\x18\x05 \x01(\x0b\x32\x16.qdrant.PointsSelectorH\x01\x88\x01\x01\x12,\n\x08ordering\x18\x06 \x01(\x0b\x32\x15.qdrant.WriteOrderingH\x02\x88\x01\x01\x12\x39\n\x12shard_key_selector\x18\x07 \x01(\x0b\x32\x18.qdrant.ShardKeySelectorH\x03\x88\x01\x01\x12\x10\n\x03key\x18\x08 \x01(\tH\x04\x88\x01\x01\x1a=\n\x0cPayloadEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x1c\n\x05value\x18\x02 \x01(\x0b\x32\r.qdrant.Value:\x02\x38\x01\x42\x07\n\x05_waitB\x12\n\x10_points_selectorB\x0b\n\t_orderingB\x15\n\x13_shard_key_selectorB\x06\n\x04_keyJ\x04\x08\x04\x10\x05\"\xb5\x02\n\x13\x44\x65letePayloadPoints\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12\x11\n\x04wait\x18\x02 \x01(\x08H\x00\x88\x01\x01\x12\x0c\n\x04keys\x18\x03 \x03(\t\x12\x34\n\x0fpoints_selector\x18\x05 \x01(\x0b\x32\x16.qdrant.PointsSelectorH\x01\x88\x01\x01\x12,\n\x08ordering\x18\x06 \x01(\x0b\x32\x15.qdrant.WriteOrderingH\x02\x88\x01\x01\x12\x39\n\x12shard_key_selector\x18\x07 \x01(\x0b\x32\x18.qdrant.ShardKeySelectorH\x03\x88\x01\x01\x42\x07\n\x05_waitB\x12\n\x10_points_selectorB\x0b\n\t_orderingB\x15\n\x13_shard_key_selectorJ\x04\x08\x04\x10\x05\"\xfe\x01\n\x12\x43learPayloadPoints\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12\x11\n\x04wait\x18\x02 \x01(\x08H\x00\x88\x01\x01\x12&\n\x06points\x18\x03 \x01(\x0b\x32\x16.qdrant.PointsSelector\x12,\n\x08ordering\x18\x04 \x01(\x0b\x32\x15.qdrant.WriteOrderingH\x01\x88\x01\x01\x12\x39\n\x12shard_key_selector\x18\x05 \x01(\x0b\x32\x18.qdrant.ShardKeySelectorH\x02\x88\x01\x01\x42\x07\n\x05_waitB\x0b\n\t_orderingB\x15\n\x13_shard_key_selector\"\xaf\x02\n\x1a\x43reateFieldIndexCollection\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12\x11\n\x04wait\x18\x02 \x01(\x08H\x00\x88\x01\x01\x12\x12\n\nfield_name\x18\x03 \x01(\t\x12*\n\nfield_type\x18\x04 \x01(\x0e\x32\x11.qdrant.FieldTypeH\x01\x88\x01\x01\x12;\n\x12\x66ield_index_params\x18\x05 \x01(\x0b\x32\x1a.qdrant.PayloadIndexParamsH\x02\x88\x01\x01\x12,\n\x08ordering\x18\x06 \x01(\x0b\x32\x15.qdrant.WriteOrderingH\x03\x88\x01\x01\x42\x07\n\x05_waitB\r\n\x0b_field_typeB\x15\n\x13_field_index_paramsB\x0b\n\t_ordering\"\xa0\x01\n\x1a\x44\x65leteFieldIndexCollection\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12\x11\n\x04wait\x18\x02 \x01(\x08H\x00\x88\x01\x01\x12\x12\n\nfield_name\x18\x03 \x01(\t\x12,\n\x08ordering\x18\x04 \x01(\x0b\x32\x15.qdrant.WriteOrderingH\x01\x88\x01\x01\x42\x07\n\x05_waitB\x0b\n\t_ordering\"(\n\x16PayloadIncludeSelector\x12\x0e\n\x06\x66ields\x18\x01 \x03(\t\"(\n\x16PayloadExcludeSelector\x12\x0e\n\x06\x66ields\x18\x01 \x03(\t\"\xa1\x01\n\x13WithPayloadSelector\x12\x10\n\x06\x65nable\x18\x01 \x01(\x08H\x00\x12\x31\n\x07include\x18\x02 \x01(\x0b\x32\x1e.qdrant.PayloadIncludeSelectorH\x00\x12\x31\n\x07\x65xclude\x18\x03 \x01(\x0b\x32\x1e.qdrant.PayloadExcludeSelectorH\x00\x42\x12\n\x10selector_options\"\x82\x01\n\x0cNamedVectors\x12\x32\n\x07vectors\x18\x01 \x03(\x0b\x32!.qdrant.NamedVectors.VectorsEntry\x1a>\n\x0cVectorsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x1d\n\x05value\x18\x02 \x01(\x0b\x32\x0e.qdrant.Vector:\x02\x38\x01\"\x94\x01\n\x12NamedVectorsOutput\x12\x38\n\x07vectors\x18\x01 \x03(\x0b\x32\'.qdrant.NamedVectorsOutput.VectorsEntry\x1a\x44\n\x0cVectorsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12#\n\x05value\x18\x02 \x01(\x0b\x32\x14.qdrant.VectorOutput:\x02\x38\x01\"g\n\x07Vectors\x12 \n\x06vector\x18\x01 \x01(\x0b\x32\x0e.qdrant.VectorH\x00\x12\'\n\x07vectors\x18\x02 \x01(\x0b\x32\x14.qdrant.NamedVectorsH\x00\x42\x11\n\x0fvectors_options\"y\n\rVectorsOutput\x12&\n\x06vector\x18\x01 \x01(\x0b\x32\x14.qdrant.VectorOutputH\x00\x12-\n\x07vectors\x18\x02 \x01(\x0b\x32\x1a.qdrant.NamedVectorsOutputH\x00\x42\x11\n\x0fvectors_options\" \n\x0fVectorsSelector\x12\r\n\x05names\x18\x01 \x03(\t\"g\n\x13WithVectorsSelector\x12\x10\n\x06\x65nable\x18\x01 \x01(\x08H\x00\x12*\n\x07include\x18\x02 \x01(\x0b\x32\x17.qdrant.VectorsSelectorH\x00\x42\x12\n\x10selector_options\"\x88\x01\n\x18QuantizationSearchParams\x12\x13\n\x06ignore\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x14\n\x07rescore\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\x19\n\x0coversampling\x18\x03 \x01(\x01H\x02\x88\x01\x01\x42\t\n\x07_ignoreB\n\n\x08_rescoreB\x0f\n\r_oversampling\"\xc8\x01\n\x0cSearchParams\x12\x14\n\x07hnsw_ef\x18\x01 \x01(\x04H\x00\x88\x01\x01\x12\x12\n\x05\x65xact\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12;\n\x0cquantization\x18\x03 \x01(\x0b\x32 .qdrant.QuantizationSearchParamsH\x02\x88\x01\x01\x12\x19\n\x0cindexed_only\x18\x04 \x01(\x08H\x03\x88\x01\x01\x42\n\n\x08_hnsw_efB\x08\n\x06_exactB\x0f\n\r_quantizationB\x0f\n\r_indexed_only\"\x92\x05\n\x0cSearchPoints\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12\x0e\n\x06vector\x18\x02 \x03(\x02\x12\x1e\n\x06\x66ilter\x18\x03 \x01(\x0b\x32\x0e.qdrant.Filter\x12\r\n\x05limit\x18\x04 \x01(\x04\x12\x31\n\x0cwith_payload\x18\x06 \x01(\x0b\x32\x1b.qdrant.WithPayloadSelector\x12$\n\x06params\x18\x07 \x01(\x0b\x32\x14.qdrant.SearchParams\x12\x1c\n\x0fscore_threshold\x18\x08 \x01(\x02H\x00\x88\x01\x01\x12\x13\n\x06offset\x18\t \x01(\x04H\x01\x88\x01\x01\x12\x18\n\x0bvector_name\x18\n \x01(\tH\x02\x88\x01\x01\x12\x36\n\x0cwith_vectors\x18\x0b \x01(\x0b\x32\x1b.qdrant.WithVectorsSelectorH\x03\x88\x01\x01\x12\x36\n\x10read_consistency\x18\x0c \x01(\x0b\x32\x17.qdrant.ReadConsistencyH\x04\x88\x01\x01\x12\x14\n\x07timeout\x18\r \x01(\x04H\x05\x88\x01\x01\x12\x39\n\x12shard_key_selector\x18\x0e \x01(\x0b\x32\x18.qdrant.ShardKeySelectorH\x06\x88\x01\x01\x12\x32\n\x0esparse_indices\x18\x0f \x01(\x0b\x32\x15.qdrant.SparseIndicesH\x07\x88\x01\x01\x42\x12\n\x10_score_thresholdB\t\n\x07_offsetB\x0e\n\x0c_vector_nameB\x0f\n\r_with_vectorsB\x13\n\x11_read_consistencyB\n\n\x08_timeoutB\x15\n\x13_shard_key_selectorB\x11\n\x0f_sparse_indicesJ\x04\x08\x05\x10\x06\"\xc8\x01\n\x11SearchBatchPoints\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12+\n\rsearch_points\x18\x02 \x03(\x0b\x32\x14.qdrant.SearchPoints\x12\x36\n\x10read_consistency\x18\x03 \x01(\x0b\x32\x17.qdrant.ReadConsistencyH\x00\x88\x01\x01\x12\x14\n\x07timeout\x18\x04 \x01(\x04H\x01\x88\x01\x01\x42\x13\n\x11_read_consistencyB\n\n\x08_timeout\"\xb2\x01\n\nWithLookup\x12\x12\n\ncollection\x18\x01 \x01(\t\x12\x36\n\x0cwith_payload\x18\x02 \x01(\x0b\x32\x1b.qdrant.WithPayloadSelectorH\x00\x88\x01\x01\x12\x36\n\x0cwith_vectors\x18\x03 \x01(\x0b\x32\x1b.qdrant.WithVectorsSelectorH\x01\x88\x01\x01\x42\x0f\n\r_with_payloadB\x0f\n\r_with_vectors\"\xd5\x05\n\x11SearchPointGroups\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12\x0e\n\x06vector\x18\x02 \x03(\x02\x12\x1e\n\x06\x66ilter\x18\x03 \x01(\x0b\x32\x0e.qdrant.Filter\x12\r\n\x05limit\x18\x04 \x01(\r\x12\x31\n\x0cwith_payload\x18\x05 \x01(\x0b\x32\x1b.qdrant.WithPayloadSelector\x12$\n\x06params\x18\x06 \x01(\x0b\x32\x14.qdrant.SearchParams\x12\x1c\n\x0fscore_threshold\x18\x07 \x01(\x02H\x00\x88\x01\x01\x12\x18\n\x0bvector_name\x18\x08 \x01(\tH\x01\x88\x01\x01\x12\x36\n\x0cwith_vectors\x18\t \x01(\x0b\x32\x1b.qdrant.WithVectorsSelectorH\x02\x88\x01\x01\x12\x10\n\x08group_by\x18\n \x01(\t\x12\x12\n\ngroup_size\x18\x0b \x01(\r\x12\x36\n\x10read_consistency\x18\x0c \x01(\x0b\x32\x17.qdrant.ReadConsistencyH\x03\x88\x01\x01\x12,\n\x0bwith_lookup\x18\r \x01(\x0b\x32\x12.qdrant.WithLookupH\x04\x88\x01\x01\x12\x14\n\x07timeout\x18\x0e \x01(\x04H\x05\x88\x01\x01\x12\x39\n\x12shard_key_selector\x18\x0f \x01(\x0b\x32\x18.qdrant.ShardKeySelectorH\x06\x88\x01\x01\x12\x32\n\x0esparse_indices\x18\x10 \x01(\x0b\x32\x15.qdrant.SparseIndicesH\x07\x88\x01\x01\x42\x12\n\x10_score_thresholdB\x0e\n\x0c_vector_nameB\x0f\n\r_with_vectorsB\x13\n\x11_read_consistencyB\x0e\n\x0c_with_lookupB\n\n\x08_timeoutB\x15\n\x13_shard_key_selectorB\x11\n\x0f_sparse_indices\"}\n\tStartFrom\x12\x0f\n\x05\x66loat\x18\x01 \x01(\x01H\x00\x12\x11\n\x07integer\x18\x02 \x01(\x03H\x00\x12/\n\ttimestamp\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00\x12\x12\n\x08\x64\x61tetime\x18\x04 \x01(\tH\x00\x42\x07\n\x05value\"\x8a\x01\n\x07OrderBy\x12\x0b\n\x03key\x18\x01 \x01(\t\x12)\n\tdirection\x18\x02 \x01(\x0e\x32\x11.qdrant.DirectionH\x00\x88\x01\x01\x12*\n\nstart_from\x18\x03 \x01(\x0b\x32\x11.qdrant.StartFromH\x01\x88\x01\x01\x42\x0c\n\n_directionB\r\n\x0b_start_from\"\x8e\x04\n\x0cScrollPoints\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12\x1e\n\x06\x66ilter\x18\x02 \x01(\x0b\x32\x0e.qdrant.Filter\x12$\n\x06offset\x18\x03 \x01(\x0b\x32\x0f.qdrant.PointIdH\x00\x88\x01\x01\x12\x12\n\x05limit\x18\x04 \x01(\rH\x01\x88\x01\x01\x12\x31\n\x0cwith_payload\x18\x06 \x01(\x0b\x32\x1b.qdrant.WithPayloadSelector\x12\x36\n\x0cwith_vectors\x18\x07 \x01(\x0b\x32\x1b.qdrant.WithVectorsSelectorH\x02\x88\x01\x01\x12\x36\n\x10read_consistency\x18\x08 \x01(\x0b\x32\x17.qdrant.ReadConsistencyH\x03\x88\x01\x01\x12\x39\n\x12shard_key_selector\x18\t \x01(\x0b\x32\x18.qdrant.ShardKeySelectorH\x04\x88\x01\x01\x12&\n\x08order_by\x18\n \x01(\x0b\x32\x0f.qdrant.OrderByH\x05\x88\x01\x01\x12\x14\n\x07timeout\x18\x0b \x01(\x04H\x06\x88\x01\x01\x42\t\n\x07_offsetB\x08\n\x06_limitB\x0f\n\r_with_vectorsB\x13\n\x11_read_consistencyB\x15\n\x13_shard_key_selectorB\x0b\n\t_order_byB\n\n\x08_timeoutJ\x04\x08\x05\x10\x06\"\xa5\x01\n\x0eLookupLocation\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12\x18\n\x0bvector_name\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x39\n\x12shard_key_selector\x18\x03 \x01(\x0b\x32\x18.qdrant.ShardKeySelectorH\x01\x88\x01\x01\x42\x0e\n\x0c_vector_nameB\x15\n\x13_shard_key_selector\"\xcd\x06\n\x0fRecommendPoints\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12!\n\x08positive\x18\x02 \x03(\x0b\x32\x0f.qdrant.PointId\x12!\n\x08negative\x18\x03 \x03(\x0b\x32\x0f.qdrant.PointId\x12\x1e\n\x06\x66ilter\x18\x04 \x01(\x0b\x32\x0e.qdrant.Filter\x12\r\n\x05limit\x18\x05 \x01(\x04\x12\x31\n\x0cwith_payload\x18\x07 \x01(\x0b\x32\x1b.qdrant.WithPayloadSelector\x12$\n\x06params\x18\x08 \x01(\x0b\x32\x14.qdrant.SearchParams\x12\x1c\n\x0fscore_threshold\x18\t \x01(\x02H\x00\x88\x01\x01\x12\x13\n\x06offset\x18\n \x01(\x04H\x01\x88\x01\x01\x12\x12\n\x05using\x18\x0b \x01(\tH\x02\x88\x01\x01\x12\x36\n\x0cwith_vectors\x18\x0c \x01(\x0b\x32\x1b.qdrant.WithVectorsSelectorH\x03\x88\x01\x01\x12\x30\n\x0blookup_from\x18\r \x01(\x0b\x32\x16.qdrant.LookupLocationH\x04\x88\x01\x01\x12\x36\n\x10read_consistency\x18\x0e \x01(\x0b\x32\x17.qdrant.ReadConsistencyH\x05\x88\x01\x01\x12\x30\n\x08strategy\x18\x10 \x01(\x0e\x32\x19.qdrant.RecommendStrategyH\x06\x88\x01\x01\x12(\n\x10positive_vectors\x18\x11 \x03(\x0b\x32\x0e.qdrant.Vector\x12(\n\x10negative_vectors\x18\x12 \x03(\x0b\x32\x0e.qdrant.Vector\x12\x14\n\x07timeout\x18\x13 \x01(\x04H\x07\x88\x01\x01\x12\x39\n\x12shard_key_selector\x18\x14 \x01(\x0b\x32\x18.qdrant.ShardKeySelectorH\x08\x88\x01\x01\x42\x12\n\x10_score_thresholdB\t\n\x07_offsetB\x08\n\x06_usingB\x0f\n\r_with_vectorsB\x0e\n\x0c_lookup_fromB\x13\n\x11_read_consistencyB\x0b\n\t_strategyB\n\n\x08_timeoutB\x15\n\x13_shard_key_selectorJ\x04\x08\x06\x10\x07\"\xd1\x01\n\x14RecommendBatchPoints\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12\x31\n\x10recommend_points\x18\x02 \x03(\x0b\x32\x17.qdrant.RecommendPoints\x12\x36\n\x10read_consistency\x18\x03 \x01(\x0b\x32\x17.qdrant.ReadConsistencyH\x00\x88\x01\x01\x12\x14\n\x07timeout\x18\x04 \x01(\x04H\x01\x88\x01\x01\x42\x13\n\x11_read_consistencyB\n\n\x08_timeout\"\x90\x07\n\x14RecommendPointGroups\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12!\n\x08positive\x18\x02 \x03(\x0b\x32\x0f.qdrant.PointId\x12!\n\x08negative\x18\x03 \x03(\x0b\x32\x0f.qdrant.PointId\x12\x1e\n\x06\x66ilter\x18\x04 \x01(\x0b\x32\x0e.qdrant.Filter\x12\r\n\x05limit\x18\x05 \x01(\r\x12\x31\n\x0cwith_payload\x18\x06 \x01(\x0b\x32\x1b.qdrant.WithPayloadSelector\x12$\n\x06params\x18\x07 \x01(\x0b\x32\x14.qdrant.SearchParams\x12\x1c\n\x0fscore_threshold\x18\x08 \x01(\x02H\x00\x88\x01\x01\x12\x12\n\x05using\x18\t \x01(\tH\x01\x88\x01\x01\x12\x36\n\x0cwith_vectors\x18\n \x01(\x0b\x32\x1b.qdrant.WithVectorsSelectorH\x02\x88\x01\x01\x12\x30\n\x0blookup_from\x18\x0b \x01(\x0b\x32\x16.qdrant.LookupLocationH\x03\x88\x01\x01\x12\x10\n\x08group_by\x18\x0c \x01(\t\x12\x12\n\ngroup_size\x18\r \x01(\r\x12\x36\n\x10read_consistency\x18\x0e \x01(\x0b\x32\x17.qdrant.ReadConsistencyH\x04\x88\x01\x01\x12,\n\x0bwith_lookup\x18\x0f \x01(\x0b\x32\x12.qdrant.WithLookupH\x05\x88\x01\x01\x12\x30\n\x08strategy\x18\x11 \x01(\x0e\x32\x19.qdrant.RecommendStrategyH\x06\x88\x01\x01\x12(\n\x10positive_vectors\x18\x12 \x03(\x0b\x32\x0e.qdrant.Vector\x12(\n\x10negative_vectors\x18\x13 \x03(\x0b\x32\x0e.qdrant.Vector\x12\x14\n\x07timeout\x18\x14 \x01(\x04H\x07\x88\x01\x01\x12\x39\n\x12shard_key_selector\x18\x15 \x01(\x0b\x32\x18.qdrant.ShardKeySelectorH\x08\x88\x01\x01\x42\x12\n\x10_score_thresholdB\x08\n\x06_usingB\x0f\n\r_with_vectorsB\x0e\n\x0c_lookup_fromB\x13\n\x11_read_consistencyB\x0e\n\x0c_with_lookupB\x0b\n\t_strategyB\n\n\x08_timeoutB\x15\n\x13_shard_key_selector\"A\n\x0cTargetVector\x12\'\n\x06single\x18\x01 \x01(\x0b\x32\x15.qdrant.VectorExampleH\x00\x42\x08\n\x06target\"[\n\rVectorExample\x12\x1d\n\x02id\x18\x01 \x01(\x0b\x32\x0f.qdrant.PointIdH\x00\x12 \n\x06vector\x18\x02 \x01(\x0b\x32\x0e.qdrant.VectorH\x00\x42\t\n\x07\x65xample\"f\n\x12\x43ontextExamplePair\x12\'\n\x08positive\x18\x01 \x01(\x0b\x32\x15.qdrant.VectorExample\x12\'\n\x08negative\x18\x02 \x01(\x0b\x32\x15.qdrant.VectorExample\"\x8e\x05\n\x0e\x44iscoverPoints\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12$\n\x06target\x18\x02 \x01(\x0b\x32\x14.qdrant.TargetVector\x12+\n\x07\x63ontext\x18\x03 \x03(\x0b\x32\x1a.qdrant.ContextExamplePair\x12\x1e\n\x06\x66ilter\x18\x04 \x01(\x0b\x32\x0e.qdrant.Filter\x12\r\n\x05limit\x18\x05 \x01(\x04\x12\x31\n\x0cwith_payload\x18\x06 \x01(\x0b\x32\x1b.qdrant.WithPayloadSelector\x12$\n\x06params\x18\x07 \x01(\x0b\x32\x14.qdrant.SearchParams\x12\x13\n\x06offset\x18\x08 \x01(\x04H\x00\x88\x01\x01\x12\x12\n\x05using\x18\t \x01(\tH\x01\x88\x01\x01\x12\x36\n\x0cwith_vectors\x18\n \x01(\x0b\x32\x1b.qdrant.WithVectorsSelectorH\x02\x88\x01\x01\x12\x30\n\x0blookup_from\x18\x0b \x01(\x0b\x32\x16.qdrant.LookupLocationH\x03\x88\x01\x01\x12\x36\n\x10read_consistency\x18\x0c \x01(\x0b\x32\x17.qdrant.ReadConsistencyH\x04\x88\x01\x01\x12\x14\n\x07timeout\x18\r \x01(\x04H\x05\x88\x01\x01\x12\x39\n\x12shard_key_selector\x18\x0e \x01(\x0b\x32\x18.qdrant.ShardKeySelectorH\x06\x88\x01\x01\x42\t\n\x07_offsetB\x08\n\x06_usingB\x0f\n\r_with_vectorsB\x0e\n\x0c_lookup_fromB\x13\n\x11_read_consistencyB\n\n\x08_timeoutB\x15\n\x13_shard_key_selector\"\xce\x01\n\x13\x44iscoverBatchPoints\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12/\n\x0f\x64iscover_points\x18\x02 \x03(\x0b\x32\x16.qdrant.DiscoverPoints\x12\x36\n\x10read_consistency\x18\x03 \x01(\x0b\x32\x17.qdrant.ReadConsistencyH\x00\x88\x01\x01\x12\x14\n\x07timeout\x18\x04 \x01(\x04H\x01\x88\x01\x01\x42\x13\n\x11_read_consistencyB\n\n\x08_timeout\"\xa5\x02\n\x0b\x43ountPoints\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12\x1e\n\x06\x66ilter\x18\x02 \x01(\x0b\x32\x0e.qdrant.Filter\x12\x12\n\x05\x65xact\x18\x03 \x01(\x08H\x00\x88\x01\x01\x12\x36\n\x10read_consistency\x18\x04 \x01(\x0b\x32\x17.qdrant.ReadConsistencyH\x01\x88\x01\x01\x12\x39\n\x12shard_key_selector\x18\x05 \x01(\x0b\x32\x18.qdrant.ShardKeySelectorH\x02\x88\x01\x01\x12\x14\n\x07timeout\x18\x06 \x01(\x04H\x03\x88\x01\x01\x42\x08\n\x06_exactB\x13\n\x11_read_consistencyB\x15\n\x13_shard_key_selectorB\n\n\x08_timeout\"\x9d\x01\n\x0eRecommendInput\x12%\n\x08positive\x18\x01 \x03(\x0b\x32\x13.qdrant.VectorInput\x12%\n\x08negative\x18\x02 \x03(\x0b\x32\x13.qdrant.VectorInput\x12\x30\n\x08strategy\x18\x03 \x01(\x0e\x32\x19.qdrant.RecommendStrategyH\x00\x88\x01\x01\x42\x0b\n\t_strategy\"`\n\x10\x43ontextInputPair\x12%\n\x08positive\x18\x01 \x01(\x0b\x32\x13.qdrant.VectorInput\x12%\n\x08negative\x18\x02 \x01(\x0b\x32\x13.qdrant.VectorInput\"[\n\rDiscoverInput\x12#\n\x06target\x18\x01 \x01(\x0b\x32\x13.qdrant.VectorInput\x12%\n\x07\x63ontext\x18\x02 \x01(\x0b\x32\x14.qdrant.ContextInput\"7\n\x0c\x43ontextInput\x12\'\n\x05pairs\x18\x01 \x03(\x0b\x32\x18.qdrant.ContextInputPair\"\xa4\x02\n\x05Query\x12&\n\x07nearest\x18\x01 \x01(\x0b\x32\x13.qdrant.VectorInputH\x00\x12+\n\trecommend\x18\x02 \x01(\x0b\x32\x16.qdrant.RecommendInputH\x00\x12)\n\x08\x64iscover\x18\x03 \x01(\x0b\x32\x15.qdrant.DiscoverInputH\x00\x12\'\n\x07\x63ontext\x18\x04 \x01(\x0b\x32\x14.qdrant.ContextInputH\x00\x12#\n\x08order_by\x18\x05 \x01(\x0b\x32\x0f.qdrant.OrderByH\x00\x12 \n\x06\x66usion\x18\x06 \x01(\x0e\x32\x0e.qdrant.FusionH\x00\x12 \n\x06sample\x18\x07 \x01(\x0e\x32\x0e.qdrant.SampleH\x00\x42\t\n\x07variant\"\xfb\x02\n\rPrefetchQuery\x12\'\n\x08prefetch\x18\x01 \x03(\x0b\x32\x15.qdrant.PrefetchQuery\x12!\n\x05query\x18\x02 \x01(\x0b\x32\r.qdrant.QueryH\x00\x88\x01\x01\x12\x12\n\x05using\x18\x03 \x01(\tH\x01\x88\x01\x01\x12#\n\x06\x66ilter\x18\x04 \x01(\x0b\x32\x0e.qdrant.FilterH\x02\x88\x01\x01\x12)\n\x06params\x18\x05 \x01(\x0b\x32\x14.qdrant.SearchParamsH\x03\x88\x01\x01\x12\x1c\n\x0fscore_threshold\x18\x06 \x01(\x02H\x04\x88\x01\x01\x12\x12\n\x05limit\x18\x07 \x01(\x04H\x05\x88\x01\x01\x12\x30\n\x0blookup_from\x18\x08 \x01(\x0b\x32\x16.qdrant.LookupLocationH\x06\x88\x01\x01\x42\x08\n\x06_queryB\x08\n\x06_usingB\t\n\x07_filterB\t\n\x07_paramsB\x12\n\x10_score_thresholdB\x08\n\x06_limitB\x0e\n\x0c_lookup_from\"\x85\x06\n\x0bQueryPoints\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12\'\n\x08prefetch\x18\x02 \x03(\x0b\x32\x15.qdrant.PrefetchQuery\x12!\n\x05query\x18\x03 \x01(\x0b\x32\r.qdrant.QueryH\x00\x88\x01\x01\x12\x12\n\x05using\x18\x04 \x01(\tH\x01\x88\x01\x01\x12#\n\x06\x66ilter\x18\x05 \x01(\x0b\x32\x0e.qdrant.FilterH\x02\x88\x01\x01\x12)\n\x06params\x18\x06 \x01(\x0b\x32\x14.qdrant.SearchParamsH\x03\x88\x01\x01\x12\x1c\n\x0fscore_threshold\x18\x07 \x01(\x02H\x04\x88\x01\x01\x12\x12\n\x05limit\x18\x08 \x01(\x04H\x05\x88\x01\x01\x12\x13\n\x06offset\x18\t \x01(\x04H\x06\x88\x01\x01\x12\x36\n\x0cwith_vectors\x18\n \x01(\x0b\x32\x1b.qdrant.WithVectorsSelectorH\x07\x88\x01\x01\x12\x36\n\x0cwith_payload\x18\x0b \x01(\x0b\x32\x1b.qdrant.WithPayloadSelectorH\x08\x88\x01\x01\x12\x36\n\x10read_consistency\x18\x0c \x01(\x0b\x32\x17.qdrant.ReadConsistencyH\t\x88\x01\x01\x12\x39\n\x12shard_key_selector\x18\r \x01(\x0b\x32\x18.qdrant.ShardKeySelectorH\n\x88\x01\x01\x12\x30\n\x0blookup_from\x18\x0e \x01(\x0b\x32\x16.qdrant.LookupLocationH\x0b\x88\x01\x01\x12\x14\n\x07timeout\x18\x0f \x01(\x04H\x0c\x88\x01\x01\x42\x08\n\x06_queryB\x08\n\x06_usingB\t\n\x07_filterB\t\n\x07_paramsB\x12\n\x10_score_thresholdB\x08\n\x06_limitB\t\n\x07_offsetB\x0f\n\r_with_vectorsB\x0f\n\r_with_payloadB\x13\n\x11_read_consistencyB\x15\n\x13_shard_key_selectorB\x0e\n\x0c_lookup_fromB\n\n\x08_timeout\"\xc5\x01\n\x10QueryBatchPoints\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12)\n\x0cquery_points\x18\x02 \x03(\x0b\x32\x13.qdrant.QueryPoints\x12\x36\n\x10read_consistency\x18\x03 \x01(\x0b\x32\x17.qdrant.ReadConsistencyH\x00\x88\x01\x01\x12\x14\n\x07timeout\x18\x04 \x01(\x04H\x01\x88\x01\x01\x42\x13\n\x11_read_consistencyB\n\n\x08_timeout\"\xcc\x06\n\x10QueryPointGroups\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12\'\n\x08prefetch\x18\x02 \x03(\x0b\x32\x15.qdrant.PrefetchQuery\x12!\n\x05query\x18\x03 \x01(\x0b\x32\r.qdrant.QueryH\x00\x88\x01\x01\x12\x12\n\x05using\x18\x04 \x01(\tH\x01\x88\x01\x01\x12#\n\x06\x66ilter\x18\x05 \x01(\x0b\x32\x0e.qdrant.FilterH\x02\x88\x01\x01\x12)\n\x06params\x18\x06 \x01(\x0b\x32\x14.qdrant.SearchParamsH\x03\x88\x01\x01\x12\x1c\n\x0fscore_threshold\x18\x07 \x01(\x02H\x04\x88\x01\x01\x12\x31\n\x0cwith_payload\x18\x08 \x01(\x0b\x32\x1b.qdrant.WithPayloadSelector\x12\x36\n\x0cwith_vectors\x18\t \x01(\x0b\x32\x1b.qdrant.WithVectorsSelectorH\x05\x88\x01\x01\x12\x30\n\x0blookup_from\x18\n \x01(\x0b\x32\x16.qdrant.LookupLocationH\x06\x88\x01\x01\x12\x12\n\x05limit\x18\x0b \x01(\x04H\x07\x88\x01\x01\x12\x17\n\ngroup_size\x18\x0c \x01(\x04H\x08\x88\x01\x01\x12\x10\n\x08group_by\x18\r \x01(\t\x12\x36\n\x10read_consistency\x18\x0e \x01(\x0b\x32\x17.qdrant.ReadConsistencyH\t\x88\x01\x01\x12,\n\x0bwith_lookup\x18\x0f \x01(\x0b\x32\x12.qdrant.WithLookupH\n\x88\x01\x01\x12\x14\n\x07timeout\x18\x10 \x01(\x04H\x0b\x88\x01\x01\x12\x39\n\x12shard_key_selector\x18\x11 \x01(\x0b\x32\x18.qdrant.ShardKeySelectorH\x0c\x88\x01\x01\x42\x08\n\x06_queryB\x08\n\x06_usingB\t\n\x07_filterB\t\n\x07_paramsB\x12\n\x10_score_thresholdB\x0f\n\r_with_vectorsB\x0e\n\x0c_lookup_fromB\x08\n\x06_limitB\r\n\x0b_group_sizeB\x13\n\x11_read_consistencyB\x0e\n\x0c_with_lookupB\n\n\x08_timeoutB\x15\n\x13_shard_key_selector\"\xe0\x02\n\x0b\x46\x61\x63\x65tCounts\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12\x0b\n\x03key\x18\x02 \x01(\t\x12#\n\x06\x66ilter\x18\x03 \x01(\x0b\x32\x0e.qdrant.FilterH\x00\x88\x01\x01\x12\x12\n\x05limit\x18\x04 \x01(\x04H\x01\x88\x01\x01\x12\x12\n\x05\x65xact\x18\x05 \x01(\x08H\x02\x88\x01\x01\x12\x14\n\x07timeout\x18\x06 \x01(\x04H\x03\x88\x01\x01\x12\x36\n\x10read_consistency\x18\x07 \x01(\x0b\x32\x17.qdrant.ReadConsistencyH\x04\x88\x01\x01\x12\x39\n\x12shard_key_selector\x18\x08 \x01(\x0b\x32\x18.qdrant.ShardKeySelectorH\x05\x88\x01\x01\x42\t\n\x07_filterB\x08\n\x06_limitB\x08\n\x06_exactB\n\n\x08_timeoutB\x13\n\x11_read_consistencyB\x15\n\x13_shard_key_selector\"^\n\nFacetValue\x12\x16\n\x0cstring_value\x18\x01 \x01(\tH\x00\x12\x17\n\rinteger_value\x18\x02 \x01(\x03H\x00\x12\x14\n\nbool_value\x18\x03 \x01(\x08H\x00\x42\t\n\x07variant\"<\n\x08\x46\x61\x63\x65tHit\x12!\n\x05value\x18\x01 \x01(\x0b\x32\x12.qdrant.FacetValue\x12\r\n\x05\x63ount\x18\x02 \x01(\x04\"\xfa\x02\n\x12SearchMatrixPoints\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12#\n\x06\x66ilter\x18\x02 \x01(\x0b\x32\x0e.qdrant.FilterH\x00\x88\x01\x01\x12\x13\n\x06sample\x18\x03 \x01(\x04H\x01\x88\x01\x01\x12\x12\n\x05limit\x18\x04 \x01(\x04H\x02\x88\x01\x01\x12\x12\n\x05using\x18\x05 \x01(\tH\x03\x88\x01\x01\x12\x14\n\x07timeout\x18\x06 \x01(\x04H\x04\x88\x01\x01\x12\x36\n\x10read_consistency\x18\x07 \x01(\x0b\x32\x17.qdrant.ReadConsistencyH\x05\x88\x01\x01\x12\x39\n\x12shard_key_selector\x18\x08 \x01(\x0b\x32\x18.qdrant.ShardKeySelectorH\x06\x88\x01\x01\x42\t\n\x07_filterB\t\n\x07_sampleB\x08\n\x06_limitB\x08\n\x06_usingB\n\n\x08_timeoutB\x13\n\x11_read_consistencyB\x15\n\x13_shard_key_selector\"<\n\x11SearchMatrixPairs\x12\'\n\x05pairs\x18\x01 \x03(\x0b\x32\x18.qdrant.SearchMatrixPair\"Y\n\x10SearchMatrixPair\x12\x1a\n\x01\x61\x18\x01 \x01(\x0b\x32\x0f.qdrant.PointId\x12\x1a\n\x01\x62\x18\x02 \x01(\x0b\x32\x0f.qdrant.PointId\x12\r\n\x05score\x18\x03 \x01(\x02\"m\n\x13SearchMatrixOffsets\x12\x13\n\x0boffsets_row\x18\x01 \x03(\x04\x12\x13\n\x0boffsets_col\x18\x02 \x03(\x04\x12\x0e\n\x06scores\x18\x03 \x03(\x02\x12\x1c\n\x03ids\x18\x04 \x03(\x0b\x32\x0f.qdrant.PointId\"\x95\x12\n\x15PointsUpdateOperation\x12?\n\x06upsert\x18\x01 \x01(\x0b\x32-.qdrant.PointsUpdateOperation.PointStructListH\x00\x12\x37\n\x11\x64\x65lete_deprecated\x18\x02 \x01(\x0b\x32\x16.qdrant.PointsSelectorB\x02\x18\x01H\x00\x12?\n\x0bset_payload\x18\x03 \x01(\x0b\x32(.qdrant.PointsUpdateOperation.SetPayloadH\x00\x12K\n\x11overwrite_payload\x18\x04 \x01(\x0b\x32..qdrant.PointsUpdateOperation.OverwritePayloadH\x00\x12\x45\n\x0e\x64\x65lete_payload\x18\x05 \x01(\x0b\x32+.qdrant.PointsUpdateOperation.DeletePayloadH\x00\x12>\n\x18\x63lear_payload_deprecated\x18\x06 \x01(\x0b\x32\x16.qdrant.PointsSelectorB\x02\x18\x01H\x00\x12\x45\n\x0eupdate_vectors\x18\x07 \x01(\x0b\x32+.qdrant.PointsUpdateOperation.UpdateVectorsH\x00\x12\x45\n\x0e\x64\x65lete_vectors\x18\x08 \x01(\x0b\x32+.qdrant.PointsUpdateOperation.DeleteVectorsH\x00\x12\x43\n\rdelete_points\x18\t \x01(\x0b\x32*.qdrant.PointsUpdateOperation.DeletePointsH\x00\x12\x43\n\rclear_payload\x18\n \x01(\x0b\x32*.qdrant.PointsUpdateOperation.ClearPayloadH\x00\x1a\x88\x01\n\x0fPointStructList\x12#\n\x06points\x18\x01 \x03(\x0b\x32\x13.qdrant.PointStruct\x12\x39\n\x12shard_key_selector\x18\x02 \x01(\x0b\x32\x18.qdrant.ShardKeySelectorH\x00\x88\x01\x01\x42\x15\n\x13_shard_key_selector\x1a\xc9\x02\n\nSetPayload\x12\x46\n\x07payload\x18\x01 \x03(\x0b\x32\x35.qdrant.PointsUpdateOperation.SetPayload.PayloadEntry\x12\x34\n\x0fpoints_selector\x18\x02 \x01(\x0b\x32\x16.qdrant.PointsSelectorH\x00\x88\x01\x01\x12\x39\n\x12shard_key_selector\x18\x03 \x01(\x0b\x32\x18.qdrant.ShardKeySelectorH\x01\x88\x01\x01\x12\x10\n\x03key\x18\x04 \x01(\tH\x02\x88\x01\x01\x1a=\n\x0cPayloadEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x1c\n\x05value\x18\x02 \x01(\x0b\x32\r.qdrant.Value:\x02\x38\x01\x42\x12\n\x10_points_selectorB\x15\n\x13_shard_key_selectorB\x06\n\x04_key\x1a\xd5\x02\n\x10OverwritePayload\x12L\n\x07payload\x18\x01 \x03(\x0b\x32;.qdrant.PointsUpdateOperation.OverwritePayload.PayloadEntry\x12\x34\n\x0fpoints_selector\x18\x02 \x01(\x0b\x32\x16.qdrant.PointsSelectorH\x00\x88\x01\x01\x12\x39\n\x12shard_key_selector\x18\x03 \x01(\x0b\x32\x18.qdrant.ShardKeySelectorH\x01\x88\x01\x01\x12\x10\n\x03key\x18\x04 \x01(\tH\x02\x88\x01\x01\x1a=\n\x0cPayloadEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x1c\n\x05value\x18\x02 \x01(\x0b\x32\r.qdrant.Value:\x02\x38\x01\x42\x12\n\x10_points_selectorB\x15\n\x13_shard_key_selectorB\x06\n\x04_key\x1a\xb9\x01\n\rDeletePayload\x12\x0c\n\x04keys\x18\x01 \x03(\t\x12\x34\n\x0fpoints_selector\x18\x02 \x01(\x0b\x32\x16.qdrant.PointsSelectorH\x00\x88\x01\x01\x12\x39\n\x12shard_key_selector\x18\x03 \x01(\x0b\x32\x18.qdrant.ShardKeySelectorH\x01\x88\x01\x01\x42\x12\n\x10_points_selectorB\x15\n\x13_shard_key_selector\x1a\x87\x01\n\rUpdateVectors\x12$\n\x06points\x18\x01 \x03(\x0b\x32\x14.qdrant.PointVectors\x12\x39\n\x12shard_key_selector\x18\x02 \x01(\x0b\x32\x18.qdrant.ShardKeySelectorH\x00\x88\x01\x01\x42\x15\n\x13_shard_key_selector\x1a\xbc\x01\n\rDeleteVectors\x12/\n\x0fpoints_selector\x18\x01 \x01(\x0b\x32\x16.qdrant.PointsSelector\x12(\n\x07vectors\x18\x02 \x01(\x0b\x32\x17.qdrant.VectorsSelector\x12\x39\n\x12shard_key_selector\x18\x03 \x01(\x0b\x32\x18.qdrant.ShardKeySelectorH\x00\x88\x01\x01\x42\x15\n\x13_shard_key_selector\x1a\x88\x01\n\x0c\x44\x65letePoints\x12&\n\x06points\x18\x01 \x01(\x0b\x32\x16.qdrant.PointsSelector\x12\x39\n\x12shard_key_selector\x18\x02 \x01(\x0b\x32\x18.qdrant.ShardKeySelectorH\x00\x88\x01\x01\x42\x15\n\x13_shard_key_selector\x1a\x88\x01\n\x0c\x43learPayload\x12&\n\x06points\x18\x01 \x01(\x0b\x32\x16.qdrant.PointsSelector\x12\x39\n\x12shard_key_selector\x18\x02 \x01(\x0b\x32\x18.qdrant.ShardKeySelectorH\x00\x88\x01\x01\x42\x15\n\x13_shard_key_selectorB\x0b\n\toperation\"\xb6\x01\n\x11UpdateBatchPoints\x12\x17\n\x0f\x63ollection_name\x18\x01 \x01(\t\x12\x11\n\x04wait\x18\x02 \x01(\x08H\x00\x88\x01\x01\x12\x31\n\noperations\x18\x03 \x03(\x0b\x32\x1d.qdrant.PointsUpdateOperation\x12,\n\x08ordering\x18\x04 \x01(\x0b\x32\x15.qdrant.WriteOrderingH\x01\x88\x01\x01\x42\x07\n\x05_waitB\x0b\n\t_ordering\"M\n\x17PointsOperationResponse\x12$\n\x06result\x18\x01 \x01(\x0b\x32\x14.qdrant.UpdateResult\x12\x0c\n\x04time\x18\x02 \x01(\x01\"`\n\x0cUpdateResult\x12\x19\n\x0coperation_id\x18\x01 \x01(\x04H\x00\x88\x01\x01\x12$\n\x06status\x18\x02 \x01(\x0e\x32\x14.qdrant.UpdateStatusB\x0f\n\r_operation_id\"7\n\nOrderValue\x12\r\n\x03int\x18\x01 \x01(\x03H\x00\x12\x0f\n\x05\x66loat\x18\x02 \x01(\x01H\x00\x42\t\n\x07variant\"\xf1\x02\n\x0bScoredPoint\x12\x1b\n\x02id\x18\x01 \x01(\x0b\x32\x0f.qdrant.PointId\x12\x31\n\x07payload\x18\x02 \x03(\x0b\x32 .qdrant.ScoredPoint.PayloadEntry\x12\r\n\x05score\x18\x03 \x01(\x02\x12\x0f\n\x07version\x18\x05 \x01(\x04\x12+\n\x07vectors\x18\x06 \x01(\x0b\x32\x15.qdrant.VectorsOutputH\x00\x88\x01\x01\x12(\n\tshard_key\x18\x07 \x01(\x0b\x32\x10.qdrant.ShardKeyH\x01\x88\x01\x01\x12,\n\x0border_value\x18\x08 \x01(\x0b\x32\x12.qdrant.OrderValueH\x02\x88\x01\x01\x1a=\n\x0cPayloadEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x1c\n\x05value\x18\x02 \x01(\x0b\x32\r.qdrant.Value:\x02\x38\x01\x42\n\n\x08_vectorsB\x0c\n\n_shard_keyB\x0e\n\x0c_order_valueJ\x04\x08\x04\x10\x05\"\\\n\x07GroupId\x12\x18\n\x0eunsigned_value\x18\x01 \x01(\x04H\x00\x12\x17\n\rinteger_value\x18\x02 \x01(\x03H\x00\x12\x16\n\x0cstring_value\x18\x03 \x01(\tH\x00\x42\x06\n\x04kind\"t\n\nPointGroup\x12\x1b\n\x02id\x18\x01 \x01(\x0b\x32\x0f.qdrant.GroupId\x12!\n\x04hits\x18\x02 \x03(\x0b\x32\x13.qdrant.ScoredPoint\x12&\n\x06lookup\x18\x03 \x01(\x0b\x32\x16.qdrant.RetrievedPoint\"2\n\x0cGroupsResult\x12\"\n\x06groups\x18\x01 \x03(\x0b\x32\x12.qdrant.PointGroup\"C\n\x0eSearchResponse\x12#\n\x06result\x18\x01 \x03(\x0b\x32\x13.qdrant.ScoredPoint\x12\x0c\n\x04time\x18\x02 \x01(\x01\"B\n\rQueryResponse\x12#\n\x06result\x18\x01 \x03(\x0b\x32\x13.qdrant.ScoredPoint\x12\x0c\n\x04time\x18\x02 \x01(\x01\"G\n\x12QueryBatchResponse\x12#\n\x06result\x18\x01 \x03(\x0b\x32\x13.qdrant.BatchResult\x12\x0c\n\x04time\x18\x02 \x01(\x01\"I\n\x13QueryGroupsResponse\x12$\n\x06result\x18\x01 \x01(\x0b\x32\x14.qdrant.GroupsResult\x12\x0c\n\x04time\x18\x02 \x01(\x01\"2\n\x0b\x42\x61tchResult\x12#\n\x06result\x18\x01 \x03(\x0b\x32\x13.qdrant.ScoredPoint\"H\n\x13SearchBatchResponse\x12#\n\x06result\x18\x01 \x03(\x0b\x32\x13.qdrant.BatchResult\x12\x0c\n\x04time\x18\x02 \x01(\x01\"J\n\x14SearchGroupsResponse\x12$\n\x06result\x18\x01 \x01(\x0b\x32\x14.qdrant.GroupsResult\x12\x0c\n\x04time\x18\x02 \x01(\x01\"B\n\rCountResponse\x12#\n\x06result\x18\x01 \x01(\x0b\x32\x13.qdrant.CountResult\x12\x0c\n\x04time\x18\x02 \x01(\x01\"\x8b\x01\n\x0eScrollResponse\x12.\n\x10next_page_offset\x18\x01 \x01(\x0b\x32\x0f.qdrant.PointIdH\x00\x88\x01\x01\x12&\n\x06result\x18\x02 \x03(\x0b\x32\x16.qdrant.RetrievedPoint\x12\x0c\n\x04time\x18\x03 \x01(\x01\x42\x13\n\x11_next_page_offset\"\x1c\n\x0b\x43ountResult\x12\r\n\x05\x63ount\x18\x01 \x01(\x04\"\xd7\x02\n\x0eRetrievedPoint\x12\x1b\n\x02id\x18\x01 \x01(\x0b\x32\x0f.qdrant.PointId\x12\x34\n\x07payload\x18\x02 \x03(\x0b\x32#.qdrant.RetrievedPoint.PayloadEntry\x12+\n\x07vectors\x18\x04 \x01(\x0b\x32\x15.qdrant.VectorsOutputH\x00\x88\x01\x01\x12(\n\tshard_key\x18\x05 \x01(\x0b\x32\x10.qdrant.ShardKeyH\x01\x88\x01\x01\x12,\n\x0border_value\x18\x06 \x01(\x0b\x32\x12.qdrant.OrderValueH\x02\x88\x01\x01\x1a=\n\x0cPayloadEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x1c\n\x05value\x18\x02 \x01(\x0b\x32\r.qdrant.Value:\x02\x38\x01\x42\n\n\x08_vectorsB\x0c\n\n_shard_keyB\x0e\n\x0c_order_valueJ\x04\x08\x03\x10\x04\"C\n\x0bGetResponse\x12&\n\x06result\x18\x01 \x03(\x0b\x32\x16.qdrant.RetrievedPoint\x12\x0c\n\x04time\x18\x02 \x01(\x01\"F\n\x11RecommendResponse\x12#\n\x06result\x18\x01 \x03(\x0b\x32\x13.qdrant.ScoredPoint\x12\x0c\n\x04time\x18\x02 \x01(\x01\"K\n\x16RecommendBatchResponse\x12#\n\x06result\x18\x01 \x03(\x0b\x32\x13.qdrant.BatchResult\x12\x0c\n\x04time\x18\x02 \x01(\x01\"E\n\x10\x44iscoverResponse\x12#\n\x06result\x18\x01 \x03(\x0b\x32\x13.qdrant.ScoredPoint\x12\x0c\n\x04time\x18\x02 \x01(\x01\"J\n\x15\x44iscoverBatchResponse\x12#\n\x06result\x18\x01 \x03(\x0b\x32\x13.qdrant.BatchResult\x12\x0c\n\x04time\x18\x02 \x01(\x01\"M\n\x17RecommendGroupsResponse\x12$\n\x06result\x18\x01 \x01(\x0b\x32\x14.qdrant.GroupsResult\x12\x0c\n\x04time\x18\x02 \x01(\x01\"I\n\x13UpdateBatchResponse\x12$\n\x06result\x18\x01 \x03(\x0b\x32\x14.qdrant.UpdateResult\x12\x0c\n\x04time\x18\x02 \x01(\x01\"=\n\rFacetResponse\x12\x1e\n\x04hits\x18\x01 \x03(\x0b\x32\x10.qdrant.FacetHit\x12\x0c\n\x04time\x18\x02 \x01(\x01\"T\n\x19SearchMatrixPairsResponse\x12)\n\x06result\x18\x01 \x01(\x0b\x32\x19.qdrant.SearchMatrixPairs\x12\x0c\n\x04time\x18\x02 \x01(\x01\"X\n\x1bSearchMatrixOffsetsResponse\x12+\n\x06result\x18\x01 \x01(\x0b\x32\x1b.qdrant.SearchMatrixOffsets\x12\x0c\n\x04time\x18\x02 \x01(\x01\"\xac\x01\n\x06\x46ilter\x12!\n\x06should\x18\x01 \x03(\x0b\x32\x11.qdrant.Condition\x12\x1f\n\x04must\x18\x02 \x03(\x0b\x32\x11.qdrant.Condition\x12#\n\x08must_not\x18\x03 \x03(\x0b\x32\x11.qdrant.Condition\x12*\n\nmin_should\x18\x04 \x01(\x0b\x32\x11.qdrant.MinShouldH\x00\x88\x01\x01\x42\r\n\x0b_min_should\"E\n\tMinShould\x12%\n\nconditions\x18\x01 \x03(\x0b\x32\x11.qdrant.Condition\x12\x11\n\tmin_count\x18\x02 \x01(\x04\"\x99\x02\n\tCondition\x12\'\n\x05\x66ield\x18\x01 \x01(\x0b\x32\x16.qdrant.FieldConditionH\x00\x12,\n\x08is_empty\x18\x02 \x01(\x0b\x32\x18.qdrant.IsEmptyConditionH\x00\x12(\n\x06has_id\x18\x03 \x01(\x0b\x32\x16.qdrant.HasIdConditionH\x00\x12 \n\x06\x66ilter\x18\x04 \x01(\x0b\x32\x0e.qdrant.FilterH\x00\x12*\n\x07is_null\x18\x05 \x01(\x0b\x32\x17.qdrant.IsNullConditionH\x00\x12)\n\x06nested\x18\x06 \x01(\x0b\x32\x17.qdrant.NestedConditionH\x00\x42\x12\n\x10\x63ondition_one_of\"\x1f\n\x10IsEmptyCondition\x12\x0b\n\x03key\x18\x01 \x01(\t\"\x1e\n\x0fIsNullCondition\x12\x0b\n\x03key\x18\x01 \x01(\t\"1\n\x0eHasIdCondition\x12\x1f\n\x06has_id\x18\x01 \x03(\x0b\x32\x0f.qdrant.PointId\">\n\x0fNestedCondition\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x1e\n\x06\x66ilter\x18\x02 \x01(\x0b\x32\x0e.qdrant.Filter\"\xb5\x02\n\x0e\x46ieldCondition\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x1c\n\x05match\x18\x02 \x01(\x0b\x32\r.qdrant.Match\x12\x1c\n\x05range\x18\x03 \x01(\x0b\x32\r.qdrant.Range\x12\x30\n\x10geo_bounding_box\x18\x04 \x01(\x0b\x32\x16.qdrant.GeoBoundingBox\x12%\n\ngeo_radius\x18\x05 \x01(\x0b\x32\x11.qdrant.GeoRadius\x12)\n\x0cvalues_count\x18\x06 \x01(\x0b\x32\x13.qdrant.ValuesCount\x12\'\n\x0bgeo_polygon\x18\x07 \x01(\x0b\x32\x12.qdrant.GeoPolygon\x12-\n\x0e\x64\x61tetime_range\x18\x08 \x01(\x0b\x32\x15.qdrant.DatetimeRange\"\xa3\x02\n\x05Match\x12\x11\n\x07keyword\x18\x01 \x01(\tH\x00\x12\x11\n\x07integer\x18\x02 \x01(\x03H\x00\x12\x11\n\x07\x62oolean\x18\x03 \x01(\x08H\x00\x12\x0e\n\x04text\x18\x04 \x01(\tH\x00\x12+\n\x08keywords\x18\x05 \x01(\x0b\x32\x17.qdrant.RepeatedStringsH\x00\x12,\n\x08integers\x18\x06 \x01(\x0b\x32\x18.qdrant.RepeatedIntegersH\x00\x12\x33\n\x0f\x65xcept_integers\x18\x07 \x01(\x0b\x32\x18.qdrant.RepeatedIntegersH\x00\x12\x32\n\x0f\x65xcept_keywords\x18\x08 \x01(\x0b\x32\x17.qdrant.RepeatedStringsH\x00\x42\r\n\x0bmatch_value\"\"\n\x0fRepeatedStrings\x12\x0f\n\x07strings\x18\x01 \x03(\t\"$\n\x10RepeatedIntegers\x12\x10\n\x08integers\x18\x01 \x03(\x03\"k\n\x05Range\x12\x0f\n\x02lt\x18\x01 \x01(\x01H\x00\x88\x01\x01\x12\x0f\n\x02gt\x18\x02 \x01(\x01H\x01\x88\x01\x01\x12\x10\n\x03gte\x18\x03 \x01(\x01H\x02\x88\x01\x01\x12\x10\n\x03lte\x18\x04 \x01(\x01H\x03\x88\x01\x01\x42\x05\n\x03_ltB\x05\n\x03_gtB\x06\n\x04_gteB\x06\n\x04_lte\"\xe3\x01\n\rDatetimeRange\x12+\n\x02lt\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00\x88\x01\x01\x12+\n\x02gt\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x01\x88\x01\x01\x12,\n\x03gte\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x02\x88\x01\x01\x12,\n\x03lte\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x03\x88\x01\x01\x42\x05\n\x03_ltB\x05\n\x03_gtB\x06\n\x04_gteB\x06\n\x04_lte\"\\\n\x0eGeoBoundingBox\x12\"\n\x08top_left\x18\x01 \x01(\x0b\x32\x10.qdrant.GeoPoint\x12&\n\x0c\x62ottom_right\x18\x02 \x01(\x0b\x32\x10.qdrant.GeoPoint\"=\n\tGeoRadius\x12 \n\x06\x63\x65nter\x18\x01 \x01(\x0b\x32\x10.qdrant.GeoPoint\x12\x0e\n\x06radius\x18\x02 \x01(\x02\"1\n\rGeoLineString\x12 \n\x06points\x18\x01 \x03(\x0b\x32\x10.qdrant.GeoPoint\"_\n\nGeoPolygon\x12\'\n\x08\x65xterior\x18\x01 \x01(\x0b\x32\x15.qdrant.GeoLineString\x12(\n\tinteriors\x18\x02 \x03(\x0b\x32\x15.qdrant.GeoLineString\"q\n\x0bValuesCount\x12\x0f\n\x02lt\x18\x01 \x01(\x04H\x00\x88\x01\x01\x12\x0f\n\x02gt\x18\x02 \x01(\x04H\x01\x88\x01\x01\x12\x10\n\x03gte\x18\x03 \x01(\x04H\x02\x88\x01\x01\x12\x10\n\x03lte\x18\x04 \x01(\x04H\x03\x88\x01\x01\x42\x05\n\x03_ltB\x05\n\x03_gtB\x06\n\x04_gteB\x06\n\x04_lte\"u\n\x0ePointsSelector\x12\'\n\x06points\x18\x01 \x01(\x0b\x32\x15.qdrant.PointsIdsListH\x00\x12 \n\x06\x66ilter\x18\x02 \x01(\x0b\x32\x0e.qdrant.FilterH\x00\x42\x18\n\x16points_selector_one_of\"-\n\rPointsIdsList\x12\x1c\n\x03ids\x18\x01 \x03(\x0b\x32\x0f.qdrant.PointId\"\xd5\x01\n\x0bPointStruct\x12\x1b\n\x02id\x18\x01 \x01(\x0b\x32\x0f.qdrant.PointId\x12\x31\n\x07payload\x18\x03 \x03(\x0b\x32 .qdrant.PointStruct.PayloadEntry\x12%\n\x07vectors\x18\x04 \x01(\x0b\x32\x0f.qdrant.VectorsH\x00\x88\x01\x01\x1a=\n\x0cPayloadEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x1c\n\x05value\x18\x02 \x01(\x0b\x32\r.qdrant.Value:\x02\x38\x01\x42\n\n\x08_vectorsJ\x04\x08\x02\x10\x03\"$\n\x08GeoPoint\x12\x0b\n\x03lon\x18\x01 \x01(\x01\x12\x0b\n\x03lat\x18\x02 \x01(\x01*5\n\x11WriteOrderingType\x12\x08\n\x04Weak\x10\x00\x12\n\n\x06Medium\x10\x01\x12\n\n\x06Strong\x10\x02*8\n\x13ReadConsistencyType\x12\x07\n\x03\x41ll\x10\x00\x12\x0c\n\x08Majority\x10\x01\x12\n\n\x06Quorum\x10\x02*\xad\x01\n\tFieldType\x12\x14\n\x10\x46ieldTypeKeyword\x10\x00\x12\x14\n\x10\x46ieldTypeInteger\x10\x01\x12\x12\n\x0e\x46ieldTypeFloat\x10\x02\x12\x10\n\x0c\x46ieldTypeGeo\x10\x03\x12\x11\n\rFieldTypeText\x10\x04\x12\x11\n\rFieldTypeBool\x10\x05\x12\x15\n\x11\x46ieldTypeDatetime\x10\x06\x12\x11\n\rFieldTypeUuid\x10\x07*\x1e\n\tDirection\x12\x07\n\x03\x41sc\x10\x00\x12\x08\n\x04\x44\x65sc\x10\x01*5\n\x11RecommendStrategy\x12\x11\n\rAverageVector\x10\x00\x12\r\n\tBestScore\x10\x01*\x1b\n\x06\x46usion\x12\x07\n\x03RRF\x10\x00\x12\x08\n\x04\x44\x42SF\x10\x01*\x14\n\x06Sample\x12\n\n\x06Random\x10\x00*[\n\x0cUpdateStatus\x12\x17\n\x13UnknownUpdateStatus\x10\x00\x12\x10\n\x0c\x41\x63knowledged\x10\x01\x12\r\n\tCompleted\x10\x02\x12\x11\n\rClockRejected\x10\x03\x42\x15\xaa\x02\x12Qdrant.Client.Grpcb\x06proto3') _WRITEORDERINGTYPE = DESCRIPTOR.enum_types_by_name['WriteOrderingType'] WriteOrderingType = enum_type_wrapper.EnumTypeWrapper(_WRITEORDERINGTYPE) @@ -186,7 +186,6 @@ _ISEMPTYCONDITION = DESCRIPTOR.message_types_by_name['IsEmptyCondition'] _ISNULLCONDITION = DESCRIPTOR.message_types_by_name['IsNullCondition'] _HASIDCONDITION = DESCRIPTOR.message_types_by_name['HasIdCondition'] -_HASVECTORCONDITION = DESCRIPTOR.message_types_by_name['HasVectorCondition'] _NESTEDCONDITION = DESCRIPTOR.message_types_by_name['NestedCondition'] _FIELDCONDITION = DESCRIPTOR.message_types_by_name['FieldCondition'] _MATCH = DESCRIPTOR.message_types_by_name['Match'] @@ -1083,13 +1082,6 @@ }) _sym_db.RegisterMessage(HasIdCondition) -HasVectorCondition = _reflection.GeneratedProtocolMessageType('HasVectorCondition', (_message.Message,), { - 'DESCRIPTOR' : _HASVECTORCONDITION, - '__module__' : 'points_pb2' - # @@protoc_insertion_point(class_scope:qdrant.HasVectorCondition) - }) -_sym_db.RegisterMessage(HasVectorCondition) - NestedCondition = _reflection.GeneratedProtocolMessageType('NestedCondition', (_message.Message,), { 'DESCRIPTOR' : _NESTEDCONDITION, '__module__' : 'points_pb2' @@ -1240,22 +1232,22 @@ _RETRIEVEDPOINT_PAYLOADENTRY._serialized_options = b'8\001' _POINTSTRUCT_PAYLOADENTRY._options = None _POINTSTRUCT_PAYLOADENTRY._serialized_options = b'8\001' - _WRITEORDERINGTYPE._serialized_start=24342 - _WRITEORDERINGTYPE._serialized_end=24395 - _READCONSISTENCYTYPE._serialized_start=24397 - _READCONSISTENCYTYPE._serialized_end=24453 - _FIELDTYPE._serialized_start=24456 - _FIELDTYPE._serialized_end=24629 - _DIRECTION._serialized_start=24631 - _DIRECTION._serialized_end=24661 - _RECOMMENDSTRATEGY._serialized_start=24663 - _RECOMMENDSTRATEGY._serialized_end=24716 - _FUSION._serialized_start=24718 - _FUSION._serialized_end=24745 - _SAMPLE._serialized_start=24747 - _SAMPLE._serialized_end=24767 - _UPDATESTATUS._serialized_start=24769 - _UPDATESTATUS._serialized_end=24860 + _WRITEORDERINGTYPE._serialized_start=24250 + _WRITEORDERINGTYPE._serialized_end=24303 + _READCONSISTENCYTYPE._serialized_start=24305 + _READCONSISTENCYTYPE._serialized_end=24361 + _FIELDTYPE._serialized_start=24364 + _FIELDTYPE._serialized_end=24537 + _DIRECTION._serialized_start=24539 + _DIRECTION._serialized_end=24569 + _RECOMMENDSTRATEGY._serialized_start=24571 + _RECOMMENDSTRATEGY._serialized_end=24624 + _FUSION._serialized_start=24626 + _FUSION._serialized_end=24653 + _SAMPLE._serialized_start=24655 + _SAMPLE._serialized_end=24675 + _UPDATESTATUS._serialized_start=24677 + _UPDATESTATUS._serialized_end=24768 _WRITEORDERING._serialized_start=97 _WRITEORDERING._serialized_end=153 _READCONSISTENCY._serialized_start=155 @@ -1495,47 +1487,45 @@ _MINSHOULD._serialized_start=21856 _MINSHOULD._serialized_end=21925 _CONDITION._serialized_start=21928 - _CONDITION._serialized_end=22259 - _ISEMPTYCONDITION._serialized_start=22261 - _ISEMPTYCONDITION._serialized_end=22292 - _ISNULLCONDITION._serialized_start=22294 - _ISNULLCONDITION._serialized_end=22324 - _HASIDCONDITION._serialized_start=22326 - _HASIDCONDITION._serialized_end=22375 - _HASVECTORCONDITION._serialized_start=22377 - _HASVECTORCONDITION._serialized_end=22417 - _NESTEDCONDITION._serialized_start=22419 - _NESTEDCONDITION._serialized_end=22481 - _FIELDCONDITION._serialized_start=22484 - _FIELDCONDITION._serialized_end=22793 - _MATCH._serialized_start=22796 - _MATCH._serialized_end=23087 - _REPEATEDSTRINGS._serialized_start=23089 - _REPEATEDSTRINGS._serialized_end=23123 - _REPEATEDINTEGERS._serialized_start=23125 - _REPEATEDINTEGERS._serialized_end=23161 - _RANGE._serialized_start=23163 - _RANGE._serialized_end=23270 - _DATETIMERANGE._serialized_start=23273 - _DATETIMERANGE._serialized_end=23500 - _GEOBOUNDINGBOX._serialized_start=23502 - _GEOBOUNDINGBOX._serialized_end=23594 - _GEORADIUS._serialized_start=23596 - _GEORADIUS._serialized_end=23657 - _GEOLINESTRING._serialized_start=23659 - _GEOLINESTRING._serialized_end=23708 - _GEOPOLYGON._serialized_start=23710 - _GEOPOLYGON._serialized_end=23805 - _VALUESCOUNT._serialized_start=23807 - _VALUESCOUNT._serialized_end=23920 - _POINTSSELECTOR._serialized_start=23922 - _POINTSSELECTOR._serialized_end=24039 - _POINTSIDSLIST._serialized_start=24041 - _POINTSIDSLIST._serialized_end=24086 - _POINTSTRUCT._serialized_start=24089 - _POINTSTRUCT._serialized_end=24302 + _CONDITION._serialized_end=22209 + _ISEMPTYCONDITION._serialized_start=22211 + _ISEMPTYCONDITION._serialized_end=22242 + _ISNULLCONDITION._serialized_start=22244 + _ISNULLCONDITION._serialized_end=22274 + _HASIDCONDITION._serialized_start=22276 + _HASIDCONDITION._serialized_end=22325 + _NESTEDCONDITION._serialized_start=22327 + _NESTEDCONDITION._serialized_end=22389 + _FIELDCONDITION._serialized_start=22392 + _FIELDCONDITION._serialized_end=22701 + _MATCH._serialized_start=22704 + _MATCH._serialized_end=22995 + _REPEATEDSTRINGS._serialized_start=22997 + _REPEATEDSTRINGS._serialized_end=23031 + _REPEATEDINTEGERS._serialized_start=23033 + _REPEATEDINTEGERS._serialized_end=23069 + _RANGE._serialized_start=23071 + _RANGE._serialized_end=23178 + _DATETIMERANGE._serialized_start=23181 + _DATETIMERANGE._serialized_end=23408 + _GEOBOUNDINGBOX._serialized_start=23410 + _GEOBOUNDINGBOX._serialized_end=23502 + _GEORADIUS._serialized_start=23504 + _GEORADIUS._serialized_end=23565 + _GEOLINESTRING._serialized_start=23567 + _GEOLINESTRING._serialized_end=23616 + _GEOPOLYGON._serialized_start=23618 + _GEOPOLYGON._serialized_end=23713 + _VALUESCOUNT._serialized_start=23715 + _VALUESCOUNT._serialized_end=23828 + _POINTSSELECTOR._serialized_start=23830 + _POINTSSELECTOR._serialized_end=23947 + _POINTSIDSLIST._serialized_start=23949 + _POINTSIDSLIST._serialized_end=23994 + _POINTSTRUCT._serialized_start=23997 + _POINTSTRUCT._serialized_end=24210 _POINTSTRUCT_PAYLOADENTRY._serialized_start=3841 _POINTSTRUCT_PAYLOADENTRY._serialized_end=3902 - _GEOPOINT._serialized_start=24304 - _GEOPOINT._serialized_end=24340 + _GEOPOINT._serialized_start=24212 + _GEOPOINT._serialized_end=24248 # @@protoc_insertion_point(module_scope) diff --git a/qdrant_client/proto/collections.proto b/qdrant_client/proto/collections.proto index 589a9616..474735f6 100644 --- a/qdrant_client/proto/collections.proto +++ b/qdrant_client/proto/collections.proto @@ -351,7 +351,6 @@ message UpdateCollection { optional VectorsConfigDiff vectors_config = 6; // New vector parameters optional QuantizationConfigDiff quantization_config = 7; // Quantization configuration of vector optional SparseVectorConfig sparse_vectors_config = 8; // New sparse vector parameters - optional StrictModeConfig strict_mode_config = 9; // New strict mode configuration } message DeleteCollection { diff --git a/qdrant_client/proto/points.proto b/qdrant_client/proto/points.proto index fad5415a..618733d9 100644 --- a/qdrant_client/proto/points.proto +++ b/qdrant_client/proto/points.proto @@ -946,7 +946,6 @@ message Condition { Filter filter = 4; IsNullCondition is_null = 5; NestedCondition nested = 6; - HasVectorCondition has_vector = 7; } } @@ -962,10 +961,6 @@ message HasIdCondition { repeated PointId has_id = 1; } -message HasVectorCondition { - string has_vector = 1; -} - message NestedCondition { string key = 1; // Path to nested object Filter filter = 2; // Filter condition From f231aedd422bd629a62c1a869f746d131a27044b Mon Sep 17 00:00:00 2001 From: George Panchuk Date: Tue, 5 Nov 2024 17:55:46 +0100 Subject: [PATCH 3/8] new: add and fix conversions --- qdrant_client/conversions/conversion.py | 254 ++++++++++++++++++++---- tests/conversions/fixtures.py | 141 ++++++++++++- tests/coverage-test.sh | 4 +- 3 files changed, 350 insertions(+), 49 deletions(-) diff --git a/qdrant_client/conversions/conversion.py b/qdrant_client/conversions/conversion.py index ce73ff3d..41a61305 100644 --- a/qdrant_client/conversions/conversion.py +++ b/qdrant_client/conversions/conversion.py @@ -141,7 +141,7 @@ class GrpcToRest: def convert_condition(cls, model: grpc.Condition) -> rest.Condition: name = model.WhichOneof("condition_one_of") if name is None: - raise ValueError(f"invalid Condition model: {model}") + raise ValueError(f"invalid Condition model: {model}") # pragma: no cover val = getattr(model, name) if name == "field": @@ -490,7 +490,7 @@ def convert_create_alias(cls, model: grpc.CreateAlias) -> rest.CreateAlias: def convert_order_value(cls, model: grpc.OrderValue) -> rest.OrderValue: name = model.WhichOneof("variant") if name is None: - raise ValueError(f"invalid OrderValue model: {model}") + raise ValueError(f"invalid OrderValue model: {model}") # pragma: no cover val = getattr(model, name) if name == "int": @@ -508,7 +508,9 @@ def convert_scored_point(cls, model: grpc.ScoredPoint) -> rest.ScoredPoint: id=cls.convert_point_id(model.id), payload=cls.convert_payload(model.payload) if has_field(model, "payload") else None, score=model.score, - vector=cls.convert_vectors(model.vectors) if model.HasField("vectors") else None, + vector=cls.convert_vectors_output(model.vectors) + if model.HasField("vectors") + else None, version=model.version, shard_key=( cls.convert_shard_key(model.shard_key) if model.HasField("shard_key") else None @@ -587,7 +589,7 @@ def convert_field_condition(cls, model: grpc.FieldCondition) -> rest.FieldCondit def convert_match(cls, model: grpc.Match) -> rest.Match: name = model.WhichOneof("match_value") if name is None: - raise ValueError(f"invalid Match model: {model}") + raise ValueError(f"invalid Match model: {model}") # pragma: no cover val = getattr(model, name) if name == "integer": @@ -722,7 +724,7 @@ def convert_geo_point(cls, model: grpc.GeoPoint) -> rest.GeoPoint: def convert_alias_operations(cls, model: grpc.AliasOperations) -> rest.AliasOperations: name = model.WhichOneof("action") if name is None: - raise ValueError(f"invalid AliasOperations model: {model}") + raise ValueError(f"invalid AliasOperations model: {model}") # pragma: no cover val = getattr(model, name) if name == "rename_alias": @@ -747,7 +749,7 @@ def convert_points_selector( ) -> rest.PointsSelector: name = model.WhichOneof("points_selector_one_of") if name is None: - raise ValueError(f"invalid PointsSelector model: {model}") + raise ValueError(f"invalid PointsSelector model: {model}") # pragma: no cover val = getattr(model, name) if name == "points": @@ -768,7 +770,7 @@ def convert_with_payload_selector( ) -> rest.WithPayloadInterface: name = model.WhichOneof("selector_options") if name is None: - raise ValueError(f"invalid WithPayloadSelector model: {model}") + raise ValueError(f"invalid WithPayloadSelector model: {model}") # pragma: no cover val = getattr(model, name) if name == "enable": @@ -791,7 +793,9 @@ def convert_retrieved_point(cls, model: grpc.RetrievedPoint) -> rest.Record: return rest.Record( id=cls.convert_point_id(model.id), payload=cls.convert_payload(model.payload), - vector=cls.convert_vectors(model.vectors) if model.HasField("vectors") else None, + vector=cls.convert_vectors_output(model.vectors) + if model.HasField("vectors") + else None, shard_key=( cls.convert_shard_key(model.shard_key) if model.HasField("shard_key") else None ), @@ -833,7 +837,7 @@ def convert_datatype(cls, model: grpc.Datatype) -> rest.Datatype: elif model == grpc.Datatype.Float16: return rest.Datatype.FLOAT16 else: - raise ValueError(f"invalid Datatype model: {model}") + raise ValueError(f"invalid Datatype model: {model}") # pragma: no cover @classmethod def convert_vector_params(cls, model: grpc.VectorParams) -> rest.VectorParams: @@ -878,7 +882,7 @@ def convert_multivector_comparator( def convert_vectors_config(cls, model: grpc.VectorsConfig) -> rest.VectorsConfig: name = model.WhichOneof("config") if name is None: - raise ValueError(f"invalid VectorsConfig model: {model}") + raise ValueError(f"invalid VectorsConfig model: {model}") # pragma: no cover val = getattr(model, name) if name == "params": @@ -892,6 +896,48 @@ def convert_vectors_config(cls, model: grpc.VectorsConfig) -> rest.VectorsConfig @classmethod def convert_vector( cls, model: grpc.Vector + ) -> Union[ + List[float], + List[List[float]], + rest.SparseVector, + rest.Document, + rest.Image, + rest.InferenceObject, + ]: + if model.HasField("indices"): + return rest.SparseVector(indices=model.indices.data[:], values=model.data[:]) + if model.HasField("vectors_count"): + vectors_count = model.vectors_count + vectors = model.data + step = len(vectors) // vectors_count + return [vectors[i : i + step] for i in range(0, len(vectors), step)] + + name = model.WhichOneof("vector") + if name is None: + return model.data[:] + + val = getattr(model, name) + if name == "dense": + return cls.convert_dense_vector(val) + + if name == "sparse": + return cls.convert_sparse_vector(val) + + if name == "multi_dense": + return cls.convert_multi_dense_vector(val) + + if name == "document": + return cls.convert_document(val) + + if name == "image": + return cls.convert_image(val) + + if name == "object": + return cls.convert_inference_object(val) + + @classmethod + def convert_vector_output( + cls, model: grpc.VectorOutput ) -> Union[List[float], List[List[float]], rest.SparseVector]: if model.HasField("indices"): return rest.SparseVector(indices=model.indices.data[:], values=model.data[:]) @@ -900,6 +946,7 @@ def convert_vector( vectors = model.data step = len(vectors) // vectors_count return [vectors[i : i + step] for i in range(0, len(vectors), step)] + return model.data[:] @classmethod @@ -910,11 +957,21 @@ def convert_named_vectors(cls, model: grpc.NamedVectors) -> Dict[str, rest.Vecto return vectors + @classmethod + def convert_named_vectors_output( + cls, model: grpc.NamedVectorsOutput + ) -> Dict[str, rest.VectorOutput]: + vectors = {} + for name, vector in model.vectors.items(): + vectors[name] = cls.convert_vector_output(vector) + + return vectors + @classmethod def convert_vectors(cls, model: grpc.Vectors) -> rest.VectorStruct: name = model.WhichOneof("vectors_options") if name is None: - raise ValueError(f"invalid Vectors model: {model}") + raise ValueError(f"invalid Vectors model: {model}") # pragma: no cover val = getattr(model, name) if name == "vector": @@ -923,6 +980,19 @@ def convert_vectors(cls, model: grpc.Vectors) -> rest.VectorStruct: return cls.convert_named_vectors(val) raise ValueError(f"invalid Vectors model: {model}") # pragma: no cover + @classmethod + def convert_vectors_output(cls, model: grpc.VectorsOutput) -> rest.VectorStructOutput: + name = model.WhichOneof("vectors_options") + if name is None: + raise ValueError(f"invalid Vectors model: {model}") # pragma: no cover + val = getattr(model, name) + + if name == "vector": + return cls.convert_vector_output(val) + if name == "vectors": + return cls.convert_named_vectors_output(val) + raise ValueError(f"invalid Vectors model: {model}") # pragma: no cover + @classmethod def convert_dense_vector(cls, model: grpc.DenseVector) -> List[float]: return model.data[:] @@ -935,11 +1005,35 @@ def convert_sparse_vector(cls, model: grpc.SparseVector) -> rest.SparseVector: def convert_multi_dense_vector(cls, model: grpc.MultiDenseVector) -> List[List[float]]: return [cls.convert_dense_vector(vector) for vector in model.vectors] + @classmethod + def convert_document(cls, model: grpc.Document) -> rest.Document: + return rest.Document( + text=model.text, + model=model.model if model.HasField("model") else None, + options=model.options, + ) + + @classmethod + def convert_image(cls, model: grpc.Image) -> rest.Image: + return rest.Image( + image=model.image, + model=model.model if model.HasField("model") else None, + options=model.options, + ) + + @classmethod + def convert_inference_object(cls, model: grpc.InferenceObject) -> rest.InferenceObject: + return rest.InferenceObject( + object=model.object, + model=model.model if model.HasField("model") else None, + options=model.options, + ) + @classmethod def convert_vector_input(cls, model: grpc.VectorInput) -> rest.VectorInput: name = model.WhichOneof("variant") if name is None: - raise ValueError(f"invalid VectorInput model: {model}") + raise ValueError(f"invalid VectorInput model: {model}") # pragma: no cover val = getattr(model, name) if name == "id": @@ -950,7 +1044,13 @@ def convert_vector_input(cls, model: grpc.VectorInput) -> rest.VectorInput: return cls.convert_sparse_vector(val) if name == "multi_dense": return cls.convert_multi_dense_vector(val) - raise ValueError(f"invalid VectorInput model: {model}") + if name == "document": + return cls.convert_document(val) + if name == "image": + return cls.convert_image(val) + if name == "object": + return cls.convert_inference_object(val) + raise ValueError(f"invalid VectorInput model: {model}") # pragma: no cover @classmethod def convert_recommend_input(cls, model: grpc.RecommendInput) -> rest.RecommendInput: @@ -1001,7 +1101,7 @@ def convert_sample(cls, model: grpc.Sample) -> rest.Sample: def convert_query(cls, model: grpc.Query) -> rest.Query: name = model.WhichOneof("variant") if name is None: - raise ValueError(f"invalid Query model: {model}") + raise ValueError(f"invalid Query model: {model}") # pragma: no cover val = getattr(model, name) if name == "nearest": @@ -1025,7 +1125,7 @@ def convert_query(cls, model: grpc.Query) -> rest.Query: if name == "sample": return rest.SampleQuery(sample=cls.convert_sample(val)) - raise ValueError(f"invalid Query model: {model}") + raise ValueError(f"invalid Query model: {model}") # pragma: no cover @classmethod def convert_prefetch_query(cls, model: grpc.PrefetchQuery) -> rest.Prefetch: @@ -1052,7 +1152,7 @@ def convert_vectors_selector(cls, model: grpc.VectorsSelector) -> List[str]: def convert_with_vectors_selector(cls, model: grpc.WithVectorsSelector) -> rest.WithVector: name = model.WhichOneof("selector_options") if name is None: - raise ValueError(f"invalid WithVectorsSelector model: {model}") + raise ValueError(f"invalid WithVectorsSelector model: {model}") # pragma: no cover val = getattr(model, name) if name == "enable": @@ -1063,8 +1163,20 @@ def convert_with_vectors_selector(cls, model: grpc.WithVectorsSelector) -> rest. @classmethod def convert_search_points(cls, model: grpc.SearchPoints) -> rest.SearchRequest: + vector = ( + rest.NamedVector(name=model.vector_name, vector=model.vector[:]) + if not model.HasField("sparse_indices") + else ( + rest.NamedSparseVector( + name=model.vector_name, + vector=rest.SparseVector( + indices=model.sparse_indices.data[:], values=model.vector[:] + ), + ) + ) + ) return rest.SearchRequest( - vector=rest.NamedVector(name=model.vector_name, vector=model.vector[:]), + vector=vector, filter=cls.convert_filter(model.filter) if model.HasField("filter") else None, limit=model.limit, with_payload=( @@ -1348,7 +1460,7 @@ def convert_write_ordering(cls, model: grpc.WriteOrdering) -> rest.WriteOrdering def convert_read_consistency(cls, model: grpc.ReadConsistency) -> rest.ReadConsistency: name = model.WhichOneof("value") if name is None: - raise ValueError(f"invalid ReadConsistency model: {model}") + raise ValueError(f"invalid ReadConsistency model: {model}") # pragma: no cover val = getattr(model, name) if name == "factor": return val @@ -1415,7 +1527,7 @@ def convert_quantization_config( ) -> rest.QuantizationConfig: name = model.WhichOneof("quantization") if name is None: - raise ValueError(f"invalid QuantizationConfig model: {model}") + raise ValueError(f"invalid QuantizationConfig model: {model}") # pragma: no cover val = getattr(model, name) if name == "scalar": return rest.ScalarQuantization(scalar=cls.convert_scalar_quantization_config(val)) @@ -1460,7 +1572,7 @@ def convert_point_group(cls, model: grpc.PointGroup) -> rest.PointGroup: def convert_group_id(cls, model: grpc.GroupId) -> rest.GroupId: name = model.WhichOneof("kind") if name is None: - raise ValueError(f"invalid GroupId model: {model}") + raise ValueError(f"invalid GroupId model: {model}") # pragma: no cover val = getattr(model, name) return val @@ -1486,7 +1598,7 @@ def convert_quantization_config_diff( ) -> rest.QuantizationConfigDiff: name = model.WhichOneof("quantization") if name is None: - raise ValueError(f"invalid QuantizationConfigDiff model: {model}") + raise ValueError(f"invalid QuantizationConfigDiff model: {model}") # pragma: no cover val = getattr(model, name) if name == "scalar": return rest.ScalarQuantization(scalar=cls.convert_scalar_quantization_config(val)) @@ -1518,7 +1630,7 @@ def convert_vector_params_diff(cls, model: grpc.VectorParamsDiff) -> rest.Vector def convert_vectors_config_diff(cls, model: grpc.VectorsConfigDiff) -> rest.VectorsConfigDiff: name = model.WhichOneof("config") if name is None: - raise ValueError(f"invalid VectorsConfigDiff model: {model}") + raise ValueError(f"invalid VectorsConfigDiff model: {model}") # pragma: no cover val = getattr(model, name) if name == "params": @@ -1536,7 +1648,7 @@ def convert_points_update_operation( ) -> rest.UpdateOperation: name = model.WhichOneof("operation") if name is None: - raise ValueError(f"invalid PointsUpdateOperation model: {model}") + raise ValueError(f"invalid PointsUpdateOperation model: {model}") # pragma: no cover val = getattr(model, name) if name == "upsert": @@ -1712,7 +1824,7 @@ def convert_modifier(cls, model: grpc.Modifier) -> rest.Modifier: return rest.Modifier.IDF if model == getattr(grpc.Modifier, "None"): return rest.Modifier.NONE - raise ValueError(f"invalid Modifier model: {model}") + raise ValueError(f"invalid Modifier model: {model}") # pragma: no cover @classmethod def convert_sparse_vector_params( @@ -1739,7 +1851,7 @@ def convert_sparse_vector_config( def convert_shard_key(cls, model: grpc.ShardKey) -> rest.ShardKey: name = model.WhichOneof("key") if name is None: - raise ValueError(f"invalid ShardKey model: {model}") + raise ValueError(f"invalid ShardKey model: {model}") # pragma: no cover val = getattr(model, name) return val @@ -1793,7 +1905,7 @@ def convert_order_by(cls, model: grpc.OrderBy) -> rest.OrderBy: def convert_facet_value(cls, model: grpc.FacetValue) -> rest.FacetValue: name = model.WhichOneof("variant") if name is None: - raise ValueError(f"invalid FacetValue model: {model}") + raise ValueError(f"invalid FacetValue model: {model}") # pragma: no cover val = getattr(model, name) return val @@ -2099,7 +2211,9 @@ def convert_scored_point(cls, model: rest.ScoredPoint) -> grpc.ScoredPoint: id=cls.convert_extended_point_id(model.id), payload=cls.convert_payload(model.payload) if model.payload is not None else None, score=model.score, - vectors=cls.convert_vector_struct(model.vector) if model.vector is not None else None, + vectors=cls.convert_vector_struct_output(model.vector) + if model.vector is not None + else None, version=model.version, shard_key=cls.convert_shard_key(model.shard_key) if model.shard_key else None, order_value=cls.convert_order_value(model.order_value) if model.order_value else None, @@ -2416,6 +2530,13 @@ def convert_sparse_vector_to_vector(cls, model: rest.SparseVector) -> grpc.Vecto indices=grpc.SparseIndices(data=model.indices), ) + @classmethod + def convert_sparse_vector_to_vector_output(cls, model: rest.SparseVector) -> grpc.VectorOutput: + return grpc.VectorOutput( + data=model.values, + indices=grpc.SparseIndices(data=model.indices), + ) + @classmethod def convert_target_vector(cls, model: rest.RecommendExample) -> grpc.TargetVector: return grpc.TargetVector(single=cls.convert_recommend_example(model)) @@ -2519,7 +2640,7 @@ def convert_direction(cls, model: rest.Direction) -> grpc.Direction: return grpc.Direction.Asc if model == rest.Direction.DESC: return grpc.Direction.Desc - raise ValueError(f"invalid Direction model: {model}") + raise ValueError(f"invalid Direction model: {model}") # pragma: no cover @classmethod def convert_order_by(cls, model: rest.OrderBy) -> grpc.OrderBy: @@ -2534,15 +2655,13 @@ def convert_order_by(cls, model: rest.OrderBy) -> grpc.OrderBy: ) @classmethod - def convert_order_by_interface( - cls, model: rest.OrderByInterface - ) -> grpc.OrderBy: # pragma: no cover + def convert_order_by_interface(cls, model: rest.OrderByInterface) -> grpc.OrderBy: # using no cover because there is no OrderByInterface in grpc if isinstance(model, str): return grpc.OrderBy(key=model) if isinstance(model, rest.OrderBy): return cls.convert_order_by(model) - raise ValueError(f"invalid OrderByInterface model: {model}") + raise ValueError(f"invalid OrderByInterface model: {model}") # pragma: no cover @classmethod def convert_facet_value(cls, model: rest.FacetValue) -> grpc.FacetValue: @@ -2551,7 +2670,7 @@ def convert_facet_value(cls, model: rest.FacetValue) -> grpc.FacetValue: if isinstance(model, int): return grpc.FacetValue(integer_value=model) - raise ValueError(f"invalid FacetValue model: {model}") + raise ValueError(f"invalid FacetValue model: {model}") # pragma: no cover @classmethod def convert_facet_value_hit(cls, model: rest.FacetValueHit) -> grpc.FacetHit: @@ -2565,7 +2684,9 @@ def convert_record(cls, model: rest.Record) -> grpc.RetrievedPoint: return grpc.RetrievedPoint( id=cls.convert_extended_point_id(model.id), payload=cls.convert_payload(model.payload), - vectors=cls.convert_vector_struct(model.vector) if model.vector is not None else None, + vectors=cls.convert_vector_struct_output(model.vector) + if model.vector is not None + else None, shard_key=cls.convert_shard_key(model.shard_key) if model.shard_key else None, order_value=cls.convert_order_value(model.order_value) if model.order_value else None, ) @@ -2678,10 +2799,51 @@ def convert_vector(vector: Union[List[float], List[List[float]]]) -> grpc.Vector vectors.update({key: convert_vector(val)}) elif isinstance(val, rest.SparseVector): vectors.update({key: cls.convert_sparse_vector_to_vector(val)}) + elif isinstance(val, rest.Document): + vectors.update({key: grpc.Vector(document=cls.convert_document(val))}) + elif isinstance(val, rest.Image): + vectors.update({key: grpc.Vector(image=cls.convert_image(val))}) + elif isinstance(val, rest.InferenceObject): + vectors.update({key: grpc.Vector(object=cls.convert_inference_object(val))}) return grpc.Vectors(vectors=grpc.NamedVectors(vectors=vectors)) + elif isinstance(model, rest.Document): + return grpc.Vectors(vector=grpc.Vector(document=cls.convert_document(model))) + elif isinstance(model, rest.Image): + return grpc.Vectors(vector=grpc.Vector(image=cls.convert_image(model))) + elif isinstance(model, rest.InferenceObject): + return grpc.Vectors(vector=grpc.Vector(object=cls.convert_inference_object(model))) else: raise ValueError(f"invalid VectorStruct model: {model}") # pragma: no cover + @classmethod + def convert_vector_struct_output(cls, model: rest.VectorStructOutput) -> grpc.VectorsOutput: + def convert_vector(vector: Union[List[float], List[List[float]]]) -> grpc.VectorOutput: + if len(vector) != 0 and isinstance( + vector[0], list + ): # we can't say whether it is an empty dense or multi-dense vector + return grpc.VectorOutput( + data=[ + inner_vector + for multi_vector in vector + for inner_vector in multi_vector # type: ignore + ], + vectors_count=len(vector), + ) + return grpc.VectorOutput(data=vector) + + if isinstance(model, list): + return grpc.VectorsOutput(vector=convert_vector(model)) + elif isinstance(model, dict): + vectors: Dict = {} + for key, val in model.items(): + if isinstance(val, list): + vectors.update({key: convert_vector(val)}) + elif isinstance(val, rest.SparseVector): + vectors.update({key: cls.convert_sparse_vector_to_vector_output(val)}) + return grpc.VectorsOutput(vectors=grpc.NamedVectorsOutput(vectors=vectors)) + else: + raise ValueError(f"invalid VectorStructOutput model: {model}") # pragma: no cover + @classmethod def convert_with_vectors(cls, model: rest.WithVector) -> grpc.WithVectorsSelector: if isinstance(model, bool): @@ -2733,6 +2895,18 @@ def convert_multi_dense_vector(cls, model: List[List[float]]) -> grpc.MultiDense vectors=[cls.convert_dense_vector(vector) for vector in model] ) + @classmethod + def convert_document(cls, model: rest.Document) -> grpc.Document: + return grpc.Document(text=model.text, model=model.model, options=model.options) + + @classmethod + def convert_image(cls, model: rest.Image) -> grpc.Image: + return grpc.Image(image=model.image, model=model.model, options=model.options) + + @classmethod + def convert_inference_object(cls, model: rest.InferenceObject): + return grpc.InferenceObject(object=model.object, model=model.model, options=model.options) + @classmethod def convert_vector_input(cls, model: rest.VectorInput) -> grpc.VectorInput: if isinstance(model, list): @@ -2745,6 +2919,12 @@ def convert_vector_input(cls, model: rest.VectorInput) -> grpc.VectorInput: return grpc.VectorInput(sparse=cls.convert_sparse_vector(model)) if isinstance(model, get_args_subscribed(rest.ExtendedPointId)): return grpc.VectorInput(id=cls.convert_extended_point_id(model)) + if isinstance(model, rest.Document): + return grpc.VectorInput(document=cls.convert_document(model)) + if isinstance(model, rest.Image): + return grpc.VectorInput(image=cls.convert_image(model)) + if isinstance(model, rest.InferenceObject): + return grpc.VectorInput(object=cls.convert_inference_object(model)) raise ValueError(f"invalid VectorInput model: {model}") # pragma: no cover @@ -2795,14 +2975,14 @@ def convert_fusion(cls, model: rest.Fusion) -> grpc.Fusion: if model == rest.Fusion.DBSF: return grpc.Fusion.DBSF - raise ValueError(f"invalid Fusion model: {model}") + raise ValueError(f"invalid Fusion model: {model}") # pragma: no cover @classmethod def convert_sample(cls, model: rest.Sample) -> grpc.Sample: if model == rest.Sample.RANDOM: return grpc.Sample.Random - raise ValueError(f"invalid Sample model: {model}") + raise ValueError(f"invalid Sample model: {model}") # pragma: no cover @classmethod def convert_query(cls, model: rest.Query) -> grpc.Query: @@ -3562,7 +3742,7 @@ def convert_modifier(cls, model: rest.Modifier) -> grpc.Modifier: elif model == rest.Modifier.NONE: return getattr(grpc.Modifier, "None") else: - raise ValueError(f"invalid Modifier model: {model}") + raise ValueError(f"invalid Modifier model: {model}") # pragma: no cover @classmethod def convert_sparse_vector_params( diff --git a/tests/conversions/fixtures.py b/tests/conversions/fixtures.py index cfbae2a8..70d0844e 100644 --- a/tests/conversions/fixtures.py +++ b/tests/conversions/fixtures.py @@ -5,7 +5,7 @@ from google.protobuf.timestamp_pb2 import Timestamp from qdrant_client import grpc as grpc -from qdrant_client.conversions.conversion import payload_to_grpc +from qdrant_client.conversions.conversion import payload_to_grpc, json_to_value from qdrant_client.grpc import SparseIndices point_id = grpc.PointId(num=1) @@ -291,16 +291,66 @@ multi_vector = grpc.Vectors( vector=grpc.Vector(data=[1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0], vectors_count=2) ) +single_dense_vector = grpc.Vectors( + vector=grpc.Vector(dense=grpc.DenseVector(data=[1.0, 2.0, 3.0])) +) +single_sparse_vector = grpc.Vectors( + vectors=grpc.NamedVectors( + vectors={ + "sparse": grpc.Vector( + sparse=grpc.SparseVector(values=[1.0, 2.0, 3.0], indices=[1, 2, 3]) + ) + } + ) +) +single_multidense_vector = grpc.Vectors( + vector=grpc.Vector( + multi_dense=grpc.MultiDenseVector(vectors=[grpc.DenseVector(data=[1.0, 2.0, 3.0])]) + ) +) +document_with_options = grpc.Document( + text="random text", model="bert", options=payload_to_grpc({"a": 2, "b": [1, 2], "c": "useful"}) +) +document_without_options = grpc.Document(text="random text", model="bert") +document_only_text = grpc.Document(text="random text") +image_with_options = grpc.Image( + image="base64", model="resnet", options=payload_to_grpc({"a": 2, "b": [1, 2], "c": "useful"}) +) +image_without_options = grpc.Image(image="base64", model="resnet") +image_only_image = grpc.Image(image="base64") +inference_object_with_options = grpc.InferenceObject( + object=json_to_value("text"), + model="bert", + options=payload_to_grpc({"a": 2, "b": [1, 2], "c": "useful"}), +) +inference_object_without_options = grpc.InferenceObject(object=json_to_value("text"), model="bert") +inference_object_only_object = grpc.InferenceObject(object=json_to_value("text")) order_value_int = grpc.OrderValue(int=42) order_value_float = grpc.OrderValue(float=42.0) +single_vector_output = grpc.VectorsOutput(vector=grpc.VectorOutput(data=[1.0, 2.0, 3.0, 4.0])) +multi_vector_output = grpc.VectorsOutput( + vector=grpc.VectorOutput(data=[1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0], vectors_count=2) +) +named_vectors_output = grpc.VectorsOutput( + vectors=grpc.NamedVectorsOutput( + vectors={ + "sparse": grpc.VectorOutput( + data=[1.0, 2.0, 3.0, 4.0], indices=grpc.SparseIndices(data=[1, 2, 3, 4]) + ), + "dense": grpc.VectorOutput(data=[1.0, 2.0, 3.0, 4.0]), + "multi": multi_vector_output.vector, + } + ) +) + scored_point = grpc.ScoredPoint( - id=point_id, payload=payload, score=0.99, vectors=single_vector, version=12 + id=point_id, payload=payload, score=0.99, vectors=single_vector_output, version=12 ) scored_point_order_value_int = grpc.ScoredPoint( id=point_id, payload=payload, score=0.99, - vectors=single_vector, + vectors=single_vector_output, version=12, order_value=order_value_int, ) @@ -308,15 +358,15 @@ id=point_id, payload=payload, score=0.99, - vectors=single_vector, + vectors=named_vectors_output, version=12, - order_value=order_value_int, + order_value=order_value_float, ) scored_point_multivector = grpc.ScoredPoint( id=point_id, payload=payload, score=0.99, - vectors=multi_vector, + vectors=multi_vector_output, version=12, order_value=order_value_float, ) @@ -678,6 +728,24 @@ payload=payload_to_grpc({"my_payload": payload_value}), ) +point_struct_doc = grpc.PointStruct( + id=point_id_1, + vectors=grpc.Vectors(vector=grpc.Vector(document=document_with_options)), + payload=payload_to_grpc({"my_payload": payload_value}), +) + +point_struct_image = grpc.PointStruct( + id=point_id_1, + vectors=grpc.Vectors(vector=grpc.Vector(image=image_with_options)), + payload=payload_to_grpc({"my_payload": payload_value}), +) + +point_struct_obj = grpc.PointStruct( + id=point_id_1, + vectors=grpc.Vectors(vector=grpc.Vector(object=inference_object_with_options)), + payload=payload_to_grpc({"my_payload": payload_value}), +) + many_vectors = grpc.Vectors( vectors=grpc.NamedVectors( vectors={ @@ -687,6 +755,9 @@ data=[1.0, 2.0, -1.0, -0.2], indices=SparseIndices(data=[1, 2, 3]) ), "multi": grpc.Vector(data=[1.0, 2.0, 3.0, 4.0], vectors_count=2), + "doc_raw": grpc.Vector(document=document_with_options), + "image_raw": grpc.Vector(image=image_with_options), + "obj_raw": grpc.Vector(object=inference_object_with_options), } ) ) @@ -776,13 +847,13 @@ retrieved_point = grpc.RetrievedPoint( id=point_id_1, payload=payload_to_grpc({"key": payload_value}), - vectors=single_vector, + vectors=single_vector_output, ) retrieved_point_with_order_value = grpc.RetrievedPoint( id=point_id_1, payload=payload_to_grpc({"key": payload_value}), - vectors=single_vector, + vectors=single_vector_output, order_value=order_value_int, ) @@ -834,6 +905,7 @@ vector_name="abc", with_vectors=grpc.WithVectorsSelector(include=grpc.VectorsSelector(names=["abc", "def"])), shard_key_selector=shard_key_selector, + sparse_indices=grpc.SparseIndices(data=[1, 2, 3]), ) search_points_all_vectors = grpc.SearchPoints( @@ -961,6 +1033,12 @@ vectors=many_vectors, ) +point_vector_3 = grpc.PointVectors(id=point_id_1, vectors=single_dense_vector) + +point_vector_4 = grpc.PointVectors(id=point_id_1, vectors=single_sparse_vector) + +point_vector_5 = grpc.PointVectors(id=point_id_1, vectors=single_multidense_vector) + group_id_1 = grpc.GroupId(unsigned_value=123) group_id_2 = grpc.GroupId(integer_value=-456) group_id_3 = grpc.GroupId(string_value="abc") @@ -1172,10 +1250,37 @@ vector_input_dense_2 = grpc.VectorInput(dense=dense_vector_2) vector_input_sparse = grpc.VectorInput(sparse=sparse_vector) vector_input_multi = grpc.VectorInput(multi_dense=multi_dense_vector) +vector_input_doc_with_options = grpc.VectorInput(document=document_with_options) +vector_input_doc_without_options = grpc.VectorInput(document=document_without_options) +vector_input_doc_only_text = grpc.VectorInput(document=document_only_text) +vector_input_image_with_options = grpc.VectorInput(image=image_with_options) +vector_input_image_without_options = grpc.VectorInput(image=image_without_options) +vector_input_image_only_image = grpc.VectorInput(image=image_only_image) +vector_input_inference_with_options = grpc.VectorInput(object=inference_object_with_options) +vector_input_inference_without_options = grpc.VectorInput(object=inference_object_without_options) +vector_input_inference_only_object = grpc.VectorInput(object=inference_object_only_object) + recommend_input = grpc.RecommendInput( - positive=[vector_input_dense], + positive=[ + vector_input_dense, + ], negative=[vector_input_dense_2], ) +recommend_input_raw = grpc.RecommendInput( + positive=[ + vector_input_doc_with_options, + vector_input_doc_without_options, + vector_input_doc_only_text, + ], + negative=[ + vector_input_image_with_options, + vector_input_image_without_options, + vector_input_image_only_image, + vector_input_inference_with_options, + vector_input_inference_without_options, + vector_input_inference_only_object, + ], +) recommend_input_strategy = grpc.RecommendInput( positive=[vector_input_id], strategy=recommend_strategy, @@ -1190,6 +1295,7 @@ query_nearest = grpc.Query(nearest=vector_input_sparse) query_recommend = grpc.Query(recommend=recommend_input) query_recommend_id = grpc.Query(recommend=recommend_input_strategy) +query_recommend_raw = grpc.Query(recommend=recommend_input_raw) query_discover = grpc.Query(discover=discover_input) query_context = grpc.Query(context=context_input) query_order_by = grpc.Query(order_by=order_by) @@ -1291,7 +1397,13 @@ "IsEmptyCondition": [is_empty], "IsNullCondition": [is_null], "DeleteAlias": [delete_alias], - "PointStruct": [point_struct, point_struct_many], + "PointStruct": [ + point_struct, + point_struct_many, + point_struct_doc, + point_struct_image, + point_struct_obj, + ], "CollectionDescription": [collection_description], "GeoPoint": [geo_point], "WalConfigDiff": [wal_config], @@ -1354,7 +1466,13 @@ "QuantizationConfig": [quantization_config, binary_quantization_config] + product_quantizations, "QuantizationSearchParams": [quantization_search_params], - "PointVectors": [point_vector_1, point_vector_2], + "PointVectors": [ + point_vector_1, + point_vector_2, + # point_vector_3, # todo: uncomment as of 1.13.0 + # point_vector_4, # todo: uncomment as of 1.13.0 + # point_vector_5, # todo: uncomment as of 1.13.0 + ], "GroupId": [group_id_1, group_id_2, group_id_3], "GroupsResult": [group_result], "WithLookup": [with_lookup], @@ -1389,6 +1507,7 @@ "Query": [ query_nearest, query_recommend, + query_recommend_raw, query_discover, query_context, query_order_by, diff --git a/tests/coverage-test.sh b/tests/coverage-test.sh index b23bf8d4..2b969408 100755 --- a/tests/coverage-test.sh +++ b/tests/coverage-test.sh @@ -3,4 +3,6 @@ set -ex coverage run --include='qdrant_client/conversions/conversion.py' -m pytest tests/conversions/test_validate_conversions.py -vv -s -coverage report --fail-under=97 +coverage report --fail-under=98 + +#coverage html From e6d4aa9b730a4db704dffc378a5956d43ed0d66f Mon Sep 17 00:00:00 2001 From: George Panchuk Date: Tue, 5 Nov 2024 17:57:49 +0100 Subject: [PATCH 4/8] fix: fix type hints --- qdrant_client/conversions/conversion.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/qdrant_client/conversions/conversion.py b/qdrant_client/conversions/conversion.py index 41a61305..14ce29a3 100644 --- a/qdrant_client/conversions/conversion.py +++ b/qdrant_client/conversions/conversion.py @@ -935,6 +935,8 @@ def convert_vector( if name == "object": return cls.convert_inference_object(val) + raise ValueError(f"invalid Vector model: {model}") # pragma: no cover + @classmethod def convert_vector_output( cls, model: grpc.VectorOutput @@ -2904,7 +2906,7 @@ def convert_image(cls, model: rest.Image) -> grpc.Image: return grpc.Image(image=model.image, model=model.model, options=model.options) @classmethod - def convert_inference_object(cls, model: rest.InferenceObject): + def convert_inference_object(cls, model: rest.InferenceObject) -> grpc.InferenceObject: return grpc.InferenceObject(object=model.object, model=model.model, options=model.options) @classmethod From 0770c881a8d8709637d3f0e29a79901cb03c8fc9 Mon Sep 17 00:00:00 2001 From: George Panchuk Date: Tue, 5 Nov 2024 18:29:04 +0100 Subject: [PATCH 5/8] fix: fix comment --- tests/conversions/fixtures.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/conversions/fixtures.py b/tests/conversions/fixtures.py index 70d0844e..3d8a550c 100644 --- a/tests/conversions/fixtures.py +++ b/tests/conversions/fixtures.py @@ -1469,9 +1469,9 @@ "PointVectors": [ point_vector_1, point_vector_2, - # point_vector_3, # todo: uncomment as of 1.13.0 - # point_vector_4, # todo: uncomment as of 1.13.0 - # point_vector_5, # todo: uncomment as of 1.13.0 + # point_vector_3, # todo: uncomment as of 1.14.0 + # point_vector_4, # todo: uncomment as of 1.14.0 + # point_vector_5, # todo: uncomment as of 1.14.0 ], "GroupId": [group_id_1, group_id_2, group_id_3], "GroupsResult": [group_result], From 7001e72da7bba9758fae0fc61e5bc5c447aa9d66 Mon Sep 17 00:00:00 2001 From: George Panchuk Date: Wed, 6 Nov 2024 09:28:58 +0100 Subject: [PATCH 6/8] fix: convert options --- qdrant_client/conversions/conversion.py | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/qdrant_client/conversions/conversion.py b/qdrant_client/conversions/conversion.py index 14ce29a3..8d844777 100644 --- a/qdrant_client/conversions/conversion.py +++ b/qdrant_client/conversions/conversion.py @@ -1012,7 +1012,7 @@ def convert_document(cls, model: grpc.Document) -> rest.Document: return rest.Document( text=model.text, model=model.model if model.HasField("model") else None, - options=model.options, + options=grpc_to_payload(model.options), ) @classmethod @@ -1020,7 +1020,7 @@ def convert_image(cls, model: grpc.Image) -> rest.Image: return rest.Image( image=model.image, model=model.model if model.HasField("model") else None, - options=model.options, + options=grpc_to_payload(model.options), ) @classmethod @@ -1028,7 +1028,7 @@ def convert_inference_object(cls, model: grpc.InferenceObject) -> rest.Inference return rest.InferenceObject( object=model.object, model=model.model if model.HasField("model") else None, - options=model.options, + options=grpc_to_payload(model.options), ) @classmethod @@ -2899,15 +2899,21 @@ def convert_multi_dense_vector(cls, model: List[List[float]]) -> grpc.MultiDense @classmethod def convert_document(cls, model: rest.Document) -> grpc.Document: - return grpc.Document(text=model.text, model=model.model, options=model.options) + return grpc.Document( + text=model.text, model=model.model, options=payload_to_grpc(model.options) + ) @classmethod def convert_image(cls, model: rest.Image) -> grpc.Image: - return grpc.Image(image=model.image, model=model.model, options=model.options) + return grpc.Image( + image=model.image, model=model.model, options=payload_to_grpc(model.options) + ) @classmethod def convert_inference_object(cls, model: rest.InferenceObject) -> grpc.InferenceObject: - return grpc.InferenceObject(object=model.object, model=model.model, options=model.options) + return grpc.InferenceObject( + object=model.object, model=model.model, options=payload_to_grpc(model.options) + ) @classmethod def convert_vector_input(cls, model: rest.VectorInput) -> grpc.VectorInput: From aad30b096a663172ed879be55c602621dc883939 Mon Sep 17 00:00:00 2001 From: George Panchuk Date: Wed, 6 Nov 2024 10:04:55 +0100 Subject: [PATCH 7/8] fix: fix vector output conversion --- qdrant_client/conversions/conversion.py | 85 ++++++++++++++++--------- 1 file changed, 55 insertions(+), 30 deletions(-) diff --git a/qdrant_client/conversions/conversion.py b/qdrant_client/conversions/conversion.py index 8d844777..23790251 100644 --- a/qdrant_client/conversions/conversion.py +++ b/qdrant_client/conversions/conversion.py @@ -893,6 +893,53 @@ def convert_vectors_config(cls, model: grpc.VectorsConfig) -> rest.VectorsConfig ) raise ValueError(f"invalid VectorsConfig model: {model}") # pragma: no cover + @classmethod + def _convert_vector( + cls, model: Union[grpc.Vector, grpc.VectorOutput] + ) -> Tuple[ + Optional[str], + Union[ + List[float], + List[List[float]], + rest.SparseVector, + grpc.Document, + grpc.Image, + grpc.InferenceObject, + ], + ]: + """Parse common parts of vector structs + + Args: + model: Vector or VectorOutput + + Returns: + Tuple of name and value, name is None if the struct was parsed and returned with the converted value, + otherwise it's propagated for further processing along with the raw value + """ + name = model.WhichOneof("vector") + if name is None: + if model.HasField("indices"): + return None, rest.SparseVector(indices=model.indices.data[:], values=model.data[:]) + if model.HasField("vectors_count"): + vectors_count = model.vectors_count + vectors = model.data + step = len(vectors) // vectors_count + return None, [vectors[i : i + step] for i in range(0, len(vectors), step)] + + return None, model.data[:] + + val = getattr(model, name) + if name == "dense": + return None, cls.convert_dense_vector(val) + + if name == "sparse": + return None, cls.convert_sparse_vector(val) + + if name == "multi_dense": + return None, cls.convert_multi_dense_vector(val) + + return name, val + @classmethod def convert_vector( cls, model: grpc.Vector @@ -904,27 +951,10 @@ def convert_vector( rest.Image, rest.InferenceObject, ]: - if model.HasField("indices"): - return rest.SparseVector(indices=model.indices.data[:], values=model.data[:]) - if model.HasField("vectors_count"): - vectors_count = model.vectors_count - vectors = model.data - step = len(vectors) // vectors_count - return [vectors[i : i + step] for i in range(0, len(vectors), step)] + name, val = cls._convert_vector(model) - name = model.WhichOneof("vector") if name is None: - return model.data[:] - - val = getattr(model, name) - if name == "dense": - return cls.convert_dense_vector(val) - - if name == "sparse": - return cls.convert_sparse_vector(val) - - if name == "multi_dense": - return cls.convert_multi_dense_vector(val) + return val if name == "document": return cls.convert_document(val) @@ -941,15 +971,10 @@ def convert_vector( def convert_vector_output( cls, model: grpc.VectorOutput ) -> Union[List[float], List[List[float]], rest.SparseVector]: - if model.HasField("indices"): - return rest.SparseVector(indices=model.indices.data[:], values=model.data[:]) - if model.HasField("vectors_count"): - vectors_count = model.vectors_count - vectors = model.data - step = len(vectors) // vectors_count - return [vectors[i : i + step] for i in range(0, len(vectors), step)] - - return model.data[:] + name, val = cls._convert_vector(model) + if name is None: + return val + raise ValueError(f"invalid Vector model: {model}") # pragma: no cover @classmethod def convert_named_vectors(cls, model: grpc.NamedVectors) -> Dict[str, rest.Vector]: @@ -986,14 +1011,14 @@ def convert_vectors(cls, model: grpc.Vectors) -> rest.VectorStruct: def convert_vectors_output(cls, model: grpc.VectorsOutput) -> rest.VectorStructOutput: name = model.WhichOneof("vectors_options") if name is None: - raise ValueError(f"invalid Vectors model: {model}") # pragma: no cover + raise ValueError(f"invalid VectorsOutput model: {model}") # pragma: no cover val = getattr(model, name) if name == "vector": return cls.convert_vector_output(val) if name == "vectors": return cls.convert_named_vectors_output(val) - raise ValueError(f"invalid Vectors model: {model}") # pragma: no cover + raise ValueError(f"invalid VectorsOutput model: {model}") # pragma: no cover @classmethod def convert_dense_vector(cls, model: grpc.DenseVector) -> List[float]: From 8493806e7ed08b9d46dd54333890e5fd4e7a5888 Mon Sep 17 00:00:00 2001 From: George Panchuk Date: Wed, 6 Nov 2024 10:20:45 +0100 Subject: [PATCH 8/8] tests: add custom conversion case for new vector fields --- .../conversions/test_validate_conversions.py | 60 +++++++++++++++++++ 1 file changed, 60 insertions(+) diff --git a/tests/conversions/test_validate_conversions.py b/tests/conversions/test_validate_conversions.py index 352005d8..33b17909 100644 --- a/tests/conversions/test_validate_conversions.py +++ b/tests/conversions/test_validate_conversions.py @@ -377,3 +377,63 @@ def test_query_points(): assert recovered.using == query_request.using assert recovered.with_payload == query_request.with_payload assert recovered.prefetch[0] == query_request.prefetch + + +def test_extended_vectors(): + # todo: test in fixtures.py from v1.14.0 + import numpy as np + + from qdrant_client import grpc, models + from qdrant_client.conversions.conversion import GrpcToRest + + # region grpc.Vector + dense_vector = grpc.Vector(dense=grpc.DenseVector(data=[0.2, 0.3, 0.4])) + sparse_vector = grpc.Vector( + sparse=grpc.SparseVector(values=[0.1, 0.2, 0.3], indices=[1, 42, 240]) + ) + multi_dense_vector = grpc.Vector( + multi_dense=grpc.MultiDenseVector( + vectors=[ + grpc.DenseVector(data=[0.1, 0.3, 0.5]), + grpc.DenseVector(data=[0.2, 0.4, 0.6]), + ] + ) + ) + + rest_dense_vector = GrpcToRest.convert_vector(dense_vector) + rest_sparse_vector = GrpcToRest.convert_vector(sparse_vector) + rest_multi_dense_vector = GrpcToRest.convert_vector(multi_dense_vector) + assert np.allclose(rest_dense_vector, [0.2, 0.3, 0.4]) + assert ( + isinstance(rest_sparse_vector, models.SparseVector) + and np.allclose(rest_sparse_vector.values, [0.1, 0.2, 0.3]) + and rest_sparse_vector.indices == [1, 42, 240] + ) + assert np.allclose(rest_multi_dense_vector, np.array([[0.1, 0.3, 0.5], [0.2, 0.4, 0.6]])) + # endregion + + # region grpc.VectorOutput + dense_vector_output = grpc.VectorOutput(dense=grpc.DenseVector(data=[0.2, 0.3, 0.4])) + sparse_vector_output = grpc.VectorOutput( + sparse=grpc.SparseVector(values=[0.1, 0.2, 0.3], indices=[1, 42, 240]) + ) + multi_dense_vector_output = grpc.VectorOutput( + multi_dense=grpc.MultiDenseVector( + vectors=[ + grpc.DenseVector(data=[0.1, 0.3, 0.5]), + grpc.DenseVector(data=[0.2, 0.4, 0.6]), + ] + ) + ) + + rest_dense_vector = GrpcToRest.convert_vector_output(dense_vector_output) + rest_sparse_vector = GrpcToRest.convert_vector_output(sparse_vector_output) + rest_multi_dense_vector = GrpcToRest.convert_vector_output(multi_dense_vector_output) + assert np.allclose(rest_dense_vector, [0.2, 0.3, 0.4]) + assert ( + isinstance(rest_sparse_vector, models.SparseVector) + and np.allclose(rest_sparse_vector.values, [0.1, 0.2, 0.3]) + and rest_sparse_vector.indices == [1, 42, 240] + ) + assert np.allclose(rest_multi_dense_vector, np.array([[0.1, 0.3, 0.5], [0.2, 0.4, 0.6]])) + # endregion