Compartilhar via


Automatizar a classificação de documentos no Azure

Azure Functions
Serviço OpenAI do Azure
Serviços de IA do Azure
Azure AI Search
IA do Azure para Informação de Documentos

Este artigo descreve uma arquitetura que você pode usar para processar vários documentos. A arquitetura usa o recurso de funções duráveis do Azure Functions para implementar pipelines. Os pipelines processam documentos por meio do Azure AI Document Intelligence para divisão de documentos, NER (reconhecimento de entidade nomeado) e classificação. O conteúdo do documento e os metadados são usados para NLP (processamento de linguagem natural) baseado em RAG (geração aumentada de recuperação).

Arquitetura

Diagrama que mostra uma arquitetura para identificar, classificar e pesquisar documentos.

Baixe um Arquivo Visio dessa arquitetura.

Fluxo de Trabalho

  1. Um usuário faz upload de um arquivo de documento para um aplicativo Web. O arquivo contém vários documentos inseridos de vários tipos, como arquivos PDF ou TIFF (Formato de Arquivo de Imagem de Marca) de várias páginas. O arquivo de documento é armazenado no Armazenamento de Blobs do Azure (1a). Para iniciar o processamento de pipeline, o aplicativo Web adiciona uma mensagem de comando a uma fila do Barramento de Serviço do Azure (1b).

  2. A mensagem de comando aciona a orquestração de funções duráveis. A mensagem contém metadados que identificam o local do Armazenamento de Blobs do arquivo de documento a ser processado. Cada instância de funções duráveis processa apenas um arquivo de documento.

  3. A função de atividade de análise chama a API Document Intelligence Analyze Document, que passa o local de armazenamento do arquivo de documento a ser processado. A função de análise lê e identifica cada documento dentro do arquivo de documento. Essa função retorna o nome, o tipo, os intervalos de páginas e o conteúdo de cada documento inserido para a orquestração.

  4. 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.

  5. A função de atividade inserção usa Kernel Semântico para agrupar cada documento e criar inserções para cada parte. As inserções e o conteúdo associado são enviados ao Azure AI Search e armazenados em um índice habilitado para vetor. 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.

  6. O Kernel Semântico recupera inserções do repositório de vetores da Pesquisa de IA para NLP.

  7. Os usuários podem conversar com seus dados usando NLP. Essa conversa é alimentada por dados aterrados recuperados do repositório de vetores. Para pesquisar registros de documentos que estão no Azure Cosmos DB, os usuários usam IDs de correlação incluídas no conjunto de resultados da pesquisa. Os registros incluem links para o arquivo de documento original no Armazenamento de Blobs.

Componentes

  • As Durable functions é um recurso do Azure Functions que você pode usar para escrever funções com estado em um ambiente de computação sem servidor. Nessa arquitetura, uma mensagem em uma fila do Barramento de Serviço dispara uma instância de funções duráveis. Em seguida, essa instância inicia e orquestra o pipeline de processamento de documentos.

  • O Azure Cosmos DB é um banco de dados de vários modelos distribuído globalmente que você pode usar em suas soluções para dimensionar a taxa de transferência e a 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. Essa arquitetura usa o Azure Cosmos DB como o armazenamento de metadados para as informações de classificação de documentos.

  • 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. Essa arquitetura usa o Armazenamento de Blobs para armazenar os arquivos de documento que o usuário carrega e que o pipeline de funções duráveis processa.

  • O Barramento de Serviço é um agente de mensagens empresarial totalmente gerenciado com filas de mensagens e tópicos de publicação e assinatura. Essa arquitetura usa o Barramento de Serviço para disparar instâncias de funções duráveis.

  • O Serviço de Aplicativos do Azure fornece uma estrutura para criar, implantar e dimensionar Aplicativos Web. O recurso Aplicativos Web do Serviço de Aplicativos é uma ferramenta baseada em HTTP que você pode usar para hospedar aplicativos Web, APIs REST e back-ends móveis. Use os Aplicativos Web para desenvolver em .NET, .NET Core, Java, Ruby, Node.js, PHP ou Python. Os aplicativos podem ser executados e dimensionados facilmente em ambientes baseados no Windows e no Linux. Nessa arquitetura, os usuários interagem com o sistema de processamento de documentos por meio de um aplicativo Web hospedado no Serviço de Aplicativos.

  • O Document Intelligence é um serviço que você pode usar para extrair insights de seus documentos, formulários e imagens. Essa arquitetura usa o Document Intelligence para analisar os arquivos de documento e extrair os documentos inseridos junto com informações de conteúdo e metadados.

  • A Pesquisa de IA fornece uma experiência de pesquisa avançada para conteúdos privados e diversos em aplicativos web, móveis e empresariais. Essa arquitetura usa o armazenamento de vetor de Pesquisa de IA para indexar inserções do conteúdo do documento extraído e informações de metadados para que os usuários possam pesquisar e recuperar documentos usando NLP.

  • de Kernel Semântico é uma estrutura que você pode usar para integrar LLMs (modelos de linguagem grandes) em seus aplicativos. Essa arquitetura usa Kernel Semântico para criar inserções para o conteúdo do documento e informações de metadados, que são armazenadas na Pesquisa de IA.

  • do Serviço OpenAI do Azure fornece acesso aos modelos avançados do OpenAI. Essa arquitetura usa o Azure OpenAI para fornecer uma interface de linguagem natural para que os usuários interajam com o sistema de processamento de documentos.

Alternativas

  • Para facilitar a distribuição global, essa solução armazena metadados no Azure Cosmos DB. O Banco de Dados SQL do Azure é outra opção de armazenamento persistente para metadados e informações de documentos.

  • Para disparar instâncias de funções duráveis, você pode usar outras plataformas de mensagens, incluindo da Grade de Eventos do Azure.

  • Kernel Semântico é uma das várias opções para criar inserções. Você também pode usar do Azure Machine Learning ou serviços de IA do Azure para criar inserções.

  • Para fornecer uma interface de linguagem natural para os usuários, você pode usar outros modelos de linguagem no Azure AI Foundry. A plataforma dá suporte a vários modelos de diferentes provedores, incluindo Mistral, Meta, Cohere e Hugging Face.

Detalhes do cenário

Nessa arquitetura, os pipelines identificam os documentos em um arquivo de documentos, classificam-nos por tipo e armazenam informações para uso no processamento subsequente.

Muitas empresas precisam gerenciar e processar documentos que verificam em massa e que contêm vários tipos de documentos diferentes, como PDFs ou imagens TIFF de várias páginas. Esses documentos podem ser originados de fora da organização e a empresa receptora não controla o formato.

Devido a essas restrições, as organizações devem criar suas próprias soluções de análise de documentos que possam incluir tecnologia personalizada e processos manuais. Por exemplo, alguém pode separar manualmente tipos de documentos individuais e adicionar qualificadores de classificação para cada documento.

Muitas dessas soluções personalizadas são baseadas no padrão de fluxo de trabalho da máquina de estado. As soluções usam sistemas de banco de dados para persistir o estado do fluxo de trabalho e usam serviços de sondagem que verificam os estados que precisam processar. Manter e aprimorar essas soluções pode aumentar a complexidade e o esforço.

As organizações precisam de soluções confiáveis, dimensionáveis e resilientes para processar e gerenciar a identificação e a classificação dos tipos de documentos de sua organização. Essa solução pode processar milhões de documentos por dia com total observabilidade do sucesso ou falha do pipeline de processamento.

O NLP permite que os usuários interajam com o sistema de maneira conversacional. Os usuários podem fazer perguntas sobre os documentos e receber respostas com base no conteúdo dos documentos.

Possíveis casos de uso

Você pode usar essa solução para:

  • Títulos de relatórios. Muitos órgãos governamentais e municipais gerenciam registros em papel que não têm um formato digital. Uma solução automatizada eficaz pode gerar um arquivo que contém todos os documentos de que você precisa para atender a uma solicitação de documento.

  • Gerencie os registros de manutenção. Talvez seja necessário digitalizar e enviar registros em papel, como registros de manutenção de aeronaves, locomotivas e máquinas, para organizações externas.

  • Licenças de processo. Os departamentos de licenciamento da cidade e do município mantêm documentos impressos que são gerados para relatórios de inspeção de licenças. É possível tirar uma foto de vários documentos de inspeção e identificar, classificar e pesquisar automaticamente esses registros.

  • Analisar planogramas. As empresas de varejo e bens de consumo gerenciam o inventário e a conformidade por meio da análise de planograma de prateleira da loja. Você pode tirar uma foto de uma prateleira de loja e extrair informações de rótulo de produtos variados para identificar, classificar e quantificar automaticamente as informações do produto.

Considerações

Essas considerações implementam os pilares do Azure Well-Architected Framework​, um conjunto de princípios orientadores que você pode usar para aprimorar a qualidade de uma carga de trabalho. Para obter mais informações, consulte Well-Architected Framework.

Confiabilidade

A confiabilidade ajuda a garantir que seu aplicativo possa cumprir os compromissos que você faz aos seus clientes. Para obter mais informações, consulte Lista de verificação de revisão de design para confiabilidade.

Uma carga de trabalho confiável tem resiliência e disponibilidade. 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 mede se os seus usuários podem acessar a carga de trabalho quando necessário.

Para garantir a confiabilidade e a disponibilidade para pontos de extremidade do Azure OpenAI, considere o uso de um gateway de API gerador para várias implantações ou instâncias do Azure OpenAI. O balanceador de carga de back-end dá suporte ao round robin, ponderado e balanceamento de carga baseado em prioridade. Esse recurso oferece flexibilidade para definir uma estratégia de distribuição de carga do Azure OpenAI que atenda aos seus requisitos específicos.

Para obter mais informações sobre confiabilidade em componentes de solução, consulte informações de SLA para serviços online do Azure.

Otimização de custos

A Otimização de Custos concentra-se em maneiras de reduzir despesas desnecessárias e melhorar a eficiência operacional. Para obter mais informações, consulte Lista de verificação de revisão de design para otimização de custos.

Os custos mais significativos para essa arquitetura são o uso de token de modelo do Azure OpenAI, o processamento de imagem do Document Intelligence e os requisitos de capacidade de índice na Pesquisa de IA.

Para otimizar os custos:

Eficiência de desempenho

A Eficiência de Desempenho refere-se à capacidade da carga de trabalho de dimensionar para atender às demandas do usuário com eficiência. Para obter mais informações, consulte Lista de verificação de revisão de design para eficiência de desempenho.

Essa solução pode expor gargalos de desempenho quando você processa grandes volumes de dados. Para garantir a eficiência de desempenho adequada para sua solução, certifique-se de entender e planejar as opções de dimensionamento do Azure Functions, o dimensionamento automático dos serviços de IA e o particionamento do Azure Cosmos DB.

As PTUs openai do Azure fornecem desempenho e disponibilidade garantidos, juntamente com implantações globais. Essas implantações usam a infraestrutura global do Azure para rotear dinamicamente o tráfego do cliente para o datacenter que tem a melhor disponibilidade para as solicitações de inferência do cliente.

Colaboradores

A Microsoft mantém este artigo. Os colaboradores a seguir escreveram este artigo.

Autor principal:

  • Kevin Kraus | Especialista Técnico Principal do Azure

Outros colaboradores:

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

Próximas etapas

Artigos introdutórios:

Documentação do produto: