使用 Azure 服務加速開發:使用該平台構建聊天機器人和認知服務

你好,哈布爾! 今天,我們將向您展示如何使用 Azure 解決通常需要人工干預的問題。 客服人員花費大量時間回答相同的問題、處理電話和短信。 聊天機器人自動化溝通和識別,減輕人們的負擔。 機器人還用於 Azure DevOps,例如,它們允許直接從 Slack 或 Microsoft Teams 批准版本、管理構建(查看、啟動和停止)。 從本質上講,聊天機器人有點讓人想起 CLI,只是交互式的,並且允許開發人員留在聊天討論的上下文中。

在本文中,我們將討論用於創建聊天機器人的工具,展示如何使用認知服務改進它們,並描述如何使用 Azure 中的現成服務加快開發速度。

使用 Azure 服務加速開發:使用該平台構建聊天機器人和認知服務

聊天機器人和認知服務:有何相似之處和不同之處?

要在 Microsoft Azure 中創建機器人,請使用 Azure 機器人服務和機器人框架。 它們共同代表了一套用於構建、測試、部署和管理機器人的軟件,允許您從現成的模塊創建具有語音支持、自然語言識別和其他功能的簡單和高級通信系統。

假設您需要實現一個基於公司問答服務的簡單機器人,或者相反,創建一個具有復雜的分支通信系統的功能機器人。 為此,您可以使用許多工具,分為三組: 

  1. 用於快速開發對話界面(機器人)的服務。
  2. 適用於不同用例(模式識別、語音識別、知識庫和搜索)的現成認知人工智能服務。
  3. 用於創建和訓練人工智能模型的服務。

通常,人們直觀地混淆“機器人”和“認知服務”,因為這兩個概念都基於通信原理,而機器人和服務的用例涉及對話。 但聊天機器人使用關鍵字和触發器,而認知服務則處理通常由人類處理的任意請求: 

使用 Azure 服務加速開發:使用該平台構建聊天機器人和認知服務

認知服務是與用戶溝通的另一種方式,有助於將任意請求轉換為清晰的命令並將其傳遞給機器人。 

因此,聊天機器人是處理請求的應用程序,認知服務是對單獨啟動的請求進行智能分析的工具,但聊天機器人可以訪問這些請求,從而變得“智能”。 

創建聊天機器人

Azure 中機器人的推薦設計圖如下: 

使用 Azure 服務加速開發:使用該平台構建聊天機器人和認知服務

要在 Azure 中設計和開發機器人,請使用 機器人框架。 可在 GitHub 上獲取 機器人的例子,框架的功能發生變化,因此有必要考慮機器人中使用的 SDK 版本。

該框架提供了多種創建機器人的選項:使用經典代碼、命令行工具或流程圖。 最後一個選項可視化對話框;為此您可以使用管理器 機器人框架作曲家。 它基於 Bot Framework SDK 構建,作為跨學科團隊可以用來創建機器人的可視化開發工具。

使用 Azure 服務加速開發:使用該平台構建聊天機器人和認知服務

Bot Framework Composer 允許您使用塊來創建機器人將使用的對話結構。 此外,您可以創建觸發器,即機器人在對話期間將做出反應的關鍵字。 例如,“操作員”、“盜竊”或“停止”和“夠了”等詞語。

在 Bot Framework Composer 中,您可以使用以下命令創建複雜的對話系統 自適應對話框。 對話可以同時使用認知服務和事件卡(自適應卡):

使用 Azure 服務加速開發:使用該平台構建聊天機器人和認知服務

創建後,您可以在訂閱中部署聊天機器人,自動準備的腳本將創建所有必要的資源:認知服務、應用程序計劃、應用程序洞察、數據庫等。

QnA製造商

要基於公司問答數據庫創建簡單的機器人,您可以使用 QnA Maker 認知服務。 它作為一個簡單的 Web 嚮導實現,允許您輸入企業知識庫的鏈接(常見問題解答 URL)或使用 *.doc 或 *.pdf 格式的文檔數據庫作為基礎。 創建索引後,機器人將自動為用戶的問題選擇最合適的答案。

使用 QnAMaker,您還可以通過自動創建按鈕來創建澄清問題鏈,用元數據補充知識庫,並在使用過程中進一步培訓服務。

該服務可以用作僅實現這一功能的聊天機器人,也可以用作根據請求使用其他 AI 服務或 Bot Framework 元素的複雜聊天機器人的一部分。

與其他認知服務合作

Azure 平台上有許多不同的認知服務。 從技術上講,這些是可以從代碼調用的獨立 Web 服務。 作為響應,服務發送特定格式的 json,該格式可以在聊天機器人中使用。

使用 Azure 服務加速開發:使用該平台構建聊天機器人和認知服務
聊天機器人最常見的用途是:

  1. 文字識別。
  2. 開發者自定義視覺服務圖像類別識別(生產案例:識別員工是否佩戴安全帽、護目鏡、口罩)。
  3. 人臉識別(一個很好的用例是檢查接受調查的人是否發布了自己的臉,或者說,狗的照片或不同性別的人的照片)。
  4. 語音識別。
  5. 圖像分析。
  6. 翻譯(我們都記得Skype的同聲翻譯造成了多少噪音)。
  7. 拼寫檢查和糾正錯誤的建議。

LUIS

