关于 json 和 GCP 的问题

Questions on json and GCP

所以我有这段代码可以写出一个 json 文件以通过端点连接。该文件非常标准,因为它包含如何连接到端点的位置以及一些数据。

%%writefile default-pred.json
{   PROJECT_ID:"msds434-gcp",
    REGION:"us-central1",
    ENDPOINT_ID:"2857701089334001664",
    INPUT_DATA_FILE:"INPUT-JSON",
    "instances": [
    {"age": 39,
    "bill_amt_1": 47174,
    "bill_amt_2": 47974,
    "bill_amt_3": 48630,
    "bill_amt_4": 50803,
    "bill_amt_5": 30789,
    "bill_amt_6": 15874,
    "education_level": "1",
    "limit_balance": 50000,
    "marital_status": "2",
    "pay_0": 0,
    "pay_2":0,
    "pay_3": 0,
    "pay_4": 0,
    "pay_5": "0",
    "pay_6": "0",
    "pay_amt_1": 1800,
    "pay_amt_2": 2000,
    "pay_amt_3": 3000,
    "pay_amt_4": 2000,
    "pay_amt_5": 2000,
    "pay_amt_6": 2000,
    "sex": "1"
    }
  ]
    }

然后我尝试连接到文件,然后获取信息以连接到有问题的端点。我知道信息是正确的,因为它是来自 GCP 的确切代码。

!curl \
-X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://us-central1-prediction-aiplatform.googleapis.com/v1alpha1/projects/$PROJECT_ID/locations/$REGION/endpoints/$ENDPOINT_ID:predict \
-d "@default-pred.json"

因此,根据我掌握的信息,我希望它能够解析我掌握的信息并连接到端点,但显然我的文件不知何故出错了。知道它是什么吗?

{
  "error": {
    "code": 400,
    "message": "Invalid JSON payload received. Unknown name \"PROJECT_ID\": Cannot find field.\nInvalid JSON payload received. Unknown name \"REGION\": Cannot find field.\nInvalid JSON payload received. Unknown name \"ENDPOINT_ID\": Cannot find field.\nInvalid JSON payload received. Unknown name \"INPUT_DATA_FILE\": Cannot find field.",
    "status": "INVALID_ARGUMENT",
    "details": [
      {
        "@type": "type.googleapis.com/google.rpc.BadRequest",
        "fieldViolations": [
          {
            "description": "Invalid JSON payload received. Unknown name \"PROJECT_ID\": Cannot find field."
          },
          {
            "description": "Invalid JSON payload received. Unknown name \"REGION\": Cannot find field."
          },
          {
            "description": "Invalid JSON payload received. Unknown name \"ENDPOINT_ID\": Cannot find field."
          },
          {
            "description": "Invalid JSON payload received. Unknown name \"INPUT_DATA_FILE\": Cannot find field."
          }
        ]
      }
    ]
  }
}

我在这里错过了什么?

数据文件应该只包含数据。

您已经包括了 PROJECT_IDREGIONENDPOINT,但不应该。

这些需要在 (bash) 环境中设置 在您发出 curl 命令之前 :

PROJECT_ID="msds434-gcp"
REGION="us-central1"
ENDPOINT_ID="2857701089334001664"

curl \
--request POST \
--header "Authorization: Bearer $(gcloud auth print-access-token)" \
--header "Content-Type: application/json" \
https://us-central1-prediction-aiplatform.googleapis.com/v1alpha1/projects/$PROJECT_ID/locations/$REGION/endpoints/$ENDPOINT_ID:predict \
--data "@default-pred.json"

文件 default-pred.json 应该 可能(我在 APIs Explorer! 中永远找不到此服务的方法)只是:

{
  instances": [
    { "age": 39,
      "bill_amt_1": 47174,
      "bill_amt_2": 47974,
      "bill_amt_3": 48630,
      "bill_amt_4": 50803,
      "bill_amt_5": 30789,
      "bill_amt_6": 15874,
      "education_level": "1",
      "limit_balance": 50000,
      "marital_status": "2",
      "pay_0": 0,
      "pay_2":0,
      "pay_3": 0,
      "pay_4": 0,
      "pay_5": "0",
      "pay_6": "0",
      "pay_amt_1": 1800,
      "pay_amt_2": 2000,
      "pay_amt_3": 3000,
      "pay_amt_4": 2000,
      "pay_amt_5": 2000,
      "pay_amt_6": 2000,
      "sex": "1"
    }
  ]
}

请参阅 aiplatform predict 方法的文档,因为这解释了这一点。