Skip to content

find_neighbors with REST transport fails unless project and location are set in aiplatform.init #5467

Open
@gRedHeadphone

Description

@gRedHeadphone

MatchingEngineIndexEndpoint.find_neighbors fails when using api_transport="rest" if project and location are not explicitly passed to aiplatform.init(). The gRPC transport works correctly without these explicit parameters.

The REST call results in a 400 BadRequest error: Could not find field "%24alt" in the type "google.cloud.aiplatform.v1beta1.FindNeighborsRequest".

Is it intended that the REST transport requires explicit project and location in init, while gRPC can infer them from the endpoint's resource name? The behavior seems inconsistent.

Code Example:

from google.cloud import aiplatform

# Fails with the below configuration
aiplatform.init(api_transport="rest")

# This configuration works
# aiplatform.init(api_transport="grpc")

# This configuration also works
# from google.cloud.aiplatform.initializer import initializer
# aiplatform.init(
#     project=GCP.project,
#     location=GCP.location,
#     api_transport="rest"
# )

def get_docs_search_endpoint():
    return aiplatform.MatchingEngineIndexEndpoint(Artifacts.docs_search_endpoint_id)


docs_search_endpoint = get_docs_search_endpoint()

try:
    match_resp = docs_search_endpoint.find_neighbors(
        deployed_index_id=Artifacts.docs_search_deployment_id,
        queries=[[1] * 768],
        num_neighbors=500,
    )
    print(match_resp)
except Exception as e:
    print(e)

Stack Trace:

google.api_core.exceptions.BadRequest: 400 POST https://209XXXX46.us-central1-901XXXX18323.vdb.vertexai.goog/v1beta1/projects/901XXXX8323/locations/us-central1/indexEndpoints/793471XXXX752470528:findNeighbors?%24alt=json%3Benum-encoding%3Dint: Could not find field "%24alt" in the type "google.cloud.aiplatform.v1beta1.FindNeighborsRequest".

Metadata

Metadata

Assignees

No one assigned

    Labels

    api: vertex-aiIssues related to the googleapis/python-aiplatform API.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions