Editar

Analisar feeds de notícias com análises quase em tempo real com processamento de imagem e linguagem natural

Azure Cosmos DB
Azure Functions
Azure Service Bus
Azure Translator Text
Azure Face

Este cenário de exemplo descreve um pipeline para ingestão em massa e análise quase em tempo real de documentos provenientes de feeds de notícias RSS públicos. Utiliza os Serviços Cognitivos do Azure para fornecer informações úteis com base na tradução de texto, reconhecimento facial e deteção de sentimentos. Especificamente, os passos de processamento de imagem e linguagem natural são ligados em conjunto num pipeline de mensagens com base em Azure Service Bus. O resultado do pipeline é uma notificação que contém as informações ou a análise.

Arquitetura

Diagrama de arquitetura: ingerir e analisar feeds RSS com processamento de imagem e texto e enviar notificações.Transfira um ficheiro do Visio desta arquitetura.

Fluxo de dados

Os dados fluem através da solução da seguinte forma:

  1. Um feed de notícias RSS funciona como o gerador que obtém dados de um documento ou artigo. Por exemplo, com um artigo, os dados incluem normalmente um título, um resumo do corpo original do item de notícias e, por vezes, imagens.

  2. Um processo de gerador ou ingestão insere o artigo e quaisquer imagens associadas numa Coleção do Azure Cosmos DB.

  3. Uma notificação aciona uma função de ingestão no Funções do Azure que armazena o texto do artigo no Azure Cosmos DB e as imagens do artigo (se existirem) no Armazenamento de Blobs do Azure. Em seguida, o artigo é transmitido para a fila seguinte.

  4. Uma função translate é acionada pelo evento de fila. Utiliza a API traduzir texto dos Serviços Cognitivos do Azure para detetar o idioma, traduzir, se necessário, e recolher o sentimento, expressões-chave e entidades do corpo e do título. Em seguida, transmite o artigo para a fila seguinte.

  5. Uma função de deteção é acionada a partir do artigo em fila. Utiliza o serviço Imagem Digitalizada para detetar objetos, marcos e palavras escritas na imagem associada e, em seguida, passa o artigo para a fila seguinte.

  6. Uma função face é acionada a partir do artigo em fila. Utiliza o serviço API Face do Azure para detetar rostos para género e idade na imagem associada e, em seguida, passa o artigo para a fila seguinte.

  7. Quando todas as funções estiverem concluídas, a função notify é acionada. Carrega os registos processados do artigo e analisa-os para obter os resultados que pretender. Se for encontrado, o conteúdo é sinalizado e é enviada uma notificação para o sistema à sua escolha.

Em cada passo de processamento, a função escreve os resultados no Azure Cosmos DB. Em última análise, os dados podem ser utilizados conforme pretendido. Por exemplo, pode utilizá-lo para melhorar os processos empresariais, localizar novos clientes ou identificar problemas de satisfação do cliente.

Componentes

A seguinte lista de componentes do Azure é utilizada neste exemplo.

  • O Armazenamento do Azure é utilizado para conter ficheiros de imagem e vídeo não processados associados a um artigo. Uma conta de armazenamento secundária é criada com Serviço de Aplicações do Azure e é utilizada para alojar o código e os registos da Função do Azure.

  • O Azure Cosmos DB contém informações de texto, imagem e controlo de vídeo do artigo. Os resultados dos passos dos Serviços Cognitivos também são armazenados aqui.

  • Funções do Azure executa o código de função utilizado para responder a mensagens de fila e transformar o conteúdo recebido. Serviço de Aplicações do Azure aloja o código da função e processa os registos em série. Este cenário inclui cinco funções: Ingerir, Transformar, Detetar Objeto, Rosto e Notificar.

  • Azure Service Bus aloja as filas de Azure Service Bus utilizadas pelas funções.

  • Os Serviços Cognitivos do Azure fornecem a IA para o pipeline com base nas implementações do serviço Imagem Digitalizada, da API Face e do serviço de tradução automática traduzir texto.

  • O Aplicação Azure Insights fornece análises para o ajudar a diagnosticar problemas e a compreender a funcionalidade da sua aplicação.

