簡體   English   中英

StatusCode.UNIMPLEMENTED 進行 Vertex AI API 調用時

[英]StatusCode.UNIMPLEMENTED when making Vertex AI API call

我有一個簡單的 Python 應用程序調用 Vertex AI API,它在運行時失敗,我不明白為什么。 應用如下:

from google.cloud import aiplatform_v1

def sample_list_datasets():
    client = aiplatform_v1.DatasetServiceClient()
    request = aiplatform_v1.ListDatasetsRequest(
        parent="projects/MYPROJECT/locations/us-central1",
    )
    page_result = client.list_datasets(request=request)
    for response in page_result:
        print(response)

sample_list_datasets()

運行時,它失敗並顯示:

E0126 03:52:04.146970105   22462 hpack_parser.cc:1218]                 Error parsing metadata: error=invalid value key=content-type value=text/html; charset=UTF-8
Traceback (most recent call last):
  File "/home/kolban/projects/vertex-ai/datasets/env/lib/python3.7/site-packages/google/api_core/grpc_helpers.py", line 72, in error_remapped_callable
    return callable_(*args, **kwargs)
  File "/home/kolban/projects/vertex-ai/datasets/env/lib/python3.7/site-packages/grpc/_channel.py", line 946, in __call__
    return _end_unary_response_blocking(state, call, False, None)
  File "/home/kolban/projects/vertex-ai/datasets/env/lib/python3.7/site-packages/grpc/_channel.py", line 849, in _end_unary_response_blocking
    raise _InactiveRpcError(state)
grpc._channel._InactiveRpcError: <_InactiveRpcError of RPC that terminated with:
        status = StatusCode.UNIMPLEMENTED
        details = "Received http2 header with status: 404"
        debug_error_string = "UNKNOWN:Error received from peer ipv4:108.177.120.95:443 {created_time:"2023-01-26T03:52:04.147076255+00:00", grpc_status:12, grpc_message:"Received http2 header with status: 404"}"
>

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "run.py", line 25, in <module>
    sample_list_datasets()
  File "run.py", line 19, in sample_list_datasets
    page_result = client.list_datasets(request=request)
  File "/home/kolban/projects/vertex-ai/datasets/env/lib/python3.7/site-packages/google/cloud/aiplatform_v1/services/dataset_service/client.py", line 1007, in list_datasets
    metadata=metadata,
  File "/home/kolban/projects/vertex-ai/datasets/env/lib/python3.7/site-packages/google/api_core/gapic_v1/method.py", line 113, in __call__
    return wrapped_func(*args, **kwargs)
  File "/home/kolban/projects/vertex-ai/datasets/env/lib/python3.7/site-packages/google/api_core/grpc_helpers.py", line 74, in error_remapped_callable
    raise exceptions.from_grpc_error(exc) from exc
google.api_core.exceptions.MethodNotImplemented: 501 Received http2 header with status: 404

我可能做錯了什么?

將代碼更改為以下內容使其工作:

from google.cloud import aiplatform_v1
from google.api_core.client_options import ClientOptions


def sample_list_datasets():
    service_base_path='aiplatform.googleapis.com'
    region='us-central1'
    client_options = ClientOptions(api_endpoint=f"{region}-{service_base_path}")
    client = aiplatform_v1.DatasetServiceClient(client_options=client_options)
    request = aiplatform_v1.ListDatasetsRequest(
        parent="projects/MYPROJECT/locations/us-central1",
    )

    # Make the request
    page_result = client.list_datasets(request=request)

    # Handle the response
    for response in page_result:
        print(response)

sample_list_datasets()

此處找到的 API 請求的文檔中暗示了該解決方案。 在那篇文章中有一個代碼示例,在代碼示例中有一些注釋,在注釋中寫了以下內容:

這是核心線索。 當我們進行 Vertex AI 調用時,我們必須指定將請求發送到哪里 為此,我們將api_endpoint選項設置為[REGION]-aiplatform.googleapis.com

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM