Habilita la notificación 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 producen anotaciones de forma continua. A menudo, envías esos datos procesados a un destino de datos ("sumidero de datos"), como un almacén de medios o BigQuery, para realizar más tareas de análisis. Sin embargo, es posible que tengas un caso en el que algunas anotaciones deban manejarse de manera diferente o que las necesidades de anotación sean urgentes. Las integraciones con las funciones de Cloud Run y Pub/Sub te ayudan a abordar estas necesidades.

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

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

Modelos compatibles

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

Antes de comenzar

  • Crea una app con, como mínimo, un nodo de transmisión y un nodo de modelo compatible.
  • Opcional. Instala el SDK de Vertex AI Vision y transfiere datos a tu app. Si no lo haces antes de configurar la notificación de eventos, debes hacerlo después.
  • Opcional. Crea una Cloud Run Function para usarla. Si no creas tu función de Cloud Run antes de configurar las funciones de Cloud Run para procesar el resultado del modelo, debes crearla durante ese proceso.
  • Opcional. Crea un tema de Pub/Sub para usarlo. Si no creas tu tema de Pub/Sub antes de habilitar la notificación de eventos de modelos con Pub/Sub, debes crearlo durante ese proceso.
  • Opcional. Elige y crea una suscripción a Pub/Sub. Si no creas tu suscripción a Pub/Sub antes de habilitar la notificación de eventos de modelos con Pub/Sub, debes crearla después para leer los mensajes de un tema.

Configura funciones de Cloud Run para procesar el resultado del modelo

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

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

Ejemplo de función de Cloud Run (modelo de estadísticas de ocupación)

Ejemplo de función de Cloud Run

/**
* 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);
}

Usa las siguientes instrucciones para enviar el flujo de salida del modelo a tu función de Cloud Run:

Console

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

    Ve a la pestaña Aplicaciones.

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

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

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

    Selecciona la imagen de Cloud Function de procesamiento posterior en la consola de Cloud

Habilita la notificación de eventos del modelo con Pub/Sub

Después de configurar las funciones de Cloud Run para procesar el resultado del modelo y generar eventos, puedes configurar la notificación de eventos con Pub/Sub. Para leer los mensajes de un tema, también debes elegir y crear una suscripción a Pub/Sub.

Console

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

    Ve a la pestaña Aplicaciones.

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

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

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

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

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

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

  7. Haz clic en Configurar.

¿Qué sigue?