Ativar a notificação de eventos de modelo com o Cloud Functions e o Pub/Sub

Na Vertex AI Vision, os modelos recebem dados de mídia de dispositivos como câmeras, executam previsões de IA nos dados e produzem anotações continuamente. Geralmente, você envia esses dados processados para um destino de dados ("data sink") como um data warehouse de mídia ou o BigQuery para outros trabalhos de análise. No entanto, pode haver um caso em que algumas anotações precisam ser processadas de maneira 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 atender a essas necessidades.

Para ativar as notificações de eventos de modelo, faça o seguinte:

  1. Acompanhe os dados do modelo e gere eventos usando as funções do Cloud Run.
  2. Envie os eventos gerados pelas funções do Cloud Run pelo canal de eventos do Pub/Sub.

Modelos compatíveis

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

Antes de começar

  • Crie um app com, no mínimo, um nó de stream e um de modelo com suporte.
  • Opcional. Instale o SDK da Vertex AI Vision e ingerir dados no seu app. Se você não fizer isso antes de configurar a notificação de evento, será necessário fazer isso depois.
  • Opcional. Crie uma função do Cloud Run para usar. Se você 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, será necessário criá-la durante esse processo.
  • Opcional. Crie um tópico do Pub/Sub para usar. Se você não criar o tópico do Pub/Sub antes de ativar a notificação de evento de modelo com o Pub/Sub, será necessário criá-lo durante esse processo.
  • Opcional. Escolha e crie uma assinatura do Pub/Sub. Se você não criar a assinatura do Pub/Sub antes de ativar a notificação de evento do modelo com o Pub/Sub, será necessário criar a assinatura depois de ler as mensagens de um tópico.

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

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

Sua função do Cloud Run se conecta ao modelo e detecta a saída como a ação de pós-processamento. O Cloud Run function precisa retornar um AppPlatformCloudFunctionResponse. Os eventos (appplatformeventbody) são enviados para o tópico do Pub/Sub que você vai configurar na próxima etapa.

Exemplo de função do Cloud Run (modelo de análise de ocupação)

Exemplo de função 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 instruções a seguir para enviar o fluxo de saída do modelo para sua função do Cloud Run:

Console

  1. Abra a guia Aplicativos do painel da Vertex AI Vision.

    Acesse a guia "Aplicativos"

  2. Selecione Ver app ao lado do nome do aplicativo na lista.

  3. Clique no modelo compatível para abrir o painel lateral de detalhes do modelo.

  4. Na lista pós-processamento da seção Notificação de evento, selecione sua função do Cloud Run atual ou crie uma nova.

    Selecionar a imagem do Cloud Function de pós-processamento no console do Cloud

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

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

Console

  1. Abra a guia Aplicativos do painel da Vertex AI Vision.

    Acesse a guia "Aplicativos"

  2. Selecione Ver app ao lado do nome do aplicativo na lista.

  3. Clique no modelo compatível para abrir o painel lateral de detalhes do modelo.

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

  5. Na janela de opções Configurar o Pub/Sub para notificações de eventos que se abre, escolha o tópico do Pub/Sub atual ou crie um novo.

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

    Configurar a imagem de notificação de evento no console do Cloud

  7. Clique em Configurar.

A seguir