-
Notifications
You must be signed in to change notification settings - Fork 597
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat: add match service in aiplatform v1beta1 match_service.proto (#4002
) * feat: add match service in aiplatform v1beta1 match_service.proto PiperOrigin-RevId: 510525846 Source-Link: googleapis/googleapis@972667f Source-Link: googleapis/googleapis-gen@de94b6f Copy-Tag: eyJwIjoicGFja2FnZXMvZ29vZ2xlLWNsb3VkLWFpcGxhdGZvcm0vLk93bEJvdC55YW1sIiwiaCI6ImRlOTRiNmZhNGUyZDJlYWJkYmE4NTVlMGY2MzQ3YWFlNjhmNWNkMjUifQ== * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot <gcf-owl-bot[bot]@users.noreply.github.com> Co-authored-by: Daniel Bankhead <[email protected]>
- Loading branch information
1 parent
00d8046
commit e2944f5
Showing
32 changed files
with
10,492 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
176 changes: 176 additions & 0 deletions
176
packages/google-cloud-aiplatform/protos/google/cloud/aiplatform/v1beta1/match_service.proto
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,176 @@ | ||
// Copyright 2023 Google LLC | ||
// | ||
// Licensed under the Apache License, Version 2.0 (the "License"); | ||
// you may not use this file except in compliance with the License. | ||
// You may obtain a copy of the License at | ||
// | ||
// http://www.apache.org/licenses/LICENSE-2.0 | ||
// | ||
// Unless required by applicable law or agreed to in writing, software | ||
// distributed under the License is distributed on an "AS IS" BASIS, | ||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
// See the License for the specific language governing permissions and | ||
// limitations under the License. | ||
|
||
syntax = "proto3"; | ||
|
||
package google.cloud.aiplatform.v1beta1; | ||
|
||
import "google/api/annotations.proto"; | ||
import "google/api/client.proto"; | ||
import "google/api/field_behavior.proto"; | ||
import "google/api/resource.proto"; | ||
import "google/cloud/aiplatform/v1beta1/index.proto"; | ||
|
||
option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1"; | ||
option go_package = "cloud.google.com/go/aiplatform/apiv1beta1/aiplatformpb;aiplatformpb"; | ||
option java_multiple_files = true; | ||
option java_outer_classname = "MatchServiceProto"; | ||
option java_package = "com.google.cloud.aiplatform.v1beta1"; | ||
option php_namespace = "Google\\Cloud\\AIPlatform\\V1beta1"; | ||
option ruby_package = "Google::Cloud::AIPlatform::V1beta1"; | ||
|
||
// MatchService is a Google managed service for efficient vector similarity | ||
// search at scale. | ||
service MatchService { | ||
option (google.api.default_host) = "aiplatform.googleapis.com"; | ||
option (google.api.oauth_scopes) = | ||
"https://www.googleapis.com/auth/cloud-platform"; | ||
|
||
// Finds the nearest neighbors of each vector within the request. | ||
rpc FindNeighbors(FindNeighborsRequest) returns (FindNeighborsResponse) { | ||
option (google.api.http) = { | ||
post: "/v1beta1/{index_endpoint=projects/*/locations/*/indexEndpoints/*}:findNeighbors" | ||
body: "*" | ||
}; | ||
} | ||
|
||
// Reads the datapoints/vectors of the given IDs. | ||
// A maximum of 1000 datapoints can be retrieved in a batch. | ||
rpc ReadIndexDatapoints(ReadIndexDatapointsRequest) | ||
returns (ReadIndexDatapointsResponse) { | ||
option (google.api.http) = { | ||
post: "/v1beta1/{index_endpoint=projects/*/locations/*/indexEndpoints/*}:readIndexDatapoints" | ||
body: "*" | ||
}; | ||
} | ||
} | ||
|
||
// The request message for | ||
// [MatchService.FindNeighbors][google.cloud.aiplatform.v1beta1.MatchService.FindNeighbors]. | ||
message FindNeighborsRequest { | ||
// A query to find a number of the nearest neighbors (most similar vectors) | ||
// of a vector. | ||
message Query { | ||
// Required. The datapoint/vector whose nearest neighbors should be searched | ||
// for. | ||
IndexDatapoint datapoint = 1 [(google.api.field_behavior) = REQUIRED]; | ||
|
||
// The number of nearest neighbors to be retrieved from database for each | ||
// query. If not set, will use the default from the service configuration | ||
// (https://cloud.google.com/vertex-ai/docs/matching-engine/configuring-indexes#nearest-neighbor-search-config). | ||
int32 neighbor_count = 2; | ||
|
||
// Crowding is a constraint on a neighbor list produced by nearest neighbor | ||
// search requiring that no more than some value k' of the k neighbors | ||
// returned have the same value of crowding_attribute. | ||
// It's used for improving result diversity. | ||
// This field is the maximum number of matches with the same crowding tag. | ||
int32 per_crowding_attribute_neighbor_count = 3; | ||
|
||
// The number of neighbors to find via approximate search before | ||
// exact reordering is performed. If not set, the default value from scam | ||
// config is used; if set, this value must be > 0. | ||
int32 approximate_neighbor_count = 4; | ||
|
||
// The fraction of the number of leaves to search, set at query time allows | ||
// user to tune search performance. This value increase result in both | ||
// search accuracy and latency increase. The value should be between 0.0 | ||
// and 1.0. If not set or set to 0.0, query uses the default value specified | ||
// in | ||
// NearestNeighborSearchConfig.TreeAHConfig.fraction_leaf_nodes_to_search. | ||
double fraction_leaf_nodes_to_search_override = 5; | ||
} | ||
|
||
// Required. The name of the index endpoint. | ||
// Format: | ||
// `projects/{project}/locations/{location}/indexEndpoints/{index_endpoint}` | ||
string index_endpoint = 1 [ | ||
(google.api.field_behavior) = REQUIRED, | ||
(google.api.resource_reference) = { | ||
type: "aiplatform.googleapis.com/IndexEndpoint" | ||
} | ||
]; | ||
|
||
// The ID of the DeploydIndex that will serve the request. This request is | ||
// sent to a specific IndexEndpoint, as per the IndexEndpoint.network. That | ||
// IndexEndpoint also has IndexEndpoint.deployed_indexes, and each such index | ||
// has a DeployedIndex.id field. | ||
// The value of the field below must equal one of the DeployedIndex.id | ||
// fields of the IndexEndpoint that is being called for this request. | ||
string deployed_index_id = 2; | ||
|
||
// The list of queries. | ||
repeated Query queries = 3; | ||
|
||
// If set to true, the full datapoints (including all vector values and | ||
// restricts) of the nearest neighbors are returned. | ||
// Note that returning full datapoint will significantly increase the | ||
// latency and cost of the query. | ||
bool return_full_datapoint = 4; | ||
} | ||
|
||
// The response message for | ||
// [MatchService.FindNeighbors][google.cloud.aiplatform.v1beta1.MatchService.FindNeighbors]. | ||
message FindNeighborsResponse { | ||
// A neighbor of the query vector. | ||
message Neighbor { | ||
// The datapoint of the neighbor. | ||
// Note that full datapoints are returned only when "return_full_datapoint" | ||
// is set to true. Otherwise, only the "datapoint_id" and "crowding_tag" | ||
// fields are populated. | ||
IndexDatapoint datapoint = 1; | ||
|
||
// The distance between the neighbor and the query vector. | ||
double distance = 2; | ||
} | ||
|
||
// Nearest neighbors for one query. | ||
message NearestNeighbors { | ||
// The ID of the query datapoint. | ||
string id = 1; | ||
|
||
// All its neighbors. | ||
repeated Neighbor neighbors = 2; | ||
} | ||
|
||
// The nearest neighbors of the query datapoints. | ||
repeated NearestNeighbors nearest_neighbors = 1; | ||
} | ||
|
||
// The request message for | ||
// [MatchService.ReadIndexDatapoints][google.cloud.aiplatform.v1beta1.MatchService.ReadIndexDatapoints]. | ||
message ReadIndexDatapointsRequest { | ||
// Required. The name of the index endpoint. | ||
// Format: | ||
// `projects/{project}/locations/{location}/indexEndpoints/{index_endpoint}` | ||
string index_endpoint = 1 [ | ||
(google.api.field_behavior) = REQUIRED, | ||
(google.api.resource_reference) = { | ||
type: "aiplatform.googleapis.com/IndexEndpoint" | ||
} | ||
]; | ||
|
||
// The ID of the DeploydIndex that will serve the request. | ||
string deployed_index_id = 2; | ||
|
||
// IDs of the datapoints to be searched for. | ||
repeated string ids = 3; | ||
} | ||
|
||
// The response message for | ||
// [MatchService.ReadIndexDatapoints][google.cloud.aiplatform.v1beta1.MatchService.ReadIndexDatapoints]. | ||
message ReadIndexDatapointsResponse { | ||
// The result list of datapoints. | ||
repeated IndexDatapoint datapoints = 1; | ||
} |
Oops, something went wrong.