Bearbeiten

Freigeben über


Analysieren Sie Newsfeeds mit Quasi-Echtzeit-Analysen unter Verwendung von Bild- und natürlicher Sprachverarbeitung

Azure Cosmos DB
Azure-Funktionen
Azure-Servicebus
Azure Translator Text
Azure-Gesichtserkennung

In diesem Beispielszenario wird eine Pipeline für die Massendatenerfassung und nahezu-Echtzeitanalyse von Dokumenten unter Verwendung öffentlicher RSS-Newsfeeds beschrieben. Dazu wird Azure Cognitive Services verwendet, um nützliche Erkenntnisse basierend auf Textübersetzung, Gesichts- und Stimmungserkennung zu liefern. Insbesondere werden Die Verarbeitungsschritte für Bilder und natürliche Sprache in einer Messaging-Pipeline basierend auf Azure Service Busmiteinander verbunden. Die Ausgabe der Pipeline ist eine Benachrichtigung, die die Erkenntnis oder Analyse enthält.

Aufbau

Architekturdiagramm: Aufnahme und Analyse von RSS-Feeds mithilfe von Bild- und Textverarbeitung und Senden von Benachrichtigungen. Laden Sie eine Visio-Datei dieser Architektur herunter.

Datenfluss

Die Daten durchlaufen die Lösung wie folgt:

  1. Ein RSS-Nachrichtenfeed fungiert als Generator, der Daten aus einem Dokument oder Artikel abruft. Beispielsweise enthalten Daten in einem Artikel typischerweise einen Titel, eine Zusammenfassung des Inhalts der Nachricht und mitunter Bilder.

  2. Ein Generator- oder Erfassungsprozess fügt den Artikel und alle zugehörigen Bilder in eine Azure Cosmos DB-Sammlung ein.

  3. Eine Benachrichtigung löst eine Erfassungsfunktion in Azure Functions aus, die den Artikeltext in Azure Cosmos DB und die Artikelbilder (falls vorhanden) in Azure Blob Storage speichert. Der Artikel wird dann an die nächste Warteschlange übergeben.

  4. Eine Übersetzungsfunktion wird durch das Warteschlangenereignis ausgelöst. Sie verwendet die Textübersetzungs-API von Azure Cognitive Services, um die Sprache zu erkennen, den Text bei Bedarf zu übersetzen und die Stimmung, Schlüsselbegriffe und Entitäten in Text und Titel zu sammeln. Der Artikel wird anschließend an die nächste Warteschlange übergeben.

  5. Im Artikel in der Warteschlange wird eine Erkennungsfunktion ausgelöst. Sie verwendet den Dienst Maschinelles Sehen, um Objekte, Orientierungspunkte und geschriebene Wörter im zugehörigen Bild zu erkennen, und leitet den Artikel dann an die nächste Warteschlange weiter.

  6. Im Artikel in der Warteschlange wird eine Gesichtserkennungsfunktion ausgelöst. Sie verwendet die Gesichtserkennungs-API von Azure, um Geschlecht und Alter von Gesichtern im zugehörigen Bild zu erkennen, und leitet den Artikel dann an die nächste Warteschlange weiter.

  7. Wenn alle Funktionen abgeschlossen sind, wird die Benachrichtigungsfunktion ausgelöst. Sie lädt die für den Artikel verarbeiteten Datensätzen und untersucht sie auf gewünschte Ergebnisse. Bei einem Fund wird der Inhalt markiert und eine Benachrichtigung an das System Ihrer Wahl gesendet.

Bei jedem Verarbeitungsschritt schreibt die Funktion die Ergebnisse in Azure Cosmos DB. Schließlich können die Daten nach Belieben verwendet werden. Sie können damit beispielsweise Geschäftsprozesse verbessern, neue Kunden ausfindig machen oder Probleme mit der Kundenzufriedenheit aufdecken.

Komponenten

Bei diesem Beispiel werden die Azure-Komponenten in der folgenden Liste verwendet.

  • Azure Storage dient zum Speichern von unbearbeiteten Bild- und Videodateien, die einem Artikel zugeordnet sind. Ein sekundäres Speicherkonto wird mit Azure App Service erstellt, das zum Hosten des Azure-Funktionscodes und von Protokollen dient.

  • Azure Cosmos DB enthält Nachverfolgungsinformationen zu Text, Bildern und Videos im Artikel. Die Ergebnisse der Cognitive Services-Schritte werden ebenfalls hier gespeichert.

  • Azure Functions führt den Funktionscode aus, der verwendet wird, um auf Warteschlangennachrichten zu reagieren und den eingehenden Inhalt zu transformieren. Azure App Service hostet den Funktionscode und verarbeitet die Datensätze seriell. Dieses Szenario umfasst fünf Funktionen: Erfassung, Transformation, Objekterkennung, Gesichtserkennung und Benachrichtigung.

  • Azure Service Bus hostet die Azure Service Bus-Warteschlangen, die von den Funktionen verwendet werden.

  • Azure Cognitive Services liefert die KI für die Pipeline basierend auf Implementierungen des Diensts Maschinelles Sehen, der Gesichtserkennungs-API und des maschinellen Übersetzungsdiensts Text übersetzen.

  • Azure Application Insights bietet Analysen, die Ihnen helfen, Probleme zu diagnostizieren und die Funktionalität Ihrer Anwendung zu verstehen.

Alternativen

  • Anstatt ein Muster zu verwenden, das auf Warteschlangenbenachrichtigungen und Azure Functions basiert, können Sie ein Thema and Abonnement Muster für diesen Datenfluss verwenden. Azure Service Bus-Themen können verwendet werden, um die verschiedenen Teile des Artikels im Gegensatz zur in diesem Beispiel durchgeführten seriellen Verarbeitung parallel zu verarbeiten. Weitere Informationen finden Sie unter Warteschlangen und Themen.

  • Azure Logic Apps können für die Implementierung von Funktionscode und Sperren auf Datensatzebene wie zum Beispiel denen des Redlock-Algorithmus benutzt werden (was für die Parallelverarbeitung erforderlich ist, bis Azure Cosmos DB partielle Dokumentaktualisierungen unterstützt). Weitere Informationen finden Sie unter Vergleich zwischen Azure Functions und Azure Logic Apps.

  • Implementieren Sie diese Architektur mit angepassten KI-Komponenten anstatt mit bestehenden Azure-Diensten. Erweitern Sie beispielsweise die Pipeline um ein benutzerdefiniertes Modell, das bestimmte Personen in einem Bild erkennt, im Gegensatz zu den in diesem Beispiel gesammelten allgemeinen Daten zu Anzahl, Geschlecht und Alter von Personen. Um angepasste Machine Learning- oder KI-Modelle mit dieser Architektur zu verwenden, erstellen Sie die Modelle als RESTful-Endpunkte, damit sie von Azure Functions aufgerufen werden können.

  • Verwenden Sie anstelle von RSS-Feeds einen anderen Eingabemechanismus. Nutzen Sie mehrere Generatoren oder Erfassungsprozesse, um Daten in Azure Cosmos DB und Azure Storage zu übertragen.

  • Azure Cognitive Search ist eine AI-Funktion in Azure Search, die auch zum Extrahieren von Text aus Bildern, Blobs und anderen unstrukturierten Datenquellen verwendet werden kann.

Szenariodetails

Dieses Szenario enthält Beispiele für Nachrichten-Feeds in Englisch, Russisch und Deutsch, aber Sie können es ganz einfach auf andere RSS-Feeds und andere Sprachen erweitern. Um die Bereitstellung zu erleichtern, basieren Erfassung, Verarbeitung und Analyse der Daten vollständig auf Azure-Diensten.

Mögliche Anwendungsfälle

Obwohl dieses Szenario auf der Verarbeitung von RSS-Feeds basiert, ist es für alle Dokumente, Websites oder Artikel relevant, für die Folgendes gewünscht wird:

  • Textübersetzung in die Sprache Ihrer Wahl.
  • Bestimmen von Schlüsselbegriffen, Entitäten und Benutzerstimmung in digitalen Inhalten
  • Erkennen von Objekten, Text und Orientierungspunkten in Bildern, die mit einem digitalen Artikel verknüpft sind
  • Erkennen von Personen in Bildern in digitalen Inhalten anhand ihres Geschlechts und Alters.

Überlegungen

Diese Überlegungen setzen die Säulen des Azure Well-Architected Framework um, das eine Reihe von Leitprinzipien enthält, die zur Verbesserung der Qualität eines Workloads verwendet werden können. Weitere Informationen finden Sie unter Microsoft Azure Well-Architected Framework.

Der Einfachheit halber werden in diesem Beispielszenario nur einige der verfügbaren APIs und Dienste von Azure Cognitive Services verwendet. So kann beispielsweise Text in Bildern mit der Textanalyse-API analysiert werden. Als Zielsprache wird in diesem Szenario Englisch angenommen, aber Sie können die Eingabe in eine beliebige unterstützte Sprache Ihrer Wahl ändern.

Skalierbarkeit

Die Skalierung von Azure Functions hängt von dem von Ihnen verwendeten Hostingplan ab. Diese Lösung geht von einem Verbrauchstarif aus, bei dem den Funktionen bei Bedarf automatisch Rechenleistung zugewiesen wird. Kosten fallen nur an, wenn Ihre Funktionen ausgeführt werden. Eine weitere Option ist die Verwendung eines Dedicated Plans, mit dem Sie zwischen Ebenen skalieren können, um eine unterschiedliche Menge von Ressourcen zu verteilen.

Der wichtigste Punkt bei Azure Cosmos DB ist, dass Ihre Workload zu ungefähr gleichen Teilen auf eine ausreichend große Anzahl von Partitionsschlüsseln verteilt wird. Es gibt keine Begrenzung der Gesamtdatenmenge, die ein Container speichern kann, oder des gesamten Durchsatzes, den ein Container unterstützen kann.

Verwaltung und Protokollierung

Diese Lösung nutzt Application Insights, um Leistungs- und Protokollierungsinformationen zu sammeln. Eine Instanz von Application Insights wird erstellt, wobei die Bereitstellung in der Ressourcengruppe erfolgt, die den anderen für diese Bereitstellung benötigten Diensten entspricht.

So zeigen Sie die von der Lösung generierten Protokolle an

  1. Navigieren Sie im Azure-Portal zur Ressourcengruppe, die Sie für die Bereitstellung erstellt haben.

  2. Klicken Sie auf die Application Insights-Instanz.

  3. Navigieren Sie im Abschnitt Application Insights zu Untersuchen\Suchen, und durchsuchen Sie die Daten.

Sicherheit

Sicherheit bietet Schutz vor vorsätzlichen Angriffen und dem Missbrauch Ihrer wertvollen Daten und Systeme. Weitere Informationen finden Sie unter Übersicht über die Säule „Sicherheit“.

Azure Cosmos DB verwendet über das von Microsoft bereitgestellte C# SDK eine geschützte Verbindung und SAS-Signatur. Es gibt keine weiteren extern zugänglichen Oberflächenbereiche. Erfahren Sie mehr über bewährte Methoden für die Sicherheit von Azure Cosmos DB.

Kostenoptimierung

Bei der Kostenoptimierung geht es um die Suche nach Möglichkeiten, unnötige Ausgaben zu reduzieren und die Betriebseffizienz zu verbessern. Weitere Informationen finden Sie unter Übersicht über die Säule „Kostenoptimierung“.

Azure Cosmos DB ist leistungsstark, verursacht aber die meisten Kosten in dieser Bereitstellung. Sie können eine andere Speicherlösung verwenden, indem Sie den bereitgestellten Azure Functions-Code umgestalten.

Die Preise für Azure Functions variieren je nach verwendetem Plan.

Bereitstellen dieses Szenarios

Hinweis

Sie benötigen ein bestehendes Azure-Konto. Wenn Sie kein Azure-Abonnement besitzen, können Sie ein kostenloses Konto erstellen, bevor Sie beginnen.

Der gesamte Code für dieses Szenario steht im GitHub-Repository zur Verfügung. Dieses Repository enthält den Quellcode, der zum Erstellen der Generatoranwendung verwendet wird, die die Pipeline für diese Demo mit Daten versorgt.

Nächste Schritte

Zusätzliche Analysearchitekturen: