Faça a gestão do esquema de dados

A API Vision Warehouse permite-lhe gerir recursos do Vision Warehouse através da linha de comandos.

Crie um esquema de dados

O corpus de imagens só pode criar um esquema de dados de granularidade ao nível do recurso. O corpus de vídeo em streaming pode criar um esquema de dados de granularidade ao nível do recurso e um esquema de dados de granularidade ao nível da partição. O conjunto de vídeos em lote pode criar um esquema de dados de granularidade ao nível do recurso e um esquema de dados de granularidade ao nível da partição.

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, como europe-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"
    }
  }
}

Adicione um esquema de dados de estrutura personalizado

A estrutura personalizada permite que os utilizadores definam contentores mais complexos para armazenar valores e oferecer capacidades 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, como europe-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, como europe-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, como europe-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:

Atualize um esquema de dados

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. Inclui 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, como europe-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 um updateMask. 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=*

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"
    }
  }
}

Indique o esquema de dados num corpus

Apresenta todos os DataSchema de um corpus específico. A resposta contém todos os recursos DataSchema, cada um com um nome do recurso DataSchema específico que pode ser usado para obter um DataSchema específico.

REST

Para listar o esquema de dados, envie um pedido GET através do método projects.locations.corpora.dataSchemas.list.

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, como europe-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:

GET https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/dataSchemas

Para enviar o seu pedido, escolha uma destas opções:

curl

Execute o seguinte comando:

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/dataSchemas"

PowerShell

Execute o seguinte comando:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-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:

{
  "dataSchemas": [
    {
      "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/dataSchemas/KEY_STRING1",
      "key": "KEY_STRING1",
      "schemaDetails": {
        "type": "STRING",
        "granularity": "GRANULARITY_ASSET_LEVEL",
        "searchStrategy": {
          "searchStrategyType": "EXACT_SEARCH"
        }
      }
    },
    {
      "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/dataSchemas/KEY_STRING2",
      "key": "KEY_STRING2",
      "schemaDetails": {
        "type": "PROTO_ANY",
        "granularity": "GRANULARITY_PARTITION_LEVEL",
        "protoAnyConfig": {
          "typeUri": "type.googleapis.com/google.cloud.visionai.v1.VideoActionRecognitionPredictionResult"
        },
        "searchStrategy": {
          "searchStrategyType": "SMART_SEARCH"
        }
      }
    }
  ]
}

Obtenha um esquema de dados

Obter o DataSchema de um nome de recurso DataSchema específico.

REST

Para obter detalhes sobre um esquema de dados específico, envie um pedido GET através do método projects.locations.corpora.dataSchemas.get.

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, como europe-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.

Método HTTP e URL:

GET https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/dataSchemas/DATASCHEMA_ID

Para enviar o seu pedido, escolha uma destas opções:

curl

Execute o seguinte comando:

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/dataSchemas/DATASCHEMA_ID"

PowerShell

Execute o seguinte comando:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/dataSchemas/DATASCHEMA_ID" | Select-Object -Expand Content

Deve receber uma resposta JSON semelhante à seguinte:

{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/dataSchemas/KEY_STRING",
  "key": "KEY_STRING",
  "schemaDetails": {
    "type": "STRING",
    "granularity": "GRANULARITY_ASSET_LEVEL",
    "searchStrategy": {
      "searchStrategyType": "EXACT_SEARCH"
    }
  }
}

Elimine um esquema de dados

REST e linha de comandos

O seguinte exemplo de código elimina um armazém dataSchema usando o método projects.locations.corpora.dataSchemas.delete.

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, como europe-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.

Método HTTP e URL:

DELETE https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/dataSchemas/DATASCHEMA_ID

Para enviar o seu pedido, escolha uma destas opções:

curl

Execute o seguinte comando:

curl -X DELETE \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/dataSchemas/DATASCHEMA_ID"

PowerShell

Execute o seguinte comando:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method DELETE `
-Headers $headers `
-Uri "https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/dataSchemas/DATASCHEMA_ID" | 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

  1. Abra o separador Armazéns do painel de controlo do Vertex AI Vision.

    Aceda ao separador Armazéns

  2. Encontre o seu conjunto de dados do armazém e selecione o respetivo nome. É apresentada a página Detalhes do armazém.

  3. Selecione os campos que quer ativar para a pesquisa.

Selecione campos de pesquisa com filtros na IU