Crear y actualizar un recurso de almacén

Un Vision Warehouse conectado (corpus) en una aplicación desplegada que ingiere datos tiene uno o varios recursos de objetos multimedia (por ejemplo, recursos de vídeo). Estos objetos multimedia (recursos asset) contienen metadatos y anotaciones de recursos. Usa los siguientes comandos para crear y actualizar estos objetos multimedia.

Crear un recurso de almacén de vídeo en streaming

Una vez que haya creado un almacén (recurso corpus), puede añadir uno o varios recursos asset al almacén.

REST Y LÍNEA DE COMANDOS

El siguiente código crea un nuevo recurso en el almacén determinado (corpus) con la opción de especificar el ID del recurso y un TTL.

Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

  • REGIONALIZED_ENDPOINT: el endpoint puede incluir un prefijo que coincida con LOCATION_ID, como europe-west4-. Consulta más información sobre los puntos finales 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: el ID del corpus de destino.
  • ASSET_ID: (Opcional) Valor proporcionado por el usuario para el ID de recurso. En esta solicitud, el valor se añade a la URL de la solicitud con el siguiente formato:
    • https://ENDPOINT/v1/[...]/corpora/CORPUS_ID/assets?asset_id=ASSET_ID
  • TIME_TO_LIVE: el tiempo de vida (TTL) de todos los recursos de un corpus o el TTL de un recurso específico. Por ejemplo, en un corpus con recursos que tengan un TTL de 100 días, proporciona el valor 8640000 (segundos).

Método HTTP y URL:

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

Cuerpo JSON de la solicitud:

{
  "ttl": {
    "seconds": TIME_TO_LIVE
  }
}

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

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

Deberías recibir una respuesta JSON similar a la siguiente:

{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID",
  "ttl": "TIME_TO_LIVEs"
}

SDK de Vertex AI Vision

Para enviar una solicitud para leer un flujo de salida de un modelo, debes instalar el SDK de Vertex AI Vision.

Cuando se usa la herramienta de línea de comandos vaictl para crear un recurso, no se puede especificar un ID de recurso ni un TTL.

Sustituye las siguientes variables:

  • PROJECT_NUMBER: tu número de proyecto. Google Cloud
  • LOCATION_ID: tu ID de ubicación. Por ejemplo, us-central1. Regiones admitidas Más información
  • CORPUS_ID: ID del almacén de destino (recurso corpus).
vaictl --project-id=PROJECT_NUMBER \
--location-id=LOCATION_ID \
--service-endpoint=warehouse-visionai.googleapis.com \
create asset CORPUS_ID

Una vez que se ha creado un recurso, puedes ingerir datos de vídeo directamente en el almacén de datos de ese recurso mediante la herramienta de línea de comandos vaictl.

Actualizar un recurso de almacén de vídeo en streaming

Utiliza el siguiente código de ejemplo para actualizar el tiempo de vida (TTL) de un recurso. Solo puedes actualizar el campo TTL.

Usa el parámetro de consulta updateMask en el siguiente código de ejemplo para actualizar el TTL de un recurso. Puede usar un parámetro de consulta para actualizar solo el campo TTL. El updateMask funciona de la siguiente manera:

  • Si se especifica, solo se actualizan los campos de updateMask.
  • Si el valor de la máscara de actualización es *, la solicitud actualiza todos los campos.
  • Si no se especifica la máscara de actualización, solo se actualizarán los campos de la URL de la solicitud que tengan un valor en el cuerpo de la solicitud.

REST Y LÍNEA DE COMANDOS

En los siguientes ejemplos de código se modifica el TTL de un recurso mediante el método projects.locations.corpora.assets.patch.

Cambiar un valor de TTL

En este ejemplo se usa ?updateMask=ttl en la URL de la solicitud y se incluye un nuevo valor de ttl.seconds en el cuerpo de la solicitud para actualizar el recurso.

Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

  • REGIONALIZED_ENDPOINT: el endpoint puede incluir un prefijo que coincida con LOCATION_ID, como europe-west4-. Consulta más información sobre los puntos finales 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: el ID del corpus de destino.
  • ASSET_ID: ID del recurso de destino.
  • ?updateMask=fieldToUpdate: uno de los campos disponibles a los que puedes aplicar un updateMask. Campos disponibles:
    • Tiempo de vida (TTL): ?updateMask=ttl
    • Actualizar todos los campos: ?updateMask=*

Método HTTP y URL:

PATCH https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID?updateMask=ttl

Cuerpo JSON de la solicitud:

{
  "ttl": {
    "seconds": "1"
  }
}

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/assets/ASSET_ID?updateMask=ttl"

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/assets/ASSET_ID?updateMask=ttl" | Select-Object -Expand Content

Deberías recibir una respuesta JSON similar a la siguiente:

{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID"
}

Quitar un valor de TTL

En este ejemplo se usa ?updateMask=ttl en la URL de la solicitud y se incluye un cuerpo de solicitud vacío para borrar el valor de TTL del recurso.

Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

  • REGIONALIZED_ENDPOINT: el endpoint puede incluir un prefijo que coincida con LOCATION_ID, como europe-west4-. Consulta más información sobre los puntos finales 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: el ID del corpus de destino.
  • ASSET_ID: ID del recurso de destino.
  • ?updateMask=fieldToUpdate: uno de los campos disponibles a los que puedes aplicar un updateMask. Campos disponibles:
    • Tiempo de vida (TTL): ?updateMask=ttl
    • Actualizar todos los campos: ?updateMask=*

Método HTTP y URL:

PATCH https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID?updateMask=ttl

Cuerpo JSON de la solicitud:

{}

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/assets/ASSET_ID?updateMask=ttl"

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/assets/ASSET_ID?updateMask=ttl" | Select-Object -Expand Content

Deberías recibir una respuesta JSON similar a la siguiente:

{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID"
}