Editar

Automatize a identificação, classificação e pesquisa de documentos usando funções duráveis

Azure Functions
Azure App Service
Azure AI services
Azure AI Search
Azure Kubernetes Service (AKS)

Este artigo descreve uma arquitetura para processar arquivos de documentos que contêm vários documentos de vários tipos. Ele usa a extensão Durable Functions do Azure Functions para implementar os pipelines que processam os arquivos.

Arquitetura

Diagrama da arquitetura para identificar, classificar e pesquisar documentos.

Transfira um ficheiro do Visio desta arquitetura.

Fluxo de Trabalho

  1. O usuário fornece um arquivo de documento que o aplicativo Web carrega. O arquivo contém vários documentos de vários tipos. Pode, por exemplo, ser um ficheiro PDF ou TIFF de várias páginas.

    1. O arquivo de documento é armazenado no Armazenamento de Blobs do Azure.
    2. O aplicativo Web adiciona uma mensagem de comando a uma fila de armazenamento para iniciar o processamento do pipeline.
  2. A orquestração de funções duráveis é acionada pela mensagem de comando. A mensagem contém metadados que identificam o local no armazenamento de Blob do arquivo de documento a ser processado. Cada instância do Durable Functions processa apenas um arquivo de documento.

  3. A função de atividade de varredura chama a API de leitura de visão computacional, passando no local de armazenamento do documento a ser processado. Os resultados do reconhecimento ótico de caracteres (OCR) são retornados à orquestração para serem usados pelas atividades subsequentes.

  4. A função de atividade Classificar chama o serviço de classificador de documentos hospedado em um cluster do Serviço Kubernetes do Azure (AKS). Este serviço usa a correspondência de padrão de expressão regular para identificar a página inicial de cada documento conhecido e calcular quantos tipos de documento estão contidos no arquivo de documento. Os tipos e intervalos de páginas dos documentos são calculados e devolvidos à orquestração.

    Nota

    O Azure não oferece um serviço que possa classificar vários tipos de documentos em um único arquivo. Esta solução utiliza um serviço que não é do Azure alojado no AKS.

  5. A função de atividade do Repositório de Metadados salva o tipo de documento e as informações do intervalo de páginas em um repositório do Azure Cosmos DB.

  6. A função de atividade Indexação cria um novo documento de pesquisa no serviço de Pesquisa Cognitiva para cada tipo de documento identificado e usa as bibliotecas do Azure AI Search para .NET para incluir no documento de pesquisa os resultados completos de OCR e as informações do documento. Uma ID de correlação também é adicionada ao documento de pesquisa para que os resultados da pesquisa possam ser correspondidos com os metadados do documento correspondentes do Azure Cosmos DB.

  7. Os utilizadores finais podem procurar documentos por conteúdos e metadados. As IDs de correlação no conjunto de resultados de pesquisa podem ser usadas para pesquisar registros de documentos que estão no Azure Cosmos DB. Os registros incluem links para o arquivo de documento original no Armazenamento de Blobs.

Componentes

  • O Durable Functions é uma extensão do Azure Functions que possibilita que você escreva funções com monitoração de estado em um ambiente de computação sem servidor. Neste aplicativo, ele é usado para gerenciar a ingestão de documentos e a orquestração do fluxo de trabalho. Ele permite definir fluxos de trabalho com monitoração de estado escrevendo funções de orquestrador que aderem ao modelo de programação do Azure Functions. Nos bastidores, a extensão gerencia o estado, os pontos de verificação e as reinicializações, deixando você livre para se concentrar na lógica de negócios.
  • O Azure Cosmos DB é um banco de dados multimodelo distribuído globalmente que possibilita que suas soluções dimensionem a taxa de transferência e a capacidade de armazenamento em qualquer número de regiões geográficas. Contratos de nível de serviço (SLAs) abrangentes garantem taxa de transferência, latência, disponibilidade e consistência.
  • O Armazenamento do Azure é um conjunto de serviços de nuvem massivamente escaláveis e seguros para dados, aplicativos e cargas de trabalho. Inclui Armazenamento de Blob, Arquivos do Azure, Armazenamento de Tabela do Azure e Armazenamento de Filas do Azure.
  • O Serviço de Aplicações do Azure fornece um framework para compilar, implementar e dimensionar aplicações Web. O recurso Aplicativos Web é um serviço baseado em HTTP para hospedagem de aplicativos Web, APIs REST e back-ends móveis. Com Web Apps, você pode desenvolver em .NET, .NET Core, Java, Ruby, Node.js, PHP ou Python. Os aplicativos são facilmente executados e dimensionados em ambientes baseados em Windows e Linux.
  • Os serviços de IA do Azure fornecem algoritmos inteligentes para ver, ouvir, falar, compreender e interpretar as necessidades do utilizador utilizando métodos naturais de comunicação.
  • O Azure AI Search fornece uma experiência de pesquisa rica em conteúdo privado e heterogêneo em aplicativos Web, móveis e corporativos.
  • O AKS é um serviço Kubernetes altamente disponível, seguro e totalmente gerenciado. O AKS facilita a implantação e o gerenciamento de aplicativos em contêineres.

Alternativas

  • O modelo de leitura de inteligência de documentos (OCR) do Azure AI é uma alternativa à leitura de visão computacional.
  • Esta solução armazena metadados no Azure Cosmos DB para facilitar a distribuição global. O Banco de Dados SQL do Azure é outra opção para armazenamento persistente de metadados e informações de documentos.
  • Você pode usar outras plataformas de mensagens, incluindo o Barramento de Serviço do Azure, para acionar instâncias do Durable Functions.
  • Para obter um acelerador de solução que ajuda no agrupamento e na segregação de dados em modelos, consulte Azure/form-recognizer-accelerator (github.com).

Detalhes do cenário

Este artigo descreve uma arquitetura que usa funções duráveis para implementar pipelines automatizados para processar arquivos de documentos que contêm vários documentos de vários tipos. Os pipelines identificam os documentos em um arquivo de documento, classificam-nos por tipo e armazenam informações que podem ser usadas no processamento subsequente.

Muitas empresas precisam gerenciar e processar arquivos de documentos que contêm documentos que foram digitalizados em massa e que podem conter vários tipos de documentos diferentes. Normalmente, os arquivos de documento são PDFs ou imagens TIFF de várias páginas. Esses arquivos geralmente são originários de fora da organização, e a empresa recetora não controla o conteúdo.

Dadas essas restrições, as organizações foram forçadas a construir suas próprias soluções de análise de documentos que podem incluir tecnologia personalizada e processos manuais. Uma solução pode incluir intervenção humana para dividir tipos de documentos individuais em seus próprios arquivos e adicionar qualificadores de classificações para cada documento.

Muitas dessas soluções personalizadas são baseadas no padrão de fluxo de trabalho da máquina de estado e usam sistemas de banco de dados para manter o estado do fluxo de trabalho, com serviços de sondagem que verificam os estados pelos quais são responsáveis pelo processamento. Manter e melhorar essas soluções pode ser difícil e demorado.

As organizações estão procurando soluções confiáveis, escaláveis e resilientes para processar e gerenciar a identificação e classificação de documentos para os tipos de arquivos que sua organização usa. Isso inclui o processamento de milhões de documentos por dia com total observabilidade do sucesso ou fracasso do pipeline de processamento.

Potenciais casos de utilização

Esta solução aplica-se a muitas áreas:

  • Relatório de títulos. Muitas agências governamentais e municípios gerenciam registros em papel que não foram migrados para o formato digital. Uma solução automatizada eficaz pode gerar um arquivo que contém todos os documentos necessários para satisfazer uma solicitação de documento.
  • Registos de manutenção. Os registros de manutenção de aeronaves, locomotivas e máquinas ainda existem em papel que exigem digitalização e envio para organizações externas.
  • Processamento de licenças. Os departamentos de licenciamento da cidade e do condado ainda mantêm documentos em papel que são gerados para relatórios de inspeção de licenças. A capacidade de tirar uma foto de vários documentos de inspeção e identificar, classificar e pesquisar automaticamente nesses registros pode ser altamente benéfica.

Considerações

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

Fiabilidade

A confiabilidade garante que seu aplicativo possa atender aos compromissos que você assume com seus clientes. Para obter mais informações, consulte Visão geral do pilar de confiabilidade.

Uma carga de trabalho confiável é aquela que é resiliente e disponível. A resiliência é a capacidade do sistema em recuperar de falhas e continuar a funcionar. O objetivo da resiliência é fazer com que a aplicação volte para um estado totalmente funcional após a ocorrência de uma falha. A disponibilidade é uma medida de se os usuários podem acessar sua carga de trabalho quando precisam.

Para obter informações de confiabilidade sobre componentes da solução, consulte os seguintes recursos:

Otimização de custos

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

Os custos mais significativos para essa arquitetura virão potencialmente do armazenamento de arquivos de imagem na conta de armazenamento, do processamento de imagens dos serviços de IA do Azure e dos requisitos de capacidade de índice no serviço Azure AI Search.

Os custos podem ser otimizados dimensionando corretamente a conta de armazenamento usando políticas de capacidade e ciclo de vida reservadas, planejamento adequado da Pesquisa de IA do Azure para implantações regionais e agendamento de escalonamento operacional e usando preços de camada de compromisso disponíveis para o serviço Computer Vision – OCR para gerenciar custos previsíveis.

Aqui estão algumas diretrizes para otimizar custos:

  • Use a estratégia de pagamento conforme o uso para sua arquitetura e expanda conforme necessário, em vez de investir em recursos de grande escala no início.
  • Considere os custos de oportunidade em sua arquitetura e o equilíbrio entre a vantagem de pioneiro versus o seguimento rápido. Use a calculadora de preços para estimar o custo inicial e os custos operacionais.
  • Estabeleça políticas, orçamentos e controles que definam limites de custo para sua solução.

Eficiência de desempenho

A eficiência de desempenho é a capacidade de sua carga de trabalho de escalar de maneira eficiente para atender às demandas que os usuários colocam nela. Para obter mais informações, consulte Visão geral do pilar de eficiência de desempenho.

Períodos em que essa solução processa grandes volumes podem expor gargalos de desempenho. Certifique-se de entender e planejar as opções de dimensionamento para o Azure Functions, o dimensionamento automático dos serviços de IA do Azure e o particionamento do Azure Cosmos DB para garantir a eficiência de desempenho adequada para sua solução.

Contribuidores

Este artigo é mantido pela Microsoft. Foi originalmente escrito pelos seguintes contribuidores.

Principais autores:

  • Kevin Kraus - Brasil | Arquiteto Principal de Soluções na Nuvem
  • Andrea Martini - Brasil | Arquiteto de Soluções Cloud Sênior

Para ver perfis não públicos do LinkedIn, inicie sessão no LinkedIn.

Próximos passos

Artigos introdutórios:

Documentação do produto: