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

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. 當所有函式都完成時,就會觸發通知函式。 會載入文章的已處理記錄,並針對您想要的任何結果進行掃描。 如果找到,則會將內容加上旗標,並將通知傳送至您選擇的系統。

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

單元

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

  • Azure 儲存體是用來保存與文章相關聯的原始影像和影片檔案。 使用 Azure App Service 建立次要儲存體帳戶,用來裝載 Azure Function 程式碼和記錄。

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

  • Azure Functions 會執行函式程式碼,該程式碼是用來回應佇列訊息和轉換傳入內容。 Azure App Service 會裝載函式程式碼,並連續處理記錄。 此案例包含五個函式:擷取、轉換、偵測物件、臉部和通知。

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

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

  • Azure Application 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] 區段中,瀏覽至 [Investigate\Search] 並搜尋資料。

安全性

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

Azure Cosmos DB 透過 Microsoft 提供的 C# SDK,使用安全的連線和共用存取簽章。 沒有其他對外開放的介面區。 深入了解 Azure Cosmos DB 的安全性最佳做法

成本最佳化

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

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

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

部署此案例

注意

您必須具有現有的 Azure 帳戶。 如果您沒有 Azure 訂用帳戶,請在開始前建立免費帳戶

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

後續步驟

其他分析架構: