Görüntü ve doğal dil işleme kullanarak gerçek zamanlıya yakın analizlerle haber akışlarını analiz etme

Azure Cosmos DB
Azure Functions
Azure Service Bus
Azure Translator Text
Azure Yüz Tanıma

Bu örnek senaryoda, genel RSS haber akışlarından gelen belgelerin toplu alımı ve neredeyse gerçek zamanlı analizi için bir işlem hattı açıklanmaktadır. Metin çevirisi, yüz tanıma ve yaklaşım algılamaya dayalı yararlı içgörüler sağlamak için Azure Bilişsel Hizmetler'i kullanır. Özellikle görüntü ve doğal dil işleme adımları, Azure Service Bus dayalı bir mesajlaşma işlem hattında birbirine bağlanır. İşlem hattının çıkışı, içgörü veya analizi içeren bir bildirimdir.

Mimari

Mimari diyagramı: Görüntü ve metin işleme kullanarak RSS akışlarını alın ve analiz edin ve bildirimler gönderin.Bu mimarinin Visio dosyasını indirin.

Veri akışı

Veriler çözümde aşağıdaki gibi akar:

  1. RSS haber akışı, bir belgeden veya makaleden veri alan oluşturucu görevi görür. Örneğin, bir makaleyle veriler genellikle bir başlık, haber öğesinin özgün gövdesinin özeti ve bazen görüntüler içerir.

  2. Oluşturucu veya alma işlemi, makaleyi ve ilişkili görüntüleri bir Azure Cosmos DB Koleksiyonuna ekler.

  3. Bildirim, Azure İşlevleri'da makale metnini Azure Cosmos DB'de ve makale görüntülerini (varsa) Azure Blob Depolama depolayan bir alma işlevini tetikler. Daha sonra makale bir sonraki kuyruğa geçirilir.

  4. Bir translate işlevi kuyruk olayı tarafından tetikleniyor. Azure Bilişsel Hizmetler'in Metin Çevirisi API'sini kullanarak dili algılar, gerekirse çevirir ve gövdeden ve başlıktan yaklaşımı, anahtar ifadeleri ve varlıkları toplar. Ardından makaleyi bir sonraki kuyruğa geçirir.

  5. Kuyruğa alınan makaleden bir detect işlevi tetikleniyor. İlişkili görüntüdeki nesneleri, yer işaretlerini ve yazılı sözcükleri algılamak için Görüntü İşleme hizmetini kullanır, ardından makaleyi sonraki kuyruğa geçirir.

  6. Kuyruğa alınan makaleden bir yüz işlevi tetikleniyor. İlişkili görüntüdeki cinsiyet ve yaş yüzlerini algılamak için Azure Yüz Tanıma API'si hizmetini kullanır, ardından makaleyi bir sonraki kuyruğa geçirir.

  7. Tüm işlevler tamamlandığında notify işlevi tetiklenir. Makale için işlenen kayıtları yükler ve bunları istediğiniz sonuçlar için tarar. Bulunursa, içeriğe bayrak eklenir ve seçtiğiniz sisteme bir bildirim gönderilir.

İşlev, her işlem adımında sonuçları Azure Cosmos DB'ye yazar. Sonuç olarak veriler istenen şekilde kullanılabilir. Örneğin, bunu iş süreçlerini geliştirmek, yeni müşteriler bulmak veya müşteri memnuniyeti sorunlarını belirlemek için kullanabilirsiniz.

Bileşenler

