[ChatBot01] 站在巨人肩膀上開發聊天機器人-系列說明

這一系列文章記錄了自己打造聊天機器人的過程與心得,當中用了微軟的機器人開發套件 Bot Framework v4 SDK (C#) 和微軟的雲端平台 Azure 與認知服務,做出可以分析自然語言、具備基本問答能力的機器人,而且在多個平台上可以共用同樣的程式碼。

非常感謝網路上許多高手提供自己的經驗和技術,讓這個簡單的機器人得以成形。

目的

  1. 和不同平台連接,包含 Facebook、Line 等
  2. 處理基本的客服問答 - 使用 Azure QnA maker
  3. 分析文字語意並抓到關鍵字 - 使用 Azure LUIS (Language Understanding)
  4. 將對話記錄下來,以供後續分析

機器人運作架構

BotFramework0825

這個機器人是由許多的雲端服務組合而成的:使用者平台、機器人通道註冊、機器人的程式主體(Web App)、各種 AI 服務和資料庫。整體的運作流程會像這樣:使用者在雲端平台輸入訊息後,平台將訊息傳送給機器人通道註冊進行彙整,再交給程式主體去分析訊息;程式主體來處理訊息分析的流程,例如要將訊息丟給 QnA maker 處理還是 LUIS 處理、設定回答的方式、與資料庫串接等;業務處理完成,要回覆的訊息再依序由程式回傳到機器人通道註冊,再回傳到使用者眼前。而每個服務間透過 WebAPI 以 JSON 的格式傳送檔案資料進行溝通。開發者要做的就是將這些服務串接起來,組合成想要的功能(業務程序),寫成程式。程式部分會先在地端寫好後,在模擬器進行測試,確認程式和各 AI 服務及資料庫的串聯沒問題,再上傳到雲端。

機器人的程式主體建構在 Visual Studio Bot Framework v4 SDK 的基礎上,其本身已經提供了接收和傳送訊息的模板(包含文字、圖片、卡片訊息等),照著這個模板我們可以取得來自使用者的訊息,將回覆訊息一樣套到模板上傳回機器人通道註冊後,機器人通道註冊就可以根據使用者平台規定的資料格式回覆訊息;因為各平台最後到程式主體中的資料格式是一致的,我們可以專注在業務邏輯的處理上。

整個機器人是由雲端服務串接起來的,需要到各個雲端服務進行註冊,並取得或設定服務的 URL 和 Key (簡單來說,我們需要知道資料寄送的地址和開門的鑰匙才能正確將資料送達),所以建置過程中很大一部分是在處理這些基礎設施。

註:所使用的 Azure 項目大部分都用 F0 免費的定價層,少數無免費層級的會用最基礎的收費層級,如需要更進階的服務與計價說明,請參考微軟官方文件

準備工具

  1. Visual Studio 2017 或 2019 (需含 .Net Core 2.1)
  2. 安裝 C# Bot Framework v4 SDK
  3. 安裝 BotFramework-Emulator 介面模擬器(用來測試機器人)
  4. 微軟 Azure 訂閱帳號(註冊免費版即可)

1. 安裝 Visual Studio 2019 community (需包含 .Net Core 2.1)

Picture100


如果已有 Visual Studio

Picture102_1


Picture102_2


勾選 ASP.NET 與網頁程式開發,然後「安裝」

Picture103


2. 安裝 Bot Framework SDK

Picture107


Picture108


3. 安裝 BotFramework-Emulator模擬器

Picture110


Picture111


Picture112


4. 申請微軟 Azure 訂閱帳號

申請微軟 Azure 訂閱帳號:https://azure.microsoft.com/zh-tw/free/

申請流程可以參考**此文**,需要準備一張信用卡

入口網站網址:http://portal.azure.com,之後會在此介面建立聊天機器人相關資源


<如有轉載,請附上本文連結網址>