Modifier

Automatiser l’identification, la classification et la recherche de documents en utilisant Durable Functions

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

Cet article décrit une architecture pour le traitement des fichiers de documents qui contiennent plusieurs documents de différents types. Il utilise l’extension Durable Functions d’Azure Functions pour implémenter les pipelines qui traitent les fichiers.

Architecture

Diagramme de l’architecture pour l’identification, la classification et la recherche de documents.

Téléchargez un fichier Visio de cette architecture.

Workflow

  1. L’utilisateur fournit un fichier de documents que l’application web charge. Le fichier contient plusieurs documents de différents types. Par exemple, il peut s’agir d’un fichier PDF ou TIFF multipage.

    1. Le fichier de documents est stocké dans Stockage Blob Azure.
    2. L’application web ajoute un message de commande à une file d’attente de stockage pour lancer le traitement du pipeline.
  2. L’orchestration de Durable Functions est déclenchée par le message de commande. Le message contient des métadonnées qui identifient l’emplacement dans Stockage Blob du fichier de documents à traiter. Chaque instance Durable Functions ne traite qu’un seul fichier de documents.

  3. La fonction d’activité Analyser appelle l’API Lecture de Vision par ordinateur, en passant l’emplacement dans le stockage du document à traiter. Les résultats de la reconnaissance optique de caractères (OCR) sont retournés à l’orchestration pour être utilisés par les activités suivantes.

  4. La fonction d’activité Classifier appelle le service de classifieur de documents hébergé dans un cluster Azure Kubernetes Service (AKS). Ce service utilise la correspondance des modèles d’expressions régulières pour identifier la page de début de chaque document connu et pour calculer le nombre de types de documents contenus dans le fichier de documents. Les types et les plages de pages des documents sont calculés et retournés à l’orchestration.

    Remarque

    Azure n’offre pas de service capable de classer plusieurs types de documents dans un même fichier. Cette solution utilise un service non-Azure hébergé dans AKS.

  5. La fonction d’activité Magasin de métadonnées enregistre les informations relatives au type de document et à la plage de pages dans un magasin Azure Cosmos DB.

  6. La fonction d’activité Indexation crée un document de recherche dans le service Recherche cognitive pour chaque type de document identifié et utilise les bibliothèques Azure AI Search pour .NET pour inclure dans le document de recherche la totalité des résultats de la reconnaissance optique de caractères (OCR) et des informations sur le document. Un ID de corrélation est également ajouté au document de recherche afin que les résultats de la recherche puissent être mis en correspondance avec les métadonnées de document correspondantes d’Azure Cosmos DB.

  7. Les utilisateurs finaux peuvent rechercher des documents d’après le contenu et les métadonnées. Les ID de corrélation dans le jeu de résultats de recherche peuvent être utilisés pour rechercher des enregistrements de document qui se trouvent dans Azure Cosmos DB. Les enregistrements incluent des liens vers le fichier de documents d’origine dans Stockage Blob.

Components

  • Durable Functions est une extension d’Azure Functions qui vous permet d’écrire des fonctions avec état dans un environnement de calcul serverless. Dans cette application, elle est utilisée pour gérer l’ingestion de documents et l’orchestration des workflows. Elle vous permet de définir des workflows avec état en écrivant des fonctions d’orchestrateur qui sont conformes au modèle de programmation Azure Functions. En arrière-plan, l’extension gère l’état, les points de contrôle et les redémarrages, ce qui vous permet de vous concentrer sur la logique métier.
  • Azure Cosmos DB est une base de données multimodèle distribuée mondialement, qui vous permet de faire évoluer le débit et la capacité de stockage de vos solutions dans le nombre de régions géographiques de votre choix. Des contrats de niveau de service (SLA) complets garantissent le débit, la latence, la disponibilité et la cohérence.
  • Stockage Azure est un ensemble de services cloud hautement évolutifs et sécurisés pour les données, les applications et les charges de travail. Il inclut Stockage Blob, Azure Files, Stockage Table Azure et Stockage File d’attente Azure.
  • Le service Azure App Service fournit une infrastructure pour la génération, le déploiement et la mise à l’échelle d’applications web. La fonctionnalité Web Apps est un service HTTP pour l’hébergement d’applications web, d’API REST et de back-ends mobiles. Avec Web Apps, vous pouvez développer dans .NET, .NET Core, Java, Ruby, Node.js, PHP ou Python. Les applications s’exécutent facilement et sont mises à l’échelle dans les environnements Windows et Linux.
  • Les services Azure AI fournissent des algorithmes intelligents pour voir, écouter, parler, comprendre et interpréter les besoins de vos utilisateurs en utilisant des méthodes de communication naturelles.
  • Azure AI Search fournit une expérience de recherche avancée sur des contenus privés et hétérogènes dans des applications web, mobiles et d’entreprise.
  • AKS est un service Kubernetes hautement disponible, sécurisé et complètement managé. AKS facilite le déploiement et la gestion des applications conteneurisées.

Autres solutions

Détails du scénario

Cet article décrit une architecture qui utilise Durable Functions pour implémenter des pipelines automatisés pour le traitement des fichiers de documents qui contiennent plusieurs documents de différents types. Les pipelines identifient les documents dans un fichier de documents, les classifient par type et stockent les informations qui peuvent être utilisées dans un traitement ultérieur.

