Skip to content

Commit fba5350

Browse files
lingyinwcopybara-github
authored andcommitted
Copybara import of the project:
-- b88a1d5 by lingyin <lingyin@google.com>: feat: update match_service proto for new embedding metadata fields -- a5167ab by lingyin <lingyin@google.com>: feat: update match_service proto for new embedding metadata fields -- bba4d27 by lingyin <lingyin@google.com>: feat: update match_service proto for new embedding metadata fields -- 5a327cf by lingyin <lingyin@google.com>: Black formatting files. COPYBARA_INTEGRATE_REVIEW=#6310 from lingyinw:regenerate_pb2_embedding_metadata a02a93c PiperOrigin-RevId: 878631147
1 parent 7cb002b commit fba5350

4 files changed

Lines changed: 47 additions & 47 deletions

File tree

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,19 @@
11
Steps to update the pb2 files before bazel generation is supported
22
Track bazel progress here: https://github.com/googleapis/python-aiplatform/issues/3037
33

4-
1 . Ensure that your environment is using python 3.10 or older which is needed
5-
for step 2. Consider using Anaconda to create envs with older python version.
4+
1 . Use protobuf version that matches the other pb files in the repo, currently 4.25.3.
65

7-
2. Use `pip install grpcio-tools==1.59.0` or newer to support protobuf 5.x
8-
9-
3. Copy the file from
6+
2. Copy the file from
107
`https://github.com/googleapis/googleapis/blob/master/google/rpc/status.proto`
118
into `google/rpc/status.proto`. Make sure that `google/rpc/status.proto`
129
exists relative to the root of the python-aiplatform repo.
1310

14-
4. In the root directory python-aiplatform run
11+
3. In the root directory python-aiplatform run
1512
```
1613
python -m grpc_tools.protoc --proto_path=. --python_out=. --grpc_python_out=. google/cloud/aiplatform/matching_engine/_protos/match_service.proto
1714
```
1815

19-
5. After running the command, change the import statements manually
16+
4. After running the command, change the import statements manually
2017
```
2118
from google.cloud.aiplatform.matching_engine._protos import match_service_pb2 as google_dot_cloud_dot_aiplatform_dot_matching__engine_dot___protos_dot_match__service__pb2
2219
```
@@ -28,8 +25,8 @@ Also, run a find a replace to change
2825
`google_dot_cloud_dot_aiplatform_dot_matching__engine_dot___protos_dot_match__service__pb2`
2926
to `match_service_pb2`
3027

31-
6. Run `black` on both files to reformat the code
28+
5. Run `black` on both files to reformat the code
3229

33-
7. Remove the status.proto added in step 3
30+
6. Remove the status.proto added in step 3
3431

35-
8. Create a Pull Request in GitHub
32+
7. Create a Pull Request in GitHub

google/cloud/aiplatform/matching_engine/_protos/match_service.proto

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ syntax = "proto3";
33
package google.cloud.aiplatform.container.v1;
44

55
import "google/rpc/status.proto";
6+
import "google/protobuf/struct.proto";
67

78
// MatchService is a Google managed service for efficient vector similarity
89
// search at scale.

google/cloud/aiplatform/matching_engine/_protos/match_service_pb2.py

Lines changed: 38 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -16,22 +16,24 @@
1616
# -*- coding: utf-8 -*-
1717
# Generated by the protocol buffer compiler. DO NOT EDIT!
1818
# source: google/cloud/aiplatform/matching_engine/_protos/match_service.proto
19+
# Protobuf Python Version: 4.25.3
1920
"""Generated protocol buffer code."""
2021

21-
from google.protobuf.internal import builder as _builder
22-
from google.rpc import status_pb2 as google_dot_rpc_dot_status__pb2
2322
from google.protobuf import descriptor as _descriptor
2423
from google.protobuf import descriptor_pool as _descriptor_pool
2524
from google.protobuf import symbol_database as _symbol_database
26-
25+
from google.protobuf.internal import builder as _builder
2726

2827
# @@protoc_insertion_point(imports)
2928

3029
_sym_db = _symbol_database.Default()
3130

3231

32+
from google.rpc import status_pb2 as google_dot_rpc_dot_status__pb2
33+
from google.protobuf import struct_pb2 as google_dot_protobuf_dot_struct__pb2
34+
3335
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(
34-
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'
36+
b'\nCgoogle/cloud/aiplatform/matching_engine/_protos/match_service.proto\x12$google.cloud.aiplatform.container.v1\x1a\x17google/rpc/status.proto\x1a\x1cgoogle/protobuf/struct.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"\xe3\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\x12\x33\n\x12\x65mbedding_metadata\x18\x07 \x01(\x0b\x32\x17.google.protobuf.Struct"\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'
3537
)
3638

