Redigera

Dela via


Analysera nyhetsflöden med analys i nära realtid med hjälp av bild- och bearbetning av naturligt språk

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

I det här exempelscenariot beskrivs en pipeline för massinmatning och nästan realtidsanalys av dokument som kommer från offentliga RSS-nyhetsflöden. Den använder Azure Cognitive Services för att ge användbara insikter baserat på textöversättning, ansiktsigenkänning och sentimentidentifiering. Mer specifikt är bearbetningsstegen för avbildning och naturligt språk anslutna i en meddelandepipeline baserat på Azure Service Bus. Utdata från pipelinen är ett meddelande som innehåller insikten eller analysen.

Arkitektur

Arkitekturdiagram: mata in och analysera RSS-feeds med bild- och textbearbetning och skicka meddelanden.Ladda ned en Visio-fil med den här arkitekturen.

Dataflöde

Data flödar genom lösningen på följande sätt:

  1. Ett RSS-nyhetsflöde fungerar som en generator som hämtar data från ett dokument eller en artikel. Med en artikel innehåller data till exempel vanligtvis en rubrik, en sammanfattning av nyhetsobjektets ursprungliga brödtext och ibland bilder.

  2. En generator- eller inmatningsprocess infogar artikeln och eventuella associerade avbildningar i en Azure Cosmos DB-samling.

  3. Ett meddelande utlöser en inmatningsfunktion i Azure Functions som lagrar artikeltexten i Azure Cosmos DB och artikelavbildningarna (om några) i Azure Blob Storage. Artikeln skickas sedan till nästa kö.

  4. En översättningsfunktion utlöses av köhändelsen. Den använder API:et Översätt text i Azure Cognitive Services för att identifiera språket, översätta vid behov och samla in sentiment, nyckelfraser och entiteter från brödtexten och rubriken. Sedan skickas artikeln till nästa kö.

  5. En identifieringsfunktion utlöses från den köade artikeln. Tjänsten Visuellt innehåll används för att identifiera objekt, landmärken och skrivna ord i den associerade bilden och skickar sedan artikeln till nästa kö.

  6. En ansiktsfunktion utlöses från den köade artikeln. Den använder Azure Face API-tjänsten för att identifiera ansikten för kön och ålder i den associerade bilden och skickar sedan artikeln till nästa kö.

  7. När alla funktioner är klara utlöses aviseringsfunktionen. Den läser in de bearbetade posterna för artikeln och söker igenom dem efter de resultat du vill ha. Om det hittas flaggas innehållet och ett meddelande skickas till det system du väljer.

Vid varje bearbetningssteg skriver funktionen resultatet till Azure Cosmos DB. I slutändan kan data användas som önskat. Du kan till exempel använda den för att förbättra affärsprocesser, hitta nya kunder eller identifiera problem med kundnöjdhet.

Komponenter

Följande lista över Azure-komponenter används i det här exemplet.

  • Azure Storage används för att lagra råa bild- och videofiler som är associerade med en artikel. Ett sekundärt lagringskonto skapas med Azure App Service och används som värd för Azure-funktionskoden och loggarna.

  • Azure Cosmos DB innehåller information om artikeltext, bild och videospårning. Resultatet av Cognitive Services-stegen lagras också här.

  • Azure Functions kör funktionskoden som används för att svara på kömeddelanden och transformera inkommande innehåll. Azure App Service är värd för funktionskoden och bearbetar posterna seriellt. Det här scenariot innehåller fem funktioner: Mata in, Transformera, Identifiera objekt, Ansikte och Meddela.

  • Azure Service Bus är värd för De Azure Service Bus-köer som används av funktionerna.

  • Azure Cognitive Services tillhandahåller AI:n för pipelinen baserat på implementeringar av tjänsten Visuellt innehåll , Ansikts-API och Översättningsmaskinöversättning .

  • Azure Application Insights tillhandahåller analyser som hjälper dig att diagnostisera problem och förstå funktionerna i ditt program.

Alternativ

  • I stället för att använda ett mönster baserat på kömeddelanden och Azure Functions kan du använda ett ämnes- och prenumerationsmönster för det här dataflödet. Azure Service Bus-ämnen kan användas för att bearbeta de olika delarna av artikeln parallellt i stället för den seriell bearbetning som utförs i det här exemplet. Mer information finns i jämföra köer och ämnen.

  • Använd Azure Logic Apps för att implementera funktionskoden och implementera låsning på postnivå, till exempel den som tillhandahålls av Redlock-algoritmen (som behövs för parallell bearbetning tills Azure Cosmos DB stöder partiella dokumentuppdateringar). Mer information finns i Jämföra Functions och Logic Apps.

  • Implementera den här arkitekturen med hjälp av anpassade AI-komponenter i stället för befintliga Azure-tjänster. Du kan till exempel utöka pipelinen med hjälp av en anpassad modell som identifierar vissa personer i en bild i stället för antalet generiska personer, kön och åldersdata som samlas in i det här exemplet. Om du vill använda anpassade maskininlärnings- eller AI-modeller med den här arkitekturen skapar du modellerna som RESTful-slutpunkter så att de kan anropas från Azure Functions.

  • Använd en annan indatamekanism i stället för RSS-feeds. Använd flera generatorer eller inmatningsprocesser för att mata in Azure Cosmos DB och Azure Storage.

  • Azure Cognitive Search är en AI-funktion i Azure Search som också kan användas för att extrahera text från bilder, blobbar och andra ostrukturerade datakällor.

Information om scenario

Det här scenariot innehåller exempel på engelska, ryska och tyska nyhetsflöden, men du kan enkelt utöka det till andra RSS-flöden och andra språk. För enkel distribution baseras datainsamling, bearbetning och analys helt på Azure-tjänster.

Potentiella användningsfall

Även om det här scenariot baseras på bearbetning av RSS-feeds är det relevant för alla dokument, webbplatser eller artiklar där du skulle behöva:

  • Översätta text till ett valfritt språk.
  • Hitta nyckelfraser, entiteter och användarsentiment i digitalt innehåll.
  • Identifiera objekt, text och landmärken i bilder som är associerade med en digital artikel.
  • Identifiera personer efter kön och ålder i bilder som är associerade med digitalt innehåll.

Att tänka på

Dessa överväganden implementerar grundpelarna i Azure Well-Architected Framework, som är en uppsättning vägledande grundsatser som kan användas för att förbättra kvaliteten på en arbetsbelastning. Mer information finns i Microsoft Azure Well-Architected Framework.

För enkelhetens skull använder det här exempelscenariot bara några av de tillgängliga API:erna och tjänsterna från Azure Cognitive Services. Text i bilder kan till exempel analyseras med hjälp av API:et för textanalys. Målspråket i det här scenariot antas vara engelska, men du kan ändra indata till valfritt språk som stöds.

Skalbarhet

Azure Functions-skalning beror på vilken värdplan du använder. Den här lösningen förutsätter en förbrukningsplan där beräkningskraften automatiskt allokeras till funktionerna vid behov. Du betalar bara när dina funktioner körs. Ett annat alternativ är att använda en dedikerad plan som gör att du kan skala mellan nivåer för att allokera en annan mängd resurser.

Med Azure Cosmos DB är nyckeln att distribuera arbetsbelastningen ungefär jämnt mellan ett tillräckligt stort antal partitionsnycklar. Det finns ingen gräns för den totala mängden data som en container kan lagra eller till den totala mängden dataflöde som en container kan stödja.

Hantering och loggning

Den här lösningen använder Application Insights för att samla in information om prestanda och loggning. En instans av Application Insights skapas med distributionen i samma resursgrupp som de andra tjänster som behövs för den här distributionen.

Så här visar du loggarna som genereras av lösningen:

  1. Gå till Azure-portalen och gå till resursgruppen som skapats för distributionen.

  2. Välj Application Insights-instansen.

  3. I avsnittet Application Insights navigerar du till Undersök\Sök och söker efter data.

Säkerhet

Säkerhet ger garantier mot avsiktliga attacker och missbruk av dina värdefulla data och system. Mer information finns i Översikt över säkerhetspelare.

Azure Cosmos DB använder en säker anslutning och signatur för delad åtkomst via C#SDK som tillhandahålls av Microsoft. Det finns inga andra yttre ytor. Läs mer om metodtips för säkerhet för Azure Cosmos DB.

Kostnadsoptimering

Kostnadsoptimering handlar om att titta på sätt att minska onödiga utgifter och förbättra drifteffektiviteten. Mer information finns i Översikt över kostnadsoptimeringspelare.

Azure Cosmos DB är kraftfullt men medför den största kostnaden i den här distributionen. Du kan använda en annan lagringslösning genom att omstrukturera Azure Functions-koden.

Prissättningen för Azure Functions varierar beroende på vilken plan den körs i.

Distribuera det här scenariot

Kommentar

Du måste ha ett befintligt Azure-konto. Om du inte har någon Azure-prenumeration skapar du ett kostnadsfritt konto innan du börjar.

All kod för det här scenariot är tillgänglig på GitHub-lagringsplatsen . Den här lagringsplatsen innehåller den källkod som används för att skapa generatorprogrammet som matar pipelinen för den här demonstrationen.

Nästa steg

Ytterligare analysarkitekturer: