Cet exemple de scénario décrit un pipeline pour l’ingestion de masse et l’analyse en quasi-temps réel de documents provenant de flux d’actualités RSS publics. Il utilise Azure Cognitive Services pour fournir des insights utiles basés sur la traduction de texte, la reconnaissance faciale et la détection de sentiments. Plus précisément, les étapes de traitement d’image et de langage naturel sont interconnectées dans un pipeline de messagerie basé sur Azure Service Bus. La sortie du pipeline est une notification contenant l’insight ou l’analyse.
Architecture
Téléchargez un fichier Visio de cette architecture.
Dataflow
Les données circulent dans la solution comme suit :
Un flux RSS fait office de générateur qui obtient des données à partir d’un document ou d’un article. Par exemple, pour un article, les données incluent généralement un titre, un résumé du corps d’origine de l’élément d’actualité et parfois des images.
Un processus de génération ou d’ingestion insère l’article et toutes les images associées dans une collection Azure Cosmos DB.
Une notification déclenche une fonction de réception dans Azure Functions qui stocke le texte de l’article dans Azure Cosmos DB et les images d’article (le cas échéant) dans le Stockage Blob Azure. L’article est ensuite transmis à la file d’attente suivante.
Une fonction de traduction est déclenchée par l’événement de mise en file d'attente. Elle utilise l’API Translator d’Azure AI Services pour détecter la langue, la traduire si nécessaire et collecter le sentiment, les expressions clés et les entités à partir du corps du texte et du titre. Ensuite, il transmet l’article à la file d’attente suivante.
Une fonction de détection est déclenchée à partir de l’article mis en file d'attente. Elle utilise le service Vision par ordinateur pour détecter des objets, des points de repère et des mots écrits dans l’image associée, puis transmet l’article à la file d’attente suivante.
Une fonction de détection de visage est déclenchée à partir de l’article mis en file d’attente. Elle utilise l’API Visage d’Azure pour détecter les visages des personnes selon leur sexe et leur âge dans l’image associée, puis transmet l’article à la file d’attente suivante.
Lorsque toutes les fonctions sont terminées, la fonction de notification est déclenchée. Elle charge les enregistrements traités pour l’article et les analyse pour rechercher les résultats souhaités. Si un contenu est détecté, il est marqué par un indicateur et une notification est envoyée au système de votre choix.
À chaque étape du traitement, la fonction écrit les résultats dans Azure Cosmos DB. Enfin, vous pouvez utiliser les données comme bon vous semble. Par exemple, vous pouvez vous en servir pour améliorer les processus de votre entreprise, rechercher de nouveaux clients ou identifier des problèmes de satisfaction de vos clients.
Components
La liste de composants Azure suivante est utilisée dans cet exemple.
Le Stockage Azure est utilisé pour stocker des images brutes et des fichiers vidéo associés à un article. Un compte de stockage secondaire est créé avec Azure App Service et est utilisé pour héberger le code et les journaux de la solution Azure Function.
Azure Cosmos DB contient des informations sur le texte, l’image et le suivi vidéo de l’article. Les résultats des étapes de Azure AI services sont également stockés ici.
Azure Functions exécute le code de fonction utilisé pour répondre aux messages de la file d’attente et transformer le contenu entrant. Azure App Service héberge le code de la fonction et traite les enregistrements en série. Ce scénario comprend cinq fonctions : Réception, Transformation, Détection d’objet, Visage et Notification.
Azure Service Bus héberge les files d’attente Azure Service Bus utilisées par les fonctions.
Azure AI services fournit l’intelligence artificielle pour le pipeline en fonction des implémentations du service Vision par ordinateur, de l’API Visage et du service de traduction automatique Translator.
Azure Application Insights fournit des analytiques pour vous aider à diagnostiquer les problèmes et à comprendre les fonctionnalités de votre application.
Autres solutions
Au lieu d’utiliser un modèle basé sur les notifications de file d’attente et Azure Functions, vous pouvez utiliser un modèle de rubrique et d’abonnement pour ce flux de données. Vous pouvez utiliser des rubriques Azure Service Bus pour traiter les différentes parties de l’article en parallèle, contrairement au traitement en série effectué dans cet exemple. Pour plus d’informations, consultez l’article Files d’attente, rubriques et abonnements Service Bus.
Utilisez Azure Logic Apps pour implémenter le code de la fonction et le verrouillage au niveau de l’enregistrement, comme celui fourni par l’algorithme Redlock (nécessaire pour le traitement en parallèle tant qu’Azure Cosmos DB ne prend pas en charge les mises à jour partielles de documents). Pour plus d’informations, comparez Azure Functions et Azure Logic Apps.
Implémentez cette architecture à l’aide de composants d’IA personnalisés plutôt que de services Azure existants. Par exemple, étendez le pipeline à l’aide d’un modèle personnalisé qui détecte certaines personnes dans une image, par opposition aux données de nombre, de sexe et d’âge des utilisateurs génériques collectées dans cet exemple. Pour utiliser des modèles Machine Learning ou d’IA personnalisés avec cette architecture, générez les modèles en tant que points de terminaison RESTful pour qu’ils puissent être appelés depuis Azure Functions.
Utilisez un autre mécanisme d’entrée plutôt que des flux RSS. Utilisez plusieurs générateurs ou processus d’ingestion pour alimenter les services Azure Cosmos DB et Stockage Azure.
La Recherche cognitive Azure est une fonctionnalité IA de la Recherche Azure qui peut également être utilisée pour extraire du texte dans des images, des blobs et d’autres sources de données non structurées.
Détails du scénario
Ce scénario contient des exemples pour des flux d’actualités en anglais, russe et allemand, mais vous pouvez facilement l’étendre à d’autres flux RSS et d’autres langues. Pour faciliter le déploiement, la collecte, le traitement et l’analyse des données sont entièrement basés sur des services Azure.
Cas d’usage potentiels
Bien que ce scénario soit basé sur le traitement des flux RSS, il peut aussi s’appliquer au traitement d’un document, site web ou article dans lequel vous devez :
- Traduire du texte dans la langue de votre choix.
- Rechercher des expressions clés, des entités et des sentiments d’utilisateur dans du contenu numérique.
- Détecter des objets, du texte et des points de repère dans les images associées à un article numérique.
- Détecter des personnes en fonction de leur sexe et de leur âge dans des images associées à du contenu numérique.
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.
Par souci de simplicité, cet exemple de scénario utilise uniquement certains services et API disponibles à partir d’Azure AI Services. Par exemple, le texte des images peut être analysé à l’aide de l’API Analyse de texte. La langue cible de ce scénario est supposée être l’anglais, mais vous pouvez la remplacer par n’importe quelle langue prise en charge.
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é.
Azure Cosmos DB utilise une connexion sécurisée et une signature d’accès partagé par le biais du Kit de développement logiciel (SDK) C# fourni par Microsoft. Il n’y a pas d’autres surface d'exposition externe. En savoir plus sur les meilleures pratiques en matière de sécurité pour Azure Cosmos DB.
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.
Azure Cosmos DB est un outil puissant, mais son déploiement est plus coûteux. Vous pouvez utiliser une autre solution de stockage en refactorisant le code Azure Functions fourni.
La tarification des Azure Functions varie selon le plan dans lequel il s’exécute.
Excellence opérationnelle
L’excellence opérationnelle couvre les processus opérationnels qui déploient une application et la maintiennent en production. Pour plus d’informations, consultez la Liste de contrôle de l'examen de la conception pour l'excellence opérationnelle.
Cette solution utilise Application Insights pour collecter des informations sur les performances et la journalisation. Une instance de Application Insights est créée avec le déploiement dans le même groupe de ressources que les autres services nécessaires à ce déploiement.
Pour afficher les journaux générés par la solution :
Accédez au Portail Azure, puis au groupe de ressources créé pour le déploiement.
Sélectionnez l’instance Application Insights.
Dans la section Application Insights, accédez à Examiner\Rechercher, puis recherchez les données.
Efficacité des performances
L’efficacité des performances est la capacité de votre charge de travail à s’adapter à la demande des utilisateurs de façon efficace. Pour en savoir plus, consultez Liste de vérification de l'examen de la conception pour l'efficacité des performances
La mise à l’échelle d’Azure Functions dépend de votre plan d’hébergement. Cette solution suppose un plan de consommation dans lequel la puissance de calcul est automatiquement allouée aux fonctions quand cela est nécessaire. Vous payez uniquement lorsque vos fonctions sont exécutées. Une autre option est d’utiliser un plan dédié qu vous permet de vous adapter selon les niveaux afin d’allouer une quantité différente de ressources.
L’utilisation optimale d’Azure Cosmos DB, consiste à distribuer votre charge de travail à peu près uniformément entre un nombre suffisant de clés de partition. Il n’existe aucune limite à la quantité totale de données qu’un conteneur peut stocker ou à la quantité totale de débit qu’un conteneur peut prendre en charge.
Déployer ce scénario
Notes
Vous devez disposer d’un compte Azure existant. Si vous n’avez pas d’abonnement Azure, créez un compte gratuit avant de commencer.
Tout le code de ce scénario est disponible dans le référentiel GitHub. Ce référentiel contient le code source utilisé pour créer l’application de générateur qui alimente le pipeline pour cette démonstration.
Étapes suivantes
- Sélection d’un magasin de données analytiques dans Azure
- Sélection d’une technologie d’analytique de données dans Azure
- Sélectionner une technologie de stockage de Big Data dans Azure
- Introduction à Stockage Blob Azure
- Bienvenue dans Azure Cosmos DB
- Présentation d’Azure Functions
Ressources associées
Architectures analytiques supplémentaires :