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

Cosmos DB
Functions
Storage
Search
Cognitive Search
Service Bus
Computer Vision
Translator Text
Face
Application Insights

In dit voorbeeldscenario wordt een pijplijn beschreven voor massa-opname en bijna realtime analyse van documenten die afkomstig zijn van openbare RSS-nieuwsfeeds. Het maakt gebruik Azure Cognitive Services nuttige inzichten te bieden op basis van tekstvertaling, gezichtsherkenning en gevoelsdetectie. De stappen voor het verwerken 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 die het inzicht of de analyse bevat.

Dit scenario bevat voorbeelden voor Engelse, Russischen Duitse nieuwsfeeds, maar u kunt het 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 waar u het volgende moet doen:

  • Tekst vertalen naar een taal naar keuze.
  • Zoek sleuteltermen, entiteiten en gebruikerssentiment 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.

Architectuur

Architectuurdiagram: RSS-feeds opnemen en analyseren met behulp van afbeeldings- en tekstverwerking en meldingen verzenden.

De gegevens stromen als volgt door de oplossing:

  1. Een RSS-nieuwsfeed fungeert als de generator voor het verkrijgen van gegevens uit een document of artikel. Met een artikel bevatten gegevens bijvoorbeeld meestal een titel, een samenvatting van de oorspronkelijke body van het nieuwsitem en soms afbeeldingen.

  2. Een generator- of opnameproces voegt het artikel en alle bijbehorende afbeeldingen toe aan een Azure Cosmos DB verzameling.

  3. Een melding activeert een opnamefunctie in Azure Functions waarin de tekst van het artikel wordt opgeslagen in Cosmos DB en de artikelafbeeldingen (indien van toepassing) in Azure Blob Storage. Het artikel wordt vervolgens doorgegeven aan de volgende wachtrij.

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

  5. Een detectiefunctie wordt geactiveerd vanuit het artikel in de wachtrij. De service Computer Vision 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. Een gezichtsfunctie wordt geactiveerd vanuit het artikel in de wachtrij. Er wordt gebruikgemaakt van de Azure Face-API-service om gezichten voor 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 gescand op resultaten die u wilt. 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 deze bijvoorbeeld gebruiken om bedrijfsprocessen te verbeteren, nieuwe klanten te vinden of klanttevredenheidsproblemen 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 aan een artikel zijn gekoppeld. Er wordt een secundair opslagaccount gemaakt met Azure App Service en wordt gebruikt om de code en logboeken van de Azure-functie te hosten.

  • Azure Cosmos DB bevat informatie over het bijhouden van artikelen, 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 berichten in de wachtrij 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 fungeert als host voor 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, Face-APIen Vertaalservice voor machinevertalingen.

  • 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 functiecode te implementeren en vergrendeling op recordniveau te implementeren, zoals die wordt geleverd door het Redlock-algoritme (dat nodig is voor parallelle verwerking totdat Azure Cosmos DB gedeeltelijke documentupdates ondersteunt). Vergelijk Functions en Logic Apps voor meer informatie.

  • Implementeert 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 dat bepaalde personen in een afbeelding detecteert, in tegenstelling tot de algemene gegevens over het aantal mensen, het geslacht en de 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 gegevens te Azure Cosmos DB en Azure Storage.

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

Overwegingen

Voor het gemak worden in dit voorbeeldscenario slechts enkele van de beschikbare API's en services van Azure Cognitive Services. 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 hostingplan dat u gebruikt. Deze oplossing gaat uit van een verbruiksplan,waarbij rekenkracht automatisch wordt toegewezen aan de functies wanneer dat nodig is. U betaalt alleen wanneer uw functies worden uitgevoerd. Een andere optie is om een Dedicated-abonnement te gebruiken,waarmee u kunt schalen tussen lagen 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 groot aantal partitiesleutels. Er is geen limiet voor de totale hoeveelheid gegevens die een container kan opslaan of tot de totale hoeveelheid doorvoer die een container kan ondersteunen.

Beheer en logboekregistratie

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

De logboeken weergeven die door de oplossing zijn gegenereerd:

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

  2. Selecteer het application Insights-exemplaar.

  3. Ga in de Insights Toepassing naar Zoeken \ onderzoeken en zoek de gegevens.

Beveiliging

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 best practices voor beveiliging voor Azure Cosmos DB.

Prijzen

Azure Cosmos DB is krachtig, maar in deze implementatie worden de hoogste kosten in de kosten in kosten geseed. U kunt een andere opslagoplossing gebruiken door de opgegeven Azure Functions te herfactoreren.

De prijzen Azure Functions afhankelijk van het abonnement waarin het wordt uitgevoerd.

Het 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 feeds.

Volgende stappen

Aanvullende analysearchitecten: