Un conjunto de productos es un contenedor sencillo para un grupo de productos.
Crear un conjunto de productos vacío
Lo mejor es usar un solo conjunto de productos para todos tus artículos y crear conjuntos de productos adicionales para hacer pruebas según sea necesario. En los siguientes ejemplos de código se muestra cómo crear un conjunto de productos vacío.
REST
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: tu ID de proyecto Google Cloud .
- LOCATION_ID: identificador de ubicación válido. Los identificadores de ubicación válidos son
us-west1
,us-east1
,europe-west1
yasia-east1
. - DISPLAY_NAME: un nombre visible de cadena que elijas.
Método HTTP y URL:
POST https://vision.googleapis.com/v1/projects/project-id/locations/location-id/productSets
Cuerpo JSON de la solicitud:
{ "displayName": "display-name" }
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
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
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
$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 solicitud se realiza de forma correcta, el servidor devuelve un código de estado HTTP 200 OK
y la respuesta en formato JSON.
Debería ver un resultado similar al siguiente. Puede usar el ID del conjunto de productos (b6d809615b6dd675
en este caso) para realizar otras operaciones en el conjunto de productos.
{ "name": "projects/project-id/locations/location-id/productSets/b6d809615b6dd675", "displayName": "new-product-set" }
Go
Para saber cómo instalar y usar la biblioteca de cliente de Product Search de la API de Vision, consulta Bibliotecas de cliente de Product Search de la API de Vision. Para obtener más información, consulta la documentación de referencia de la API Product Search de la API Vision Go.
Para autenticarte en Product Search de la API Vision, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Java
Para saber cómo instalar y usar la biblioteca de cliente de Product Search de la API de Vision, consulta Bibliotecas de cliente de Product Search de la API de Vision. Para obtener más información, consulta la documentación de referencia de la API Product Search de la API Vision Java.
Para autenticarte en Product Search de la API Vision, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Node.js
Para saber cómo instalar y usar la biblioteca de cliente de Product Search de la API de Vision, consulta Bibliotecas de cliente de Product Search de la API de Vision. Para obtener más información, consulta la documentación de referencia de la API Product Search de la API Vision Node.js.
Para autenticarte en Product Search de la API Vision, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Python
Para saber cómo instalar y usar la biblioteca de cliente de Product Search de la API de Vision, consulta Bibliotecas de cliente de Product Search de la API de Vision. Para obtener más información, consulta la documentación de referencia de la API Product Search de la API Vision Python.
Para autenticarte en Product Search de la API Vision, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Idiomas adicionales
C#: Sigue las instrucciones de configuración de C# en la página de bibliotecas de cliente y, a continuación, consulta la documentación de referencia de Product Search de la API de Vision para .NET.
PHP Sigue las instrucciones de configuración de PHP en la página de bibliotecas de cliente y, a continuación, consulta la documentación de referencia de Product Search de la API Vision para PHP.
Ruby: Sigue las instrucciones de configuración de Ruby en la página de bibliotecas de cliente y, a continuación, consulta la documentación de referencia de Product Search de la API Vision para Ruby.
Usar la importación en bloque para crear un conjunto de productos con productos
También puedes usar la función de importación en bloque para crear simultáneamente un conjunto de productos, así como varios productos y sus imágenes de referencia.
En el archivo CSV de importación en bloque que utilices, se deben incluir varias referencias del conjunto de productos, los productos y las imágenes de referencia. Para obtener más información, consulta el artículo Aplicar formato a un CSV de importación en bloque.
Para realizar una importación en bloque, ejecuta el siguiente código:
REST
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: tu ID de proyecto Google Cloud .
- LOCATION_ID: identificador de ubicación válido. Los identificadores de ubicación válidos son
us-west1
,us-east1
,europe-west1
yasia-east1
. - STORAGE_PATH: un segmento o directorio de Cloud Storage donde se almacena el archivo CSV de entrada. El usuario que hace la solicitud debe tener al menos permiso de lectura en el segmento.
Método HTTP y URL:
POST https://vision.googleapis.com/v1/projects/project-id/locations/location-id/productSets:import
Cuerpo JSON de la solicitud:
{ "inputConfig": { "gcsSource": { "csvFileUri": "storage-path" } } }
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
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
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
$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
Debería ver un resultado similar al siguiente. Puedes usar el ID de operación (f10f34e32c40a710
en este caso) para obtener el estado de la tarea. Para ver un ejemplo, consulta Obtener el estado de una operación:
{ "name": "projects/project-id/locations/location-id/operations/f10f34e32c40a710" }
Una vez que se haya completado la operación de larga duración, podrás obtener los detalles de la operación de importación. La respuesta debería ser similar a la siguiente:
{ "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
Para saber cómo instalar y usar la biblioteca de cliente de Product Search de la API de Vision, consulta Bibliotecas de cliente de Product Search de la API de Vision. Para obtener más información, consulta la documentación de referencia de la API Product Search de la API Vision Go.
Para autenticarte en Product Search de la API Vision, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Java
Para saber cómo instalar y usar la biblioteca de cliente de Product Search de la API de Vision, consulta Bibliotecas de cliente de Product Search de la API de Vision. Para obtener más información, consulta la documentación de referencia de la API Product Search de la API Vision Java.
Para autenticarte en Product Search de la API Vision, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Node.js
Para saber cómo instalar y usar la biblioteca de cliente de Product Search de la API de Vision, consulta Bibliotecas de cliente de Product Search de la API de Vision. Para obtener más información, consulta la documentación de referencia de la API Product Search de la API Vision Node.js.
Para autenticarte en Product Search de la API Vision, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Python
Para saber cómo instalar y usar la biblioteca de cliente de Product Search de la API de Vision, consulta Bibliotecas de cliente de Product Search de la API de Vision. Para obtener más información, consulta la documentación de referencia de la API Product Search de la API Vision Python.
Para autenticarte en Product Search de la API Vision, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Idiomas adicionales
C#: Sigue las instrucciones de configuración de C# en la página de bibliotecas de cliente y, a continuación, consulta la documentación de referencia de Product Search de la API de Vision para .NET.
PHP Sigue las instrucciones de configuración de PHP en la página de bibliotecas de cliente y, a continuación, consulta la documentación de referencia de Product Search de la API Vision para PHP.
Ruby: Sigue las instrucciones de configuración de Ruby en la página de bibliotecas de cliente y, a continuación, consulta la documentación de referencia de Product Search de la API Vision para Ruby.
Obtener el estado de una operación
Varias de las operaciones que solicitas son de larga duración, como la creación de un conjunto de productos mediante la importación en bloque, la purga de un conjunto de productos y la purga de productos huérfanos. Estos tipos de solicitudes devolverán un JSON con un ID de operación que puedes usar para obtener el estado de la operación.
Por ejemplo, una solicitud de eliminación por lotes (purge
) devuelve el siguiente JSON:
{ "name": "projects/project-id/locations/location-id/operations/bc4e1d412863e626" }
En este caso, el ID de operación es bc4e1d412863e626
. En los siguientes ejemplos se muestra cómo obtener el estado de esta operación con este ID.
REST
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: tu ID de proyecto Google Cloud .
- LOCATION_ID: identificador de ubicación válido. Los identificadores de ubicación válidos son
us-west1
,us-east1
,europe-west1
yasia-east1
. - OPERATION_ID: el ID de tu operación. El ID es el último elemento del nombre de tu operación. Por ejemplo:
- Nombre de la operación:
projects/PROJECT_ID/locations/LOCATION_ID/operations/bc4e1d412863e626
- ID de operación:
bc4e1d412863e626
- Nombre de la operación:
Método HTTP y URL:
GET https://vision.googleapis.com/v1/locations/location-id/operations/operation-id
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el comando siguiente:
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
Ejecuta el comando siguiente:
$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 } }
Debería ver un resultado similar al siguiente en una operación de purga de productos huérfanos completada:
{ "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 } }