3739
_globals = globals()
@@ -43,36 +45,36 @@
4345
)
4446
if _descriptor._USE_C_DESCRIPTORS == False:
4547
DESCRIPTOR._options = None
46-
_globals["_SPARSEEMBEDDING"]._serialized_start = 134
47-
_globals["_SPARSEEMBEDDING"]._serialized_end = 189
48-
_globals["_MATCHREQUEST"]._serialized_start = 192
49-
_globals["_MATCHREQUEST"]._serialized_end = 831
50-
_globals["_MATCHREQUEST_RRF"]._serialized_start = 800
51-
_globals["_MATCHREQUEST_RRF"]._serialized_end = 820
52-
_globals["_EMBEDDING"]._serialized_start = 834
53-
_globals["_EMBEDDING"]._serialized_end = 1136
54-
_globals["_MATCHRESPONSE"]._serialized_start = 1139
55-
_globals["_MATCHRESPONSE"]._serialized_end = 1398
56-
_globals["_MATCHRESPONSE_NEIGHBOR"]._serialized_start = 1305
57-
_globals["_MATCHRESPONSE_NEIGHBOR"]._serialized_end = 1398
58-
_globals["_BATCHGETEMBEDDINGSREQUEST"]._serialized_start = 1400
59-
_globals["_BATCHGETEMBEDDINGSREQUEST"]._serialized_end = 1466
60-
_globals["_BATCHGETEMBEDDINGSRESPONSE"]._serialized_start = 1468
61-
_globals["_BATCHGETEMBEDDINGSRESPONSE"]._serialized_end = 1565
62-
_globals["_BATCHMATCHREQUEST"]._serialized_start = 1568
63-
_globals["_BATCHMATCHREQUEST"]._serialized_end = 1845
64-
_globals["_BATCHMATCHREQUEST_BATCHMATCHREQUESTPERINDEX"]._serialized_start = 1691
65-
_globals["_BATCHMATCHREQUEST_BATCHMATCHREQUESTPERINDEX"]._serialized_end = 1845
66-
_globals["_BATCHMATCHRESPONSE"]._serialized_start = 1848
67-
_globals["_BATCHMATCHRESPONSE"]._serialized_end = 2138
68-
_globals["_BATCHMATCHRESPONSE_BATCHMATCHRESPONSEPERINDEX"]._serialized_start = 1975
69-
_globals["_BATCHMATCHRESPONSE_BATCHMATCHRESPONSEPERINDEX"]._serialized_end = 2138
70-
_globals["_NAMESPACE"]._serialized_start = 2140
71-
_globals["_NAMESPACE"]._serialized_end = 2208
72-
_globals["_NUMERICNAMESPACE"]._serialized_start = 2211
73-
_globals["_NUMERICNAMESPACE"]._serialized_end = 2519
74-
_globals["_NUMERICNAMESPACE_OPERATOR"]._serialized_start = 2390
75-
_globals["_NUMERICNAMESPACE_OPERATOR"]._serialized_end = 2510
76-
_globals["_MATCHSERVICE"]._serialized_start = 2522
77-
_globals["_MATCHSERVICE"]._serialized_end = 2940
48+
_globals["_SPARSEEMBEDDING"]._serialized_start = 164
49+
_globals["_SPARSEEMBEDDING"]._serialized_end = 219
50+
_globals["_MATCHREQUEST"]._serialized_start = 222
51+
_globals["_MATCHREQUEST"]._serialized_end = 861
52+
_globals["_MATCHREQUEST_RRF"]._serialized_start = 830
53+
_globals["_MATCHREQUEST_RRF"]._serialized_end = 850
54+
_globals["_EMBEDDING"]._serialized_start = 864
55+
_globals["_EMBEDDING"]._serialized_end = 1219
56+
_globals["_MATCHRESPONSE"]._serialized_start = 1222
57+
_globals["_MATCHRESPONSE"]._serialized_end = 1481
58+
_globals["_MATCHRESPONSE_NEIGHBOR"]._serialized_start = 1388
59+
_globals["_MATCHRESPONSE_NEIGHBOR"]._serialized_end = 1481
60+
_globals["_BATCHGETEMBEDDINGSREQUEST"]._serialized_start = 1483
61+
_globals["_BATCHGETEMBEDDINGSREQUEST"]._serialized_end = 1549
62+
_globals["_BATCHGETEMBEDDINGSRESPONSE"]._serialized_start = 1551
63+
_globals["_BATCHGETEMBEDDINGSRESPONSE"]._serialized_end = 1648
64+
_globals["_BATCHMATCHREQUEST"]._serialized_start = 1651
65+
_globals["_BATCHMATCHREQUEST"]._serialized_end = 1928
66+
_globals["_BATCHMATCHREQUEST_BATCHMATCHREQUESTPERINDEX"]._serialized_start = 1774
67+
_globals["_BATCHMATCHREQUEST_BATCHMATCHREQUESTPERINDEX"]._serialized_end = 1928
68+
_globals["_BATCHMATCHRESPONSE"]._serialized_start = 1931
69+
_globals["_BATCHMATCHRESPONSE"]._serialized_end = 2221
70+
_globals["_BATCHMATCHRESPONSE_BATCHMATCHRESPONSEPERINDEX"]._serialized_start = 2058
71+
_globals["_BATCHMATCHRESPONSE_BATCHMATCHRESPONSEPERINDEX"]._serialized_end = 2221
72+
_globals["_NAMESPACE"]._serialized_start = 2223
73+
_globals["_NAMESPACE"]._serialized_end = 2291
74+
_globals["_NUMERICNAMESPACE"]._serialized_start = 2294
75+
_globals["_NUMERICNAMESPACE"]._serialized_end = 2602
76+
_globals["_NUMERICNAMESPACE_OPERATOR"]._serialized_start = 2473
77+
_globals["_NUMERICNAMESPACE_OPERATOR"]._serialized_end = 2593
78+
_globals["_MATCHSERVICE"]._serialized_start = 2605
79+
_globals["_MATCHSERVICE"]._serialized_end = 3023
7880
# @@protoc_insertion_point(module_scope)

google/cloud/aiplatform/matching_engine/_protos/match_service_pb2_grpc.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
# -*- coding: utf-8 -*-
2-
32
# Copyright 2022 Google LLC
43
#
54
# Licensed under the Apache License, Version 2.0 (the "License");
@@ -16,6 +15,7 @@
1615
#
1716
# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
1817
"""Client and server classes corresponding to protobuf-defined services."""
18+
1919
import grpc
2020

2121
from google.cloud.aiplatform.matching_engine._protos import match_service_pb2

0 commit comments

Comments
 (0)