Editar

Compartilhar via


Automatizar a identificação, classificação e pesquisa do documento usando o Durable Functions

Funções do Azure
Serviço de aplicativo do Azure
Serviços de IA do Azure
Azure AI Search
AKS (Serviço de Kubernetes do Azure)

Este artigo descreve uma arquitetura para processar arquivos que contêm vários documentos de diversos 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.

Baixe um Arquivo Visio dessa arquitetura.

Workflow

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

    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 de pipeline.
  2. A orquestração do Durable Functions é disparada pela mensagem de comando. A mensagem contém metadados que identificam o local no Armazenamento de Blobs 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 Digitalização chama a API de Leitura da Pesquisa Visual Computacional, passando o local no armazenamento do documento a ser processado. Os resultados do OCR (reconhecimento óptico de caracteres) são retornados para a orquestração a ser usada pelas atividades subsequentes.

  4. A função de atividade de Classificação chama o serviço de classificador de documento hospedado em um cluster do AKS (Serviço de Kubernetes do Azure). Esse serviço usa padrões correspondentes 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 retornados para a orquestração.

    Observação

    O Azure não oferece um serviço que possa classificar vários tipos de documento em um único arquivo. Essa solução usa um serviço não Azure hospedado no AKS.

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

  6. A função de atividade de Indexação cria um novo documento de pesquisa no serviço do Cognitive Search para cada tipo de documento identificado e usa as bibliotecas da Pesquisa de IA do Azure para .NET para incluir no documento de pesquisa os resultados completos do 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 combinados com os metadados de documento correspondentes do Azure Cosmos DB.

  7. Os usuários finais podem pesquisar documentos por conteúdo e metadados. As IDs de correlação no conjunto de resultados da 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

  • As Durable Functions são uma extensão do Azure Functions que permite escrever funções com estado em um ambiente de computação sem servidor. Neste aplicativo, ele é usado para gerenciar a ingestão de documentos e a orquestração de fluxo de trabalho. Ele permite definir fluxos de trabalho com estado gravando 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, permitindo que você se concentre na lógica de negócios.
  • O Azure Cosmos DB é um banco de dados de vários modelos distribuído globalmente, que permite que as soluções dimensionem a taxa de transferência e capacidade de armazenamento em qualquer número de regiões geográficas. SLAs (Contratos de Nível de Serviço) abrangentes garantem a taxa de transferência, latência, disponibilidade e consistência.
  • O Armazenamento do Microsoft Azure é um conjunto de serviços de nuvem extremamente escalonáveis e seguros para dados, aplicativos e cargas de trabalho. Ele inclui Armazenamento de Blobs, Arquivos do Azure, Armazenamento de Tabelas do Azure e Armazenamento de Filas do Azure.
  • O Serviço de Aplicativo do Azure fornece uma estrutura para compilar, implantar e dimensionar aplicativos Web. O recurso aplicativos Web é um serviço baseado em HTTP para hospedar aplicativos Web, APIs REST e back-ends móveis. Com os Aplicativos Web, você pode desenvolver em .NET, .NET Core, Java, Ruby, Node.js, PHP ou Python. Aplicativos são executados e dimensionados facilmente em ambientes baseados em Windows e Linux.
  • Os Serviços de AI do Azure fornecem algoritmos inteligentes para ver, ouvir, falar, entender e interpretar as necessidades do usuário por meio de métodos naturais de comunicação.
  • O Azure AI Search fornece uma experiência de pesquisa avançada em conteúdo privado e heterogêneo em aplicativos Web, móveis e corporativos.
  • O AKs é um serviço de 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 Documento (OCR) de IA do Azure é uma alternativa à Leitura de Visão Computacional.
  • Essa 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 do documento.
  • Você pode usar outras plataformas de mensagens, incluindo o Barramento de Serviço do Azure, para disparar instâncias do Durable Functions.
  • Para obter um acelerador de solução que ajude no clustering 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 o Durable Functions para implementar pipelines automatizados para processar arquivos que contêm vários documentos de diversos tipos. Os pipelines identificam os documentos em um arquivo de documento, os classificam 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 verificados 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 originados de fora da organização e a empresa receptora não controla o conteúdo.

Considerando essas restrições, as organizações foram forçadas a compilar suas próprias soluções de análise de documentos que podem incluir tecnologia personalizada e processos manuais. Uma solução pode incluir a 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 que eles devem processar. Pode ser difícil e demorado manter e aprimorar essas soluções.

As organizações estão buscando soluções confiáveis, escaloná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 no êxito ou falha do pipeline de processamento.

Possíveis casos de uso

Essa solução se aplica a muitas áreas:

  • Relatório de título. Muitas agências governamentais e municípios gerenciam registros de papel que não foram migrados para o formato digital. Uma solução automatizada eficaz pode gerar um arquivo com todos os documentos necessários para atender a uma solicitação de documento.
  • Registros de manutenção. Os registros de manutenção de aeronaves, locomotivas e máquinas ainda existem no formulário de papel que exigem digitalização e envio para organizações externas.
  • Permitir processamento. Os departamentos municipais que concedem licenças ainda mantêm documentos de 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 de orientação que podem ser usados para aprimorar a qualidade de uma carga de trabalho. Para obter mais informações, confira Microsoft Azure Well-Architected Framework

Confiabilidade

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

Uma carga de trabalho confiável é aquela que é resiliente e disponível. Resiliência é a capacidade de um sistema de se recuperar de falhas e continuar funcionando. A meta da resiliência é retornar o aplicativo a um estado totalmente funcional após uma falha. A disponibilidade é uma medida que verifica se seus usuários podem acessar a carga de trabalho quando precisarem.

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

Otimização de custo

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

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

Os custos podem ser otimizados dimensionando corretamente a conta de armazenamento usando políticas de capacidade reservada e ciclo de vida, planejamento do Azure AI Search para implantações regionais e agendamento de escalonamento vertical operacional e usando preços do nível de compromisso disponíveis para o serviço de Pesquisa Visual Computacional – OCR para gerenciar custos previsíveis.

Veja algumas diretrizes para otimizar os custos:

  • Use a estratégia pré-paga para sua arquitetura e escale horizontalmente conforme necessário, em vez de investir em recursos em grande escala no início.
  • Considere os custos de oportunidade em sua arquitetura e o equilíbrio entre a vantagem do pioneiro versus o "acompanhamento rápido". Use as calculadoras de preço para estimar custos iniciais e operacionais.
  • Estabeleça políticas, orçamentos e controles que definam os limites de custo para a sua solução.

Eficiência de desempenho

A eficiência do desempenho é a capacidade de dimensionar a carga de trabalho de maneira eficiente para atender às demandas exigidas pelos usuários. Para saber mais, confira Visão geral do pilar de eficiência de desempenho.

Os períodos em que essa solução processa grandes volumes podem expor gargalos de desempenho. Entenda e planeje as opções de dimensionamento parado 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.

Colaboradores

Esse artigo é mantido pela Microsoft. Ele foi originalmente escrito pelos colaboradores a seguir.

Principais autores:

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

Próximas etapas

Artigos introdutórios:

Documentação do produto: