Analizowanie kanałów informacyjnych przy użyciu analizy niemal w czasie rzeczywistym przy użyciu przetwarzania obrazów i języka naturalnego

Azure Cosmos DB
Azure Functions
Azure Service Bus
Azure Translator Text
Rozpoznawanie twarzy platformy Azure

W tym przykładowym scenariuszu opisano potok masowego pozyskiwania i analizy dokumentów pochodzących z publicznych kanałów informacyjnych RSS niemal w czasie rzeczywistym. Usługa Azure Cognitive Services udostępnia przydatne szczegółowe informacje na podstawie tłumaczenia tekstu, rozpoznawania twarzy i wykrywania tonacji. W szczególności kroki przetwarzania obrazów i języka naturalnego są połączone razem w potoku obsługi komunikatów na podstawie Azure Service Bus. Dane wyjściowe potoku to powiadomienie zawierające szczegółowe informacje lub analizę.

Architektura

Diagram architektury: pozyskiwanie i analizowanie kanałów informacyjnych RSS przy użyciu przetwarzania obrazów i tekstu oraz wysyłania powiadomień.Pobierz plik programu Visio tej architektury.

Przepływ danych

Dane przepływa przez rozwiązanie w następujący sposób:

  1. Kanał informacyjny wiadomości RSS działa jako generator, który uzyskuje dane z dokumentu lub artykułu. Na przykład w przypadku artykułu dane zazwyczaj zawierają tytuł, podsumowanie oryginalnej treści elementu wiadomości, a czasami obrazy.

  2. Generator lub proces pozyskiwania wstawia artykuł i wszystkie skojarzone obrazy do kolekcji usługi Azure Cosmos DB.

  3. Powiadomienie wyzwala funkcję pozyskiwania w Azure Functions, która przechowuje tekst artykułu w usłudze Azure Cosmos DB i obrazy artykułów (jeśli istnieją) w Azure Blob Storage. Następnie artykuł zostanie przekazany do następnej kolejki.

  4. Funkcja translate jest wyzwalana przez zdarzenie kolejki. Używa interfejsu API tłumaczenia tekstu w usługach Azure Cognitive Services do wykrywania języka, tłumaczenia w razie potrzeby i zbierania tonacji, kluczowych fraz i jednostek z treści i tytułu. Następnie przekazuje artykuł do następnej kolejki.

  5. Funkcja detect jest wyzwalana z artykułu w kolejce. Używa usługi przetwarzanie obrazów do wykrywania obiektów, punktów orientacyjnych i napisanych słów na skojarzonym obrazie, a następnie przekazuje artykuł do następnej kolejki.

  6. Funkcja rozpoznawania twarzy jest wyzwalana z artykułu w kolejce. Używa ona usługi interfejsu API rozpoznawania twarzy platformy Azure do wykrywania twarzy dla płci i wieku skojarzonego obrazu, a następnie przekazuje artykuł do następnej kolejki.

  7. Po zakończeniu wszystkich funkcji funkcja notify zostanie wyzwolona. Ładuje przetworzone rekordy dla artykułu i skanuje je pod kątem żądanych wyników. W przypadku znalezienia zawartość jest oflagowana, a powiadomienie jest wysyłane do wybranego systemu.

W każdym kroku przetwarzania funkcja zapisuje wyniki w usłudze Azure Cosmos DB. Ostatecznie dane mogą być używane zgodnie z potrzebami. Na przykład można go użyć do ulepszania procesów biznesowych, lokalizowania nowych klientów lub identyfikowania problemów z zadowoleniem klientów.

Składniki

Poniższa lista składników platformy Azure jest używana w tym przykładzie.

  • Usługa Azure Storage służy do przechowywania nieprzetworzonych plików obrazów i wideo skojarzonych z artykułem. Dodatkowe konto magazynu jest tworzone przy użyciu Azure App Service i służy do hostowania kodu i dzienników funkcji platformy Azure.

  • Usługa Azure Cosmos DB przechowuje informacje o tekście artykułu, obrazie i śledzeniu wideo. Wyniki kroków usług Cognitive Services są również przechowywane tutaj.

  • Azure Functions wykonuje kod funkcji używany do odpowiadania na komunikaty w kolejce i przekształcania zawartości przychodzącej. Azure App Service hostuje kod funkcji i przetwarza rekordy szeregowo. Ten scenariusz obejmuje pięć funkcji: pozyskiwanie, przekształcanie, wykrywanie obiektów, rozpoznawanie twarzy i powiadamianie.

  • Azure Service Bus hostuje kolejki Azure Service Bus używane przez funkcje.

  • Usługi Azure Cognitive Services udostępniają sztuczną inteligencję dla potoku na podstawie implementacji usługi przetwarzanie obrazów, interfejsu API rozpoznawania twarzy i usługi tłumaczenia maszynowego tłumaczenia tekstu.

  • aplikacja systemu Azure Insights udostępnia analizę, która ułatwia diagnozowanie problemów i zrozumienie funkcjonalności aplikacji.

Alternatywy

  • Zamiast używać wzorca opartego na powiadomieniach w kolejce i Azure Functions, możesz użyć tematu i wzorca subskrypcji dla tego przepływu danych. Azure Service Bus Tematy mogą służyć do przetwarzania różnych części artykułu równolegle, w przeciwieństwie do przetwarzania seryjnego wykonanego w tym przykładzie. Aby uzyskać więcej informacji, porównaj kolejki i tematy.

  • Za pomocą usługi Azure Logic Apps zaimplementuj kod funkcji i zaimplementuj blokowanie na poziomie rekordu, takie jak podane przez algorytm Redlock (który jest wymagany do przetwarzania równoległego, dopóki usługa Azure Cosmos DB nie obsługuje aktualizacji częściowych dokumentów). Aby uzyskać więcej informacji, porównaj funkcje i usługę Logic Apps.

  • Zaimplementuj tę architekturę przy użyciu dostosowanych składników sztucznej inteligencji, a nie istniejących usług platformy Azure. Na przykład rozszerz potok przy użyciu dostosowanego modelu, który wykrywa określone osoby na obrazie, w przeciwieństwie do ogólnej liczby osób, płci i danych wieku zebranych w tym przykładzie. Aby używać dostosowanych modeli uczenia maszynowego lub sztucznej inteligencji z tą architekturą, utwórz modele jako punkty końcowe RESTful, aby mogły być wywoływane z Azure Functions.

  • Użyj innego mechanizmu wejściowego zamiast kanałów informacyjnych RSS. Użyj wielu generatorów lub procesów pozyskiwania do źródła danych usługi Azure Cosmos DB i usługi Azure Storage.

  • Azure Cognitive Search to funkcja sztucznej inteligencji w usłudze Azure Search, która może również służyć do wyodrębniania tekstu z obrazów, obiektów blob i innych źródeł danych bez struktury.

Szczegóły scenariusza

Ten scenariusz zawiera przykłady kanałów informacyjnych w języku angielskim, rosyjskim i niemieckim , ale można je łatwo rozszerzyć na inne kanały informacyjne RSS i inne języki. W celu ułatwienia wdrażania zbieranie danych, przetwarzanie i analiza są oparte całkowicie na usługach platformy Azure.

Potencjalne przypadki użycia

Chociaż ten scenariusz jest oparty na przetwarzaniu kanałów informacyjnych RSS, jest on odpowiedni dla dowolnego dokumentu, witryny internetowej lub artykułu, w którym należy:

  • Tłumaczenie tekstu na wybrany język.
  • Znajdź kluczowe frazy, jednostki i tonację użytkownika w zawartości cyfrowej.
  • Wykrywanie obiektów, tekstu i punktów orientacyjnych na obrazach skojarzonych z artykułem cyfrowym.
  • Wykrywanie osób według płci i wieku na obrazach skojarzonych z treścią cyfrową.

Zagadnienia do rozważenia

Te zagadnienia implementują filary platformy Azure Well-Architected Framework, która jest zestawem podstawowych zestawów, które mogą służyć do poprawy jakości obciążenia. Aby uzyskać więcej informacji, zobacz Microsoft Azure Well-Architected Framework.

Dla uproszczenia ten przykładowy scenariusz używa tylko kilku dostępnych interfejsów API i usług z usług Azure Cognitive Services. Na przykład tekst na obrazach można analizować przy użyciu interfejsu API analiza tekstu. Język docelowy w tym scenariuszu jest zakładany jako angielski, ale można zmienić dane wejściowe na dowolny obsługiwany język.

Skalowalność

Azure Functions skalowanie zależy od używanego planu hostingu. W tym rozwiązaniu przyjęto założenie, że plan zużycia, w którym moc obliczeniowa jest automatycznie przydzielana do funkcji w razie potrzeby. Płacisz tylko wtedy, gdy funkcje są uruchomione. Inną opcją jest użycie planu dedykowanego, który umożliwia skalowanie między warstwami w celu przydzielenia innej ilości zasobów.

W usłudze Azure Cosmos DB kluczem jest równomierne rozłożenie obciążenia między wystarczająco dużą liczbę kluczy partycji. Nie ma limitu całkowitej ilości danych, które kontener może przechowywać lub do całkowitej przepływności , którą kontener może obsługiwać.

Zarządzanie i rejestrowanie

To rozwiązanie używa usługi Application Insights do zbierania informacji o wydajności i rejestrowaniu. Wystąpienie usługi Application Insights jest tworzone przy użyciu wdrożenia w tej samej grupie zasobów co inne usługi potrzebne do tego wdrożenia.

Aby wyświetlić dzienniki wygenerowane przez rozwiązanie:

  1. Przejdź do Azure Portal i przejdź do grupy zasobów utworzonej dla wdrożenia.

  2. Wybierz wystąpienie usługi Application Insights .

  3. W sekcji Application Insights przejdź do pozycji Zbadaj\Wyszukaj i wyszukaj dane.

Zabezpieczenia

Zabezpieczenia zapewniają ochronę przed celowymi atakami i nadużyciami cennych danych i systemów. Aby uzyskać więcej informacji, zobacz Omówienie filaru zabezpieczeń.

Usługa Azure Cosmos DB używa zabezpieczonego połączenia i sygnatury dostępu współdzielonego za pośrednictwem zestawu SDK języka C# dostarczonego przez firmę Microsoft. Nie ma innych powierzchni zewnętrznych. Dowiedz się więcej o najlepszych rozwiązaniach dotyczących zabezpieczeń dla usługi Azure Cosmos DB.

Optymalizacja kosztów

Optymalizacja kosztów dotyczy sposobów zmniejszenia niepotrzebnych wydatków i poprawy wydajności operacyjnej. Aby uzyskać więcej informacji, zobacz Omówienie filaru optymalizacji kosztów.

Usługa Azure Cosmos DB jest zaawansowana, ale wiąże się z największymi kosztami w tym wdrożeniu. Możesz użyć innego rozwiązania magazynu, refaktoryzując podany kod Azure Functions.

Ceny Azure Functions różnią się w zależności od planu, w zależności od planu, w nim uruchomiony.

Wdrażanie tego scenariusza

Uwaga

Musisz mieć istniejące konto platformy Azure. Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto.

Cały kod dla tego scenariusza jest dostępny w repozytorium GitHub . To repozytorium zawiera kod źródłowy używany do kompilowania aplikacji generatora, która karmi potok na potrzeby tego pokazu.

Następne kroki

Dodatkowe architektury analityczne: