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

Cosmos DB
函式
服務匯流排
翻譯工具文字
臉部

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

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

潛在使用案例

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

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

架構

架構圖:使用影像和文字處理和傳送通知來內嵌和分析 RSS 摘要。

整個解決方案的資料流程如下所示:

  1. RSS 新聞摘要可作為從檔或文章取得資料的產生器。 例如,在發行項中,資料通常會包含標題、新聞專案原始主體的摘要,有時也會包含影像。

  2. 產生器或內嵌進程會將文章和任何相關聯的影像插入 Azure Cosmos DB集合中。

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

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

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

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

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

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

單元

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

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

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

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

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

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

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

替代方案

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

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

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

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

  • Azure 認知搜尋 是 Azure 搜尋服務中的 AI 功能,也可用來從影像、blob 及其他非結構化資料來源中解壓縮文字。

考量

為了簡單起見,此範例案例只會使用來自 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存放庫中取得。 此存放庫包含用來建立產生器應用程式的原始程式碼,此應用程式會將管線送入此示範。

下一步

其他分析架構: