Administra índices

Un índice de Vision Warehouse (disponible para las verticales de imágenes y videos por lotes) es un recurso a nivel del corpus que es una representación administrada de los recursos y las anotaciones analizados. Un índice se puede considerar como un conjunto de datos de vectores de incorporación y restricciones semánticas que representa el significado del contenido multimedia. Los índices se pueden implementar en extremos de índice para la búsqueda.

Cuando creas un índice en un corpus, este incluirá todos los recursos analizados y todas las anotaciones existentes en el corpus. En el caso de los recursos o las anotaciones que agregues después de crear el índice, deberás analizar el corpus o esos recursos nuevamente y actualizar el índice para incluirlos.

Crea un índice de almacén

REST

Para crear un recurso de índice, envía una solicitud POST con el método projects.locations.corpora.indexes.create.

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • REGIONALIZED_ENDPOINT: El extremo puede incluir un prefijo que coincida con el LOCATION_ID, como europe-west4-. Obtén más información sobre los extremos regionalizados.
  • PROJECT_NUMBER: Tu Google Cloud número de proyecto.
  • LOCATION_ID: La región en la que usas Vertex AI Vision. Por ejemplo: us-central1, europe-west4. Consulta las regiones disponibles.
  • CORPUS_ID: Es el ID del corpus de destino.
  • INDEX_ID: (Opcional) Es un valor proporcionado por el usuario para el ID del índice. En esta solicitud, el valor se agrega a la URL de la solicitud de la siguiente manera:
    • https://REGIONALIZED_ENDPOINT/v1/[...]/corpora/CORPUS_ID/indexes?index_id=INDEX_ID

Método HTTP y URL:

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

Cuerpo JSON de la solicitud:

{
  "display_name": "DISPLAY_NAME",
  "description": "INDEX_DESCRIPTION",
}

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 "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/indexes"

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

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/indexes" | Select-Object -Expand Content

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.visionai.v1.CreateIndexMetadata"
  }
}

Actualiza un índice de almacén

La API de UpdateIndex permite actualizar los campos de metadatos del índice, como display_name y description, así como el contenido subyacente del índice (assets y sus annotations).

El campo update_mask de la solicitud, también conocido como máscara de campo, se usa para especificar los campos que la actualización reemplazará en el recurso Index. Los campos especificados en update_mask se relacionan con el recurso, no con la solicitud completa. Un campo del recurso se reemplazará si está en la máscara. No se permite una máscara de campo vacía. Si la máscara es "*", se activa una actualización completa del índice y también una recompilación total de los datos del índice.

REST

Para actualizar un recurso de índice, envía una solicitud PATCH con el método projects.locations.corpora.indexes.patch.

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • REGIONALIZED_ENDPOINT: El extremo puede incluir un prefijo que coincida con el LOCATION_ID, como europe-west4-. Obtén más información sobre los extremos regionalizados.
  • PROJECT_NUMBER: Tu Google Cloud número de proyecto.
  • LOCATION_ID: La región en la que usas Vertex AI Vision. Por ejemplo: us-central1, europe-west4. Consulta las regiones disponibles.
  • CORPUS_ID: Es el ID del corpus de destino.
  • INDEX_ID: Es el ID de tu índice de destino.
  • ?update_mask=fieldToUpdate: Es la lista de los campos disponibles a los que deseas aplicar un update_mask. Especifica los valores correspondientes para los campos nuevos en el cuerpo de la solicitud. Este nuevo valor reemplaza el valor de campo existente. Puedes especificar varios campos como valores separados por comas. Campos disponibles:
    • Nombre visible: ?update_mask=display_name
    • Descripción: ?update_mask=description
    • Actualiza los datos del índice subyacente: ?update_mask=entire_corpus
    • Actualiza todos los campos: ?update_mask=*

Método HTTP y URL:

PATCH https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID?update_mask=display_name,entire_corpus

Cuerpo JSON de la solicitud:

{
  "display_name": "DISPLAY_NAME",
  "entire_corpus": true
}

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 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/indexes/INDEX_ID?update_mask=display_name,entire_corpus"

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

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/indexes/INDEX_ID?update_mask=display_name,entire_corpus" | Select-Object -Expand Content

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.visionai.v1.UpdateIndexMetadata"
  }
}

Actualizaciones de índices de transmisión

Las APIs de IndexAsset y RemoveIndexAsset permiten transmitir actualizaciones a los índices. Estas APIs solo son compatibles con el almacén de Vision para videos por lotes.

Enumera los índices en un almacén

REST

Para enumerar los índices de un corpus, envía una solicitud GET con el método projects.locations.corpora.indexes.list.

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • REGIONALIZED_ENDPOINT: El extremo puede incluir un prefijo que coincida con el LOCATION_ID, como europe-west4-. Obtén más información sobre los extremos regionalizados.
  • PROJECT_NUMBER: Tu Google Cloud número de proyecto.
  • LOCATION_ID: La región en la que usas Vertex AI Vision. Por ejemplo: us-central1, europe-west4. Consulta las regiones disponibles.
  • CORPUS_ID: Es el ID del corpus de destino.

Método HTTP y URL:

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

Para enviar tu solicitud, elige una de estas opciones:

curl

Ejecuta el siguiente 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/indexes"

PowerShell

Ejecuta el siguiente 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/indexes" | Select-Object -Expand Content

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

{
  "indexes": [
    {
      "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID_1",
      "display_name": "DISPLAY_NAME_1",
      "description": "DESCRIPTION_1",
      "entireCorpus": true,
      "state": "CREATED"
    },
    {
      "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID_2",
      "display_name": "DISPLAY_NAME_2",
      "description": "DESCRIPTION_2",
      "entireCorpus": true,
      "state": "CREATED"
    }
  ]
}

Obtén un índice

REST

Para obtener detalles sobre un índice, envía una solicitud GET con el método projects.locations.corpora.indexes.get.

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • REGIONALIZED_ENDPOINT: El extremo puede incluir un prefijo que coincida con el LOCATION_ID, como europe-west4-. Obtén más información sobre los extremos regionalizados.
  • PROJECT_NUMBER: Tu Google Cloud número de proyecto.
  • LOCATION_ID: La región en la que usas Vertex AI Vision. Por ejemplo: us-central1, europe-west4. Consulta las regiones disponibles.
  • CORPUS_ID: Es el ID del corpus de destino.
  • INDEX_ID: Es el ID de tu índice de destino.

Método HTTP y URL:

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

Para enviar tu solicitud, elige una de estas opciones:

curl

Ejecuta el siguiente 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/indexes/INDEX_ID"

PowerShell

Ejecuta el siguiente 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/indexes/INDEX_ID" | Select-Object -Expand Content

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID",
  "display_name": "DISPLAY_NAME",
  "description": "DESCRIPTION",
  "entireCorpus": true,
  "state": "CREATED"
}

Cómo ver los recursos en un índice

REST

Para obtener detalles sobre los activos presentes en un índice, envía una solicitud GET con el método projects.locations.corpora.indexes.viewAssets.

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • REGIONALIZED_ENDPOINT: El extremo puede incluir un prefijo que coincida con el LOCATION_ID, como europe-west4-. Obtén más información sobre los extremos regionalizados.
  • PROJECT_NUMBER: Tu Google Cloud número de proyecto.
  • LOCATION_ID: La región en la que usas Vertex AI Vision. Por ejemplo: us-central1, europe-west4. Consulta las regiones disponibles.
  • CORPUS_ID: Es el ID del corpus de destino.
  • INDEX_ID: Es el ID de tu índice de destino.
  • PAGE_SIZE: (Opcional) Es la cantidad de resultados que se devolverán.
  • PAGE_TOKEN: (Opcional) Es el nextPageToken que se proporcionó en la respuesta de la llamada anterior. Se puede usar para obtener la siguiente página de resultados.

Método HTTP y URL:

GET https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID:viewAssets?page_size=PAGE_SIZE&page_token=NEXT_PAGE_TOKEN

Para enviar tu solicitud, elige una de estas opciones:

curl

Ejecuta el siguiente 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/indexes/INDEX_ID:viewAssets?page_size=PAGE_SIZE&page_token=NEXT_PAGE_TOKEN"

PowerShell

Ejecuta el siguiente 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/indexes/INDEX_ID:viewAssets?page_size=PAGE_SIZE&page_token=NEXT_PAGE_TOKEN" | Select-Object -Expand Content

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

{
  "indexedAssets": [
    {
      "index": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID",
      "asset": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID_1"
    },
    {
      "index": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID",
      "asset": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID_2"
    }
  ],
  "nextPageToken": "NEXT_PAGE_TOKEN"
}

Cómo ver los recursos indexados con un filtro

Puedes proporcionar una lista de IDs de recursos separados por comas con el campo filter en el método projects.locations.corpora.indexes.viewAssets para filtrar todos los recursos de un índice y mostrar solo los recursos proporcionados.

REST

Para enumerar y filtrar los recursos presentes en un índice, envía una solicitud GET con el método projects.locations.corpora.indexes.viewAssets.

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • REGIONALIZED_ENDPOINT: El extremo puede incluir un prefijo que coincida con el LOCATION_ID, como europe-west4-. Obtén más información sobre los extremos regionalizados.
  • PROJECT_NUMBER: Tu Google Cloud número de proyecto.
  • LOCATION_ID: La región en la que usas Vertex AI Vision. Por ejemplo: us-central1, europe-west4. Consulta las regiones disponibles.
  • CORPUS_ID: Es el ID del corpus de destino.
  • INDEX_ID: Es el ID de tu índice de destino.
  • PAGE_SIZE: (Opcional) Es la cantidad de resultados que se devolverán.
  • PAGE_TOKEN: (Opcional) Es el nextPageToken que se proporcionó en la respuesta de la llamada anterior. Se puede usar para obtener la siguiente página de resultados.
  • ASSET_ID_FILTER: (Opcional) Es una lista separada por comas de los IDs de los recursos que deseas filtrar en la lista que se muestra. Por ejemplo:
    • ?filter=ASSET_ID_1"
    • ?filter=ASSET_ID_1,ASSET_ID_2"

Método HTTP y URL:

GET https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID:viewAssets?page_size=PAGE_SIZE&page_token=NEXT_PAGE_TOKEN&filter=ASSET_ID_FILTER

Para enviar tu solicitud, elige una de estas opciones:

curl

Ejecuta el siguiente 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/indexes/INDEX_ID:viewAssets?page_size=PAGE_SIZE&page_token=NEXT_PAGE_TOKEN&filter=ASSET_ID_FILTER"

PowerShell

Ejecuta el siguiente 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/indexes/INDEX_ID:viewAssets?page_size=PAGE_SIZE&page_token=NEXT_PAGE_TOKEN&filter=ASSET_ID_FILTER" | Select-Object -Expand Content

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

{
  "indexedAssets": [
    {
      "index": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID",
      "asset": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID_1"
    },
    {
      "index": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID",
      "asset": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID_2"
    }
  ],
  "nextPageToken": "NEXT_PAGE_TOKEN"
}

Borra un índice

Un índice solo se puede borrar si no se implementó en un indexEndpoint. Sigue la guía para anular la implementación de un índice antes de borrar un índice implementado.

REST

Para borrar un recurso de índice, envía una solicitud DELETE con el método projects.locations.corpora.indexes.delete.

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • REGIONALIZED_ENDPOINT: El extremo puede incluir un prefijo que coincida con el LOCATION_ID, como europe-west4-. Obtén más información sobre los extremos regionalizados.
  • PROJECT_NUMBER: Tu Google Cloud número de proyecto.
  • LOCATION_ID: La región en la que usas Vertex AI Vision. Por ejemplo: us-central1, europe-west4. Consulta las regiones disponibles.
  • CORPUS_ID: Es el ID del corpus de destino.
  • INDEX_ID: Es el ID de tu índice de destino.

Método HTTP y URL:

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

Para enviar tu solicitud, elige una de estas opciones:

curl

Ejecuta el siguiente 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/indexes/INDEX_ID"

PowerShell

Ejecuta el siguiente 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/indexes/INDEX_ID" | Select-Object -Expand Content

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID/operations/OPERATION_ID",
}