Depois de criar um repositório de visão, adicioná-lo a um app e implantar o app, você poderá pesquisar os dados armazenados no repositório de vídeo por streaming.
Pesquisar metadados de vídeos de streaming
Para pesquisar os dados (assets
) no seu repositório (corpus
), preencha o
SearchAssetsRequest
com o conteúdo que você quer encontrar. Esse
conteúdo é apresentado em alguns formatos diferentes:
criteria
: conteúdo de texto, número ou data fornecido pelo usuário.facet_selections
: conteúdo de texto retornado pelo servidor e selecionado pelo usuário.content_time_ranges
: intervalos de datas em que todo o conteúdo retornado precisa se encaixar.
No exemplo a seguir, considere um depósito que contém imagens de câmeras de segurança de diferentes tipos de lojas em todo o país. Para recuperar todos
os recursos dos anos de 2018 ou 2020 marcados com a anotação
"state": "California"
ou "state":"Pennsylvania"
, envie a
solicitação abaixo:
REST
Para pesquisar recursos, envie uma solicitação POST usando o método projects.locations.corpora.searchAssets.
Neste corpo de exemplo, o campocriteria
usa valores textArray
para fornecer duas txt_values
: "California" e "Pennsylvania". Também é possível fornecer critérios de pesquisa
para outros tipos de dados. Só é possível especificar um tipo de critério de pesquisa em cada solicitação.
Outras opções de critérios de pesquisa
Intervalos de números inteiros (inclusivos)
"int_range_array" : { "int_ranges": { "start": "5", "end": "10" } "int_ranges": { "start": "20", "end": "30" } }
Intervalos de ponto flutuante (inclusivos)
"float_range_array" : { "float_ranges": { "start": "2.6", "end": "14.3" } "float_ranges": { "start": "205.3", "end": "205.8" } }
Geolocalizações (coordenadas e raio)
"geo_location_array": { "circle_areas": { "latitude": "37.4221", "longitude": "122.0841", "radius_meter": "500" }, "circle_areas": { "latitude": "12.46523", "longitude": "-95.2146", "radius_meter": "100" } }
Booleanos
"bool_value" : { "value": "true" }
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- REGIONALIZED_ENDPOINT: o endpoint pode incluir um prefixo correspondente ao
LOCATION_ID
, comoeurope-west4-
. Saiba mais sobre os endpoints regionalizados. - PROJECT_NUMBER: o Google Cloud número do projeto.
- LOCATION_ID: a região em que você está usando a Vertex AI Vision. Por exemplo:
us-central1
,europe-west4
. Consulte as regiões disponíveis. - CORPUS_ID: o ID do corpus de destino.
Método HTTP e URL:
POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID:searchAssets
Corpo JSON da solicitação:
{ "page_size": "2", "content_time_ranges": { "date_time_ranges": { "start": { "year":"2018", "month":"1", "day":"1", }, "end": { "year":"2019", "month":"1", "day":"1", } }, "date_time_ranges": { "start": { "year":"2020", "month":"1", "day":"1", }, "end": { "year":"2021", "month":"1", "day":"1", } } }, "criteria": { "field": "state", "text_array": { "txt_values": "California", "txt_values": "Pennsylvania" } } }
Para enviar a solicitação, escolha uma destas opções:
curl
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID:searchAssets"
PowerShell
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID:searchAssets" | Select-Object -Expand Content
Você receberá uma resposta JSON semelhante a esta:
Para recuperar a próxima página de resultados, transmita os parâmetros de solicitação originais
anexados ao next_page_token
retornado.
A matriz facet_results
mostra o conteúdo que corresponde à consulta original.
A resposta acima indica que uma das câmeras de segurança está instalada
em uma loja de artigos esportivos, enquanto a outra está em um
supermercado.
Para restringir essa consulta a mostrar apenas a filmagem da mercearia, transmita a mesma solicitação com uma seleção de faceta.
Solicitar corpo JSON com seleção de facetas:
{ "page_size": "2", "content_time_ranges": { "date_time_ranges": { "start": { "year":"2018", "month":"1", "day":"1", }, "end": { "year":"2018", "month":"12", "day":"31", } }, "date_time_ranges": { "start": { "year":"2020", "month":"1", "day":"1", }, "end": { "year":"2020", "month":"12", "day":"31", } } }, "criteria": { "field": "state", "text_array": { "txt_values": "California", "txt_values": "Pennsylvania" } }, "facet_selections": { "facetId": "state", "displayName": "State", "buckets": { "value": { "stringValue": "California" } }, "buckets": { "value": { "stringValue": "Pennsylvania" } }, "bucketType": "FACET_BUCKET_TYPE_VALUE" }, "facet_selections": { "facetId": "store-type", "displayName": "StoreType", "buckets": { "value": { "stringValue": "Sporting Goods" } }, "buckets": { "value": { "stringValue": "Grocery" }, "selected": "true" }, "bucketType": "FACET_BUCKET_TYPE_VALUE" } }
Como a faceta Grocery está selecionada, qualquer resposta vai conter a
anotação "store-type":"Grocery"
.
Retornar metadados de recursos de clipe ao pesquisar
A API Vertex AI Vision também permite que os usuários especifiquem metadados de clipe extras para retornar
com o resultado da pesquisa, usando result_annotation_keys
.
REST
Neste exemplo, a chave de anotação fornecida pelo usuário
"camera-location"
é especificada no corpo da solicitação, e o
valor da chave ("Sunnyvale"
) é fornecido na resposta.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- REGIONALIZED_ENDPOINT: o endpoint pode incluir um prefixo correspondente ao
LOCATION_ID
, comoeurope-west4-
. Saiba mais sobre os endpoints regionalizados. - PROJECT_NUMBER: o Google Cloud número do projeto.
- LOCATION_ID: a região em que você está usando a Vertex AI Vision. Por exemplo:
us-central1
,europe-west4
. Consulte as regiões disponíveis. - CORPUS_ID: o ID do corpus de destino.
Método HTTP e URL:
POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID:searchAssets
Corpo JSON da solicitação:
{ "page_size": "2", "criteria": { "field": "state", "text_array": { "txt_values": "California", "txt_values": "Pennsylvania" } }, "result_annotation_keys": "camera-location" }
Para enviar a solicitação, escolha uma destas opções:
curl
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID:searchAssets"
PowerShell
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID:searchAssets" | Select-Object -Expand Content
Você receberá uma resposta JSON semelhante a esta:
Usar critérios para retornar metadados de recursos na pesquisa
É possível especificar nos critérios de pesquisa se as anotações
correspondentes devem ser retornadas para cada item de resultado da pesquisa. Esse recurso tem suporte para
tipos limitados de esquema de dados: INTEGER
, FLOAT
, BOOLEAN
, STRING
(somente EXACT_SEARCH
), e a anotação precisa estar no nível da partição.
Suponha que você crie o seguinte esquema de dados em um corpus de repositório:
{ "key": "image-classification", "schema_details": { "type":"STRING", "granularity":"GRANULARITY_PARTITION_LEVEL", "search_strategy": { "search_strategy_type":"EXACT_SEARCH" } } }
Algumas anotações de "image-classification"
são ingeridas no corpus usando a ingestão de vídeo por streaming ou uma solicitação CreateAnnotation
.
Depois que as anotações forem processadas, você poderá pesquisar
"image-classification"
e receber os resultados de vídeo e as anotações
correspondentes:
REST
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- REGIONALIZED_ENDPOINT: o endpoint pode incluir um prefixo correspondente ao
LOCATION_ID
, comoeurope-west4-
. Saiba mais sobre os endpoints regionalizados. - PROJECT_NUMBER: o Google Cloud número do projeto.
- LOCATION_ID: a região em que você está usando a Vertex AI Vision. Por exemplo:
us-central1
,europe-west4
. Consulte as regiões disponíveis. - CORPUS_ID: o ID do corpus de destino.
Método HTTP e URL:
POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID:searchAssets
Corpo JSON da solicitação:
{ "page_size": "5", "facet_selections": { "facet_id": "image-classification", "fetch_matched_annotations": "true", "bucket_type": "FACET_BUCKET_TYPE_VALUE", "buckets": { "value": { "string_value": "cat" }, "selected" : "true" }, } }
Para enviar a solicitação, escolha uma destas opções:
curl
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID:searchAssets"
PowerShell
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID:searchAssets" | Select-Object -Expand Content
Você receberá uma resposta JSON semelhante a esta:
Usar a pesquisa global para retornar metadados de recursos na pesquisa
A pesquisa global oferece um local para os usuários inserirem consultas de pesquisa, em vez de especificar critérios individuais. É possível pesquisar usando critérios de tipo de string definidos para pesquisa no esquema de dados. Os resultados correspondentes são recuperados e retornados para você.
Para usar esse recurso, defina o campo search_query
em SearchAssetsRequest
:
REST
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- REGIONALIZED_ENDPOINT: o endpoint pode incluir um prefixo correspondente ao
LOCATION_ID
, comoeurope-west4-
. Saiba mais sobre os endpoints regionalizados. - PROJECT_NUMBER: o Google Cloud número do projeto.
- LOCATION_ID: a região em que você está usando a Vertex AI Vision. Por exemplo:
us-central1
,europe-west4
. Consulte as regiões disponíveis. - CORPUS_ID: o ID do corpus de destino.
Método HTTP e URL:
POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID:searchAssets
Corpo JSON da solicitação:
{ "page_size": "2", "search_query': "Pennsylvania" }
Para enviar a solicitação, escolha uma destas opções:
curl
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID:searchAssets"
PowerShell
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID:searchAssets" | Select-Object -Expand Content
Você receberá uma resposta JSON semelhante a esta:
Aplicar a especificação de classificação para ordenar os metadados dos recursos retornados na pesquisa
Você pode usar o recurso de classificação para ordenar os resultados da pesquisa por annotation
fornecido pelo usuário. Isso pode ser útil para classificar resultados com tipos de esquema de dados
que podem ser ordenados, como tipos de string e numéricos.
Para usar esse recurso, especifique schema_key_sorting_strategy
, que requer pelo menos uma chave de esquema de dados e ordem crescente/decrescente:
REST
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- REGIONALIZED_ENDPOINT: o endpoint pode incluir um prefixo correspondente ao
LOCATION_ID
, comoeurope-west4-
. Saiba mais sobre os endpoints regionalizados. - PROJECT_NUMBER: o Google Cloud número do projeto.
- LOCATION_ID: a região em que você está usando a Vertex AI Vision. Por exemplo:
us-central1
,europe-west4
. Consulte as regiões disponíveis. - CORPUS_ID: o ID do corpus de destino.
Método HTTP e URL:
POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID:searchAssets
Corpo JSON da solicitação:
{ "page_size": "2", "schemaKeySortingStrategy": { "options": { "data_schema_key": "stream-display-name", "sort_decreasing": true } } }
Para enviar a solicitação, escolha uma destas opções:
curl
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID:searchAssets"
PowerShell
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID:searchAssets" | Select-Object -Expand Content
Você receberá um código de status bem-sucedido (2xx) e uma resposta vazia.
Criar configurações de pesquisa
O Vision Warehouse permite que os usuários personalizem a experiência de pesquisa com a configuração de pesquisa. A configuração de pesquisa usa dados de vídeo, como anotações fornecidas pelo usuário e insights gerados por Google Cloud modelos de compreensão de vídeo, para oferecer mais opções de pesquisa ao usuário. Por exemplo, se você quiser segmentar clipes com veículos de cores específicas dos dados de vídeo de carros no seu repositório, use uma configuração de pesquisa específica para sua consulta.
É possível usar um SearchConfig
para definir opções de configuração mais granulares.
O exemplo a seguir mostra como criar um recurso
SearchConfig
.
Diretrizes gerais
Para todos os casos de uso, sua solicitação precisa atender às seguintes condições para ser executada com sucesso:
Request.search_configuration.name
não pode existir.- A matriz
mapped_fields
não pode estar vazia e precisa ser mapeada para chaves de anotação existentes fornecidas pelo usuário. - Todos os
mapped_fields
precisam ser do mesmo tipo. - Todos os
mapped_fields
precisam compartilhar a configuração de correspondência exata/inteligente. - Todos os
mapped_fields
precisam compartilhar a mesma granularidade.
Há vários casos de uso para criar um SearchConfig
, cada um com diretrizes
diferentes que você precisa seguir.
Criar uma configuração de pesquisa com critérios de pesquisa personalizados
Esta seção descreve como mapear um operador personalizado para uma ou mais chaves de anotação fornecidas pelo usuário. Nesse caso, você precisa atender às diretrizes gerais ao criar sua solicitação.
REST
Especifique o novo ID SearchConfig
no final do
URL da solicitação, não como um campo na solicitação.
As chaves de anotação fornecidas pelo usuário neste exemplo são "player"
, "coach"
e
"cheerleader"
.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- REGIONALIZED_ENDPOINT: o endpoint pode incluir um prefixo correspondente ao
LOCATION_ID
, comoeurope-west4-
. Saiba mais sobre os endpoints regionalizados. - PROJECT_NUMBER: o Google Cloud número do projeto.
- LOCATION_ID: a região em que você está usando a Vertex AI Vision. Por exemplo:
us-central1
,europe-west4
. Consulte as regiões disponíveis. - CORPUS_ID: o ID do corpus de destino.
- SEARCHCONFIG: o nome da
SearchConfig
de destino. - A
SearchConfig
neste exemplo éperson
.
Método HTTP e URL:
POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs?search_config_id=person
Corpo JSON da solicitação:
{ "search_criteria_property": { "mapped_fields": "player", "mapped_fields": "coach", "mapped_fields": "cheerleader", } }
Para enviar a solicitação, escolha uma destas opções:
curl
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs?search_config_id=person"
PowerShell
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs?search_config_id=person" | Select-Object -Expand Content
Você receberá uma resposta JSON semelhante a esta:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs/person", "searchCriteriaProperty": { "mappedFields": [ "player", "coach", "cheerleader" ] } }
Criar uma configuração de pesquisa com mapeamento de facetas 1:1
Para criar uma faceta para uma única chave de anotação fornecida pelo usuário, verifique se
Request.search_configuration.facet_property.mapped_fields
contém um único
elemento. O valor desse elemento precisa ser um nome de chave de anotação fornecido pelo usuário.
O exemplo a seguir mostra como criar um mapeamento de facetas para a chave de anotação "Location"
fornecida pelo usuário.
REST
Especifique o novo ID SearchConfig
no final do
URL da solicitação, não como um campo na solicitação.
Nesse exemplo, a solicitação é bem-sucedida porque o search_config_id
(Location
)
no URL da solicitação faz referência a uma chave de anotação fornecida pelo usuário e o
mapped_fields
contém exatamente um elemento com um valor igual a
search_config_id
(Location
).
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- REGIONALIZED_ENDPOINT: o endpoint pode incluir um prefixo correspondente ao
LOCATION_ID
, comoeurope-west4-
. Saiba mais sobre os endpoints regionalizados. - PROJECT_NUMBER: o Google Cloud número do projeto.
- LOCATION_ID: a região em que você está usando a Vertex AI Vision. Por exemplo:
us-central1
,europe-west4
. Consulte as regiões disponíveis. - CORPUS_ID: o ID do corpus de destino.
- SEARCHCONFIG: o nome da
SearchConfig
de destino. - A
SearchConfig
neste exemplo éLocation
.
Método HTTP e URL:
POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs?search_config_id=Location
Corpo JSON da solicitação:
{ "facet_property": { "mapped_fields": "Location", "display_name": "Location", "result_size": "5", "bucket_type":"FACET_BUCKET_TYPE_VALUE" } }
Para enviar a solicitação, escolha uma destas opções:
curl
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs?search_config_id=Location"
PowerShell
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs?search_config_id=Location" | Select-Object -Expand Content
As solicitações a seguir falham porque não atendem aos requisitos necessários.
Solicitações com falha
Solicitação 1 com falha:
curl -X POST \ -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \ -H "Content-Type: application/json; charset=utf-8" \ https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs?search_config_id=Location \ -d "{ "facet_property": { "mapped_fields": "City", /* City is not equal to search_config_id. */ "display_name": "City", "result_size": "5", "bucket_type":"FACET_BUCKET_TYPE_VALUE" } }"
Solicitação 2 com falha:
curl -X POST \ -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \ -H "Content-Type: application/json; charset=utf-8" \ https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs?search_config_id=City \ -d "{ "facet_property": { "mapped_fields": "City", /* City doesn't map to an existing user-given annotation key. */ "display_name": "City", "result_size": "5", "bucket_type":"FACET_BUCKET_TYPE_VALUE" } }"
Solicitação 3 com falha:
curl -X POST \ -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \ -H "Content-Type: application/json; charset=utf-8" \ https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs?search_config_id=Location \ -d "{ "facet_property": { "mapped_fields": "Location", "mapped_fields": "City", /* mapped_fields contains more than 1 element. */ "display_name": "Location", "result_size": "5", "bucket_type":"FACET_BUCKET_TYPE_VALUE" } }"
Criar uma configuração de pesquisa com um mapeamento de facetas personalizado de 1 para 1 ou mais
Os clientes que querem criar um mapeamento entre um valor de faceta personalizado e uma ou mais chaves de anotação fornecidas pelo usuário precisam garantir que:
Request.search_configuration
precisa conter umSearchCriteriaProperty
de modo queRequest.search_configuration.search_criteria_property.mapped_fields
contenha os mesmos elementos queRequest.search_configuration.facet_property.mapped_fields
.
REST
Especifique o novo ID SearchConfig
no final do
URL da solicitação, não como um campo na solicitação.
O exemplo a seguir mostra como criar um mapeamento de facetas para as chaves de anotação fornecidas pelo usuário "City"
e "State"
.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- REGIONALIZED_ENDPOINT: o endpoint pode incluir um prefixo correspondente ao
LOCATION_ID
, comoeurope-west4-
. Saiba mais sobre os endpoints regionalizados. - PROJECT_NUMBER: o Google Cloud número do projeto.
- LOCATION_ID: a região em que você está usando a Vertex AI Vision. Por exemplo:
us-central1
,europe-west4
. Consulte as regiões disponíveis. - CORPUS_ID: o ID do corpus de destino.
- SEARCHCONFIG: o nome da
SearchConfig
de destino. - A
SearchConfig
neste exemplo éLocation
.
Método HTTP e URL:
POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs?search_config_id=Location
Corpo JSON da solicitação:
{ "search_criteria_property": { "mapped_fields": "City", "mapped_fields": "State", "mapped_fields": "Province", } "facet_property": { "mapped_fields": "City", "mapped_fields": "State", "display_name": "Province", "result_size": "5", "bucket_type":"FACET_BUCKET_TYPE_VALUE" } }
Para enviar a solicitação, escolha uma destas opções:
curl
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs?search_config_id=Location"
PowerShell
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs?search_config_id=Location" | Select-Object -Expand Content
As solicitações a seguir falham porque não atendem aos requisitos necessários.
Solicitações com falha
Solicitação 1 com falha:
curl -X POST \ -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \ -H "Content-Type: application/json; charset=utf-8" \ https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs?search_config_id=Location \ -d "{ "facet_property": { /* Request is missing a SearchCriteriaProperty object.*/ "mapped_fields": "City", "mapped_fields": "State", "display_name": "Location", "result_size": "5", "bucket_type":"FACET_BUCKET_TYPE_VALUE" } }"
Solicitação 2 com falha:
curl -X POST \ -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \ -H "Content-Type: application/json; charset=utf-8" \ https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs?search_config_id=Location \ -d "{ "search_criteria_property": { "mapped_fields": "City", "mapped_fields": "State", } "facet_property": { "mapped_fields": "City", "mapped_fields": "State", "mapped_fields": "Province", /* Province is missing from search_criteria_property. */ "display_name": "Location", "result_size": "5", "bucket_type":"FACET_BUCKET_TYPE_VALUE" } }"
Criar uma configuração de pesquisa com facetas baseadas em intervalos
As facetas de intervalo são semelhantes às facetas normais, mas cada bucket de faceta abrange um intervalo contínuo. Uma configuração adicional
(range_facet_config
) fornece informações do sistema sobre
esses intervalos de bucket de faceta.
Os atributos de intervalo estão disponíveis para:
- Números inteiros
- Datas
Há três tipos de facetas de intervalo:
- Intervalo fixo: cada bucket tem o mesmo tamanho.
- Intervalo personalizado: tamanhos de bucket programáveis. Por exemplo, logarítmica.
- Período: granularidades fixas de
DAY
,MONTH
eYEAR
. Isso se aplica apenas às facetas de período.
As mesmas condições se aplicam como facetas únicas, com algumas validações adicionais relacionadas à especificação do intervalo.
Especificação de bucket de intervalo fixo
O exemplo a seguir cria uma especificação de faceta de intervalo fixo para o campo
inventory-count
e resulta nos intervalos:
[-inf, 0), [0, 10), [10, 20), [20, 30), [30, inf]
.
REST
Especifique o novo ID SearchConfig
no final do
URL da solicitação, não como um campo na solicitação.
Essa solicitação usa o FixedRangeBucketSpec
para criar vários buckets com granularidades iguais.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- REGIONALIZED_ENDPOINT: o endpoint pode incluir um prefixo correspondente ao
LOCATION_ID
, comoeurope-west4-
. Saiba mais sobre os endpoints regionalizados. - PROJECT_NUMBER: o Google Cloud número do projeto.
- LOCATION_ID: a região em que você está usando a Vertex AI Vision. Por exemplo:
us-central1
,europe-west4
. Consulte as regiões disponíveis. - CORPUS_ID: o ID do corpus de destino.
- SEARCHCONFIG: o nome da
SearchConfig
de destino. - A
SearchConfig
neste exemplo éinventory-count
.
Método HTTP e URL:
POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs?search_config_id=inventory-count
Corpo JSON da solicitação:
{ "facet_property": { "mapped_fields": "inventory-count", "display_name": "Inventory Count", "result_size": "5", "bucket_type":"FACET_BUCKET_TYPE_FIXED_RANGE", "fixed_range_bucket_spec": { "bucket_start": { "integer_value": 0 }, "bucket_granularity": { "integer_value": 10 }, "bucket_count": 5 } } }
Para enviar a solicitação, escolha uma destas opções:
curl
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs?search_config_id=inventory-count"
PowerShell
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs?search_config_id=inventory-count" | Select-Object -Expand Content
Especificação de bucket de intervalo personalizado
O exemplo a seguir cria uma especificação de faceta de intervalo fixo para o campo
video-views
e resulta nos intervalos:
[inf, 0), [0, 10), [10, 100), [100, 1000), [1000, 10000), [10000, inf)
.
REST
Especifique o novo ID SearchConfig
no final do
URL da solicitação, não como um campo na solicitação.
Essa solicitação usa o CustomRangeBucketSpec
para especificar como os valores são agrupados em buckets.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- REGIONALIZED_ENDPOINT: o endpoint pode incluir um prefixo correspondente ao
LOCATION_ID
, comoeurope-west4-
. Saiba mais sobre os endpoints regionalizados. - PROJECT_NUMBER: o Google Cloud número do projeto.
- LOCATION_ID: a região em que você está usando a Vertex AI Vision. Por exemplo:
us-central1
,europe-west4
. Consulte as regiões disponíveis. - CORPUS_ID: o ID do corpus de destino.
- SEARCHCONFIG: o nome da
SearchConfig
de destino. - A
SearchConfig
neste exemplo évideo-views
.
Método HTTP e URL:
POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs?search_config_id=video-views
Corpo JSON da solicitação:
{ "facet_property": { "mapped_fields": "video-views", "display_name": "Video Views", "result_size": "6", "bucket_type":"FACET_BUCKET_TYPE_CUSTOM_RANGE", "custom_range_bucket_spec": { "endpoints": { "integer_value": 0 }, "endpoints": { "integer_value": 10 }, "endpoints": { "integer_value": 100 }, "endpoints": { "integer_value": 1000 }, "endpoints": { "integer_value": 10000 } } } }
Para enviar a solicitação, escolha uma destas opções:
curl
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs?search_config_id=video-views"
PowerShell
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs?search_config_id=video-views" | Select-Object -Expand Content
Especificação de bucket de data / período
O exemplo a seguir cria uma especificação de período para o campo film-date
com granularidade DAY
.
REST
Especifique o novo ID SearchConfig
no final do
URL da solicitação, não como um campo na solicitação.
Essa solicitação usa o DateTimeBucketSpec
para especificar como os valores de data são agrupados em buckets.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- REGIONALIZED_ENDPOINT: o endpoint pode incluir um prefixo correspondente ao
LOCATION_ID
, comoeurope-west4-
. Saiba mais sobre os endpoints regionalizados. - PROJECT_NUMBER: o Google Cloud número do projeto.
- LOCATION_ID: a região em que você está usando a Vertex AI Vision. Por exemplo:
us-central1
,europe-west4
. Consulte as regiões disponíveis. - CORPUS_ID: o ID do corpus de destino.
- SEARCHCONFIG: o nome da
SearchConfig
de destino. - A
SearchConfig
neste exemplo éfilm-date
.
Método HTTP e URL:
POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs?search_config_id=film-date
Corpo JSON da solicitação:
{ "facet_property": { "mapped_fields": "film-date", "display_name": "Film Date", "result_size": "5", "bucket_type": "FACET_BUCKET_TYPE_DATETIME", "datetime_bucket_spec": { "granularity": "DAY" } } }
Para enviar a solicitação, escolha uma destas opções:
curl
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs?search_config_id=film-date"
PowerShell
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs?search_config_id=film-date" | Select-Object -Expand Content
Usar seleções de atributos para pesquisar
Depois de criar esses buckets de facetas, você pode usá-los para pesquisar o repositório.
REST
Essa solicitação usa objetos facetSelections
para especificar um grupo de buckets de facetas.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- REGIONALIZED_ENDPOINT: o endpoint pode incluir um prefixo correspondente ao
LOCATION_ID
, comoeurope-west4-
. Saiba mais sobre os endpoints regionalizados. - PROJECT_NUMBER: o Google Cloud número do projeto.
- LOCATION_ID: a região em que você está usando a Vertex AI Vision. Por exemplo:
us-central1
,europe-west4
. Consulte as regiões disponíveis. - CORPUS_ID: o ID do corpus de destino.
Método HTTP e URL:
POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID:searchAssets
Corpo JSON da solicitação:
{ "page_size": "10", "facet_selections": { "facet_id": "inventory-count", "buckets": { "range": { "end" : { "integer_value": 0 } } }, "buckets": { "range": { "start" : { "integer_value": 20 }, "end" : { "integer_value": 30 } } } }, "facet_selections": { "facet_id": "video-views", "buckets": { "range": { "start" : { "integer_value": 100 }, "end" : { "integer_value": 1000 } } } }, "facet_selections": { "facet_id": "film-date", "buckets": { "range": { "start" : { "datetime_value": { "year": 2022, "month": 9, "day": 10 } }, "end" : { "datetime_value": { "year": 2022, "month": 9, "day": 11 } } } } } }
Para enviar a solicitação, escolha uma destas opções:
curl
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID:searchAssets"
PowerShell
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID:searchAssets" | Select-Object -Expand Content
Atualizar uma configuração de pesquisa
Para atualizar o SearchConfig
atual, sua solicitação precisa atender aos seguintes
requisitos:
Request.searchConfig.name
já precisa existir.- A solicitação precisa conter pelo menos um
searchCriteriaProperty
oufacetProperty
não vazio. - A matriz
mappedFields
não pode estar vazia e precisa ser mapeada para chaves de anotação fornecidas pelo usuário. - Todos os
mappedFields
precisam ser do mesmo tipo. - Todos os
mappedFields
precisam compartilhar a mesma granularidade. - Todos os
mappedFields
precisam compartilhar as mesmas opções de correspondência semânticaSearchConfig
.
REST e LINHA DE CMD
O exemplo de código a seguir atualiza um recurso de configuração de pesquisa do armazém
usando o método
projects.locations.corpora.searchConfigs.patch
.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- REGIONALIZED_ENDPOINT: o endpoint pode incluir um prefixo correspondente ao
LOCATION_ID
, comoeurope-west4-
. Saiba mais sobre os endpoints regionalizados. - PROJECT: o ID ou o número do projeto do Google Cloud.
- LOCATION_ID: a região em que você está usando a Vertex AI Vision. Por exemplo:
us-central1
,europe-west4
. Consulte as regiões disponíveis. - CORPUS_ID: o ID do corpus de destino.
- SEARCHCONFIG_ID: o ID do
SearchConfig
de destino. "mappedFields"
: uma ou mais chaves de anotação fornecidas pelo usuário.
Método HTTP e URL:
PATCH https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs/SEARCHCONFIG_ID
Corpo JSON da solicitação:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs/SEARCHCONFIG_ID1", "searchCriteriaProperty": { "mappedFields": "dataschema2" } }
Para enviar a solicitação, escolha uma destas opções:
curl
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs/SEARCHCONFIG_ID"
PowerShell
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method PATCH `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs/SEARCHCONFIG_ID" | Select-Object -Expand Content
Você receberá uma resposta JSON semelhante a esta:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs/SEARCHCONFIG_ID1", "searchCriteriaProperty": { "mappedFields": [ "dataschema2" ] } }