商品セットは、商品のグループを格納するためのシンプルなコンテナです。
空の商品セットを作成する
すべての商品アイテムをまとめた 1 つの商品セットを使用し、必要に応じてテスト用の商品セットを追加することをおすすめします。以下のサンプルコードでは、空の商品セットを作成します。
REST
リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT_ID: 実際の Google Cloud プロジェクト ID。
- LOCATION_ID: 有効なロケーション ID。有効なロケーション ID は
us-west1、us-east1、europe-west1、asia-east1です。 - DISPLAY_NAME: 選択した文字列の表示名。
HTTP メソッドと URL:
POST https://vision.googleapis.com/v1/projects/project-id/locations/location-id/productSets
リクエストの本文(JSON):
{
"displayName": "display-name"
}
リクエストを送信するには、次のいずれかのオプションを選択します。
curl
リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "x-goog-user-project: project-id" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://vision.googleapis.com/v1/projects/project-id/locations/location-id/productSets"
PowerShell
リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "project-id" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://vision.googleapis.com/v1/projects/project-id/locations/location-id/productSets" | Select-Object -Expand Content
リクエストが成功すると、サーバーは 200 OK HTTP ステータス コードと JSON 形式のレスポンスを返します。
出力は次のようになります。商品セット ID(この場合は b6d809615b6dd675)を使用して、商品セットに対する他の操作を行えます。
{
"name": "projects/project-id/locations/location-id/productSets/b6d809615b6dd675",
"displayName": "new-product-set"
}
Go
Vision API Product Search 用のクライアント ライブラリをインストールして使用する方法については、Vision API Product Search クライアント ライブラリをご覧ください。 詳細については、Vision API Product Search Go API リファレンス ドキュメントをご覧ください。
Vision API Product Search に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Java
Vision API Product Search 用のクライアント ライブラリをインストールして使用する方法については、Vision API Product Search クライアント ライブラリをご覧ください。 詳細については、Vision API Product Search Java API リファレンス ドキュメントをご覧ください。
Vision API Product Search に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Node.js
Vision API Product Search 用のクライアント ライブラリをインストールして使用する方法については、Vision API Product Search クライアント ライブラリをご覧ください。 詳細については、Vision API Product Search Node.js API リファレンス ドキュメントをご覧ください。
Vision API Product Search に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Python
Vision API Product Search 用のクライアント ライブラリをインストールして使用する方法については、Vision API Product Search クライアント ライブラリをご覧ください。 詳細については、Vision API Product Search Python API リファレンス ドキュメントをご覧ください。
Vision API Product Search に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
その他の言語
C#: クライアント ライブラリ ページの C# の設定手順を行ってから、.NET. 用の Vision API Product Search のリファレンス ドキュメントをご覧ください。
PHP: クライアント ライブラリ ページの PHP の設定手順を行ってから、PHP 用の Vision API Product Search リファレンス ドキュメントをご覧ください。
Ruby: クライアント ライブラリ ページの Ruby の設定手順を行ってから、Ruby 用の Vision API Product Search リファレンス ドキュメントをご覧ください。
一括インポートで商品を含む商品セットを作成する
一括インポート機能を使用すると、商品セットを作成するときに複数の商品とその参照画像を作成できます。
商品セット、商品、参照画像のさまざまな参照は、使用する一括インポート CSV ファイルに設定されます。詳細については、一括インポート CSV のフォーマットをご覧ください。
次のコードを実行して、一括インポートを実行します。
REST
リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT_ID: 実際の Google Cloud プロジェクト ID。
- LOCATION_ID: 有効なロケーション ID。有効なロケーション ID は
us-west1、us-east1、europe-west1、asia-east1です。 - STORAGE_PATH: 入力 CSV ファイルが保存される Cloud Storage バケット / ディレクトリ。リクエスト元のユーザーには、少なくともバケットに対する読み取り権限が必要です。
HTTP メソッドと URL:
POST https://vision.googleapis.com/v1/projects/project-id/locations/location-id/productSets:import
リクエストの本文(JSON):
{
"inputConfig": {
"gcsSource": {
"csvFileUri": "storage-path"
}
}
}
リクエストを送信するには、次のいずれかのオプションを選択します。
curl
リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "x-goog-user-project: project-id" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://vision.googleapis.com/v1/projects/project-id/locations/location-id/productSets:import"
PowerShell
リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "project-id" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://vision.googleapis.com/v1/projects/project-id/locations/location-id/productSets:import" | Select-Object -Expand Content
出力は次のようになります。タスクのステータスは、オペレーション ID(この場合は f10f34e32c40a710)を使用して取得できます。例については、オペレーションのステータスの取得をご覧ください。
{
"name": "projects/project-id/locations/location-id/operations/f10f34e32c40a710"
}長時間実行オペレーションが完了すると、インポートのオペレーションの詳細を取得できます。レスポンスは次のようになります。
{
"name": "locations/location-id/operations/f10f34e32c40a710",
"metadata": {
"@type": "type.googleapis.com/google.cloud.vision.v1.BatchOperationMetadata",
"state": "SUCCESSFUL",
"submitTime": "2019-12-06T21:16:04.476466873Z",
"endTime": "2019-12-06T21:16:40.594258084Z"
},
"done": true,
"response": {
"@type": "type.googleapis.com/google.cloud.vision.v1.ImportProductSetsResponse",
"referenceImages": [
{
"name": "projects/project-id/locations/location-id/products/product_id0/referenceImages/image0",
"uri": "gs://my-storage-bucket/img_039.jpg"
},
{
"name": "projects/project-id/locations/location-id/products/product_id1/referenceImages/image1",
"uri": "gs://my-storage-bucket/img_105.jpg"
},
{
"name": "projects/project-id/locations/location-id/products/product_id2/referenceImages/image2",
"uri": "gs://my-storage-bucket/img_224.jpg"
},
{
"name": "projects/project-id/locations/location-id/products/product_id3/referenceImages/image3",
"uri": "gs://my-storage-bucket/img_385.jpg"
}
],
"statuses": [
{},
{},
{},
{}
]
}
}
Go
Vision API Product Search 用のクライアント ライブラリをインストールして使用する方法については、Vision API Product Search クライアント ライブラリをご覧ください。 詳細については、Vision API Product Search Go API リファレンス ドキュメントをご覧ください。
Vision API Product Search に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Java
Vision API Product Search 用のクライアント ライブラリをインストールして使用する方法については、Vision API Product Search クライアント ライブラリをご覧ください。 詳細については、Vision API Product Search Java API リファレンス ドキュメントをご覧ください。
Vision API Product Search に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Node.js
Vision API Product Search 用のクライアント ライブラリをインストールして使用する方法については、Vision API Product Search クライアント ライブラリをご覧ください。 詳細については、Vision API Product Search Node.js API リファレンス ドキュメントをご覧ください。
Vision API Product Search に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Python
Vision API Product Search 用のクライアント ライブラリをインストールして使用する方法については、Vision API Product Search クライアント ライブラリをご覧ください。 詳細については、Vision API Product Search Python API リファレンス ドキュメントをご覧ください。
Vision API Product Search に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
その他の言語
C#: クライアント ライブラリ ページの C# の設定手順を行ってから、.NET. 用の Vision API Product Search のリファレンス ドキュメントをご覧ください。
PHP: クライアント ライブラリ ページの PHP の設定手順を行ってから、PHP 用の Vision API Product Search リファレンス ドキュメントをご覧ください。
Ruby: クライアント ライブラリ ページの Ruby の設定手順を行ってから、Ruby 用の Vision API Product Search リファレンス ドキュメントをご覧ください。
オペレーションのステータスの取得
一括インポートによる商品セットの作成、商品セットの削除、孤立した商品の削除などは長時間実行オペレーションです。これらのタイプのオペレーションをリクエストすると、オペレーション ID を含む JSON が返されます。この ID を使用すると、オペレーションのステータスを取得できます。
たとえば、バッチ削除(purge)リクエストは次の JSON を返します。
{
"name": "projects/project-id/locations/location-id/operations/bc4e1d412863e626"
}この場合、bc4e1d412863e626 がオペレーション ID です。次のサンプルでは、この ID のオペレーションのステータスを取得します。
REST
リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT_ID: 実際の Google Cloud プロジェクト ID。
- LOCATION_ID: 有効なロケーション ID。有効なロケーション ID は
us-west1、us-east1、europe-west1、asia-east1です。 - OPERATION_ID: オペレーションの ID。この ID は、オペレーションの名前の最後の要素です。例:
- オペレーション名:
projects/PROJECT_ID/locations/LOCATION_ID/operations/bc4e1d412863e626 - オペレーション ID:
bc4e1d412863e626
- オペレーション名:
HTTP メソッドと URL:
GET https://vision.googleapis.com/v1/locations/location-id/operations/operation-id
リクエストを送信するには、次のいずれかのオプションを選択します。
curl
次のコマンドを実行します。
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "x-goog-user-project: project-id" \
"https://vision.googleapis.com/v1/locations/location-id/operations/operation-id"
PowerShell
次のコマンドを実行します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "project-id" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://vision.googleapis.com/v1/locations/location-id/operations/operation-id" | Select-Object -Expand Content
{
"name": "locations/location-id/operations/operation-id",
"metadata": {
"@type": "type.googleapis.com/google.cloud.vision.v1.BatchOperationMetadata",
"state": "SUCCESSFUL",
"submitTime": "2019-09-04T15:58:39.131591882Z",
"endTime": "2019-09-04T15:58:43.099020580Z"
},
"done": true,
"response": {
"@type": "type.googleapis.com/google.cloud.vision.v1.PurgeProductsRequest",
"parent": "projects/project-id/locations/location-id",
"productSetPurgeConfig": {
"productSetId": "project-set-id"
},
"force": true
}
}孤立した商品を削除するオペレーションが完了すると、次のような出力が表示されます。
{
"name": "locations/location-id/operations/operation-id",
"metadata": {
"@type": "type.googleapis.com/google.cloud.vision.v1.BatchOperationMetadata",
"state": "SUCCESSFUL",
"submitTime": "2019-09-04T16:08:38.278197397Z",
"endTime": "2019-09-04T16:08:45.075778639Z"
},
"done": true,
"response": {
"@type": "type.googleapis.com/google.cloud.vision.v1.PurgeProductsRequest",
"parent": "projects/project-id/locations/location-id",
"deleteOrphanProducts": true,
"force": true
}
}