Bot Framework 搭建聊天機器人


這周我來跟大家分享的是在Microsoft Build 2016上發布的微軟聊天機器人的框架。

現如今,各種人工智能充斥在我們的生活里。最典型的人工智能產品就是聊天機器人,它既可以陪我們聊天,也可以替代客服人員回答客戶的問題,甚至還可以充當秘書幫助我們訂電影票、飛機票等等。最成功的產品就是蘋果公司的Siri和微軟公司的Cortana。

那么如何搭建一個自己的聊天機器人呢?今天我會用微軟公司出品的 Bot Framework 來搭建一個聊天機器人。

官網上介紹 Bot Framework 可以用C#, Node.js來編寫,由於我個人技術限制問題,我只介紹C#的部分。大家可以使用Node.js來編寫。你也可以從Github獲取官方事例代碼。

前提准備

  1. Visual Studio 2015 或者 Visual Studio 2017
  2. 在Visual Studio 中,將所有插件進行更新
  3. 下載 Bot Framework 模板,將下載的zip文件夾直接復制到%USERPROFILE%\Documents\Visual Studio 2017\Templates\ProjectTemplates\Visual C#\

創建你的機器人

打開Visual Studio 並且創建一個C#項目,選擇Bot Application作為項目的模板。 image

使用 Bot Application作為項目模板創建出來的項目已經包含了一個簡單的機器人。請檢查一下項目是否包含了最新的Bot Application模板:

  1. 右鍵點擊項目,找到Manage NuGet Packages
  2. 在Browse標簽欄,輸入“Microsoft.Bot.Builder”
  3. 在結果中找到 Microsoft.Bot.Builder 並點擊后面的更新按鈕
  4. 根據提示來更改並更新引用的程序包

輸入代碼

首先,編寫 Controllers\MessagesController.cs文件中的Post方法來獲得用戶的消息並且調用根對話框

C# [BotAuthentication] public class MessagesController : ApiController { /// <summary> /// POST: api/Messages /// Receive a message from a user and reply to it /// </summary> public async Task<HttpResponseMessage> Post([FromBody]Activity activity) { if (activity.Type == ActivityTypes.Message) { await Conversation.SendAsync(activity, () => new Dialogs.RootDialog()); } else { HandleSystemMessage(activity); } var response = Request.CreateResponse(HttpStatusCode.OK); return response; } ... }

這個根對話框會處理消息並且生成一個回復,Dialogs\RootDialog.cs文件中的MessageRevicedAsync方法會回復用戶的消息。

C# [Serializable] public class RootDialog : IDialog<object> { public Task StartAsync(IDialogContext context) { context.Wait(MessageReceivedAsync); return Task.CompletedTask; } private async Task MessageReceivedAsync(IDialogContext context, IAwaitable<object> result) { var activity = await result as Activity; // calculate something for us to return int length = (activity.Text ?? string.Empty).Length; // return our reply to the user await context.PostAsync($"You sent {activity.Text} which was {length} characters"); context.Wait(MessageReceivedAsync); } }

測試你的機器人

下一步,使用 Bot Framework Emulator來測試你的機器人,首先你需要下載並安裝它。

運行你的機器人

在安裝完Bot Framework Emulator之后,你可以點擊 "Microsoft Edge"按鈕來運行它。 image

運行成功界面如下圖所示 image

打開你的emulator並且連接到機器人

首先,需要確保你的機器人正在本機上運行,之后打開emulator然后連接到你的機器人:

  1. 在地址欄輸入http://localhost:port-number/api/messages,port-number是你瀏覽器中顯示的,機器人占用的端口號碼
  2. 點擊 Connect,你不需要輸入Microsoft App ID 和Microsoft App Password。現在他們是空白的也沒有問題,在之后,如果你注冊了bot, 你會得到這些信息。

測試你的機器人

現在你的機器人已經開始運行了,並且emulator已經開始工作了。你可以輸入你想輸入的任何東西。在輸入后,你會看到*'You sent' and ending with the text 'which was ## characters', where ## is the total number of characters in the message that you sent.* 這樣的回復。

結語

好啦,搭建自己的機器人是不是非常簡單呢。但是,如果想搭建一個如Siri或者Cortana這樣的機器人,那是需要海量數據來支持的,甚至還需要自學習算法以及人工智能的知識。因為當一個用戶輸入一段話的時候,機器人必須了解這句話的含義,甚至要去猜測這句話的意思,並給出正確或者接近的答案。這也是為什么能做聊天機器人的公司大都是搜索公司或者用戶量極大的互聯網公司。

這個項目只是我們觸及機器人的一小步,還有很多的知識來不及介紹,比如如何將Bot發布到服務器上,並且用微信或者Skype進行訪問,如何將Bot和一些Cortana這些智能平台進行交互,這些大家可以自行到官網上去了解並學習。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM