Modifier

Analyser les flux d’actualités avec l’analytique en quasi-temps réel à l’aide du traitement des images et du langage naturel

Azure Cosmos DB
Azure Functions
Azure Service Bus
Traduction de texte Translator Text Azure
Visage Azure

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

Diagramme de l’architecture : ingérer et analyser des flux RSS à l’aide du traitement de texte et d’image, enfin envoyer des notifications.Télécharger un fichier Visio de cette architecture.

Dataflow

Les données circulent dans la solution comme suit :

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

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

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

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

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

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

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

  • 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 Cognitive 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 Cognitive 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 Cognitive 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.

Extensibilité

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.

Gestion et journalisation

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 :

  1. Accédez au Portail Azure, puis au groupe de ressources créé pour le déploiement.

  2. Sélectionnez l’instance Application Insights.

  3. Dans la section Application Insights, accédez à Examiner\Rechercher, puis recherchez les données.

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 plus d’informations, consultez Vue d’ensemble du pilier 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 Vue d’ensemble du pilier d’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.

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

Architectures analytiques supplémentaires :