json和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_ID,REGION,ENDPOINT,不应该包括。

这些需要在(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应该可能(我永远无法在api 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"
}
]
}

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

最新更新