Ce tutoriel explique comment créer un ensemble de produits contenant des produits associés à des images de référence. Il décrit comment créer un ensemble de produits via une importation individuelle en ligne. Une fois l'ensemble de produits indexé, il peut être interrogé via l'API Vision Product Search.
Dans ce tutoriel, vous allez apprendre à effectuer les opérations suivantes :
- Créer un ensemble de produits via une importation individuelle en ligne
- Créer un produit individuel
- Ajouter un produit à un ensemble de produits
- Mettre à jour un produit
- Créer une image de référence
- Rechercher des produits similaires
Avant de commencer
Avant de commencer ce tutoriel, assurez-vous d'avoir installé les bibliothèques clientes appropriées, activé la facturation et l'API pour votre projet, et configuré correctement l'authentification.
Importer des bibliothèques
Pour utiliser la fonctionnalité de recherche de produits de l'API Vision, importez les modules suivants après avoir téléchargé et installé la bibliothèque cliente :
Go
Pour savoir comment installer et utiliser la bibliothèque cliente pour la recherche de produits de l'API Vision, consultez la page Bibliothèques clientes de la recherche de produits de l'API Vision. Pour en savoir plus, consultez la documentation de référence sur les API de la recherche de produits de l'API Vision en langage Go.
Pour vous authentifier auprès de la recherche de produits de l'API Vision, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Java
Pour savoir comment installer et utiliser la bibliothèque cliente pour la recherche de produits de l'API Vision, consultez la page Bibliothèques clientes de la recherche de produits de l'API Vision. Pour en savoir plus, consultez la documentation de référence sur les API de la recherche de produits de l'API Vision en langage Java.
Pour vous authentifier auprès de la recherche de produits de l'API Vision, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Node.js
Pour savoir comment installer et utiliser la bibliothèque cliente pour la recherche de produits de l'API Vision, consultez la page Bibliothèques clientes de la recherche de produits de l'API Vision. Pour en savoir plus, consultez la documentation de référence sur les API de la recherche de produits de l'API Vision en langage Node.js.
Pour vous authentifier auprès de la recherche de produits de l'API Vision, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Python
Pour savoir comment installer et utiliser la bibliothèque cliente pour la recherche de produits de l'API Vision, consultez la page Bibliothèques clientes de la recherche de produits de l'API Vision. Pour en savoir plus, consultez la documentation de référence sur les API de la recherche de produits de l'API Vision en langage Python.
Pour vous authentifier auprès de la recherche de produits de l'API Vision, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Langages supplémentaires
C# : Veuillez suivre les Instructions de configuration pour C# sur la page des bibliothèques clientes, puis consultez la Documentation de référence sur la recherche de produits via l'API Vision avec .NET.
PHP : Veuillez suivre les Instructions de configuration pour PHP sur la page des bibliothèques clientes, puis consultez la Documentation de référence sur la recherche de produits via l'API Vision avec PHP.
Ruby : Veuillez suivre les Instructions de configuration pour Ruby sur la page des bibliothèques clientes, puis consultez la Documentation de référence sur la recherche de produits via l'API Vision avec Ruby.
Exécuter l'application
Étape 1 : Créer un catalogue de produits
Les utilisateurs disposent de deux options pour créer un catalogue de produits. La première consiste en une importation par lot à l'aide d'un fichier CSV, ce qui permet d'importer l'intégralité d'un catalogue de produits en un seul appel d'API. La seconde consiste en une importation en ligne, qui vous permet de contrôler vos ensembles de produits et de gérer une ressource ou une relation entre différentes ressources à la fois. Autrement dit, cette méthode permet la création individuelle d'ensembles de produits, de produits et d'images de référence. L'importation en ligne vous permet également d'effectuer une mise à jour incrémentielle sur un catalogue de produits précédemment créé via une importation par lot.
Dans ce tutoriel, vous allez procéder à une importation en ligne. Pour obtenir un exemple d'importation par lot avec un fichier CSV, consultez le guide de démarrage rapide.
Importation (individuelle) en ligne
1. Créer un ensemble de produits
Vous allez créer un ensemble de produits, à savoir un conteneur simple pour un groupe de produits.
Requête
Créez un ensemble de produits vide et nommez-le "PS_CLOTH-SHOE_070318" en exécutant la requête suivante à l'aide de la méthode create_product_set()
.
Spécifiez en tant qu'arguments l'ID et le nom à afficher de l'ensemble de produits.
REST
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- PROJECT_ID : ID de votre projet Google Cloud.
- LOCATION_ID : identifiant d'emplacement valide. Les identifiants d'emplacement valides sont :
us-west1
,us-east1
,europe-west1
etasia-east1
. - DISPLAY_NAME : nom à afficher de la chaîne de votre choix.
Méthode HTTP et URL :
POST https://vision.googleapis.com/v1/projects/project-id/locations/location-id/productSets
Corps JSON de la requête :
{ "displayName": "display-name" }
Pour envoyer votre requête, choisissez l'une des options suivantes :
curl
Enregistrez le corps de la requête dans un fichier nommé request.json
, puis exécutez la commande suivante :
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
Enregistrez le corps de la requête dans un fichier nommé request.json
, puis exécutez la commande suivante :
$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
Si la requête aboutit, le serveur affiche un code d'état HTTP 200 OK
et la réponse au format JSON.
Un résultat semblable aux lignes suivantes doit s'afficher. Vous pouvez utiliser l'ID de l'ensemble de produits (b6d809615b6dd675
dans le cas présent) pour effectuer d'autres opérations sur celui-ci.
{ "name": "projects/project-id/locations/location-id/productSets/b6d809615b6dd675", "displayName": "new-product-set" }
Go
Pour savoir comment installer et utiliser la bibliothèque cliente pour la recherche de produits de l'API Vision, consultez la page Bibliothèques clientes de la recherche de produits de l'API Vision. Pour en savoir plus, consultez la documentation de référence sur les API de la recherche de produits de l'API Vision en langage Go.
Pour vous authentifier auprès de la recherche de produits de l'API Vision, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Java
Pour savoir comment installer et utiliser la bibliothèque cliente pour la recherche de produits de l'API Vision, consultez la page Bibliothèques clientes de la recherche de produits de l'API Vision. Pour en savoir plus, consultez la documentation de référence sur les API de la recherche de produits de l'API Vision en langage Java.
Pour vous authentifier auprès de la recherche de produits de l'API Vision, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Node.js
Pour savoir comment installer et utiliser la bibliothèque cliente pour la recherche de produits de l'API Vision, consultez la page Bibliothèques clientes de la recherche de produits de l'API Vision. Pour en savoir plus, consultez la documentation de référence sur les API de la recherche de produits de l'API Vision en langage Node.js.
Pour vous authentifier auprès de la recherche de produits de l'API Vision, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Python
Pour savoir comment installer et utiliser la bibliothèque cliente pour la recherche de produits de l'API Vision, consultez la page Bibliothèques clientes de la recherche de produits de l'API Vision. Pour en savoir plus, consultez la documentation de référence sur les API de la recherche de produits de l'API Vision en langage Python.
Pour vous authentifier auprès de la recherche de produits de l'API Vision, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Langages supplémentaires
C# : Veuillez suivre les Instructions de configuration pour C# sur la page des bibliothèques clientes, puis consultez la Documentation de référence sur la recherche de produits via l'API Vision avec .NET.
PHP : Veuillez suivre les Instructions de configuration pour PHP sur la page des bibliothèques clientes, puis consultez la Documentation de référence sur la recherche de produits via l'API Vision avec PHP.
Ruby : Veuillez suivre les Instructions de configuration pour Ruby sur la page des bibliothèques clientes, puis consultez la Documentation de référence sur la recherche de produits via l'API Vision avec Ruby.
Réponse
Product set name: projects/prj-prod-search-tutorials/locations/us-east1/productSets/PS_CLOTH-SHOE_070318 Product set id: PS_CLOTH-SHOE_070318 Product set display name: CLOTH-SHOE
2. Créer un produit
Une fois qu'un ensemble de produits a été créé, l'étape suivante consiste à créer un produit. Pour cela, exécutez la requête ci-dessous.
REST
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- PROJECT_ID : ID de votre projet Google Cloud.
- LOCATION_ID : identifiant d'emplacement valide. Les identifiants d'emplacement valides sont :
us-west1
,us-east1
,europe-west1
etasia-east1
. - DISPLAY_NAME : nom à afficher (chaîne de votre choix).
- PRODUCT_DESCRIPTION : description (chaîne de votre choix).
- product-category : catégorie de produits valide. Les catégories de produits suivantes sont actuellement disponibles :
homegoods-v2
,apparel-v2
,toys-v2
,packagedgoods-v1
etgeneral-v1
. productLabels
: une ou plusieurs paires clé-valeur associées à un produit. Chaque élément KEY_STRING doit être associé à un élément VALUE_STRING.
Méthode HTTP et URL :
POST https://vision.googleapis.com/v1/projects/project-id/locations/location-id/products
Corps JSON de la requête :
{ "displayName": "display-name", "description": "product-description", "productCategory": "product-category", "productLabels": [ { "key": "key-string", "value": "value-string" } ] }
Pour envoyer votre requête, choisissez l'une des options suivantes :
curl
Enregistrez le corps de la requête dans un fichier nommé request.json
, puis exécutez la commande suivante :
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/products"
PowerShell
Enregistrez le corps de la requête dans un fichier nommé request.json
, puis exécutez la commande suivante :
$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/products" | Select-Object -Expand Content
Exemple de corps de la requête :
{ "displayName": "sample-product-1234", "description": "Athletic shorts", "productCategory": "apparel-v2", "productLabels": [ { "key": "style", "value": "womens" }, { "key": "color", "value": "blue" } ] }
Si la requête aboutit, le serveur affiche un code d'état HTTP 200 OK
ainsi que la réponse au format JSON.
Un résultat semblable aux lignes suivantes doit s'afficher. Vous pouvez utiliser l'ID produit (37b9811d308c4e42
, dans le cas présent) pour effectuer d'autres opérations sur celui-ci.
{ "name": "projects/project-id/locations/location-id/products/37b9811d308c4e42", "displayName": "sample-product-456", "description": "Athletic shorts", "productCategory": "apparel-v2", "productLabels": [ { "key": "style", "value": "womens" }, { "key": "color", "value": "blue" } ] }
Go
Pour savoir comment installer et utiliser la bibliothèque cliente pour la recherche de produits de l'API Vision, consultez la page Bibliothèques clientes de la recherche de produits de l'API Vision. Pour en savoir plus, consultez la documentation de référence sur les API de la recherche de produits de l'API Vision en langage Go.
Pour vous authentifier auprès de la recherche de produits de l'API Vision, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Java
Pour savoir comment installer et utiliser la bibliothèque cliente pour la recherche de produits de l'API Vision, consultez la page Bibliothèques clientes de la recherche de produits de l'API Vision. Pour en savoir plus, consultez la documentation de référence sur les API de la recherche de produits de l'API Vision en langage Java.
Pour vous authentifier auprès de la recherche de produits de l'API Vision, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Node.js
Pour savoir comment installer et utiliser la bibliothèque cliente pour la recherche de produits de l'API Vision, consultez la page Bibliothèques clientes de la recherche de produits de l'API Vision. Pour en savoir plus, consultez la documentation de référence sur les API de la recherche de produits de l'API Vision en langage Node.js.
Pour vous authentifier auprès de la recherche de produits de l'API Vision, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Python
Pour savoir comment installer et utiliser la bibliothèque cliente pour la recherche de produits de l'API Vision, consultez la page Bibliothèques clientes de la recherche de produits de l'API Vision. Pour en savoir plus, consultez la documentation de référence sur les API de la recherche de produits de l'API Vision en langage Python.
Pour vous authentifier auprès de la recherche de produits de l'API Vision, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Langages supplémentaires
C# : Veuillez suivre les Instructions de configuration pour C# sur la page des bibliothèques clientes, puis consultez la Documentation de référence sur la recherche de produits via l'API Vision avec .NET.
PHP : Veuillez suivre les Instructions de configuration pour PHP sur la page des bibliothèques clientes, puis consultez la Documentation de référence sur la recherche de produits via l'API Vision avec PHP.
Ruby : Veuillez suivre les Instructions de configuration pour Ruby sur la page des bibliothèques clientes, puis consultez la Documentation de référence sur la recherche de produits via l'API Vision avec Ruby.
Réponse
Product name: projects/prj-prod-search-tutorials/locations/us-east1/products/P_CLOTH-SHOE_46903668_070318 Product id: P_CLOTH-SHOE_46903668_070318 Product display name: Blue Dress Product category: apparel Product description: Short sleeved and 1950s style satin dress Product labels: Product label 1: key: style value: women Product label 2: key: category value: dress Product label 3: key: color value: dark-blue
3. Ajouter un produit à un ensemble de produits
Une fois qu'un ensemble de produits et un produit ont été créés, vous pouvez ajouter le produit à l'ensemble de produits.
REST
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- PROJECT_ID : ID de votre projet Google Cloud.
- LOCATION_ID : identifiant d'emplacement valide. Les identifiants d'emplacement valides sont :
us-west1
,us-east1
,europe-west1
etasia-east1
. - PRODUCT_SET_ID : ID de l'ensemble de produits sur lequel vous souhaitez exécuter l'opération.
- PRODUCT_NAME : nom complet de la ressource du produit.
Format :
projects/PROJECT_ID/locations/LOCATION_ID/products/PRODUCT_ID
Méthode HTTP et URL :
POST https://vision.googleapis.com/v1/projects/project-id/locations/location-id/productSets/product-set-id:addProduct
Corps JSON de la requête :
{ "product": "product-name" }
Pour envoyer votre requête, choisissez l'une des options suivantes :
curl
Enregistrez le corps de la requête dans un fichier nommé request.json
, puis exécutez la commande suivante :
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/product-set-id:addProduct"
PowerShell
Enregistrez le corps de la requête dans un fichier nommé request.json
, puis exécutez la commande suivante :
$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/product-set-id:addProduct" | Select-Object -Expand Content
Vous devriez recevoir une réponse JSON de ce type :
{}
Go
Pour savoir comment installer et utiliser la bibliothèque cliente pour la recherche de produits de l'API Vision, consultez la page Bibliothèques clientes de la recherche de produits de l'API Vision. Pour en savoir plus, consultez la documentation de référence sur les API de la recherche de produits de l'API Vision en langage Go.
Pour vous authentifier auprès de la recherche de produits de l'API Vision, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Java
Pour savoir comment installer et utiliser la bibliothèque cliente pour la recherche de produits de l'API Vision, consultez la page Bibliothèques clientes de la recherche de produits de l'API Vision. Pour en savoir plus, consultez la documentation de référence sur les API de la recherche de produits de l'API Vision en langage Java.
Pour vous authentifier auprès de la recherche de produits de l'API Vision, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Node.js
Pour savoir comment installer et utiliser la bibliothèque cliente pour la recherche de produits de l'API Vision, consultez la page Bibliothèques clientes de la recherche de produits de l'API Vision. Pour en savoir plus, consultez la documentation de référence sur les API de la recherche de produits de l'API Vision en langage Node.js.
Pour vous authentifier auprès de la recherche de produits de l'API Vision, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Python
Pour savoir comment installer et utiliser la bibliothèque cliente pour la recherche de produits de l'API Vision, consultez la page Bibliothèques clientes de la recherche de produits de l'API Vision. Pour en savoir plus, consultez la documentation de référence sur les API de la recherche de produits de l'API Vision en langage Python.
Pour vous authentifier auprès de la recherche de produits de l'API Vision, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Langages supplémentaires
C# : Veuillez suivre les Instructions de configuration pour C# sur la page des bibliothèques clientes, puis consultez la Documentation de référence sur la recherche de produits via l'API Vision avec .NET.
PHP : Veuillez suivre les Instructions de configuration pour PHP sur la page des bibliothèques clientes, puis consultez la Documentation de référence sur la recherche de produits via l'API Vision avec PHP.
Ruby : Veuillez suivre les Instructions de configuration pour Ruby sur la page des bibliothèques clientes, puis consultez la Documentation de référence sur la recherche de produits via l'API Vision avec Ruby.
Réponse
Product added to product set.
4. Mettre à jour un produit
Si vous devez mettre à jour un produit ou un ensemble de produits après sa création, vous pouvez utiliser les méthodes de mise à jour décrites ci-dessous. Cet exemple montre la mise à jour d'un produit dont les libellés sont modifiés :
Ligne de commande
Lorsque vous envoyez une requête PATCH
, tous les champs précédents et leurs valeurs sont effacés, à l'exception du champ productCategory
qui est immuable.
Envoyez tous les champs dont vous avez besoin avec des valeurs lorsque vous effectuez la requête de mise à jour PATCH
.
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- PROJECT_ID : ID de votre projet Google Cloud.
- LOCATION_ID : identifiant d'emplacement valide. Les identifiants d'emplacement valides sont :
us-west1
,us-east1
,europe-west1
etasia-east1
. - PRODUCT_ID : ID du produit associé à une image de référence. Cet identifiant est défini de manière aléatoire ou spécifié par l'utilisateur lors de la création du produit.
- display-name : nom à afficher (chaîne de votre choix). Il peut s'agir du nom à afficher précédent ou d'une valeur mise à jour.
- description : description (chaîne de votre choix). Il peut s'agir du nom à afficher précédent ou d'une valeur mise à jour. Si vous n'en avez pas besoin, omettez le champ
description
et sa valeur. productLabels
: une ou plusieurs paires clé-valeur associées à un produit. Chaque élément KEY_STRING doit être associé à un élément VALUE_STRING.
Méthode HTTP et URL :
PATCH https://vision.googleapis.com/v1/projects/project-id/locations/location-id/products/product-id
Corps JSON de la requête :
{ "displayName": "display-name", "description": "description", "productLabels": [ { "key": "key-string", "value": "value-string" }, { "key": "key-string", "value": "value-string" } ] }
Pour envoyer votre requête, choisissez l'une des options suivantes :
curl
Enregistrez le corps de la requête dans un fichier nommé request.json
, puis exécutez la commande suivante :
curl -X PATCH \
-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/products/product-id"
PowerShell
Enregistrez le corps de la requête dans un fichier nommé request.json
, puis exécutez la commande suivante :
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "project-id" }
Invoke-WebRequest `
-Method PATCH `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://vision.googleapis.com/v1/projects/project-id/locations/location-id/products/product-id" | Select-Object -Expand Content
Vous devriez recevoir une réponse JSON de ce type :
{ "name": "projects/project-id/locations/location-id/products/product-id", "displayName": "display-name", "description": "description", "productCategory": "apparel-v2", "productLabels": [ { "key": "style", "value": "womens" }, { "key": "onSale", "value": "true" } ] }
Go
Pour savoir comment installer et utiliser la bibliothèque cliente pour la recherche de produits de l'API Vision, consultez la page Bibliothèques clientes de la recherche de produits de l'API Vision. Pour en savoir plus, consultez la documentation de référence sur les API de la recherche de produits de l'API Vision en langage Go.
Pour vous authentifier auprès de la recherche de produits de l'API Vision, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Java
Pour savoir comment installer et utiliser la bibliothèque cliente pour la recherche de produits de l'API Vision, consultez la page Bibliothèques clientes de la recherche de produits de l'API Vision. Pour en savoir plus, consultez la documentation de référence sur les API de la recherche de produits de l'API Vision en langage Java.
Pour vous authentifier auprès de la recherche de produits de l'API Vision, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Node.js
Pour savoir comment installer et utiliser la bibliothèque cliente pour la recherche de produits de l'API Vision, consultez la page Bibliothèques clientes de la recherche de produits de l'API Vision. Pour en savoir plus, consultez la documentation de référence sur les API de la recherche de produits de l'API Vision en langage Node.js.
Pour vous authentifier auprès de la recherche de produits de l'API Vision, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Python
Pour savoir comment installer et utiliser la bibliothèque cliente pour la recherche de produits de l'API Vision, consultez la page Bibliothèques clientes de la recherche de produits de l'API Vision. Pour en savoir plus, consultez la documentation de référence sur les API de la recherche de produits de l'API Vision en langage Python.
Pour vous authentifier auprès de la recherche de produits de l'API Vision, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Langages supplémentaires
C# : Veuillez suivre les Instructions de configuration pour C# sur la page des bibliothèques clientes, puis consultez la Documentation de référence sur la recherche de produits via l'API Vision avec .NET.
PHP : Veuillez suivre les Instructions de configuration pour PHP sur la page des bibliothèques clientes, puis consultez la Documentation de référence sur la recherche de produits via l'API Vision avec PHP.
Ruby : Veuillez suivre les Instructions de configuration pour Ruby sur la page des bibliothèques clientes, puis consultez la Documentation de référence sur la recherche de produits via l'API Vision avec Ruby.
Réponse
Product name: projects/prj-prod-search-tutorials/locations/us-east1/products/P_CLOTH-SHOE_46903668_070318 Product id: P_CLOTH-SHOE_46903668_070318 Product display name: Blue Dress Updated product labels: Product label 1: key: style value: women Product label 2: key: category value: dress Product label 3: key: color value: blue Product description: Short sleeved and 1950s style satin dress
5. Créer une image de référence pour un produit
La création d'une image de référence pour un produit permet à la fonctionnalité de recherche de produits de l'API Vision, après indexation, de rechercher ce produit à l'aide de cette image. Vous pouvez associer plusieurs images de référence à un produit, en particulier si vous souhaitez une meilleure qualité de correspondance.
Vous pouvez ajouter une image de référence à un produit à tout moment.
Lors de la création d'une image de référence, vous avez la possibilité d'inclure des coordonnées "boundingpoly". Ce paramètre spécifie la zone d’intérêt dans l’image de référence. Par exemple, si vous créez une image de référence pour une veste, vous pouvez fournir ses coordonnées au sein de l'image dans l'argument "boundingpoly". Le système va alors se cantonner à la zone de l'image où se situe la veste lors de recherches de correspondance de produits. Remarque : Vous pouvez spécifier plusieurs zones d'intérêt lors de l'indexation. Toutefois, au moment de la requête, une seule d'entre elles sera prise en compte par l'API.
Afin d'obtenir facilement les coordonnées de la zone d'intérêt au sein d'une image, utilisez la fonctionnalité de localisation d'objet de l'API Vision. Pour plus d'informations sur la localisation d'objet, consultez la page Détecter plusieurs objets.
REST
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- PROJECT_ID : ID de votre projet Google Cloud.
- LOCATION_ID : identifiant d'emplacement valide. Les identifiants d'emplacement valides sont :
us-west1
,us-east1
,europe-west1
etasia-east1
. - PRODUCT_ID : ID du produit associé à une image de référence. Cet identifiant est défini de manière aléatoire ou spécifié par l'utilisateur lors de la création du produit.
- CLOUD_STORAGE_IMAGE_URI : chemin d'accès à un fichier image valide dans un bucket Cloud Storage. Il faut au minimum disposer des droits en lecture sur le fichier.
Exemple :
gs://storage-bucket/filename.jpg
Méthode HTTP et URL :
POST https://vision.googleapis.com/v1/projects/project-id/locations/location-id/products/product-id/referenceImages
Corps JSON de la requête :
{ "uri": "cloud-storage-image-uri", "boundingPolys": [ { "vertices": [ { "x": X_MIN, "y": Y_MIN }, { "x": X_MAX, "y": Y_MIN }, { "x": X_MAX, "y": Y_MAX }, { "x": X_MIN, "y": Y_MAX } ] } ] }
Pour envoyer votre requête, choisissez l'une des options suivantes :
curl
Enregistrez le corps de la requête dans un fichier nommé request.json
, puis exécutez la commande suivante :
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/products/product-id/referenceImages"
PowerShell
Enregistrez le corps de la requête dans un fichier nommé request.json
, puis exécutez la commande suivante :
$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/products/product-id/referenceImages" | Select-Object -Expand Content
Si la requête aboutit, le serveur affiche un code d'état HTTP 200 OK
et la réponse au format JSON.
Un résultat semblable aux lignes suivantes doit s'afficher. L'exemple de requête a spécifié un seul élément boundingPoly
dans l'image. Les sommets du cadre de délimitation ne sont pas normalisés ; les valeurs des sommets correspondent aux valeurs réelles des pixels, pas aux valeurs de l'image d'origine, et sont mises à l'échelle de 0 à 1. Ces sommets ont les valeurs suivantes : [(33,22),(282,22),(282,278),(33,278)].
{ "name": "projects/project-id/locations/location-id/products/product-id/referenceImages/image-id", "uri": "gs://storage-bucket/filename.jpg", "boundingPolys": [ { "vertices": [ { "x": 33, "y": 22 }, { "x": 282, "y": 22 }, { "x": 282, "y": 278 }, { "x": 33, "y": 278 } ] } ] }
Go
Pour savoir comment installer et utiliser la bibliothèque cliente pour la recherche de produits de l'API Vision, consultez la page Bibliothèques clientes de la recherche de produits de l'API Vision. Pour en savoir plus, consultez la documentation de référence sur les API de la recherche de produits de l'API Vision en langage Go.
Pour vous authentifier auprès de la recherche de produits de l'API Vision, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Java
Pour savoir comment installer et utiliser la bibliothèque cliente pour la recherche de produits de l'API Vision, consultez la page Bibliothèques clientes de la recherche de produits de l'API Vision. Pour en savoir plus, consultez la documentation de référence sur les API de la recherche de produits de l'API Vision en langage Java.
Pour vous authentifier auprès de la recherche de produits de l'API Vision, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Node.js
Pour savoir comment installer et utiliser la bibliothèque cliente pour la recherche de produits de l'API Vision, consultez la page Bibliothèques clientes de la recherche de produits de l'API Vision. Pour en savoir plus, consultez la documentation de référence sur les API de la recherche de produits de l'API Vision en langage Node.js.
Pour vous authentifier auprès de la recherche de produits de l'API Vision, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Python
Pour savoir comment installer et utiliser la bibliothèque cliente pour la recherche de produits de l'API Vision, consultez la page Bibliothèques clientes de la recherche de produits de l'API Vision. Pour en savoir plus, consultez la documentation de référence sur les API de la recherche de produits de l'API Vision en langage Python.
Pour vous authentifier auprès de la recherche de produits de l'API Vision, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Langages supplémentaires
C# : Veuillez suivre les Instructions de configuration pour C# sur la page des bibliothèques clientes, puis consultez la Documentation de référence sur la recherche de produits via l'API Vision avec .NET.
PHP : Veuillez suivre les Instructions de configuration pour PHP sur la page des bibliothèques clientes, puis consultez la Documentation de référence sur la recherche de produits via l'API Vision avec PHP.
Ruby : Veuillez suivre les Instructions de configuration pour Ruby sur la page des bibliothèques clientes, puis consultez la Documentation de référence sur la recherche de produits via l'API Vision avec Ruby.
Réponse
Reference image name: projects/prj-prod-search-tutorials/locations/us-east1/products/P_CLOTH-SHOE_46903668_070318/referenceImages/I_469a896b70ba11e8be97d20059124800_070418 Reference image id: I_469a896b70ba11e8be97d20059124800_070418 Reference image uri: gs://product-search-tutorial/dress-shoe-dataset/469a896b70ba11e8be97d20059124800.jpg Reference image bounding polygons: vertices { x: 80 y: 50 } vertices { x: 80 y: 660 } vertices { x: 300 y: 50 } vertices { x: 430 y: 660 }
Étape 2 : Rechercher des produits correspondants
Cette interface vous permet d'interroger le catalogue de produits que vous avez créé, en utilisant comme entrée une nouvelle image et en recherchant le produit qui y correspond le mieux.
Comme pour la création d'une image de référence, vous avez la possibilité d'inclure des coordonnées "boundingpoly" pour la recherche d'images correspondantes. Il s'agit d'un cadre englobant identifiant la zone d’intérêt de l’image source pour laquelle vous souhaitez rechercher des correspondances. Par exemple, si votre image source contient à la fois une robe et un porte-monnaie, et que vous ne souhaitez rechercher des correspondances que pour la robe, vous pouvez spécifier les coordonnées de l'image contenant uniquement la robe. Par défaut, si ce paramètre n'est pas renseigné, l'API détermine la plus grande zone d'intérêt et l'interroge automatiquement.
Afin d'obtenir facilement les coordonnées de la zone d'intérêt au sein d'une image, utilisez la fonctionnalité de localisation d'objet de l'API Vision. Pour plus d'informations sur la localisation d'objet, consultez la page Détecter plusieurs objets. Par exemple, vous pouvez interroger de manière explicite l'intégralité d'une image, en spécifiant les coordonnées d'un polygone de sélection englobant l'image entière : [(0, 0), (0, 1), (1, 1), (1, 0)].
La requête renvoie une réponse d'API qui inclut le produit dont le score de correspondance est le plus élevé, ainsi que l'image associée. L'image renvoyée est celle présentant la valeur de confiance la plus élevée.
REST
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- BASE64_ENCODED_IMAGE : représentation en base64 (chaîne ASCII) de vos données d'image binaires. Cette chaîne doit ressembler à la chaîne suivante :
/9j/4QAYRXhpZgAA...9tAVx/zDQDlGxn//2Q==
- PROJECT_ID : ID de votre projet Google Cloud.
- LOCATION_ID : identifiant d'emplacement valide. Les identifiants d'emplacement valides sont :
us-west1
,us-east1
,europe-west1
etasia-east1
. - PRODUCT_SET_ID : ID de l'ensemble de produits sur lequel vous souhaitez exécuter l'opération.
Remarque sur les champs :
features.maxResults
: nombre maximal de résultats à afficher.imageContext.productCategories
: catégorie de produits dans laquelle effectuer la recherche. Actuellement, vous ne pouvez spécifier qu'une seule catégorie de produits : "homegoods" (articles de maison), "apparel" (vêtements), "toys" (jouets), "packaged goods" (biens de consommation courante) et "general" (général).imageContext.filter
(facultatif) - Expression (ou expressions multiples) de filtrage par clé-valeur pour le libellé de produit. Format : "key
=value
". Le filtrage des paires clé-valeur peut être lié aux expressions AND ou OR : "color
=blue
ANDstyle
=mens
" ou "color
=blue
ORcolor
=black
". Si vous utilisez l'expression OR, toutes les clés de l'expression doivent être identiques.
Méthode HTTP et URL :
POST https://vision.googleapis.com/v1/images:annotate
Corps JSON de la requête :
{ "requests": [ { "image": { "content": base64-encoded-image }, "features": [ { "type": "PRODUCT_SEARCH", "maxResults": 5 } ], "imageContext": { "productSearchParams": { "productSet": "projects/project-id/locations/location-id/productSets/product-set-id", "productCategories": [ "apparel" ], "filter": "style = womens" } } } ] }
Pour envoyer votre requête, choisissez l'une des options suivantes :
curl
Enregistrez le corps de la requête dans un fichier nommé request.json
, puis exécutez la commande suivante :
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/images:annotate"
PowerShell
Enregistrez le corps de la requête dans un fichier nommé request.json
, puis exécutez la commande suivante :
$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/images:annotate" | Select-Object -Expand Content
Si la requête aboutit, le serveur affiche un code d'état HTTP 200 OK
et la réponse au format JSON.
La réponse JSON inclut les deux types de résultats suivants :
productSearchResults
: contient une liste de produits correspondants pour l'image entière. Dans l'exemple de réponse, les produits correspondants sont : product_id65, product_id35, product_id34, product_id62, product_id32.productGroupedResults
: contient les coordonnées du cadre de délimitation et les éléments correspondants pour chaque produit identifié dans l'image. Dans la réponse suivante, un seul produit a été identifié, suivi des produits correspondants dans l'exemple d'ensemble de produits : product_id65, product_id35, product_id34, product_id93, product_id62.
Notez que, même s'il existe un chevauchement dans les deux types de résultats, il peut également y avoir des différences (par exemple, product_id32 et product_id93 dans la réponse).
Go
Pour savoir comment installer et utiliser la bibliothèque cliente pour la recherche de produits de l'API Vision, consultez la page Bibliothèques clientes de la recherche de produits de l'API Vision. Pour en savoir plus, consultez la documentation de référence sur les API de la recherche de produits de l'API Vision en langage Go.
Pour vous authentifier auprès de la recherche de produits de l'API Vision, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Java
Pour savoir comment installer et utiliser la bibliothèque cliente pour la recherche de produits de l'API Vision, consultez la page Bibliothèques clientes de la recherche de produits de l'API Vision. Pour en savoir plus, consultez la documentation de référence sur les API de la recherche de produits de l'API Vision en langage Java.
Pour vous authentifier auprès de la recherche de produits de l'API Vision, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Node.js
Pour savoir comment installer et utiliser la bibliothèque cliente pour la recherche de produits de l'API Vision, consultez la page Bibliothèques clientes de la recherche de produits de l'API Vision. Pour en savoir plus, consultez la documentation de référence sur les API de la recherche de produits de l'API Vision en langage Node.js.
Pour vous authentifier auprès de la recherche de produits de l'API Vision, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Python
Pour savoir comment installer et utiliser la bibliothèque cliente pour la recherche de produits de l'API Vision, consultez la page Bibliothèques clientes de la recherche de produits de l'API Vision. Pour en savoir plus, consultez la documentation de référence sur les API de la recherche de produits de l'API Vision en langage Python.
Pour vous authentifier auprès de la recherche de produits de l'API Vision, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Langages supplémentaires
C# : Veuillez suivre les Instructions de configuration pour C# sur la page des bibliothèques clientes, puis consultez la Documentation de référence sur la recherche de produits via l'API Vision avec .NET.
PHP : Veuillez suivre les Instructions de configuration pour PHP sur la page des bibliothèques clientes, puis consultez la Documentation de référence sur la recherche de produits via l'API Vision avec PHP.
Ruby : Veuillez suivre les Instructions de configuration pour Ruby sur la page des bibliothèques clientes, puis consultez la Documentation de référence sur la recherche de produits via l'API Vision avec Ruby.
Exemple de réponse pour la catégorie "apparel" (vêtements)
Search Image: D:/product/final/images-20180618T073733Z-01/images/469355b570ba11e88ff2d20059124800.jpg
Similar product information: Product id: 46930b6b Product display name: Evening gown Product description: Blue evening gown in 1940s style Product category: apparel style: women category: dress color: blue
Recherche par thème
L'exemple de recherche suivant inclut un filtre basé sur la couleur des produits.
Requête
Pour effectuer une recherche, exécutez la requête suivante à l'aide de la méthode get_similar_products_file()
ou get_similar_products_uri()
. Spécifiez en tant qu'arguments l'ID de l'ensemble de produits, le chemin d'accès local au fichier répertoriant les images de produits et le filtre. L'image d'entrée est également présente dans "resources/input/".
Python
python product_search.py get_similar_products_file "12000002" "D:/product/final/images-20180618T073733Z-001/images/469355b570ba11e88ff2d20059124800.jpg" "color=white"
Réponse
Search Image: D:/product/final/images-20180618T073733Z-001/images/469355b570ba11e88ff2d20059124800.jpg
Similar product information: Product id: p569d4e7a1 Product display name: Wedding Dress Product description: Elegant Wedding Dress for women Product category: apparel style: women category: dress color: white