另外,要創建機器人,您可能需要 LUIS (語言理解智能服務)。 服務目標:

  • 確定用戶的陳述是否有意義以及機器人的響應是否必要。
  • 減少將用戶語音(文本)轉錄為機器人可以理解的命令的工作。
  • 預測真實的用戶目標/意圖並從對話中的短語中提取關鍵見解。
  • 允許開發人員僅使用幾個含義識別示例以及隨後在操作過程中對機器人進行額外培訓來啟動機器人。
  • 使開發人員能夠使用可視化來評估命令轉錄的質量。
  • 協助逐步改進真實目標識別。

事實上,LUIS的主要目標是以一定的概率理解用戶的意思,並將自然的請求轉​​換為和諧的命令。 為了識別查詢值,LUIS 使用一組意圖(含義、意圖)和實體(由開發人員預先配置,或者採用和預先形成的“域”——Microsoft 準備的一些現成的標準短語庫)。 

一個簡單的例子:您有一個機器人可以為您提供天氣預報。 對他來說,意圖是將自然請求轉化為“行動”——天氣預報請求,而實體將是時間和地點。 下圖展示了 CheckWeather 意圖如何為此類機器人發揮作用。

意圖
本質
自然查詢示例

查看天氣
{"type": "位置", "entity": "莫斯科"}
{“類型”:“builtin.datetimeV2.date”,“實體”:“未來”,“分辨率”:“2020-05-30”}
莫斯科 明天的天氣怎麼樣?

查看天氣
{ "type": "date_range", "entity": "這個週末" }
顯示本週末的天氣預報

要結合 QnA Maker 和 LUIS,您可以使用 調度員

使用 Azure 服務加速開發:使用該平台構建聊天機器人和認知服務

當您使用 QnA Maker 並收到用戶的請求時,系統會確定 QnA 的答案與請求匹配的概率百分比。 如果概率較高,則只需從企業知識庫中向用戶提供答案;如果概率較低,則可以將請求發送到 LUIS 進行澄清。 使用Dispatcher可以讓你不用編程這個邏輯,而是自動判斷分離請求的這條邊并快速分發它們。

測試並發布機器人

使用另一個本地應用程序進行測試, Bot框架模擬器。 使用模擬器,您可以與機器人通信並檢查它發送和接收的消息。 模擬器顯示消息,就像它們出現在網絡聊天界面中一樣,並在向機器人發送消息時記錄 JSON 請求和響應。

該演示中提供了使用模擬器的示例,展示了為 BMW 創建虛擬助手的過程。 該視頻還討論了用於創建聊天機器人的新加速器 - 模板:

使用 Azure 服務加速開發:使用該平台構建聊天機器人和認知服務
https://youtu.be/u7Gql-ClcVA?t=564

您還可以在創建聊天機器人時使用模板。 
模板允許您不必重新編寫標準機器人功能,而是添加現成的代碼作為“技能”。 一個例子是使用日曆、進行約會等。現成技能代碼 發表 在 github 上。

測試成功,機器人已準備就緒,現在需要發布並連接通道。 發布是使用Azure進行的,並且可以使用Messenger或社交網絡作為渠道。 如果您沒有所需的數據錄入渠道,可以在GitHab上相應的社區中搜索。 

此外,要創建一個成熟的聊天機器人作為與用戶和認知服務進行通信的接口,您當然需要其他 Azure 服務,例如數據庫、無服務器(Azure Functions)以及 LogicApp 服務,並且可能還需要,事件網格。

使用 Azure 服務加速開發:使用該平台構建聊天機器人和認知服務

評估與分析

要評估用戶交互,可以使用 Azure Bot 服務的內置分析和特殊的 Application Insights 服務。

因此,您可以根據以下條件收集信息:

  • 在選定的時間段內有多少用戶通過各種渠道訪問機器人。
  • 有多少用戶發送了一封消息後又返回並發送了另一封消息。
  • 在指定的時間間隔內使用每個通道發送和接收的操作數。

使用 Application Insights,您可以監視 Azure 中的任何應用程序,特別是聊天機器人,獲取有關用戶行為、負載和聊天機器人反應的其他數據。 應該注意的是,Application Insights 服務在 Azure 門戶中有自己的界面。

您還可以使用通過此服務收集的數據在 PowerBI 中創建其他可視化和分析報告。 可以採用 PowerBI 的此類報告和模板的示例 這裡.

使用 Azure 服務加速開發:使用該平台構建聊天機器人和認知服務

感謝大家的關注! 在這篇文章中我們使用了 材料 摘自 Microsoft Azure 架構師 Anna Fenyushina 的網絡研討會“當人們沒有時間時。 如何 100% 使用聊天機器人和認知服務來自動化日常流程”,我們清楚地展示了 Azure 中的聊天機器人以及它們的使用場景,並且還演示瞭如何在 15 分鐘內在 QnA Maker 中創建機器人以及如何查詢結構在LUIS 中解密。 

我們舉辦此網絡研討會是開發者 Dev Bootcamp 在線馬拉鬆的一部分。 它是關於使用自動化工具和現成的預配置 Azure 模塊加速開發並減輕公司員工的一些日常工作量的產品。 馬拉松中包含的其他網絡研討會的錄音可通過以下鏈接獲取:

來源: www.habr.com

添加評論