Attivare la notifica degli eventi del modello con Cloud Functions e Pub/Sub

In Vertex AI Vision, i modelli ricevono dati multimediali da dispositivi come le videocamere, eseguono previsioni di IA sui dati e producono annotazioni in modo continuo. Spesso invii i dati elaborati a una destinazione dati ("data sink"), come un data warehouse multimediale o BigQuery, per ulteriori job di analisi. Tuttavia, potresti trovarti in una situazione in cui alcune annotazioni devono essere gestite in modo diverso o le esigenze di annotazione sono urgenti. Le integrazioni con Cloud Run e Pub/Sub ti aiutano a soddisfare queste esigenze.

Per poter attivare le notifiche degli eventi del modello, devi svolgere i seguenti passaggi:

  1. Ascolta i dati del modello e genera eventi utilizzando le funzioni Cloud Run.
  2. Invia gli eventi generati dalle funzioni Cloud Run tramite il canale di eventi Pub/Sub.

Modelli supportati

I seguenti modelli offrono la generazione di eventi delle funzioni Cloud Run e le integrazioni di notifiche di eventi Pub/Sub:

Prima di iniziare

  • Crea un'app con almeno un nodo stream e un nodo modello supportato.
  • Facoltativo. Installa l'SDK Vertex AI Vision e importa i dati nella tua app. Se non lo fai prima di configurare la notifica degli eventi, devi farlo dopo.
  • Facoltativo. Crea una funzione Cloud Run da utilizzare. Se non crei la funzione Cloud Run prima di configurare le funzioni Cloud Run per elaborare l'output del modello, devi crearla durante questo processo.
  • Facoltativo. Crea un argomento Pub/Sub da utilizzare. Se non crei l'argomento Pub/Sub prima di attivare la notifica degli eventi del modello con Pub/Sub, devi crearlo durante la procedura.
  • Facoltativo. Scegli e crea una sottoscrizione Pub/Sub. Se non crei la sottoscrizione Pub/Sub prima di attivare la notifica degli eventi del modello con Pub/Sub, devi crearla dopo per leggere i messaggi da un argomento.

Configura le funzioni Cloud Run per elaborare l'output del modello

Per attivare le notifiche basate su eventi, devi prima configurare le funzioni Cloud Run per elaborare l'output del modello e generare eventi.

La funzione Cloud Run si connette al modello e ne ascolta l'output come azione di post-elaborazione. La funzione Cloud Run deve restituire un AppPlatformCloudFunctionResponse. Gli eventi (appplatformeventbody) vengono inviati all'argomento Pub/Sub che configuri nel passaggio successivo.

Funzione Cloud Run di esempio (modello di analisi dell'occupazione)

Funzione Cloud Run di esempio

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

Segui le istruzioni riportate di seguito per inviare lo stream di output del modello alla funzione Cloud Run:

Console

  1. Apri la scheda Applicazioni della dashboard di Vertex AI Vision.

    Vai alla scheda Applicazioni

  2. Seleziona Visualizza app accanto al nome della tua applicazione nell'elenco.

  3. Fai clic sul modello supportato per aprire il riquadro laterale dei dettagli del modello.

  4. Nell'elenco Post-elaborazione della sezione Notifica evento, seleziona la funzione Cloud Run esistente o creane una nuova.

    Seleziona l'immagine della funzione Cloud di post-elaborazione nella console Cloud

Attivare la notifica degli eventi del modello con Pub/Sub

Dopo aver configurato le funzioni Cloud Run per elaborare l'output del modello e generare eventi, puoi configurare la notifica degli eventi con Pub/Sub. Per leggere i messaggi da un argomento, devi anche scegliere e creare una sottoscrizione Pub/Sub.

Console

  1. Apri la scheda Applicazioni della dashboard di Vertex AI Vision.

    Vai alla scheda Applicazioni

  2. Seleziona Visualizza app accanto al nome della tua applicazione nell'elenco.

  3. Fai clic sul modello supportato per aprire il riquadro laterale dei dettagli del modello.

  4. Nella sezione Notifica evento, seleziona Configura la notifica evento.

  5. Nella finestra delle opzioni Configura Pub/Sub per le notifiche degli eventi che si apre, scegli l'argomento Pub/Sub esistente o creane uno nuovo.

  6. Nel campo Frequenza, imposta un valore intero per la frequenza in secondi per cui è possibile inviare una notifica per lo stesso tipo di evento.

    Configurare l'immagine di notifica degli eventi nella console Cloud

  7. Fai clic su Configura.

Passaggi successivi