1

REST API 経由で画像を送信することにより、C# でカスタム AutoML モデルを実装しようとしていますが、さまざまなエラーが発生し続けます。

私が現在持っているものは次のとおりです。

リモート サーバーがエラーを返しました: (400) 不正な要求。

画像を取得し、呼び出されたバイトの文字列に変換し、byteString次のような jsonRequest オブジェクトを作成しました。

string jsonRequest = "{\"payload\":{\"image\":{\"imageBytes\":\"" + byteString + "\"},}}";

次に、次のような POST リクエストを実行しています。

WebRequest request = WebRequest.Create(@"https://automl.googleapis.com/v1beta1/projects/PROJECT_ID/locations/us-central1/models/MODEL_ID:predict");
request.Method = "POST";
request.ContentType = "application/json";
request.Headers.Add("Authorization", "Bearer GCLOUD_ACCESS_TOKEN");

using (var streamWriter = new StreamWriter(request.GetRequestStream()))
{
    streamWriter.Write(jsonRequest);
}

次に、ヒットrequest.GetResponse();すると、他の情報なしで上記のエラーが表示されます。

参考までに、カスタム AutoML モデルの PREDICT ページの下部から抜粋したスニペットを以下に示します。

リクエスト.json:

{
  "payload": {
    "image": {
      "imageBytes": "YOUR_IMAGE_BYTE"
    },
  }
}

リクエストを実行します。

curl -X POST -H "Content-Type: application/json" \
  -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
  https://automl.googleapis.com/v1beta1/projects/PROJECT_ID/locations/us-central1/models/MODEL_ID:predict -d @request.json

みんなありがとう、しばらくこれにこだわっていました。

4

3 に答える 3