Habilitar las notificaciones de eventos de modelos con Cloud Functions y Pub/Sub

En Vertex AI Vision, los modelos reciben datos multimedia de dispositivos como cámaras, ejecutan predicciones de IA en los datos y generan anotaciones de forma continua. Con frecuencia, se envían esos datos procesados a un destino de datos ("receptor de datos"), como un almacén de contenido multimedia o BigQuery, para realizar más tareas analíticas. Sin embargo, puede que haya casos en los que algunas anotaciones deban gestionarse de forma diferente o que las necesidades de anotación sean urgentes. Las integraciones con funciones de Cloud Run y Pub/Sub te ayudan a satisfacer estas necesidades.

Para poder habilitar las notificaciones de eventos de modelos, debes hacer lo siguiente:

  1. Escucha los datos del modelo y genera eventos a partir de ellos mediante Cloud Run Functions.
  2. Envía los eventos generados por las funciones de Cloud Run a través del canal de eventos de Pub/Sub.

Modelos admitidos

Los siguientes modelos ofrecen integraciones de generación de eventos de Cloud Run Functions y de notificaciones de eventos de Pub/Sub:

Antes de empezar

  • Crea una aplicación que tenga, como mínimo, un nodo de flujo y un nodo de modelo admitido.
  • Opcional. Instala el SDK de Vertex AI Vision e ingiere datos en tu aplicación. Si no lo haces antes de configurar las notificaciones de eventos, debes hacerlo después.
  • Opcional. Crea una función de Cloud Run para usarla. Si no creas tu función de Cloud Run antes de configurar las funciones de Cloud Run para procesar la salida del modelo, debes crearla durante ese proceso.
  • Opcional. Crea un tema de Pub/Sub para usarlo. Si no crea el tema de Pub/Sub antes de habilitar la notificación de eventos del modelo con Pub/Sub, deberá crearlo durante ese proceso.
  • Opcional. Elige y crea una suscripción de Pub/Sub. Si no crea su suscripción de Pub/Sub antes de habilitar la notificación de eventos de modelo con Pub/Sub, deberá crearla después para leer los mensajes de un tema.

Configurar funciones de Cloud Run para procesar la salida del modelo

Para activar notificaciones basadas en eventos, primero debes configurar funciones de Cloud Run para procesar la salida del modelo y generar eventos.

Tu función de Cloud Run se conecta al modelo y escucha su salida como acción de posprocesamiento. La función de Cloud Run que debes devolver un AppPlatformCloudFunctionResponse. Los eventos (appplatformeventbody) se envían al tema de Pub/Sub que configures en el siguiente paso.

Función de Cloud Run de ejemplo (modelo de analíticas de ocupación)

Función de Cloud Run de ejemplo

/**
* Responds to any HTTP request.
*
* @param {!express:Request} req HTTP request context.
* @param {!express:Response} res HTTP response context.
*/
exports.hello_http = (req, res) => {
// Logging statement can be read with cmd `gcloud functions logs read {$functionName}`.
// For more about logging, please see https://cloud.google.com/functions/docs/monitoring

// The processor output will be stored in req.body.
const messageString = constructMessage(req.body);

// Send your message to operator output with res HTTP response context.
res.status(200).send(messageString);
};

function constructMessage(data) {
// Typically, your processor output should contains appPlatformMetadata & it's designed output.
// Here we will use the occupancy analytics model as an example.
const appPlatformMetadata = data.appPlatformMetadata;
const annotations = data.annotations;
const events = [];
for(const annotation of annotations) {
   events.push({
      "event_message": "Event message goes here",
      "payload" : {
         "attr_key_goes_here" : "val_goes_here"
      },
      "event_id" : "event_id_goes_here"
   });
}

// Typically, your cloud function should return a string represent a JSON which has two fields:
// "annotations" must follow the specification of the target model.
// "events" should be of type "AppPlatformEventBody".
const messageJson = {
   "annotations": annotations,
   "events": events,
};
return JSON.stringify(messageJson);
}

Sigue estas instrucciones para enviar el flujo de salida del modelo a tu función de Cloud Run:

Consola

  1. Abre la pestaña Aplicaciones del panel de control de Vertex AI Vision.

    Ve a la pestaña Aplicaciones.

  2. Selecciona Ver aplicación junto al nombre de tu aplicación en la lista.

  3. Haz clic en el modelo admitido para abrir el panel lateral de detalles del modelo.

  4. En la lista de post-procesamiento de la sección Notificación de eventos, selecciona tu función de Cloud Run o crea una.

    Seleccionar la imagen de la función de Cloud posterior al procesamiento en la consola de Cloud

Habilitar la notificación de eventos de modelos con Pub/Sub

Una vez que hayas configurado las funciones de Cloud Run para procesar la salida del modelo y generar eventos, puedes configurar las notificaciones de eventos con Pub/Sub. Para leer mensajes de un tema, también debes elegir y crear una suscripción de Pub/Sub.

Consola

  1. Abre la pestaña Aplicaciones del panel de control de Vertex AI Vision.

    Ve a la pestaña Aplicaciones.

  2. Selecciona Ver aplicación junto al nombre de tu aplicación en la lista.

  3. Haz clic en el modelo admitido para abrir el panel lateral de detalles del modelo.

  4. En la sección Notificación de eventos, selecciona Configurar notificación de eventos.

  5. En la ventana de opciones Configurar Pub/Sub para las notificaciones de eventos que se abre, elige un tema de Pub/Sub que ya tengas o crea uno.

  6. En el campo Frecuencia, defina un valor entero para la frecuencia en segundos con la que se puede enviar una notificación del mismo tipo de evento.

    Configurar la imagen de notificación de eventos en la consola de Cloud

  7. Haz clic en Configurar.

Siguientes pasos