Bewerken

Delen via


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. In het bijzonder worden stappen voor de verwerking van afbeeldingen en natuurlijke taal 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.Een Visio-bestand van deze architectuur downloaden.

Gegevensstroom

De gegevens stromen als volgt door de oplossing:

  1. Een RSS-nieuwsfeed fungeert als de generator die gegevens ophaalt uit een document of artikel. Met 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 waarin de artikeltekst in Azure Cosmos DB en de artikelafbeeldingen (indien aanwezig) in Azure Blob Storage worden opgeslagen. Het artikel wordt vervolgens doorgegeven aan de volgende wachtrij.

  4. Een vertaalfunctie wordt geactiveerd door de wachtrijgebeurtenis. Het maakt gebruik van de Vertaaltekst-API van Azure AI-services om de taal te detecteren, indien nodig te vertalen en het gevoel, de sleuteltermen en entiteiten van de hoofdtekst en de titel te verzamelen. Vervolgens wordt het artikel doorgegeven aan de volgende wachtrij.

  5. Een detectiefunctie wordt geactiveerd vanuit het artikel in de wachtrij. De Computer Vision-service 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. De Azure Face API-service wordt gebruikt 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 meldingsfunctie geactiveerd. De verwerkte records voor het artikel worden geladen en gescand op de gewenste resultaten. Indien 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 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 zijn gekoppeld aan een artikel. Er wordt een secundair opslagaccount gemaakt met Azure-app Service en wordt gebruikt voor het hosten van de Azure-functiecode en -logboeken.

  • Azure Cosmos DB bevat informatie over artikeltekst, afbeeldingen en video's. De resultaten van de Azure AI-servicesstappen 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 fungeert als host voor de functiecode en verwerkt de records serieel. Dit scenario bevat vijf functies: Opnemen, Transformeren, Object detecteren, Face en Notify.

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

  • Azure AI-services bieden de AI voor de pijplijn op basis van implementaties van de Computer Vision-service , de Face-API en de vertaalservice voor machinevertaling.

  • 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 plaats van 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 de vergrendeling die wordt geleverd door het Redlock-algoritme (die 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 bijvoorbeeld de pijplijn uit met behulp van een aangepast model waarmee bepaalde personen in een afbeelding worden gedetecteerd in plaats van het algemene aantal personen, geslacht en leeftijdsgegevens die in dit voorbeeld worden verzameld. Als u aangepaste machine learning- of AI-modellen met deze architectuur wilt gebruiken, 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 in te voeren.

  • 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 voor Nieuwsfeeds Engels, Russisch en Duits , maar u kunt het eenvoudig uitbreiden naar andere RSS-feeds en andere talen. Voor een eenvoudige implementatie zijn de gegevensverzameling, verwerking en analyse volledig gebaseerd op Azure-services.

Potentiële gebruikscases

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

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

Overwegingen

Met deze overwegingen worden de pijlers van het Azure Well-Architected Framework geïmplementeerd. Dit is een set richtlijnen die kunnen worden gebruikt om de kwaliteit van een workload te verbeteren. Zie Microsoft Azure Well-Architected Framework voor meer informatie.

Voor het gemak gebruikt dit voorbeeldscenario slechts enkele van de beschikbare API's en services van Azure AI-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.

Beveiliging

Beveiliging biedt garanties tegen opzettelijke aanvallen en misbruik van uw waardevolle gegevens en systemen. Zie de controlelijst ontwerpbeoordeling voor beveiliging voor meer informatie.

Azure Cosmos DB maakt gebruik van een beveiligde verbinding en handtekening voor gedeelde toegang 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 manieren om onnodige uitgaven te verminderen en operationele efficiëntie te verbeteren. Zie de controlelijst ontwerpbeoordeling voor Kostenoptimalisatie voor meer informatie.

Azure Cosmos DB is krachtig, maar kost de grootste kosten in deze implementatie. 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.

Operationele topprestaties

Operational Excellence behandelt de operationele processen die een toepassing implementeren en deze in productie houden. Zie de controlelijst ontwerpbeoordeling voor Operational Excellence voor meer informatie.

Deze oplossing maakt gebruik van Application Insights om prestatie- en logboekregistratiegegevens 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 voor de implementatie is gemaakt.

  2. Selecteer het Application Insights-exemplaar .

  3. Navigeer in de sectie Application Insights naar Onderzoeken\Zoeken en doorzoek de gegevens.

Prestatie-efficiëntie

Prestatie-efficiëntie is de mogelijkheid van uw workload om te schalen om te voldoen aan de eisen die gebruikers op een efficiënte manier stellen. Zie de controlelijst ontwerpbeoordeling voor prestatie-efficiëntie voor meer informatie.

Het schalen van Azure Functions is afhankelijk van het hostingabonnement dat u gebruikt. Bij deze oplossing wordt ervan uitgegaan dat een verbruiksabonnement wordt gebruikt, waarin de 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 tussen lagen kunt schalen om een andere hoeveelheid resources toe te wijzen.

Met Azure Cosmos DB is de sleutel het verdelen van uw workload ongeveer gelijkmatig 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.

Dit scenario implementeren

Notitie

U moet een bestaand Azure-account hebben. Als u geen Azure-abonnement hebt, maakt u een gratis account voordat u begint.

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

Volgende stappen

Aanvullende analysearchitecturen: