Activer la notification d'événements de modèle avec Cloud Functions et Pub/Sub

Dans Vertex AI Vision, les modèles reçoivent des données multimédias provenant d'appareils tels que des caméras, exécutent des prédictions d'IA sur les données et produisent des annotations en continu. Vous envoyez généralement ces données traitées à une destination de données ("puits de données"), comme un entrepôt multimédia ou BigQuery, pour d'autres tâches d'analyse. Toutefois, il est possible que certaines annotations doivent être gérées différemment ou que les besoins d'annotation soient urgents. Les intégrations avec les fonctions Cloud Run et Pub/Sub vous aident à répondre à ces besoins.

Pour pouvoir activer les notifications d'événements de modèle, procédez comme suit:

  1. Écoutez les données du modèle et générez des événements à partir de celles-ci à l'aide de fonctions Cloud Run.
  2. Envoyez les événements générés par les fonctions Cloud Run via le canal d'événements Pub/Sub.

Modèles compatibles

Les modèles suivants proposent des intégrations de génération d'événements de fonctions Cloud Run et de notification d'événements Pub/Sub:

Avant de commencer

  • Créez une application avec au moins un nœud de flux et un nœud de modèle compatible.
  • Facultatif. Installez le SDK Vertex AI Vision et ingérez des données dans votre application. Si vous ne le faites pas avant de configurer la notification d'événement, vous devez le faire après.
  • Facultatif. Créez une fonction Cloud Run à utiliser. Si vous ne créez pas votre fonction Cloud Run avant de configurer les fonctions Cloud Run pour traiter la sortie du modèle, vous devez la créer pendant ce processus.
  • Facultatif. Créez un sujet Pub/Sub à utiliser. Si vous ne créez pas votre sujet Pub/Sub avant d'activer la notification d'événement de modèle avec Pub/Sub, vous devez le créer pendant ce processus.
  • Facultatif. Choisissez et créez un abonnement Pub/Sub. Si vous ne créez pas votre abonnement Pub/Sub avant d'activer la notification d'événement de modèle avec Pub/Sub, vous devez le créer après pour lire les messages d'un sujet.

Configurer des fonctions Cloud Run pour traiter la sortie du modèle

Pour déclencher des notifications basées sur des événements, vous devez d'abord configurer des fonctions Cloud Run pour traiter la sortie du modèle et générer des événements.

Votre fonction Cloud Run se connecte au modèle et écoute sa sortie en tant qu'action de post-traitement. La fonction Cloud Run doit renvoyer un AppPlatformCloudFunctionResponse. Les événements (appplatformeventbody) sont envoyés au sujet Pub/Sub que vous configurez à l'étape suivante.

Exemple de fonction Cloud Run (modèle d'analyse de l'occupation)

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

Suivez les instructions ci-dessous pour envoyer le flux de sortie du modèle à votre fonction Cloud Run:

Console
  1. Ouvrez l'onglet Applications du tableau de bord Vertex AI Vision.

    Accéder à l'onglet "Applications"

  2. Sélectionnez Afficher l'application à côté du nom de votre application dans la liste.

  3. Cliquez sur le modèle compatible pour ouvrir le panneau latéral d'informations sur le modèle.

  4. Dans la liste post-traitement de la section Notification d'événement, sélectionnez votre fonction Cloud Run existante ou créez-en une.

    Sélectionner l'image de la fonction Cloud post-traitement dans Cloud Console

Activer la notification d'événements de modèle avec Pub/Sub

Une fois que vous avez configuré des fonctions Cloud Run pour traiter la sortie du modèle et générer des événements, vous pouvez configurer la notification d'événements avec Pub/Sub. Pour lire les messages d'un sujet, vous devez également choisir et créer un abonnement Pub/Sub.

Console
  1. Ouvrez l'onglet Applications du tableau de bord Vertex AI Vision.

    Accéder à l'onglet "Applications"

  2. Sélectionnez Afficher l'application à côté du nom de votre application dans la liste.

  3. Cliquez sur le modèle compatible pour ouvrir le panneau latéral d'informations sur le modèle.

  4. Dans la section Notifications relatives à un événement, sélectionnez Configurer une notification d'événement.

  5. Dans la fenêtre d'options Configurer Pub/Sub pour les notifications d'événements qui s'ouvre, choisissez votre sujet Pub/Sub existant ou en créez un.

  6. Dans le champ Frequency (Fréquence), définissez une valeur entière pour la fréquence en secondes à laquelle une notification pour le même type d'événement peut être envoyée.

    Configurer l'image de notification d'événement dans la console Cloud

  7. Cliquez sur Configurer.

Étape suivante