Bot Framework 搭建聊天机器人

这周我来跟你们分享的是在Microsoft Build 2016上发布的微软聊天机器人的框架。

现现在,各类人工智能充斥在咱们的生活里。最典型的人工智能产品就是聊天机器人,它既能够陪咱们聊天,也能够替代客服人员回答客户的问题,甚至还能够充当秘书帮助咱们订电影票、飞机票等等。最成功的产品就是苹果公司的Siri和微软公司的Cortana。git

那么如何搭建一个本身的聊天机器人呢?今天我会用微软公司出品的 Bot Framework 来搭建一个聊天机器人。github

官网上介绍 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做为项目的模板。 imageapi

使用 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"按钮来运行它。 imageasync

运行成功界面以下图所示 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这些智能平台进行交互,这些你们能够自行到官网上去了解并学习。

相关文章
相关标签/搜索