De nombreuses entreprises doivent gérer et traiter des fichiers de documents contenant des documents qui ont été analysés en bloc et qui peuvent contenir plusieurs types de documents différents. En règle générale, les fichiers de documents sont des fichiers PDF ou des images TIFF multipages. Ces fichiers proviennent généralement de l’extérieur de l’organisation, et la société qui les reçoit n’en contrôle pas le contenu.

Compte tenu de ces contraintes, les organisations ont été obligées de créer leurs propres solutions d’analyse de documents, qui peuvent inclure une technologie personnalisée et des traitements manuels. Une solution peut inclure une intervention humaine pour fractionner des types de documents individuels et en faire ses propres fichiers, et pour ajouter des qualificateurs de classification pour chaque document.

Beaucoup de ces solutions personnalisées sont basées sur le modèle de workflow de machine à états et utilisent des systèmes de base de données pour la persistance de l’état du workflow, avec des services d’interrogation qui recherchent les états dont ils sont responsables pour le traitement. La maintenance et l’amélioration de ces solutions peuvent être difficiles et fastidieuses.

Les organisations recherchent des solutions fiables, évolutives et résilientes pour le traitement et la gestion de l’identification et de la classification des documents pour les types de fichiers utilisés par leur organisation. Ceci inclut le traitement de millions de documents par jour avec une visibilité complète sur la réussite ou l’échec du pipeline de traitement.

Cas d’usage potentiels

Cette solution s’applique à de nombreux domaines :

  • Rapports sur les titres. De nombreuses agences gouvernementales et municipalités gèrent des enregistrements papier qui n’ont pas été migrés au format numérique. Une solution automatisée efficace peut générer un fichier qui contient tous les documents nécessaires pour répondre à une demande de documents.
  • Enregistrements de maintenance. Des dossiers de maintenance des aéronefs, des locomotives et des machines continuent d’exister au format papier, et qui doivent être scannés et envoyés à des organisations externes.
  • Traitement des permis. Les services de permis des villes et des départements utilisent encore des documents papier générés pour les rapports d’inspection des permis. La possibilité de prendre une photo de plusieurs documents d’inspection, et d’identifier, classifier et rechercher automatiquement ces enregistrements peut être très utile.

Considérations

Ces considérations implémentent les piliers d’Azure Well-Architected Framework qui est un ensemble de principes directeurs qui permettent d’améliorer la qualité d’une charge de travail. Pour plus d’informations, consultez Microsoft Azure Well-Architected Framework.

Fiabilité

La fiabilité permet de s’assurer que votre application tient vos engagements auprès de vos clients. Pour plus d’informations, consultez la page Vue d’ensemble du pilier de fiabilité.

Une charge de travail fiable est une charge de travail à la fois résiliente et disponible. La résilience est la capacité d’un système à récupérer après des défaillances et à continuer de fonctionner. L’objectif de la résilience est que l’application retrouve un état entièrement fonctionnel suite à une défaillance. La disponibilité permet de mesurer si vos utilisateurs peuvent accéder à votre charge de travail quand ils en ont besoin.

Pour obtenir des informations sur la fiabilité des composants de la solution, consultez les ressources suivantes :

Optimisation des coûts

L’optimisation des coûts consiste à réduire les dépenses inutiles et à améliorer l’efficacité opérationnelle. Pour plus d’informations, consultez Vue d’ensemble du pilier d’optimisation des coûts.

Les coûts les plus importants de cette architecture proviennent potentiellement du stockage des fichiers image dans le compte de stockage, du traitement des images par les services Azure AI et des exigences de capacité des index dans le service AI Search.

Les coûts peuvent être optimisés en dimensionnant correctement le compte de stockage avec des stratégies de capacité réservée et de cycle de vie, via une planification appropriée de Azure AI Search pour les déploiements régionaux et une planification opérationnelle du de scale-up, et via l’utilisation de la tarification du niveau d’engagement disponible pour le service Vision par ordinateur - OCR pour gérer des coûts prévisibles.

Voici quelques recommandations pour optimiser les coûts :

  • Utilisez la stratégie de paiement à l’utilisation pour votre architecture, et effectuez un scale-out selon les besoins au lieu d’investir au départ dans des ressources à grande échelle.
  • Pensez aux coûts d’opportunité dans votre architecture ainsi qu’à l’équilibre entre être un pionnier ou être un suiveur. Utilisez la calculatrice de prix pour estimer le coût initial et les coûts opérationnels.
  • Établissez des stratégies, des budgets et des contrôles pour définir les limites de coût de votre solution.

Efficacité des performances

L’efficacité des performances est la capacité de votre charge de travail à s’adapter efficacement pour répondre aux besoins des utilisateurs. Pour plus d’informations, consultez Vue d’ensemble du pilier d’efficacité des performances.

Les périodes où cette solution traite des volumes élevés peuvent faire apparaître des goulots d’étranglement des performances. Veillez à bien comprendre et planifier les options de mise à l’échelle pour Azure Functions, la mise à l’échelle automatique de Azure AI et le partitionnement Azure Cosmos DB afin de garantir l’efficacité des performances de votre solution.

Contributeurs

Cet article est géré par Microsoft. Il a été écrit à l’origine par les contributeurs suivants.

Auteurs principaux :

Pour afficher les profils LinkedIn non publics, connectez-vous à LinkedIn.

Étapes suivantes

Articles de présentation :

Documentation du produit :