這一系列文章記錄了自己打造聊天機器人的過程與心得,當中用了微軟的機器人開發套件 Bot Framework v4 SDK (C#) 和微軟的雲端平台 Azure 與認知服務,做出可以分析自然語言、具備基本問答能力的機器人,而且在多個平台上可以共用同樣的程式碼。
非常感謝網路上許多高手提供自己的經驗和技術,讓這個簡單的機器人得以成形。
目的
- 和不同平台連接,包含 Facebook、Line 等
- 處理基本的客服問答 - 使用 Azure QnA maker
- 分析文字語意並抓到關鍵字 - 使用 Azure LUIS (Language Understanding)
- 將對話記錄下來,以供後續分析
機器人運作架構
這個機器人是由許多的雲端服務組合而成的:使用者平台、機器人通道註冊、機器人的程式主體(Web App)、各種 AI 服務和資料庫。整體的運作流程會像這樣:使用者在雲端平台輸入訊息後,平台將訊息傳送給機器人通道註冊進行彙整,再交給程式主體去分析訊息;程式主體來處理訊息分析的流程,例如要將訊息丟給 QnA maker 處理還是 LUIS 處理、設定回答的方式、與資料庫串接等;業務處理完成,要回覆的訊息再依序由程式回傳到機器人通道註冊,再回傳到使用者眼前。而每個服務間透過 WebAPI 以 JSON 的格式傳送檔案資料進行溝通。開發者要做的就是將這些服務串接起來,組合成想要的功能(業務程序),寫成程式。程式部分會先在地端寫好後,在模擬器進行測試,確認程式和各 AI 服務及資料庫的串聯沒問題,再上傳到雲端。
機器人的程式主體建構在 Visual Studio Bot Framework v4 SDK 的基礎上,其本身已經提供了接收和傳送訊息的模板(包含文字、圖片、卡片訊息等),照著這個模板我們可以取得來自使用者的訊息,將回覆訊息一樣套到模板上傳回機器人通道註冊後,機器人通道註冊就可以根據使用者平台規定的資料格式回覆訊息;因為各平台最後到程式主體中的資料格式是一致的,我們可以專注在業務邏輯的處理上。
整個機器人是由雲端服務串接起來的,需要到各個雲端服務進行註冊,並取得或設定服務的 URL 和 Key (簡單來說,我們需要知道資料寄送的地址和開門的鑰匙才能正確將資料送達),所以建置過程中很大一部分是在處理這些基礎設施。
註:所使用的 Azure 項目大部分都用 F0 免費的定價層,少數無免費層級的會用最基礎的收費層級,如需要更進階的服務與計價說明,請參考微軟官方文件
準備工具
- Visual Studio 2017 或 2019 (需含 .Net Core 2.1)
- 安裝 C# Bot Framework v4 SDK
- 安裝 BotFramework-Emulator 介面模擬器(用來測試機器人)
- 微軟 Azure 訂閱帳號(註冊免費版即可)
1. 安裝 Visual Studio 2019 community (需包含 .Net Core 2.1)
如果已有 Visual Studio
勾選 ASP.NET 與網頁程式開發,然後「安裝」
2. 安裝 Bot Framework SDK
3. 安裝 BotFramework-Emulator模擬器
4. 申請微軟 Azure 訂閱帳號
申請微軟 Azure 訂閱帳號:https://azure.microsoft.com/zh-tw/free/
申請流程可以參考**此文**,需要準備一張信用卡
入口網站網址:http://portal.azure.com,之後會在此介面建立聊天機器人相關資源
<如有轉載,請附上本文連結網址>