Alternativas

  • Em vez de utilizar um padrão baseado na notificação de fila e Funções do Azure, pode utilizar um padrão de tópico e subscrição para este fluxo de dados. Azure Service Bus Tópicos podem ser utilizados para processar as várias partes do artigo em paralelo, em oposição ao processamento em série feito neste exemplo. Para obter mais informações, compare filas e tópicos.

  • Utilize o Azure Logic Apps para implementar o código de função e implementar o bloqueio ao nível dos registos, como o fornecido pelo algoritmo Redlock (que é necessário para processamento paralelo até que o Azure Cosmos DB suporte atualizações parciais de documentos). Para obter mais informações, compare As Funções e o Logic Apps.

  • Implemente esta arquitetura com componentes de IA personalizados em vez de serviços do Azure existentes. Por exemplo, expanda o pipeline com um modelo personalizado que deteta determinadas pessoas numa imagem em oposição à contagem genérica de pessoas, género e dados de idade recolhidos neste exemplo. Para utilizar modelos personalizados de machine learning ou IA com esta arquitetura, crie os modelos como pontos finais RESTful para que possam ser chamados a partir de Funções do Azure.

  • Utilize um mecanismo de entrada diferente em vez de feeds RSS. Utilize vários geradores ou processos de ingestão para alimentar o Azure Cosmos DB e o Armazenamento do Azure.

  • Azure Cognitive Search é uma funcionalidade de IA no Azure Search que também pode ser utilizada para extrair texto de imagens, blobs e outras origens de dados não estruturadas.

Detalhes do cenário

Este cenário contém exemplos de feeds de notícias em inglês, russo e alemão , mas pode expandi-lo facilmente para outros feeds RSS e outros idiomas. Para facilitar a implementação, a recolha, o processamento e a análise de dados baseiam-se inteiramente nos serviços do Azure.

Potenciais casos de utilização

Embora este cenário se baseie no processamento de feeds RSS, é relevante para qualquer documento, site ou artigo onde teria de:

  • Traduzir texto para um idioma de eleição.
  • Localize expressões-chave, entidades e sentimentos dos utilizadores em conteúdos digitais.
  • Detetar objetos, texto e marcos em imagens associadas a um artigo digital.
  • Detetar pessoas por sexo e idade em imagens associadas a conteúdo digital.

Considerações

Estas considerações implementam os pilares do Azure Well-Architected Framework, que é um conjunto de princípios orientadores que podem ser utilizados para melhorar a qualidade de uma carga de trabalho. Para obter mais informações, veja Microsoft Azure Well-Architected Framework.

Para simplificar, este cenário de exemplo utiliza apenas algumas das APIs e serviços disponíveis dos Serviços Cognitivos do Azure. Por exemplo, o texto em imagens pode ser analisado com a API Análise de Texto. O idioma de destino neste cenário é considerado inglês, mas pode alterar a entrada para qualquer idioma suportado.

Escalabilidade

Funções do Azure dimensionamento depende do plano de alojamento que utilizar. Esta solução pressupõe um plano de Consumo, no qual o poder de computação é alocado automaticamente às funções quando necessário. Paga apenas quando as suas funções estão em execução. Outra opção é utilizar um Plano dedicado, que lhe permite dimensionar entre camadas para alocar uma quantidade diferente de recursos.

Com o Azure Cosmos DB, a chave é distribuir a carga de trabalho aproximadamente uniformemente entre um número suficientemente grande de chaves de partição. Não existe limite para a quantidade total de dados que um contentor pode armazenar ou para a quantidade total de débito que um contentor pode suportar.

Gestão e registo

Esta solução utiliza o Application Insights para recolher informações de desempenho e registo. É criada uma instância do Application Insights com a implementação no mesmo grupo de recursos que os outros serviços necessários para esta implementação.

Para ver os registos gerados pela solução:

  1. Aceda a portal do Azure e navegue para o grupo de recursos criado para a implementação.

  2. Selecione a instância do Application Insights .

  3. Na secção Application Insights , navegue para Investigar\Procurar e pesquise os dados.

Segurança

A segurança fornece garantias contra ataques deliberados e abuso dos seus valiosos dados e sistemas. Para obter mais informações, veja Descrição geral do pilar de segurança.

O Azure Cosmos DB utiliza uma ligação segura e uma assinatura de acesso partilhado através do SDK C# fornecido pela Microsoft. Não existem outras áreas de superfície viradas para o exterior. Saiba mais sobre as melhores práticas de segurança do Azure Cosmos DB.

Otimização de custos

A otimização de custos consiste em procurar formas de reduzir despesas desnecessárias e melhorar a eficiência operacional. Para obter mais informações, veja Descrição geral do pilar de otimização de custos.

O Azure Cosmos DB é poderoso, mas implica o maior custo nesta implementação. Pode utilizar outra solução de armazenamento ao refatorizar o código de Funções do Azure fornecido.

Os preços de Funções do Azure variam consoante o plano em que é executado.

Implementar este cenário

Nota

Tem de ter uma conta do Azure existente. Se não tiver uma subscrição do Azure, crie uma conta gratuita antes de começar.

Todo o código para este cenário está disponível no repositório do GitHub . Este repositório contém o código fonte utilizado para criar a aplicação geradora que alimenta o pipeline para esta demonstração.

Passos seguintes

Arquiteturas de análise adicionais: