使用影像和自然語言處理,使用近乎即時的分析來分析新聞摘要

Azure Cosmos DB
Azure Functions
Azure 服務匯流排
Azure 翻譯工具文字
Azure Face

此範例案例描述大量擷取和來自公用 RSS 新聞摘要的檔近乎即時分析的管線。 它會使用 Azure 認知服務 ,根據文字翻譯、臉部辨識和情感偵測來提供有用的見解。 具體而言,影像和自然語言處理步驟會根據 Azure 服務匯流排 在傳訊管線中連接在一起。 管線的輸出是包含深入解析或分析的通知。

架構

架構圖表:使用影像和文字處理並傳送通知來內嵌和分析 RSS 摘要。下載此架構的 Visio 檔案

資料流程

資料會流經解決方案,如下所示:

  1. RSS 新聞摘要可作為從檔或文章取得數據的產生器。 例如,使用文章時,數據通常會包含標題、新聞專案原始本文的摘要,有時包含影像。

  2. 產生器或擷取程式會將發行項和任何相關聯的映射插入 Azure Cosmos DB 集合中。

  3. 通知會觸發 Azure Functions 中的內嵌函式,以將文章文字儲存在 Azure Cosmos DB 中,以及 Azure Blob 儲存體 中的發行項影像(如果有的話)。 文章接著會傳遞至下一個佇列。

  4. 翻譯函式是由佇列事件觸發。 它會使用 Azure 認知服務的翻譯文字 API 來偵測語言、視需要翻譯,以及從本文和標題收集情感、關鍵片語和實體。 然後它會將發行項傳遞至下一個佇列。

  5. 偵測函式會從佇列發行項觸發。 它會使用 電腦視覺 服務來偵測相關聯影像中的物件、地標和寫入文字,然後將文章傳遞至下一個佇列。

  6. 臉部函式會從佇列的發行項觸發。 它會使用 Azure 臉部 API 服務來偵測相關聯影像中性別和年齡的臉部,然後將文章傳遞至下一個佇列。

  7. 當所有函式都完成時,會觸發 notify 函式。 它會載入發行項的已處理記錄,並掃描它們以取得您想要的任何結果。 如果找到,則會標示內容,並將通知傳送至您選擇的系統。

在每個處理步驟中,函式會將結果寫入 Azure Cosmos DB。 最後,數據可以視需要使用。 例如,您可以使用它來增強商務程式、尋找新客戶,或找出客戶滿意度問題。

元件

此範例會使用下列 Azure 元件清單。

  • Azure 儲存體 用來保存與發行項相關聯的原始影像和視訊檔案。 使用 Azure App 服務 建立次要儲存體帳戶,並用來裝載 Azure 函式程式代碼和記錄。

  • Azure Cosmos DB 保存文章文字、影像和影片追蹤資訊。 認知服務步驟的結果也會儲存在這裡。

  • Azure Functions 會執行用來回應佇列訊息並轉換傳入內容的函式程序代碼。 Azure App 服務裝載函式程式碼,並以序列方式處理記錄。 此案例包含五個功能:內嵌、轉換、偵測物件、臉部和通知。

  • Azure 服務匯流排 裝載函式所使用的 Azure 服務匯流排 佇列。

  • Azure 認知服務會根據 電腦視覺 服務、臉部 API翻譯文字機器翻譯服務的實作,提供管線的 AI。

  • Azure 應用程式 Insights 提供分析,協助您診斷問題並瞭解應用程式的功能。

替代項目

  • 您可以針對此數據流使用主題和訂用帳戶模式,而不是使用以佇列通知和 Azure Functions 為基礎的模式。 Azure 服務匯流排 主題可用來平行處理發行項的各個部分,而不是在此範例中完成的序列處理。 如需詳細資訊,請比較 佇列和主題

  • 使用 Azure Logic Apps 來實作函式程式代碼,並實作記錄層級鎖定,例如 Redlock 演算法所提供的鎖定(需要平行處理,直到 Azure Cosmos DB 支援部分檔更新為止)。 如需詳細資訊, 請比較 Functions 和 Logic Apps

  • 使用自定義的 AI 元件而非現有的 Azure 服務來實作此架構。 例如,使用自定義模型擴充管線,以偵測影像中的特定人員,而不是在此範例中收集的一般人員計數、性別和年齡數據。 若要搭配此架構使用自定義機器學習或 AI 模型,請將模型建置為 RESTful 端點,以便從 Azure Functions 呼叫它們。

  • 使用不同的輸入機制,而不是 RSS 摘要。 使用多個產生器或擷取程式來提供 Azure Cosmos DB 和 Azure 儲存體。

  • Azure 認知搜尋 是 Azure 搜尋服務中的 AI 功能,也可用來從影像、Blob 和其他非結構化數據源擷取文字。

案例詳細資料

此案例包含英文、俄文和德文新聞摘要的範例,但您可以輕鬆地將其延伸至其他 RSS 摘要和其他語言。 為了方便部署,數據收集、處理和分析完全以 Azure 服務為基礎。

潛在使用案例

雖然此案例是以處理 RSS 摘要為基礎,但它與您需要下列專案的任何文件、網站或文章相關:

  • 將文字翻譯成您選擇的語言。
  • 尋找數位內容中的關鍵片語、實體和用戶情感。
  • 偵測與數位文章相關聯之影像中的物件、文字和地標。
  • 在與數位內容相關聯的影像中依性別和年齡偵測人員。

考量

這些考量能實作 Azure Well-Architected Framework 的要素,其為一組指導原則,可以用來改善工作負載的品質。 如需詳細資訊,請參閱 Microsoft Azure Well-Architected Framework (部分機器翻譯)。

為了簡單起見,此範例案例只會使用來自 Azure 認知服務的一些可用 API 和服務。 例如,您可以使用 文字分析 API 來分析影像中的文字。 此案例中的目標語言假設為英文,但您可以將輸入變更為任何 支持的語言

延展性

Azure Functions 調整取決於您使用的 裝載方案 。 此解決方案假設使用 方案,其中計算能力會在需要時自動配置給函式。 只有在函式正在執行時,才會支付費用。 另一 個選項是使用專用方案,這可讓您在各層之間調整以配置不同數量的資源。

使用 Azure Cosmos DB 時,索引鍵是將您的工作負載平均分散在足夠大量的 分割區索引鍵之間。 容器可以儲存的數據總量,或容器可支援的輸送量總計沒有限制。

管理和記錄

此解決方案會使用 Application Insights 來收集效能和記錄資訊。 Application Insights 的實例會與此部署所需的其他服務相同資源群組中的部署來建立。

若要檢視解決方案所產生的記錄:

  1. 移至 Azure 入口網站,然後流覽至為部署建立的資源群組。

  2. 選取 Application Insights 實例。

  3. 從 [Application Insights] 區段,流覽至 [調查\搜尋] 並搜尋數據。

安全性

安全性可提供保證,以避免刻意攻擊和濫用您寶貴的資料和系統。 如需詳細資訊,請參閱安全性要素的概觀

Azure Cosmos DB 會透過Microsoft提供的 C# SDK 使用安全的連線和共用存取簽章。 沒有其他外部面向的表面區域。 深入瞭解 Azure Cosmos DB 的安全性 最佳做法

成本最佳化

成本最佳化是關於考慮如何減少不必要的費用,並提升營運效率。 如需詳細資訊,請參閱成本最佳化要素的概觀

Azure Cosmos DB 功能強大,但在此部署中會產生最大的 成本 。 您可以重構提供的 Azure Functions 程式代碼,以使用另一個記憶體解決方案。

Azure Functions 的定價會根據其 執行方案 而有所不同。

部署此案例

注意

您必須擁有現有的 Azure 帳戶。 如尚未擁有 Azure 訂用帳戶,請在開始之前先建立免費帳戶

此案例的所有程式代碼都可在 GitHub 存放庫中取得。 此存放庫包含用來建置產生器應用程式的原始程式碼,此應用程式會提供此示範的管線。

下一步

其他分析架構: