Nieuwsfeeds analyseren met bijna realtime analyses met behulp van afbeeldings- en natuurlijke taalverwerking

Azure Cosmos DB
Azure Functions
Azure Service Bus
Azure Translator Text
Azure Face

In dit voorbeeldscenario wordt een pijplijn beschreven voor massaopname en bijna realtime analyse van documenten die afkomstig zijn van openbare RSS-nieuwsfeeds. Azure Cognitive Services wordt gebruikt om nuttige inzichten te bieden op basis van tekstomzetting, gezichtsherkenning en gevoelsdetectie. De stappen voor de verwerking van afbeeldingen en natuurlijke taal worden met elkaar verbonden in een berichtenpijplijn op basis van Azure Service Bus. De uitvoer van de pijplijn is een melding met het inzicht of de analyse.

Architectuur

Architectuurdiagram: RSS-feeds opnemen en analyseren met behulp van afbeeldings- en tekstverwerking en meldingen verzenden.Download een Visio-bestand van deze architectuur.

Gegevensstroom

De gegevens stromen als volgt door de oplossing:

  1. Een RSS-nieuwsfeed fungeert als de generator die gegevens uit een document of artikel verkrijgt. Bij een artikel bevatten gegevens bijvoorbeeld meestal een titel, een samenvatting van de oorspronkelijke hoofdtekst van het nieuwsitem en soms afbeeldingen.

  2. Een generator of opnameproces voegt het artikel en eventuele bijbehorende installatiekopieën in een Azure Cosmos DB-verzameling in.

  3. Een melding activeert een opnamefunctie in Azure Functions waarmee de artikeltekst wordt opgeslagen in Azure Cosmos DB en de artikelafbeeldingen (indien aanwezig) in Azure Blob Storage. Het artikel wordt vervolgens doorgegeven aan de volgende wachtrij.

  4. Een vertaalfunctie wordt geactiveerd door de wachtrijgebeurtenis. Er wordt gebruikgemaakt van de Vertaaltekst-API van Azure Cognitive Services om de taal te detecteren, indien nodig te vertalen en het gevoel, de sleuteltermen en de entiteiten uit de hoofdtekst en de titel te verzamelen. Vervolgens wordt het artikel doorgegeven aan de volgende wachtrij.

  5. Er wordt een detectiefunctie geactiveerd vanuit het artikel in de wachtrij. De Computer Vision-service wordt gebruikt om objecten, oriëntatiepunten en geschreven woorden in de bijbehorende afbeelding te detecteren en het artikel vervolgens door te geven aan de volgende wachtrij.

  6. Er wordt een gezichtsfunctie geactiveerd vanuit het artikel in de wachtrij. Er wordt gebruikgemaakt van de Azure Face API-service om gezichten op geslacht en leeftijd in de bijbehorende afbeelding te detecteren en het artikel vervolgens door te geven aan de volgende wachtrij.

  7. Wanneer alle functies zijn voltooid, wordt de functie notify geactiveerd. De verwerkte records voor het artikel worden geladen en ze worden gescand op de gewenste resultaten. Als deze wordt gevonden, wordt de inhoud gemarkeerd en wordt er een melding verzonden naar het systeem van uw keuze.

Bij elke verwerkingsstap schrijft de functie de resultaten naar Azure Cosmos DB. Uiteindelijk kunnen de gegevens naar wens worden gebruikt. U kunt het bijvoorbeeld gebruiken om bedrijfsprocessen te verbeteren, nieuwe klanten te vinden of problemen met klanttevredenheid te identificeren.

Onderdelen

In dit voorbeeld wordt de volgende lijst met Azure-onderdelen gebruikt.

  • Azure Storage wordt gebruikt voor het opslaan van onbewerkte afbeeldings- en videobestanden die zijn gekoppeld aan een artikel. Een secundair opslagaccount wordt gemaakt met Azure App Service en wordt gebruikt voor het hosten van de Azure-functiecode en -logboeken.

  • Azure Cosmos DB bevat informatie over het bijhouden van artikelteksten, afbeeldingen en video's. De resultaten van de Cognitive Services-stappen worden hier ook opgeslagen.

  • Azure Functions voert de functiecode uit die wordt gebruikt om te reageren op wachtrijberichten en de binnenkomende inhoud te transformeren. Azure App Service host de functiecode en verwerkt de records serieel. Dit scenario bevat vijf functies: Opnemen, Transformeren, Object detecteren, Gezicht en Waarschuwen.

  • Azure Service Bus host de Azure Service Bus wachtrijen die door de functies worden gebruikt.

  • Azure Cognitive Services biedt de AI voor de pijplijn op basis van implementaties van de Computer Vision-service, de Face-API en de service Voor automatisch vertalen van tekst.

  • Azure-toepassing Insights biedt analyses om u te helpen bij het diagnosticeren van problemen en om inzicht te krijgen in de functionaliteit van uw toepassing.

Alternatieven

  • In plaats van een patroon te gebruiken op basis van wachtrijmeldingen en Azure Functions, kunt u een onderwerp- en abonnementspatroon gebruiken voor deze gegevensstroom. Azure Service Bus onderwerpen kunnen worden gebruikt om de verschillende onderdelen van het artikel parallel te verwerken, in tegenstelling tot de seriële verwerking die in dit voorbeeld wordt uitgevoerd. Vergelijk wachtrijen en onderwerpen voor meer informatie.

  • Gebruik Azure Logic Apps om de functiecode te implementeren en vergrendeling op recordniveau te implementeren, zoals die van het Redlock-algoritme (dat nodig is voor parallelle verwerking totdat Azure Cosmos DB gedeeltelijke documentupdates ondersteunt). Vergelijk Functions en Logic Apps voor meer informatie.

  • Implementeer deze architectuur met behulp van aangepaste AI-onderdelen in plaats van bestaande Azure-services. Breid de pijplijn bijvoorbeeld uit met behulp van een aangepast model waarmee bepaalde personen in een afbeelding worden gedetecteerd, in plaats van de algemene gegevens over het aantal personen, geslacht en leeftijd die in dit voorbeeld worden verzameld. Als u aangepaste machine learning- of AI-modellen wilt gebruiken met deze architectuur, bouwt u de modellen als RESTful-eindpunten, zodat ze kunnen worden aangeroepen vanuit Azure Functions.

  • Gebruik een ander invoermechanisme in plaats van RSS-feeds. Gebruik meerdere generatoren of opnameprocessen om Azure Cosmos DB en Azure Storage te voeden.

  • Azure Cognitive Search is een AI-functie in Azure Search die ook kan worden gebruikt om tekst te extraheren uit afbeeldingen, blobs en andere ongestructureerde gegevensbronnen.

Scenariodetails

Dit scenario bevat voorbeelden van nieuwsfeeds in het Engels, Russisch en Duits , maar u kunt dit eenvoudig uitbreiden naar andere RSS-feeds en andere talen. Voor een eenvoudige implementatie zijn het verzamelen, verwerken en analyseren van gegevens volledig gebaseerd op Azure-services.

Potentiële gebruikscases

Hoewel dit scenario is gebaseerd op de verwerking van RSS-feeds, is het relevant voor elk document, elke website of elk artikel waarvoor u het volgende moet doen:

  • Tekst vertalen naar een taal naar keuze.
  • Zoek sleuteltermen, entiteiten en gebruikersgevoelens in digitale inhoud.
  • Objecten, tekst en oriëntatiepunten detecteren in afbeeldingen die zijn gekoppeld aan een digitaal artikel.
  • Personen detecteren op geslacht en leeftijd in afbeeldingen die zijn gekoppeld aan digitale inhoud.

Overwegingen

Deze overwegingen implementeren de pijlers van het Azure Well-Architected Framework, een set richtlijnen die kunnen worden gebruikt om de kwaliteit van een workload te verbeteren. Zie Microsoft Azure Well-Architected Framework voor meer informatie.

Ter vereenvoudiging wordt in dit voorbeeldscenario slechts een paar van de beschikbare API's en services van Azure Cognitive Services gebruikt. Tekst in afbeeldingen kan bijvoorbeeld worden geanalyseerd met behulp van de Text Analytics-API. In dit scenario wordt ervan uitgegaan dat de doeltaal Engels is, maar u kunt de invoer wijzigen in elke ondersteunde taal.

Schaalbaarheid

Azure Functions schalen is afhankelijk van het hostingabonnement dat u gebruikt. Bij deze oplossing wordt uitgegaan van een verbruiksabonnement, waarbij de rekenkracht automatisch aan de functies wordt toegewezen wanneer dat nodig is. U betaalt alleen wanneer uw functies worden uitgevoerd. Een andere optie is om een Toegewezen plan te gebruiken, waarmee u tussen lagen kunt schalen om een andere hoeveelheid resources toe te wijzen.

Met Azure Cosmos DB is het belangrijk om uw workload ongeveer gelijkmatig te verdelen over een voldoende aantal partitiesleutels. Er is geen limiet voor de totale hoeveelheid gegevens die een container kan opslaan of voor de totale hoeveelheid doorvoer die een container kan ondersteunen.

Beheer en logboekregistratie

Deze oplossing maakt gebruik van Application Insights om prestatie- en logboekgegevens te verzamelen. Er wordt een exemplaar van Application Insights gemaakt met de implementatie in dezelfde resourcegroep als de andere services die nodig zijn voor deze implementatie.

Ga als volgende te werk om de logboeken weer te geven die door de oplossing zijn gegenereerd:

  1. Ga naar Azure Portal en navigeer naar de resourcegroep die is gemaakt voor de implementatie.

  2. Selecteer het Application Insights-exemplaar .

  3. Ga in de sectie Application Insights naar Onderzoeken\Zoeken en zoek de gegevens.

Beveiliging

Beveiliging biedt garanties tegen opzettelijke aanvallen en misbruik van uw waardevolle gegevens en systemen. Zie Overzicht van de beveiligingspijler voor meer informatie.

Azure Cosmos DB maakt gebruik van een beveiligde verbinding en shared access signature via de C#-SDK van Microsoft. Er zijn geen andere extern gerichte oppervlakten. Meer informatie over aanbevolen beveiligingsprocedures voor Azure Cosmos DB.

Kostenoptimalisatie

Kostenoptimalisatie gaat over het zoeken naar manieren om onnodige kosten te verminderen en operationele efficiëntie te verbeteren. Zie Overzicht van de pijler kostenoptimalisatie voor meer informatie.

Azure Cosmos DB is krachtig, maar in deze implementatie worden de grootste kosten in rekening gebracht. U kunt een andere opslagoplossing gebruiken door de opgegeven Azure Functions code te herstructureren.

De prijzen voor Azure Functions variëren afhankelijk van het abonnement waarin het wordt uitgevoerd.

Dit scenario implementeren

Notitie

U moet een bestaand Azure-account hebben. Als u nog geen abonnement op Azure hebt, maak dan een gratis account aan voordat u begint.

Alle code voor dit scenario is beschikbaar in de GitHub-opslagplaats . Deze opslagplaats bevat de broncode die wordt gebruikt voor het bouwen van de generatortoepassing die de pijplijn voor deze demo invoert.

Volgende stappen

Aanvullende analysearchitecturen: