Ative a notificação de eventos do modelo com as Cloud Functions e o Pub/Sub

No Vertex AI Vision, os modelos recebem dados de multimédia de dispositivos como câmaras, executam previsões de IA nos dados e produzem anotações continuamente. Envia frequentemente esses dados processados para um destino de dados ("data sink"), como um armazém de multimédia ou o BigQuery, para mais tarefas analíticas. No entanto, pode ter um caso em que algumas anotações têm de ser processadas de forma diferente ou as necessidades de anotação são sensíveis ao tempo. As integrações com as funções do Cloud Run e o Pub/Sub ajudam a satisfazer estas necessidades.

Para poder ativar as notificações de eventos de modelos, tem de fazer o seguinte:

  1. Ouvir os dados do modelo e gerar eventos a partir deles através de funções do Cloud Run.
  2. Envie os eventos gerados pelas funções do Cloud Run através do canal de eventos do Pub/Sub.

Modelos suportados

Os seguintes modelos oferecem a geração de eventos de funções do Cloud Run e integrações de notificações de eventos do Pub/Sub:

Antes de começar

  • Crie uma app com, no mínimo, um nó de stream e um nó de modelo suportado.
  • Opcional. Instale o SDK Vertex AI Vision e introduza dados na sua app. Se não o fizer antes de configurar a notificação de eventos, tem de o fazer depois.
  • Opcional. Crie uma função do Cloud Run para usar. Se não criar a função do Cloud Run antes de configurar as funções do Cloud Run para processar a saída do modelo, tem de a criar durante esse processo.
  • Opcional. Crie um tópico Pub/Sub para usar. Se não criar o tópico do Pub/Sub antes de ativar a notificação de eventos do modelo com o Pub/Sub, tem de o criar durante esse processo.
  • Opcional. Escolha e crie uma subscrição do Pub/Sub. Se não criar a sua subscrição do Pub/Sub antes de ativar a notificação de eventos do modelo com o Pub/Sub, tem de a criar depois para ler mensagens de um tópico.

Configure funções do Cloud Run para processar a saída do modelo

Para acionar notificações baseadas em eventos, primeiro, tem de configurar funções do Cloud Run para processar a saída do modelo e gerar eventos.

A sua função do Cloud Run liga-se ao modelo e ouve a respetiva saída como ação de pós-processamento. A função do Cloud Run deve devolver um AppPlatformCloudFunctionResponse. Os eventos (appplatformeventbody) são enviados para o tópico Pub/Sub que configurar no passo seguinte.

Função de exemplo do Cloud Run (modelo de estatísticas de ocupação)

Função de exemplo do 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);
}

Use as seguintes instruções para enviar o fluxo de saída do modelo para a sua função do Cloud Run:

Consola

  1. Abra o separador Aplicações do painel de controlo do Vertex AI Vision.

    Aceda ao separador Aplicações

  2. Selecione Ver app junto ao nome da sua aplicação na lista.

  3. Clique no modelo suportado para abrir o painel lateral de detalhes do modelo.

  4. Na lista de pós-processamento da secção Notificação de eventos, selecione a sua função do Cloud Run existente ou crie uma nova.

    Selecione a imagem da função do Cloud de pós-processamento na Cloud Console

Ative a notificação de eventos do modelo com o Pub/Sub

Depois de configurar as funções do Cloud Run para processar o resultado do modelo e gerar eventos, pode configurar a notificação de eventos com o Pub/Sub. Para ler mensagens de um tópico, também tem de escolher e criar uma subscrição do Pub/Sub.

Consola

  1. Abra o separador Aplicações do painel de controlo do Vertex AI Vision.

    Aceda ao separador Aplicações

  2. Selecione Ver app junto ao nome da sua aplicação na lista.

  3. Clique no modelo suportado para abrir o painel lateral de detalhes do modelo.

  4. Na secção Notificação de eventos, selecione Configurar notificação de eventos.

  5. Na janela de opção Configurar o Pub/Sub para notificações de eventos que é aberta, escolha o tópico Pub/Sub existente ou crie um novo.

  6. No campo Frequência, defina um valor inteiro para o valor de frequência em segundos em que pode ser enviada uma notificação para o mesmo tipo de evento.

    Configure a imagem de notificação de eventos na Cloud Console

  7. Clique em Configurar.

O que se segue?