O recurso de pesquisa de produtos está no modo de manutenção. Para aumentar a escalabilidade e ter a mesma funcionalidade da Pesquisa de produtos, use o Armazenamento do Vision.
Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
Use o método import
para criar um conjunto de produtos e produtos com imagens de referência, ao
mesmo tempo, usando um arquivo CSV. Nesta página, descrevemos como formatar o arquivo CSV.
Como criar as imagens de referência
Imagens de referência são imagens com diversas visualizações dos produtos. As
seguintes recomendações se aplicam:
Verifique se o arquivo não excede o tamanho máximo de 20 MB.
Pense nos pontos de vista que destacam logicamente o produto e
contêm informações visuais relevantes.
Crie imagens de referência que complementam os pontos de vista ausentes. Por
exemplo, se você só tiver imagens do tênis direito de um par, forneça versões
espelhadas desses arquivos como o tênis esquerdo.
Faça upload da imagem de maior resolução disponível.
Mostre o produto sobre um fundo branco.
Converta PNGs com planos de fundo transparentes em um plano de fundo sólido.
As imagens precisam ser armazenadas em um bucket do
Cloud Storage. Se você estiver autenticando a chamada de criação de imagem com uma chave de API, o bucket precisará ser
público. Caso você esteja autenticando com uma conta de serviço, ela precisará ter acesso de leitura ao bucket.
Diretrizes de formatação de CSV
Para usar o método import, o arquivo CSV e as imagens a que ele se refere
precisam estar em um bucket do Cloud Storage. Os arquivos CSV são limitados a um máximo de
20.000 linhas. Cada linha é limitada a um máximo de 2.048 caracteres. Para importar
mais imagens, divida-as em vários arquivos CSV.
O arquivo CSV precisa conter uma imagem por linha e incluir as colunas a seguir:
image-uri: o URI do Cloud Storage da imagem de referência.
image-id: opcional. Um valor exclusivo, se você fornecê-lo. Caso contrário, o sistema atribuirá um valor exclusivo.
product-set-id: um identificador exclusivo para o conjunto de produtos ao qual importar as
imagens.
product-id: um ID definido pelo usuário para o produto identificado pela
imagem de referência. Um product-id pode ser associado a várias imagens de referência.
product-category: os valores permitidos são homegoods-v2, apparel-v2,
toys-v2, packagedgoods-v1
e general-v1
*.
A categoria do produto identificado pela
imagem de referência. Inferido pelo sistema se não for especificado na
solicitação de criação.
Os valores permitidos também são listados na
documentação de referência de
productCategory.
product-display-name: opcional. Se você não fornecer um nome para o
produto, displayName
será definido como " ". É possível atualizar esse valor mais tarde.
labels: opcional. Uma string (com aspas) de pares de chave-valor que descrevem os produtos na imagem de referência. Por exemplo:
"category=shoes"
"color=black,style=formal"
A Pesquisa de produtos da API Vision também permite que você forneça vários valores para
uma única chave. Por exemplo:
"category=shoes,category=heels"
"color=black,style=formal,style=mens"
bounding-poly: opcional. Especifica a área de interesse na imagem de referência. Se uma caixa delimitadora não for especificada, ocorrerá o seguinte:
Caixas delimitadoras para a imagem serão inferidas pela API Vision. Várias regiões em uma única imagem poderão ser indexadas se vários produtos forem detectados pela API.
A linha precisará terminar com uma vírgula.
Consulte o exemplo abaixo para ver um produto sem um polígono delimitador especificado.
Se você incluir uma caixa delimitadora, a coluna boundingPoly precisará conter
um número par de números separados por vírgula, com o formato
p1_x,p1_y,p2_x,p2_y,...,pn_x,pn_y. Uma linha de exemplo
tem esta aparência: 0.1,0.1,0.9,0.1,0.9,0.9,0.1,0.9.
Para definir uma caixa delimitadora com os valores reais de pixels da sua imagem, use números inteiros não negativos. Assim, é possível expressar caixas delimitadoras em imagens de 1.000 x 1.000 pixels da seguinte maneira:
A Pesquisa de produtos da API Vision também permite usar valores normalizados
para caixas delimitadoras. Defina uma caixa delimitadora usando valores normalizados com valores flutuantes em [0, 1].
Usando valores normalizados, as linhas da imagem de referência acima também podem ser expressas como:
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Difícil de entender","hardToUnderstand","thumb-down"],["Informações incorretas ou exemplo de código","incorrectInformationOrSampleCode","thumb-down"],["Não contém as informações/amostras de que eu preciso","missingTheInformationSamplesINeed","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 2025-08-19 UTC."],[],[],null,["# Formatting a bulk import CSV\n\nYou can use the [`import`](/vision/product-search/docs/reference/rest/v1/projects.locations.productSets/import)\nmethod to create a product set and products with reference images all at the\nsame time using a CSV file. This page describes how to format the CSV file.\n\nCreating your reference images\n------------------------------\n\nReference images are images containing various views of your products. The\nfollowing recommendations apply:\n\n- Make sure the size of the file doesn't exceed the maximum size (20MB).\n- Consider viewpoints that logically highlight the product and contain relevant visual information.\n- Create reference images that supplement any missing viewpoints. For example, if you only have images of the right shoe in a pair, provide mirrored versions of those files as the left shoe.\n- Upload the highest resolution image available.\n- Show the product against a white background.\n- Convert PNGs with transparent backgrounds to a solid background.\n\nImages must be stored in a [Cloud Storage](https://cloud.google.com/storage/)\nbucket. If you're authenticating your image create call with an API key, the bucket must be\npublic. If you're authenticating with a service account, that service account\nmust have read access on the bucket.\n\nCSV formatting guidelines\n-------------------------\n\nTo use the `import` method, both the CSV file *and* the images it points to\nmust be in a Cloud Storage bucket. CSV files are limited to a maximum of\n20,000 lines; each line is limited to a maximum of 2,048 characters. To import\nmore images, split them into multiple CSV files.\n\nThe CSV file must contain one image per line and contain the following columns:\n\n1. `image-uri`: The Cloud Storage URI of the reference image.\n2. `image-id`: ***Optional***. A unique value if you supply it. Otherwise, the system will assign a unique value.\n3. `product-set-id`: A unique identifier for the product set to import the images into.\n4. `product-id`: A user-defined ID for the product identified by the reference\n image. A `product-id` can be associated with multiple reference images.\n\n | **Note:** A single product may also belong to several product sets. If a `product-id` already exists on bulk import then `product-category`, `product-display`, and `labels` are ignored for that line entry.\n5. `product-category`: Allowed values are `homegoods-v2`, `apparel-v2`,\n `toys-v2`, `packagedgoods-v1`,\n and `general-v1`\n \\*;\n the category for the product identified by the\n reference image. Inferred by the system if not specified in the create\n request.\n Allowed values are also listed in the\n [`productCategory`](/vision/product-search/docs/reference/rest/v1/projects.locations.products#Product.FIELDS.product_category)\n reference documentation.\n\n \u003cbr /\u003e\n\n | **\\* Legacy `productCategory` codes:** Legacy categories (`homegoods`, `apparel`, and `toys`) are still supported, but the updated `-v2` categories should be used for new products.\n\n \u003cbr /\u003e\n\n6. `product-display-name`: ***Optional*** . If you don't provide a name for\n the product [`displayName`](/vision/product-search/docs/reference/rest/v1/projects.locations.products#Product.FIELDS.display_name)\n will be set to \" \". You can [update](/vision/product-search/docs/reference/rest/v1/projects.locations.products/patch) this value later.\n\n7. `labels`: ***Optional***. A string (with quotation marks) of key-value\n pairs that describe the products in the reference image. For example:\n\n - `\"category=shoes\"`\n - `\"color=black,style=formal\"`\n\n Vision API Product Search also allows you to provide multiple values for\n a single key. For example:\n - `\"category=shoes,category=heels\"`\n\n - `\"color=black,style=formal,style=mens\"`\n\n8. `bounding-poly`: ***Optional*** . Specifies the area of interest in the\n reference image. If a bounding box is **not** specified:\n\n 1. Bounding boxes for the image are inferred by the Vision API; multiple regions in a single image may be indexed if multiple products are detected by the API.\n 2. The line must end with a comma.\n\n See the example below for a product without a bounding poly specified.\n\n If you include a bounding box, the `boundingPoly` column should contain\n an even number of comma-separated numbers, with the format\n `p1_x,p1_y,p2_x,p2_y,...,pn_x,pn_y`. An example\n line looks like this: `0.1,0.1,0.9,0.1,0.9,0.9,0.1,0.9`.\n\n To define a bounding box with the actual pixel values of your image use\n non-negative integers. Thus, you could express bounding boxes in 1000 pixel\n by 1000 pixel images in the following way: \n\n gs://example-reference-images/10001-001/10001-001_A.jpg,img001,sample-set-summer,sample-product-123,tan summer bag,apparel-v2,\"style=womens,color=tan\",100,150,450,150,450,550,100,550\n gs://example-reference-images/10001-001/10001-001_A.jpg,img001,sample-set-summer,sample-product-456,blue summer bag,apparel-v2,\"style=womens,color=blue\",670,790,980,790,980,920,670,920\n gs://example-reference-images/10002-002/10002-002_B.jpg,img002,sample-set-summer,sample-product-123,apparel-v2,,,\n\n | **Note:** You can use Vision API's [Object Localizer](/vision/docs/detecting-objects) feature to get bounding box coordinates for generalized objects in images.\n\n Vision API Product Search also allows you to use normalized values for\n bounding boxes. Define a bounding box using normalized values with float\n values in \\[0, 1\\].\n\n Using normalized values, the above reference image rows could also be\n expressed as: \n\n gs://example-reference-images/10001-001/10001-001_A.jpg,img001,sample-set-summer,sample-product-123,tan summer bag,apparel-v2,\"style=womens,color=tan\",0.10,0.15,0.45,0.15,0.45,0.55,0.10,0.55\n gs://example-reference-images/10001-001/10001-001_A.jpg,img001,sample-set-summer,sample-product-456,blue summer bag,apparel-v2,\"style=womens,color=blue\",0.67,0.79,0.98,0.79,0.98,0.92,0.67,0.92\n gs://example-reference-images/10002-002/10002-002_B.jpg,img002,sample-set-summer,sample-product-123,apparel-v2,,,"]]