From f0f13f2167bfbb3d4608d5eafd98d9e848de2c94 Mon Sep 17 00:00:00 2001 From: lingyinw Date: Thu, 13 Jun 2024 10:38:45 -0700 Subject: [PATCH] Copybara import of the project: -- bd20eddda3bfb962422c1b7402140590fe0d5a6c by lingyinw : fix: regenerate pb2 files using grpcio-tools, add hybrid search -- 24f558a034f6a639b527a185ad74c218b19e7c6e by lingyinw : fix:regenerate pb2 files using grpcio-tools -- 6311ec935e4b4828e84bfd05f63311c155e24083 by lingyinw : fix: regenerate pb2 files using grpcio-tools COPYBARA_INTEGRATE_REVIEW=https://github.com/googleapis/python-aiplatform/pull/3940 from lingyinw:main 6311ec935e4b4828e84bfd05f63311c155e24083 PiperOrigin-RevId: 643048261 --- .../_protos/match_service.proto | 24 ++--- .../_protos/match_service_pb2.py | 89 ++++++++++--------- 2 files changed, 58 insertions(+), 55 deletions(-) diff --git a/google/cloud/aiplatform/matching_engine/_protos/match_service.proto b/google/cloud/aiplatform/matching_engine/_protos/match_service.proto index ad928c456c..ab4ee104be 100644 --- a/google/cloud/aiplatform/matching_engine/_protos/match_service.proto +++ b/google/cloud/aiplatform/matching_engine/_protos/match_service.proto @@ -20,6 +20,17 @@ service MatchService { returns (BatchGetEmbeddingsResponse) {} } +// Feature embedding vector for sparse index. An array of numbers whose values + // are located in the specified dimensions. + message SparseEmbedding { + + // The list of embedding values of the sparse vector. + repeated float float_val = 1; + + // The list of indexes for the embedding values of the sparse vector. + repeated int64 dimension = 2; + } + // Parameters for a match query. message MatchRequest { // The ID of the DeploydIndex that will serve the request. @@ -34,17 +45,6 @@ message MatchRequest { // The embedding values. repeated float float_val = 2; - // Feature embedding vector for sparse index. An array of numbers whose values - // are located in the specified dimensions. - message SparseEmbedding { - - // The list of embedding values of the sparse vector. - repeated float float_val = 1; - - // The list of indexes for the embedding values of the sparse vector. - repeated int64 dimension = 2; - } - // Feature embedding vector for sparse index. SparseEmbedding sparse_embedding = 12; @@ -116,6 +116,8 @@ message Embedding { // The embedding values. repeated float float_val = 2; + // Feature embedding vector for sparse index. + SparseEmbedding sparse_embedding = 6; // The list of restricts. repeated Namespace restricts = 3; diff --git a/google/cloud/aiplatform/matching_engine/_protos/match_service_pb2.py b/google/cloud/aiplatform/matching_engine/_protos/match_service_pb2.py index ac7a063ff0..8da41a0b85 100644 --- a/google/cloud/aiplatform/matching_engine/_protos/match_service_pb2.py +++ b/google/cloud/aiplatform/matching_engine/_protos/match_service_pb2.py @@ -32,12 +32,12 @@ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile( - b'\nCgoogle/cloud/aiplatform/matching_engine/_protos/match_service.proto\x12$google.cloud.aiplatform.container.v1\x1a\x17google/rpc/status.proto"\xc5\x05\n\x0cMatchRequest\x12\x19\n\x11\x64\x65ployed_index_id\x18\x01 \x01(\t\x12\x11\n\tfloat_val\x18\x02 \x03(\x02\x12\\\n\x10sparse_embedding\x18\x0c \x01(\x0b\x32\x42.google.cloud.aiplatform.container.v1.MatchRequest.SparseEmbedding\x12\x45\n\x03rrf\x18\r \x01(\x0b\x32\x36.google.cloud.aiplatform.container.v1.MatchRequest.RRFH\x00\x12\x15\n\rnum_neighbors\x18\x03 \x01(\x05\x12\x42\n\trestricts\x18\x04 \x03(\x0b\x32/.google.cloud.aiplatform.container.v1.Namespace\x12Q\n\x11numeric_restricts\x18\x0b \x03(\x0b\x32\x36.google.cloud.aiplatform.container.v1.NumericNamespace\x12,\n$per_crowding_attribute_num_neighbors\x18\x05 \x01(\x05\x12\x1c\n\x14\x61pprox_num_neighbors\x18\x06 \x01(\x05\x12-\n%leaf_nodes_to_search_percent_override\x18\x07 \x01(\x05\x12.\n&fraction_leaf_nodes_to_search_override\x18\t \x01(\x01\x12\x19\n\x11\x65mbedding_enabled\x18\x08 \x01(\x08\x12\x14\n\x0c\x65mbedding_id\x18\n \x01(\t\x1a\x37\n\x0fSparseEmbedding\x12\x11\n\tfloat_val\x18\x01 \x03(\x02\x12\x11\n\tdimension\x18\x02 \x03(\x03\x1a\x14\n\x03RRF\x12\r\n\x05\x61lpha\x18\x01 \x01(\x02\x42\t\n\x07ranking"\xdd\x01\n\tEmbedding\x12\n\n\x02id\x18\x01 \x01(\t\x12\x11\n\tfloat_val\x18\x02 \x03(\x02\x12\x42\n\trestricts\x18\x03 \x03(\x0b\x32/.google.cloud.aiplatform.container.v1.Namespace\x12Q\n\x11numeric_restricts\x18\x05 \x03(\x0b\x32\x36.google.cloud.aiplatform.container.v1.NumericNamespace\x12\x1a\n\x12\x63rowding_attribute\x18\x04 \x01(\x03"\x83\x02\n\rMatchResponse\x12N\n\x08neighbor\x18\x01 \x03(\x0b\x32<.google.cloud.aiplatform.container.v1.MatchResponse.Neighbor\x12\x43\n\nembeddings\x18\x02 \x03(\x0b\x32/.google.cloud.aiplatform.container.v1.Embedding\x1a]\n\x08Neighbor\x12\n\n\x02id\x18\x01 \x01(\t\x12\x10\n\x08\x64istance\x18\x02 \x01(\x01\x12\x17\n\x0fsparse_distance\x18\x04 \x01(\x01\x12\x1a\n\x12\x63rowding_attribute\x18\x03 \x01(\x03"B\n\x19\x42\x61tchGetEmbeddingsRequest\x12\x19\n\x11\x64\x65ployed_index_id\x18\x01 \x01(\t\x12\n\n\x02id\x18\x02 \x03(\t"a\n\x1a\x42\x61tchGetEmbeddingsResponse\x12\x43\n\nembeddings\x18\x01 \x03(\x0b\x32/.google.cloud.aiplatform.container.v1.Embedding"\x95\x02\n\x11\x42\x61tchMatchRequest\x12\x63\n\x08requests\x18\x01 \x03(\x0b\x32Q.google.cloud.aiplatform.container.v1.BatchMatchRequest.BatchMatchRequestPerIndex\x1a\x9a\x01\n\x19\x42\x61tchMatchRequestPerIndex\x12\x19\n\x11\x64\x65ployed_index_id\x18\x01 \x01(\t\x12\x44\n\x08requests\x18\x02 \x03(\x0b\x32\x32.google.cloud.aiplatform.container.v1.MatchRequest\x12\x1c\n\x14low_level_batch_size\x18\x03 \x01(\x05"\xa2\x02\n\x12\x42\x61tchMatchResponse\x12\x66\n\tresponses\x18\x01 \x03(\x0b\x32S.google.cloud.aiplatform.container.v1.BatchMatchResponse.BatchMatchResponsePerIndex\x1a\xa3\x01\n\x1a\x42\x61tchMatchResponsePerIndex\x12\x19\n\x11\x64\x65ployed_index_id\x18\x01 \x01(\t\x12\x46\n\tresponses\x18\x02 \x03(\x0b\x32\x33.google.cloud.aiplatform.container.v1.MatchResponse\x12"\n\x06status\x18\x03 \x01(\x0b\x32\x12.google.rpc.Status"D\n\tNamespace\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x14\n\x0c\x61llow_tokens\x18\x02 \x03(\t\x12\x13\n\x0b\x64\x65ny_tokens\x18\x03 \x03(\t"\xb4\x02\n\x10NumericNamespace\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\tvalue_int\x18\x02 \x01(\x03H\x00\x12\x15\n\x0bvalue_float\x18\x03 \x01(\x02H\x00\x12\x16\n\x0cvalue_double\x18\x04 \x01(\x01H\x00\x12K\n\x02op\x18\x05 \x01(\x0e\x32?.google.cloud.aiplatform.container.v1.NumericNamespace.Operator"x\n\x08Operator\x12\x18\n\x14OPERATOR_UNSPECIFIED\x10\x00\x12\x08\n\x04LESS\x10\x01\x12\x0e\n\nLESS_EQUAL\x10\x02\x12\t\n\x05\x45QUAL\x10\x03\x12\x11\n\rGREATER_EQUAL\x10\x04\x12\x0b\n\x07GREATER\x10\x05\x12\r\n\tNOT_EQUAL\x10\x06\x42\x07\n\x05Value2\xa2\x03\n\x0cMatchService\x12r\n\x05Match\x12\x32.google.cloud.aiplatform.container.v1.MatchRequest\x1a\x33.google.cloud.aiplatform.container.v1.MatchResponse"\x00\x12\x81\x01\n\nBatchMatch\x12\x37.google.cloud.aiplatform.container.v1.BatchMatchRequest\x1a\x38.google.cloud.aiplatform.container.v1.BatchMatchResponse"\x00\x12\x99\x01\n\x12\x42\x61tchGetEmbeddings\x12?.google.cloud.aiplatform.container.v1.BatchGetEmbeddingsRequest\x1a@.google.cloud.aiplatform.container.v1.BatchGetEmbeddingsResponse"\x00\x62\x06proto3' + b'\nCgoogle/cloud/aiplatform/matching_engine/_protos/match_service.proto\x12$google.cloud.aiplatform.container.v1\x1a\x17google/rpc/status.proto"7\n\x0fSparseEmbedding\x12\x11\n\tfloat_val\x18\x01 \x03(\x02\x12\x11\n\tdimension\x18\x02 \x03(\x03"\xff\x04\n\x0cMatchRequest\x12\x19\n\x11\x64\x65ployed_index_id\x18\x01 \x01(\t\x12\x11\n\tfloat_val\x18\x02 \x03(\x02\x12O\n\x10sparse_embedding\x18\x0c \x01(\x0b\x32\x35.google.cloud.aiplatform.container.v1.SparseEmbedding\x12\x45\n\x03rrf\x18\r \x01(\x0b\x32\x36.google.cloud.aiplatform.container.v1.MatchRequest.RRFH\x00\x12\x15\n\rnum_neighbors\x18\x03 \x01(\x05\x12\x42\n\trestricts\x18\x04 \x03(\x0b\x32/.google.cloud.aiplatform.container.v1.Namespace\x12Q\n\x11numeric_restricts\x18\x0b \x03(\x0b\x32\x36.google.cloud.aiplatform.container.v1.NumericNamespace\x12,\n$per_crowding_attribute_num_neighbors\x18\x05 \x01(\x05\x12\x1c\n\x14\x61pprox_num_neighbors\x18\x06 \x01(\x05\x12-\n%leaf_nodes_to_search_percent_override\x18\x07 \x01(\x05\x12.\n&fraction_leaf_nodes_to_search_override\x18\t \x01(\x01\x12\x19\n\x11\x65mbedding_enabled\x18\x08 \x01(\x08\x12\x14\n\x0c\x65mbedding_id\x18\n \x01(\t\x1a\x14\n\x03RRF\x12\r\n\x05\x61lpha\x18\x01 \x01(\x02\x42\t\n\x07ranking"\xae\x02\n\tEmbedding\x12\n\n\x02id\x18\x01 \x01(\t\x12\x11\n\tfloat_val\x18\x02 \x03(\x02\x12O\n\x10sparse_embedding\x18\x06 \x01(\x0b\x32\x35.google.cloud.aiplatform.container.v1.SparseEmbedding\x12\x42\n\trestricts\x18\x03 \x03(\x0b\x32/.google.cloud.aiplatform.container.v1.Namespace\x12Q\n\x11numeric_restricts\x18\x05 \x03(\x0b\x32\x36.google.cloud.aiplatform.container.v1.NumericNamespace\x12\x1a\n\x12\x63rowding_attribute\x18\x04 \x01(\x03"\x83\x02\n\rMatchResponse\x12N\n\x08neighbor\x18\x01 \x03(\x0b\x32<.google.cloud.aiplatform.container.v1.MatchResponse.Neighbor\x12\x43\n\nembeddings\x18\x02 \x03(\x0b\x32/.google.cloud.aiplatform.container.v1.Embedding\x1a]\n\x08Neighbor\x12\n\n\x02id\x18\x01 \x01(\t\x12\x10\n\x08\x64istance\x18\x02 \x01(\x01\x12\x17\n\x0fsparse_distance\x18\x04 \x01(\x01\x12\x1a\n\x12\x63rowding_attribute\x18\x03 \x01(\x03"B\n\x19\x42\x61tchGetEmbeddingsRequest\x12\x19\n\x11\x64\x65ployed_index_id\x18\x01 \x01(\t\x12\n\n\x02id\x18\x02 \x03(\t"a\n\x1a\x42\x61tchGetEmbeddingsResponse\x12\x43\n\nembeddings\x18\x01 \x03(\x0b\x32/.google.cloud.aiplatform.container.v1.Embedding"\x95\x02\n\x11\x42\x61tchMatchRequest\x12\x63\n\x08requests\x18\x01 \x03(\x0b\x32Q.google.cloud.aiplatform.container.v1.BatchMatchRequest.BatchMatchRequestPerIndex\x1a\x9a\x01\n\x19\x42\x61tchMatchRequestPerIndex\x12\x19\n\x11\x64\x65ployed_index_id\x18\x01 \x01(\t\x12\x44\n\x08requests\x18\x02 \x03(\x0b\x32\x32.google.cloud.aiplatform.container.v1.MatchRequest\x12\x1c\n\x14low_level_batch_size\x18\x03 \x01(\x05"\xa2\x02\n\x12\x42\x61tchMatchResponse\x12\x66\n\tresponses\x18\x01 \x03(\x0b\x32S.google.cloud.aiplatform.container.v1.BatchMatchResponse.BatchMatchResponsePerIndex\x1a\xa3\x01\n\x1a\x42\x61tchMatchResponsePerIndex\x12\x19\n\x11\x64\x65ployed_index_id\x18\x01 \x01(\t\x12\x46\n\tresponses\x18\x02 \x03(\x0b\x32\x33.google.cloud.aiplatform.container.v1.MatchResponse\x12"\n\x06status\x18\x03 \x01(\x0b\x32\x12.google.rpc.Status"D\n\tNamespace\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x14\n\x0c\x61llow_tokens\x18\x02 \x03(\t\x12\x13\n\x0b\x64\x65ny_tokens\x18\x03 \x03(\t"\xb4\x02\n\x10NumericNamespace\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\tvalue_int\x18\x02 \x01(\x03H\x00\x12\x15\n\x0bvalue_float\x18\x03 \x01(\x02H\x00\x12\x16\n\x0cvalue_double\x18\x04 \x01(\x01H\x00\x12K\n\x02op\x18\x05 \x01(\x0e\x32?.google.cloud.aiplatform.container.v1.NumericNamespace.Operator"x\n\x08Operator\x12\x18\n\x14OPERATOR_UNSPECIFIED\x10\x00\x12\x08\n\x04LESS\x10\x01\x12\x0e\n\nLESS_EQUAL\x10\x02\x12\t\n\x05\x45QUAL\x10\x03\x12\x11\n\rGREATER_EQUAL\x10\x04\x12\x0b\n\x07GREATER\x10\x05\x12\r\n\tNOT_EQUAL\x10\x06\x42\x07\n\x05Value2\xa2\x03\n\x0cMatchService\x12r\n\x05Match\x12\x32.google.cloud.aiplatform.container.v1.MatchRequest\x1a\x33.google.cloud.aiplatform.container.v1.MatchResponse"\x00\x12\x81\x01\n\nBatchMatch\x12\x37.google.cloud.aiplatform.container.v1.BatchMatchRequest\x1a\x38.google.cloud.aiplatform.container.v1.BatchMatchResponse"\x00\x12\x99\x01\n\x12\x42\x61tchGetEmbeddings\x12?.google.cloud.aiplatform.container.v1.BatchGetEmbeddingsRequest\x1a@.google.cloud.aiplatform.container.v1.BatchGetEmbeddingsResponse"\x00\x62\x06proto3' ) +_SPARSEEMBEDDING = DESCRIPTOR.message_types_by_name["SparseEmbedding"] _MATCHREQUEST = DESCRIPTOR.message_types_by_name["MatchRequest"] -_MATCHREQUEST_SPARSEEMBEDDING = _MATCHREQUEST.nested_types_by_name["SparseEmbedding"] _MATCHREQUEST_RRF = _MATCHREQUEST.nested_types_by_name["RRF"] _EMBEDDING = DESCRIPTOR.message_types_by_name["Embedding"] _MATCHRESPONSE = DESCRIPTOR.message_types_by_name["MatchResponse"] @@ -59,19 +59,21 @@ _NAMESPACE = DESCRIPTOR.message_types_by_name["Namespace"] _NUMERICNAMESPACE = DESCRIPTOR.message_types_by_name["NumericNamespace"] _NUMERICNAMESPACE_OPERATOR = _NUMERICNAMESPACE.enum_types_by_name["Operator"] +SparseEmbedding = _reflection.GeneratedProtocolMessageType( + "SparseEmbedding", + (_message.Message,), + { + "DESCRIPTOR": _SPARSEEMBEDDING, + "__module__": "google.cloud.aiplatform.matching_engine._protos.match_service_pb2" + # @@protoc_insertion_point(class_scope:google.cloud.aiplatform.container.v1.SparseEmbedding) + }, +) +_sym_db.RegisterMessage(SparseEmbedding) + MatchRequest = _reflection.GeneratedProtocolMessageType( "MatchRequest", (_message.Message,), { - "SparseEmbedding": _reflection.GeneratedProtocolMessageType( - "SparseEmbedding", - (_message.Message,), - { - "DESCRIPTOR": _MATCHREQUEST_SPARSEEMBEDDING, - "__module__": "google.cloud.aiplatform.matching_engine._protos.match_service_pb2" - # @@protoc_insertion_point(class_scope:google.cloud.aiplatform.container.v1.MatchRequest.SparseEmbedding) - }, - ), "RRF": _reflection.GeneratedProtocolMessageType( "RRF", (_message.Message,), @@ -87,7 +89,6 @@ }, ) _sym_db.RegisterMessage(MatchRequest) -_sym_db.RegisterMessage(MatchRequest.SparseEmbedding) _sym_db.RegisterMessage(MatchRequest.RRF) Embedding = _reflection.GeneratedProtocolMessageType( @@ -212,36 +213,36 @@ if _descriptor._USE_C_DESCRIPTORS == False: DESCRIPTOR._options = None - _MATCHREQUEST._serialized_start = 135 - _MATCHREQUEST._serialized_end = 844 - _MATCHREQUEST_SPARSEEMBEDDING._serialized_start = 756 - _MATCHREQUEST_SPARSEEMBEDDING._serialized_end = 811 - _MATCHREQUEST_RRF._serialized_start = 813 - _MATCHREQUEST_RRF._serialized_end = 833 - _EMBEDDING._serialized_start = 847 - _EMBEDDING._serialized_end = 1068 - _MATCHRESPONSE._serialized_start = 1071 - _MATCHRESPONSE._serialized_end = 1330 - _MATCHRESPONSE_NEIGHBOR._serialized_start = 1237 - _MATCHRESPONSE_NEIGHBOR._serialized_end = 1330 - _BATCHGETEMBEDDINGSREQUEST._serialized_start = 1332 - _BATCHGETEMBEDDINGSREQUEST._serialized_end = 1398 - _BATCHGETEMBEDDINGSRESPONSE._serialized_start = 1400 - _BATCHGETEMBEDDINGSRESPONSE._serialized_end = 1497 - _BATCHMATCHREQUEST._serialized_start = 1500 - _BATCHMATCHREQUEST._serialized_end = 1777 - _BATCHMATCHREQUEST_BATCHMATCHREQUESTPERINDEX._serialized_start = 1623 - _BATCHMATCHREQUEST_BATCHMATCHREQUESTPERINDEX._serialized_end = 1777 - _BATCHMATCHRESPONSE._serialized_start = 1780 - _BATCHMATCHRESPONSE._serialized_end = 2070 - _BATCHMATCHRESPONSE_BATCHMATCHRESPONSEPERINDEX._serialized_start = 1907 - _BATCHMATCHRESPONSE_BATCHMATCHRESPONSEPERINDEX._serialized_end = 2070 - _NAMESPACE._serialized_start = 2072 - _NAMESPACE._serialized_end = 2140 - _NUMERICNAMESPACE._serialized_start = 2143 - _NUMERICNAMESPACE._serialized_end = 2451 - _NUMERICNAMESPACE_OPERATOR._serialized_start = 2322 - _NUMERICNAMESPACE_OPERATOR._serialized_end = 2442 - _MATCHSERVICE._serialized_start = 2454 - _MATCHSERVICE._serialized_end = 2872 + _SPARSEEMBEDDING._serialized_start = 134 + _SPARSEEMBEDDING._serialized_end = 189 + _MATCHREQUEST._serialized_start = 192 + _MATCHREQUEST._serialized_end = 831 + _MATCHREQUEST_RRF._serialized_start = 800 + _MATCHREQUEST_RRF._serialized_end = 820 + _EMBEDDING._serialized_start = 834 + _EMBEDDING._serialized_end = 1136 + _MATCHRESPONSE._serialized_start = 1139 + _MATCHRESPONSE._serialized_end = 1398 + _MATCHRESPONSE_NEIGHBOR._serialized_start = 1305 + _MATCHRESPONSE_NEIGHBOR._serialized_end = 1398 + _BATCHGETEMBEDDINGSREQUEST._serialized_start = 1400 + _BATCHGETEMBEDDINGSREQUEST._serialized_end = 1466 + _BATCHGETEMBEDDINGSRESPONSE._serialized_start = 1468 + _BATCHGETEMBEDDINGSRESPONSE._serialized_end = 1565 + _BATCHMATCHREQUEST._serialized_start = 1568 + _BATCHMATCHREQUEST._serialized_end = 1845 + _BATCHMATCHREQUEST_BATCHMATCHREQUESTPERINDEX._serialized_start = 1691 + _BATCHMATCHREQUEST_BATCHMATCHREQUESTPERINDEX._serialized_end = 1845 + _BATCHMATCHRESPONSE._serialized_start = 1848 + _BATCHMATCHRESPONSE._serialized_end = 2138 + _BATCHMATCHRESPONSE_BATCHMATCHRESPONSEPERINDEX._serialized_start = 1975 + _BATCHMATCHRESPONSE_BATCHMATCHRESPONSEPERINDEX._serialized_end = 2138 + _NAMESPACE._serialized_start = 2140 + _NAMESPACE._serialized_end = 2208 + _NUMERICNAMESPACE._serialized_start = 2211 + _NUMERICNAMESPACE._serialized_end = 2519 + _NUMERICNAMESPACE_OPERATOR._serialized_start = 2390 + _NUMERICNAMESPACE_OPERATOR._serialized_end = 2510 + _MATCHSERVICE._serialized_start = 2522 + _MATCHSERVICE._serialized_end = 2940 # @@protoc_insertion_point(module_scope)