Automatiser le traitement des formulaires PDF
Cet article décrit une architecture Azure que vous pouvez utiliser pour remplacer des méthodes de traitement de formulaires coûteuses et inflexibles par un traitement PDF automatisé économique et flexible.
Architecture
Téléchargez un fichier PowerPoint de cette architecture.
Flux de travail
- Un compte de messagerie Outlook désigné reçoit des fichiers PDF sous forme de pièces jointes. L’arrivée d’un e-mail déclenche une application logique pour le traiter. L’application logique est créée à l’aide des fonctionnalités d’Azure Logic Apps.
- L’application logique charge les fichiers PDF dans un conteneur dans Azure Data Lake Storage.
- Vous pouvez également charger manuellement ou par programmation des fichiers PDF dans le même conteneur PDF.
- L’arrivée d’un fichier PDF dans le conteneur PDF déclenche une autre application logique pour traiter les formulaires PDF qui se trouvent dans le fichier PDF.
- L’application logique envoie l’emplacement du fichier PDF à une application de fonction pour traitement. L’application de fonction est créée à l’aide des fonctionnalités d’Azure Functions.
- L’application de fonction reçoit l’emplacement du fichier et effectue les actions suivantes :
- Il fractionne le fichier en pages uniques si le fichier comporte plusieurs pages. Chaque page contient un formulaire indépendant. Les fichiers fractionnés sont enregistrés dans un deuxième conteneur dans Data Lake Storage.
- Il utilise HTTPS POST, une API REST Azure, pour envoyer l’emplacement du fichier PDF monopage à AI Document Intelligence à des fins de traitement. Lorsque Azure AI Document Intelligence termine son traitement, il envoie une réponse à l’application de fonction, qui place les informations dans une structure de données.
- Il crée un fichier de données JSON qui contient les données de réponse et stocke le fichier dans un troisième conteneur dans Data Lake Storage.
- L’application logique de traitement des formulaires reçoit les données de réponse traitées.
- L’application logique de traitement des formulaires envoie les données traitées à Azure Cosmos DB, qui enregistre les données dans une base de données et dans des collections.
- Power BI obtient les données d’Azure Cosmos DB et fournit des insights et des tableaux de bord.
- Vous pouvez implémenter un traitement supplémentaire si nécessaire sur les données qui se trouvent dans Azure Cosmos DB.
Composants
- Azure AI Document Intelligence, un service cloud qui vous permet de créer des solutions de traitement de documents intelligentes. Il applique le Machine Learning avancé pour extraire du texte, des paires clé-valeur, des tables et des structures à partir de documents automatiquement et avec précision. Dans cette architecture, il s’agit du service de traitement de documents intelligent utilisé pour extraire des informations à partir de documents PDF.
- Azure Logic Apps est un service cloud serverless pour la création et l’exécution de workflows automatisés qui intègrent vos applications, données, services et systèmes. Dans cette architecture, il est utilisé comme orchestrateur pour coordonner l’entrée utilisateur, le stockage de documents, le traitement des documents, le stockage des résultats et l’analyse des documents traités.
- Azure Functions est une solution serverless qui vous permet d’écrire moins de code, de maintenir une infrastructure plus légère et de réduire les coûts. Dans cette architecture, il s’agit des services principaux qui configurent les entrées pour utiliser Azure AI Document Intelligenceet stocker la sortie.
- Azure Data Lake Storage est la base pour créer des lacs de données d’entreprise sur Azure. Dans cette architecture, il est utilisé pour stocker les documents PDF bruts, les résultats de Machine Learning et la sortie traitée.
- Azure Cosmos DB est une base de données NoSQL et relationnelle complètement managée pour développer des applications modernes. Dans cette architecture, elle est utilisée pour stocker les insights extraits de chaque document PDF. Les informations sont utilisées par Power BI pour produire des insights.
- Power BI est un ensemble de services logiciels, d’applications et de connecteurs qui œuvrent de concert pour transformer vos sources de données en insights cohérents, visuellement immersifs et interactifs. Dans cette architecture, elle est utilisée pour analyser les résultats du traitement des documents.
Autres solutions
- Au lieu d’utiliser Power BI, vous pouvez utiliser Microsoft Fabric pour ingérer la sortie traitée dans un Lakehouse, puis effectuer une analyse et un traitement supplémentaires des données de sortie.
Détails du scénario
Le traitement des formulaires est souvent une fonction métier critique. De nombreuses entreprises s’appuient encore sur des processus manuels coûteux, chronophages et sujets aux erreurs. Le remplacement des processus manuels réduit les coûts et les risques et rend une entreprise plus agile.
Cet article décrit une architecture que vous pouvez utiliser pour remplacer le traitement manuel de formulaires PDF ou les systèmes hérités coûteux qui automatisent le traitement des formulaires PDF. Azure AI Document Intelligence traite les formulaires PDF, Logic Apps fournit le flux de travail et Functions fournit des fonctionnalités de traitement des données.
Pour plus d’informations sur le déploiement, consultez Déployer ce scénario dans cet article.
Cas d’usage potentiels
La solution décrite dans cet article peut traiter de nombreux types de formulaires, notamment :
- Factures et dossiers de paiement
- Commandes achat
- Enregistrements de sécurité, incidents et conformité
- Formulaires de dépistage de santé
- Formulaires de retour des clients
- Dossiers des employés
- Documents universitaires et recherches
- Documents contenant des annotations manuscrites
- Documents personnalisés pour votre domaine
Considérations
Ces considérations implémentent les piliers d’Azure Well-Architected Framework, un ensemble de principes directeurs que vous pouvez utiliser pour 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 en savoir plus, consultez Liste de contrôle de l'examen de la conception pour la fiabilité.
Une charge de travail fiable est une charge de travail à la fois résiliente et disponible. La résilience est la capacité du 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.
Cette architecture est conçue comme une architecture de démarrage que vous pouvez déployer et prototyper rapidement pour fournir une solution métier. Si votre prototype réussit, vous pouvez étendre et améliorer l’architecture, si nécessaire, pour répondre à des exigences supplémentaires.
Cette architecture utilise une infrastructure et des technologies Azure évolutives et résilientes. Par exemple, Azure Cosmos DB dispose d’une redondance intégrée et d’une couverture globale que vous pouvez configurer pour répondre à vos besoins.
Pour obtenir les garanties de disponibilité des services Azure que cette solution utilise, consultez Contrats de niveau de service (SLA) des services en ligne.
Sécurité
La sécurité fournit des garanties contre les attaques délibérées, et contre l’utilisation abusive de vos données et systèmes importants. Pour en savoir plus, consultez Liste de contrôle de l'examen de la conception pour la sécurité.
Le compte de messagerie Outlook utilisé dans cette architecture est un compte de messagerie dédié qui reçoit des formulaires PDF en tant que pièces jointes. Il est recommandé de limiter les expéditeurs aux parties de confiance uniquement et d’empêcher les acteurs malveillants de spammer le compte de messagerie.
L’implémentation de cette architecture décrite dans Déployer ce scénario prend les mesures suivantes pour renforcer la sécurité :
- Les scripts de déploiement PowerShell et Bicep utilisent Azure Key Vault pour stocker des informations sensibles afin qu’elles ne soient pas affichées sur les écrans de terminal ni stockées dans les journaux de déploiement.
- Les identités managées fournissent une identité managée automatiquement dans Microsoft Entra ID que des applications utilisent lors de la connexion à des ressources qui prennent en charge l’authentification Microsoft Entra. L’application de fonction utilise des identités managées pour que le code ne dépende pas de principaux individuels et ne contienne pas d’informations d’identité sensibles.
Optimisation des coûts
L’optimisation des coûts consiste à examiner les moyens de réduire les dépenses inutiles et d’améliorer l’efficacité opérationnelle. Pour plus d'informations, consultez Liste de contrôle de la révision de la conception pour l'optimisation des coûts.
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 dans des ressources à grande échelle au départ.
- L’implémentation de l’architecture décrite dans Déployer ce scénario déploie une solution de départ adaptée à la preuve de concept. Les scripts de déploiement créent une architecture de travail avec des besoins en ressources minimales. Par exemple, les scripts de déploiement créent un plus petit hôte Linux serverless pour exécuter l’application de fonction.
Efficacité des performances
L’efficacité des performances est la capacité de votre charge de travail à mettre à l’échelle de manière efficace pour répondre aux demandes qui sont placées sur celle-ci par les utilisateurs. Pour en savoir plus, consultez Liste de vérification de l'examen de la conception pour l'efficacité des performances
Cette architecture utilise des services qui ont des fonctionnalités de mise à l’échelle intégrées que vous pouvez utiliser pour améliorer les performances. Voici quelques exemples :
- Vous pouvez héberger Azure Logic Apps et Azure Functions dans une infrastructure serverless. Pour plus d’informations, voir Vue d’ensemble d’Azure serverless : créer des applications et des solutions cloud avec Azure Logic Apps et Azure Functions.
- Vous pouvez configurer Azure Cosmos DB pour mettre automatiquement à l’échelle son débit. Pour plus d’informations, voir Provisionner le débit avec mise à l’échelle automatique sur une base de données ou un conteneur dans Azure Cosmos DB – API pour NoSQL.
Déployer ce scénario
Vous pouvez déployer une version rudimentaire de cette architecture et l’utiliser comme point de départ pour le déploiement de votre propre solution. Le référentiel comprend du code, des scripts de déploiement et un guide de déploiement.
L’exemple reçoit les formulaires PDF, extrait les champs de données et enregistre les données dans Azure Cosmos DB. Power BI visualise les données. La conception utilise une méthodologie modulaire basée sur les métadonnées. Aucun champ de formulaire n’est codé en dur. Il peut traiter n’importe quel formulaire PDF.
Vous pouvez utiliser le référentiel tel quel, sans modification du code, pour traiter et visualiser les formulaires PDF d’une seule page, tels que les formulaires de sécurité, les factures, les enregistrements d’incident et bien d’autres. Pour l’utiliser, il vous suffit de collecter des exemples de formulaires PDF, d’entraîner un nouveau modèle pour apprendre la disposition des formulaires et de connecter le modèle à la solution. Vous devez également reconcevoir le rapport Power BI pour vos jeux de données pour qu’il fournisse les insights souhaités.
L’implémentation utilise Azure AI Document Intelligence Studio pour créer des modèles personnalisés. L’exemple utilise les noms de champs enregistrés dans le modèle Machine Learning comme référence pour traiter d’autres formulaires. Seuls cinq exemples de formulaires sont nécessaires pour créer un modèle Machine Learning personnalisé. Vous pouvez fusionner jusqu’à 100 modèles personnalisés pour créer un modèle Machine Learning composite qui peut traiter divers formulaires.
Référentiel de déploiement
Le code de cet exemple se trouve dans le référentiel GitHub Solution d’automatisation du traitement des formulaires PDF Azure. Suivez le guide de déploiement dans le référentiel.
Points à prendre en considération pour le déploiement
Pour traiter un nouveau type de formulaire PDF, vous utilisez des exemples de fichiers PDF pour créer un modèle Machine Learning. Lorsque le modèle est prêt, vous connectez l’ID de modèle à la solution.
Ce nom de conteneur est configurable dans les scripts de déploiement que vous obtenez à partir du référentiel GitHub.
L’architecture ne répond à aucune exigence de haute disponibilité ou de récupération d’urgence. Si vous souhaitez étendre et améliorer l’architecture actuelle pour le déploiement de production, tenez compte des recommandations et meilleures pratiques suivantes :
- Concevez l’architecture HA/DR en fonction de vos besoins et utilisez les fonctionnalités de redondance intégrées, le cas échéant.
- Mettez à jour le code de déploiement Bicep pour créer un environnement informatique capable de gérer vos volumes de traitement.
- Mettez à jour le code de déploiement Bicep pour créer davantage d’instances des composants d’architecture afin de répondre à vos exigences en matière de haute disponibilité/récupération d’urgence.
- Suivez les instructions de redondance de Stockage Azure lorsque vous concevez et approvisionnez du stockage.
- Suivez les instructions de continuité d’activité et de récupération d’urgence lorsque vous concevez et approvisionnez les applications logiques.
- Suivez les instructions de Fiabilité dans Azure Functions lorsque vous concevez et approvisionnez l’application de fonction.
- Suivez les instructions de la section Haute disponibilité avec Azure Cosmos DB lorsque vous concevez et approvisionnez une base de données créée à l’aide d’Azure Cosmos DB.
- Si vous envisagez de mettre ce système en production pour traiter de grands volumes de formulaires PDF, vous pouvez modifier les scripts de déploiement pour créer un hôte Linux dôté de plus de ressources. Pour ce faire, modifiez le code à l’intérieur de deploy-functionsapp.bicep
Contributeurs
Cet article est géré par Microsoft. Il a été écrit à l’origine par les contributeurs suivants.
Auteur principal :
- Gail Zhou | Ingénieur logiciel principal
Autres contributeurs :
- Said Nikjou | Architecte de solutions cloud senior
- Nalini Chandhi | Responsable principal de l’ingénierie logicielle
- Steve DeMarco | Spécialiste technique principal
- Travis Hilbert | Ingénieur logiciel II
- DB Lee | Ingénieur logiciel principal
- Malory Rose | Ingénieur logiciel sr.
- Oscar Shimabukuro | Architecte de solution cloud senior
- Echo Wang | Architecte de solution
Pour afficher les profils LinkedIn non publics, connectez-vous à LinkedIn.
Étapes suivantes
- Vidéo : Automatisation du traitement des formulaires PDF Azure.
- Référentiel GitHub Solution d’automatisation du traitement des formulaires PDF Azure
- Référentiel GitHub Solution d’automatisation Azure Invoice Process
- Référentiel GitHub Automatisation des processus métier
- Tutoriel : Créer des workflows qui traitent les e-mails avec Azure Logic Apps, Azure Functions et Stockage Azure
Ressources associées
- Modèles de traitement de documents personnalisés sur Azure
- Contenu et métadonnées du fichier d’index à l’aide de Recherche Azure AI
- Automatiser l’identification, la classification et la recherche de documents en utilisant Durable Functions
- Automatiser le traitement des documents à l’aide d’Azure AI Document Intelligence