django Google Vertex AI Prediction API验证

dohp0rv5  于 2023-08-08  发布在  Go
关注(0)|答案(1)|浏览(106)

我写了一个Django-Web应用程序,它从ModelForm接收用户输入作为Python Dict,然后传递到Django后端,用Google Vertex AI Prediction API进行预测,然后将预测返回给用户的Web前端。
我已经获得了一个Service Account Key (JSON)用于获取所需的凭据。
但是我仍然面对401 Request had invalid authentication credentials. Expected OAuth 2 access token, login cookie or other valid authentication credential
同样的代码最初在2023年7月14日起作用,但它在两天前停止工作。

from google.oauth2 import service_account
from google.cloud import aiplatform
from google.protobuf import json_format
from google.protobuf.struct_pb2 import Value

def model_predict(json_data):

    key_path = 'path-to-service-account-key.json'

    # Create a credentials object using your service account key file
    credentials = service_account.Credentials.from_service_account_file(
        key_path,
        scopes=['https://www.googleapis.com/auth/cloud-platform']
    )

    # Deployed Endpoint model configs
    project_id = "project_id"
    endpoint_id = "endpoint_id"
    instance_dict = json_data 
    location = "us-central1"
    api_endpoint = "us-central1-aiplatform.googleapis.com"

    # The AI Platform services require regional API endpoints.
    client_options = {"api_endpoint": api_endpoint}
    
    # Initialise client that will be used to create and send requests.
    client = aiplatform.gapic.PredictionServiceClient(credentials=credentials, client_options=client_options)

    # Pass required configs and instance into AI Client
    instance = json_format.ParseDict(instance_dict, Value())
    instances = [instance]
    parameters_dict = {}
    parameters = json_format.ParseDict(parameters_dict, Value())

    endpoint = client.endpoint_path(
        project = project_id, location=location, endpoint=endpoint_id
    )
    response = client.predict(
        endpoint=endpoint, instances=instances, parameters=parameters
    )
   
    predictions = response.predictions

    for i in predictions:
        result= dict(i)
    
    return result

字符串
我想知道服务帐户密钥是否只在有限的时间内产生有效的OAuth 2令牌,或者我的代码有什么问题。

h9a6wy2h

h9a6wy2h1#

根据错误消息401请求的身份验证凭据无效。需要OAuth 2访问令牌、登录cookie或其他有效的身份验证凭据。你所做的请求有无效的身份验证凭据。预期的身份验证凭据包括OAuth 2访问令牌。特定的错误代码是“UNAUTHENTICATED”,这意味着请求未成功通过身份验证。
根据“创建授权凭据”文档,检查您的身份验证过程并确保您提供了正确的身份验证凭据。您可能需要生成有效的OAuth 2访问令牌或使用适当的登录cookie进行身份验证。
错误代码“401”表示用户未被授权进行请求。为请求提供的授权凭据无效。检查Authorization HTTP请求标头的值。有关详细信息,请参阅文档

相关问题