Um Vision Warehouse associado (corpus
) numa app implementada que carrega dados tem um ou mais objetos multimédia assets
. Pode fornecer mais detalhes acerca
destes objetos multimédia assets
com dataSchema
e recursos
annotation
fornecidos pelo utilizador.
Os recursos de esquema de dados têm de ser criados antes de poder criar um recurso annotation
com essa chave de esquema de dados. Depois de criar o esquema de dados (recursos dataSchema
) para informar a Vertex AI Vision API sobre como interpretar as anotações de multimédia, pode criar recursos annotation
para multimédia num armazém.
Crie um esquema de dados (API)
REST
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- REGIONALIZED_ENDPOINT: o ponto final pode incluir um prefixo correspondente ao
LOCATION_ID
, comoeurope-west4-
. Veja mais informações sobre os pontos finais regionalizados. - PROJECT_NUMBER: o seu Google Cloud número do projeto.
- LOCATION_ID: A região onde está a usar o
Vertex AI Vision. Por exemplo:
us-central1
,europe-west4
. Veja as regiões disponíveis. - CORPUS_ID: o ID do seu corpus de destino.
- DATASCHEMA_KEY: esta chave tem de corresponder à chave de uma anotação especificada pelo utilizador e ser
exclusiva num
corpus
. Por exemplo,data-key
. - ANNOTATION_DATA_TYPE: o tipo de dados da anotação. Os valores disponíveis são:
DATA_TYPE_UNSPECIFIED
INTEGER
FLOAT
STRING
DATETIME
GEO_COORDINATE
PROTO_ANY
BOOLEAN
Para mais informações, consulte a documentação de referência da API.
- ANNOTATION_GRANULARITY: o nível de detalhe das anotações nesta
dataSchema
. Os valores disponíveis são:GRANULARITY_UNSPECIFIED
- Granularidade não especificada.GRANULARITY_ASSET_LEVEL
- Granularidade ao nível do recurso (as anotações não podem conter informações de partição temporal para o recurso multimédia).GRANULARITY_PARTITION_LEVEL
- Granularidade ao nível da partição (as anotações têm de conter informações de partição temporais para o recurso multimédia).
- SEARCH_STRATEGY: um dos valores enum disponíveis. Os tipos de estratégias de pesquisa
a aplicar na chave de anotação. Os valores disponíveis são:
NO_SEARCH
EXACT_SEARCH
SMART_SEARCH
Método HTTP e URL:
POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/dataSchemas
Corpo JSON do pedido:
{ "key": "DATASCHEMA_KEY", "schema_details": { "type": "ANNOTATION_DATA_TYPE", "granularity": "ANNOTATION_GRANULARITY", "search_strategy": { "search_strategy_type": "SEARCH_STRATEGY" } } }
Para enviar o seu pedido, escolha uma destas opções:
curl
Guarde o corpo do pedido num ficheiro com o nome request.json
,
e execute o seguinte comando:
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/dataSchemas"
PowerShell
Guarde o corpo do pedido num ficheiro com o nome request.json
,
e execute o seguinte comando:
$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/dataSchemas" | Select-Object -Expand Content
Deve receber uma resposta JSON semelhante à seguinte:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/dataSchemas/DATASCHEMA_ID", "key": "data-key", "schemaDetails": { "type": "BOOLEAN", "granularity": "GRANULARITY_ASSET_LEVEL", "searchStrategy": { "search_strategy_type": "EXACT_SEARCH" } } }
Atualize o esquema de dados (API)
REST e linha de comandos
O código seguinte atualiza um dataSchema
através do método projects.locations.corpora.dataSchemas.patch
.
Este exemplo usa
?updateMask=schemaDetails.type,schemaDetails.granularity
no URL
do pedido e inclui novos valores schemaDetails.type
e schemaDetails.granularity
no corpo do pedido para atualizar o esquema de dados.
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- REGIONALIZED_ENDPOINT: o ponto final pode incluir um prefixo correspondente ao
LOCATION_ID
, comoeurope-west4-
. Veja mais informações sobre os pontos finais regionalizados. - PROJECT_NUMBER: o seu Google Cloud número do projeto.
- LOCATION_ID: A região onde está a usar o
Vertex AI Vision. Por exemplo:
us-central1
,europe-west4
. Veja as regiões disponíveis. - CORPUS_ID: o ID do seu corpus de destino.
- DATASCHEMA_ID: o ID do esquema de dados de destino.
?updateMask=fieldToUpdate
: um dos campos disponíveis aos quais pode aplicar umupdateMask
. Especifique o valor do novo campo correspondente no corpo do pedido. Este novo valor substitui o valor do campo existente. Campos disponíveis:- Tecla:
?updateMask=key
- Tipo de esquema:
?updateMask=schemaDetails.type
- Nível de detalhe do esquema:
?updateMask=schemaDetails.granularity
- Tipo de estratégia de pesquisa de esquemas:
?updateMask=schemaDetails.searchStrategy.searchStrategyType
- Atualize todos os campos:
?updateMask=*
- Tecla:
Método HTTP e URL:
PATCH https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/dataSchemas/DATASCHEMA_ID?updateMask=schemaDetails.type,schemaDetails.granularity
Corpo JSON do pedido:
{ "key": "original-data-key", "schemaDetails": { "type":"INTEGER", "granularity":"GRANULARITY_PARTITION_LEVEL" "searchStrategy": { "searchStrategyType": "NO_SEARCH" } } }
Para enviar o seu pedido, escolha uma destas opções:
curl
Guarde o corpo do pedido num ficheiro com o nome request.json
,
e execute o seguinte comando:
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/dataSchemas/DATASCHEMA_ID?updateMask=schemaDetails.type,schemaDetails.granularity"
PowerShell
Guarde o corpo do pedido num ficheiro com o nome request.json
,
e execute o seguinte comando:
$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/dataSchemas/DATASCHEMA_ID?updateMask=schemaDetails.type,schemaDetails.granularity" | Select-Object -Expand Content
Deve receber uma resposta JSON semelhante à seguinte:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/dataSchemas/DATASCHEMA_ID", "key": "original-data-key", "schemaDetails": { "type": "INTEGER", "granularity": "GRANULARITY_PARTITION_LEVEL", "searchStrategy": { "searchStrategyType": "NO_SEARCH" } } }
Adicione um esquema de dados de estrutura personalizado
A estrutura personalizada permite que os utilizadores definam contentores mais complexos para armazenar valores e fornecer funcionalidade de pesquisa. Para usar esta funcionalidade, o esquema de dados tem de ser definido, por exemplo:
REST
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- REGIONALIZED_ENDPOINT: o ponto final pode incluir um prefixo correspondente ao
LOCATION_ID
, comoeurope-west4-
. Veja mais informações sobre os pontos finais regionalizados. - PROJECT_NUMBER: o seu Google Cloud número do projeto.
- LOCATION_ID: A região onde está a usar o
Vertex AI Vision. Por exemplo:
us-central1
,europe-west4
. Veja as regiões disponíveis. - CORPUS_ID: o ID do seu corpus de destino.
Método HTTP e URL:
POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/dataSchemas
Corpo JSON do pedido:
{ "key": "person", "schema_details" : { "type":"CUSTOMIZED_STRUCT", "granularity":"GRANULARITY_ASSET_LEVEL", "customized_struct_config": { "field_schemas": { "name": { "type":"STRING", "granularity":"GRANULARITY_ASSET_LEVEL", "search_strategy": { "search_strategy_type":"EXACT_SEARCH" } }, "age": { "type":"FLOAT", "granularity":"GRANULARITY_ASSET_LEVEL", "search_strategy": { "search_strategy_type":"EXACT_SEARCH" } } } } } }
Para enviar o seu pedido, escolha uma destas opções:
curl
Guarde o corpo do pedido num ficheiro com o nome request.json
,
e execute o seguinte comando:
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/dataSchemas"
PowerShell
Guarde o corpo do pedido num ficheiro com o nome request.json
,
e execute o seguinte comando:
$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/dataSchemas" | Select-Object -Expand Content
Deve receber uma resposta JSON semelhante à seguinte:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/dataSchemas/DATASCHEMA_ID", "key": "person", "schemaDetails" : { "type":"CUSTOMIZED_STRUCT", "granularity":"GRANULARITY_ASSET_LEVEL", "customized_struct_config": { "field_schemas": { "name": { "type":"STRING", "granularity":"GRANULARITY_ASSET_LEVEL", "search_strategy": { "search_strategy_type":"EXACT_SEARCH" } }, "age": { "type":"FLOAT", "granularity":"GRANULARITY_ASSET_LEVEL", "search_strategy": { "search_strategy_type":"EXACT_SEARCH" } } } } } }
Após o que podemos inserir anotações
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- REGIONALIZED_ENDPOINT: o ponto final pode incluir um prefixo correspondente ao
LOCATION_ID
, comoeurope-west4-
. Veja mais informações sobre os pontos finais regionalizados. - PROJECT_NUMBER: o seu Google Cloud número do projeto.
- LOCATION_ID: A região onde está a usar o
Vertex AI Vision. Por exemplo:
us-central1
,europe-west4
. Veja as regiões disponíveis. - CORPUS_ID: o ID do seu corpus de destino.
- ASSET_ID: o ID do recurso de destino.
Método HTTP e URL:
POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID/annotations
Corpo JSON do pedido:
{ "user_specified_annotation" : { "key": "person", "value": { "customized_struct_value":{ "elements" : { "name": { "str_value":"John" }, "age": { "float_value":10.5 } } } } } }
Para enviar o seu pedido, escolha uma destas opções:
curl
Guarde o corpo do pedido num ficheiro com o nome request.json
,
e execute o seguinte comando:
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/assets/ASSET_ID/annotations"
PowerShell
Guarde o corpo do pedido num ficheiro com o nome request.json
,
e execute o seguinte comando:
$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/assets/ASSET_ID/annotations" | Select-Object -Expand Content
Deve receber uma resposta JSON semelhante à seguinte:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID/annotations/ANNOTATION_ID", "userSpecifiedAnnotation": { "key": "person", "value": { "customized_struct_value":{ "elements" : { "name": { "str_value":"John" }, "age": { "float_value":10.5 } } } } } }
Assim que a anotação for indexada, pode ser emitido um pedido de pesquisa da seguinte forma:
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- REGIONALIZED_ENDPOINT: o ponto final pode incluir um prefixo correspondente ao
LOCATION_ID
, comoeurope-west4-
. Veja mais informações sobre os pontos finais regionalizados. - PROJECT_NUMBER: o seu Google Cloud número do projeto.
- LOCATION_ID: A região onde está a usar o
Vertex AI Vision. Por exemplo:
us-central1
,europe-west4
. Veja as regiões disponíveis. - CORPUS_ID: o ID do seu 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 do pedido:
{ "page_size": 10, "criteria": { "field": "person.name", "text_array": { "txt_values": "John" }, }, }
Para enviar o seu pedido, escolha uma destas opções:
curl
Guarde o corpo do pedido num ficheiro com o nome request.json
,
e execute o seguinte comando:
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
Guarde o corpo do pedido num ficheiro com o nome request.json
,
e execute o seguinte comando:
$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
Deve receber uma resposta JSON semelhante à seguinte:
Modifique os detalhes do esquema do armazém (consola)
Os campos de esquema são gerados a partir dos modelos através das aplicações. Também pode adicionar campos personalizados.
Depois de modificar os campos filtráveis, pode usá-los para pesquisar no seu armazém.
Consola
Abra o separador Armazéns do painel de controlo do Vertex AI Vision.
Encontre o armazém pretendido e selecione o respetivo nome. É apresentada a página Detalhes do armazém.
Selecione os campos que quer ativar para a pesquisa.