Bu örnekte aşağıdaki Azure bileşenlerinin listesi kullanılmıştır.

  • Azure Depolama , bir makaleyle ilişkili ham görüntü ve video dosyalarını tutmak için kullanılır. Azure App Service ile ikincil bir depolama hesabı oluşturulur ve Azure İşlevi kodunu ve günlüklerini barındırmak için kullanılır.

  • Azure Cosmos DB makale metnini, görüntüsünü ve video izleme bilgilerini içerir. Bilişsel Hizmetler adımlarının sonuçları da burada depolanır.

  • Azure İşlevleri kuyruk iletilerine yanıt vermek ve gelen içeriği dönüştürmek için kullanılan işlev kodunu yürütür. Azure App Service işlev kodunu barındırıp kayıtları seri olarak işler. Bu senaryo beş işlev içerir: Alma, Dönüştürme, Nesneyi Algılama, Yüz Tanıma ve Bildirim.

  • Azure Service Bus, işlevler tarafından kullanılan Azure Service Bus kuyruklarını barındırıyor.

  • Azure Bilişsel Hizmetler, Görüntü İşleme hizmeti, Yüz Tanıma API'si ve Çeviri Metin çevirisi hizmeti uygulamalarına dayalı olarak işlem hattı için yapay zeka sağlar.

  • Azure Uygulaması Insights, sorunları tanılamanıza ve uygulamanızın işlevselliğini anlamanıza yardımcı olacak analizler sağlar.

Alternatifler

  • Kuyruk bildirimine ve Azure İşlevleri dayalı bir desen kullanmak yerine, bu veri akışı için bir konu ve abonelik deseni kullanabilirsiniz. Azure Service Bus Konular, bu örnekte yapılan seri işlemenin aksine makalenin çeşitli bölümlerini paralel olarak işlemek için kullanılabilir. Daha fazla bilgi için kuyrukları ve konuları karşılaştırın.

  • İşlev kodunu uygulamak için Azure Logic Apps'i kullanın ve Redlock algoritması tarafından sağlanan (Azure Cosmos DB kısmi belge güncelleştirmelerini destekleyene kadar paralel işleme için gereklidir) gibi kayıt düzeyinde kilitleme uygulayın. Daha fazla bilgi için İşlevler ve Logic Apps'i karşılaştırın.

  • Bu mimariyi mevcut Azure hizmetleri yerine özelleştirilmiş yapay zeka bileşenlerini kullanarak uygulayın. Örneğin, bu örnekte toplanan genel kişi sayısı, cinsiyeti ve yaş verilerinin aksine görüntüdeki belirli kişileri algılayan özelleştirilmiş bir model kullanarak işlem hattını genişletin. Bu mimariyle özelleştirilmiş makine öğrenmesi veya yapay zeka modellerini kullanmak için modelleri RESTful uç noktaları olarak derleyin ve böylece Azure İşlevleri çağrılabilir.

  • RSS akışları yerine farklı bir giriş mekanizması kullanın. Azure Cosmos DB ve Azure Depolama'yı beslemek için birden çok oluşturucu veya alma işlemi kullanın.

  • Azure Bilişsel Arama, Azure Search'te görüntülerden, bloblardan ve diğer yapılandırılmamış veri kaynaklarından metin ayıklamak için de kullanılabilen bir yapay zeka özelliğidir.

Senaryo ayrıntıları

Bu senaryo İngilizce, Rusça ve Almanca haber akışları için örnekler içerir, ancak bunu diğer RSS akışlarına ve diğer dillere kolayca genişletebilirsiniz. Dağıtım kolaylığı için veri toplama, işleme ve analiz tamamen Azure hizmetlerini temel alır.

Olası kullanım örnekleri

Bu senaryo RSS akışlarının işlenmesine dayalı olsa da, aşağıdakileri yapmanız gereken herhangi bir belge, web sitesi veya makaleyle ilgilidir:

  • Metni istediğiniz dile çevirin.
  • Dijital içerikte anahtar ifadeleri, varlıkları ve kullanıcı yaklaşımını bulun.
  • Dijital bir makaleyle ilişkili görüntülerdeki nesneleri, metinleri ve yer işaretlerini algılama.
  • Dijital içerikle ilişkili görüntülerde kişileri cinsiyete ve yaşa göre algılama.

Dikkat edilmesi gerekenler

Bu önemli noktalar, bir iş yükünün kalitesini artırmak için kullanılabilecek bir dizi yol gösteren ilke olan Azure Well-Architected Framework'ün yapı taşlarını uygular. Daha fazla bilgi için bkz. Microsoft Azure Well-Architected Framework.

Kolaylık olması için bu örnek senaryoda Azure Bilişsel Hizmetler'den sağlanan API'lerden ve hizmetlerden yalnızca birkaçı kullanılır. Örneğin, görüntülerdeki metinler Metin Analizi API'sini kullanarak analiz edilebilir. Bu senaryoda hedef dilin İngilizce olduğu varsayılır, ancak girişi desteklenen herhangi bir dile değiştirebilirsiniz.

Ölçeklenebilirlik

Azure İşlevleri ölçeklendirme, kullandığınız barındırma planına bağlıdır. Bu çözüm, işlem gücünün gerektiğinde işlevlere otomatik olarak ayrıldığı bir Tüketim planı olduğunu varsayar. Yalnızca işlevleriniz çalışırken ödeme alırsınız. Bir diğer seçenek de farklı miktarda kaynak ayırmak için katmanlar arasında ölçeklendirme yapmanızı sağlayan Ayrılmış plan kullanmaktır.

Azure Cosmos DB ile önemli olan iş yükünüzü kabaca eşit bir şekilde yeterince fazla sayıda bölüm anahtarı arasında dağıtmaktır. Kapsayıcının depolayabileceğiniz toplam veri miktarıyla veya kapsayıcının destekleyebilecek toplam aktarım hızı miktarıyla ilgili bir sınır yoktur.

Yönetim ve günlüğe kaydetme

Bu çözüm, performans ve günlük bilgilerini toplamak için Application Insights'ı kullanır. Application Insights örneği, dağıtımla birlikte bu dağıtım için gereken diğer hizmetlerle aynı kaynak grubunda oluşturulur.

Çözüm tarafından oluşturulan günlükleri görüntülemek için:

  1. Azure portal gidin ve dağıtım için oluşturulan kaynak grubuna gidin.

  2. Application Insights örneğini seçin.

  3. Application Insights bölümünde Araştır\Ara'ya gidin ve verileri arayın.

Güvenlik

Güvenlik, kasıtlı saldırılara ve değerli verilerinizin ve sistemlerinizin kötüye kullanılmasına karşı güvence sağlar. Daha fazla bilgi için bkz. Güvenlik sütununa genel bakış.

Azure Cosmos DB, Microsoft tarafından sağlanan C# SDK'sı aracılığıyla güvenli bir bağlantı ve paylaşılan erişim imzası kullanır. Dışarıdan bakan başka yüzey alanı yoktur. Azure Cosmos DB için en iyi güvenlik uygulamaları hakkında daha fazla bilgi edinin.

Maliyet iyileştirmesi

Maliyet iyileştirmesi, gereksiz giderleri azaltmanın ve operasyonel verimliliği artırmanın yollarını gözden geçmektir. Daha fazla bilgi için bkz. Maliyet iyileştirme sütununa genel bakış.

Azure Cosmos DB güçlüdür ancak bu dağıtımda en yüksek maliyeti sağlar. Sağlanan Azure İşlevleri kodunu yeniden düzenleyerek başka bir depolama çözümü kullanabilirsiniz.

Azure İşlevleri fiyatlandırması, çalıştığı plana bağlı olarak değişir.

Bu senaryoyu dağıtın

Not

Mevcut bir Azure hesabınız olmalıdır. Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.

Bu senaryonun tüm kodu GitHub deposunda kullanılabilir. Bu depo, bu tanıtım için işlem hattını besleyen oluşturucu uygulamasını derlemek için kullanılan kaynak kodunu içerir.

Sonraki adımlar

Ek analiz mimarileri: