Bot Framework 入门

聊天机器人这种东西最Geek啦

Posted by Donggu Ho on 2017-04-14

一个非常简单的 MS Bot Framework 入门教程

因为背锅准备参加微软2017编程之美比赛,所以考虑使用 Bot Framework 做个聊天机器人主要是听说可以非常方便地接入到小娜所以嘿嘿嘿。微软的文档还是相当全面的,很轻松就跑通了一个 EchoBot,在此做一下记录。

开发环境和安装

环境

微软为 Bot Framework 提供了 C# 和 Node.js 两款 SDK,Node.js基本上NPM安装就可以,太简单了此处略过。由于课程原因需要进行 C# .NET 开发,故下文都基于 C# .NET 版本进行。

  • 操作系统: Windows 10 Creator 其实我就是想炫耀一下系统
  • IDE: Visual Studio 2017 Professional(VS2015+ Community就够用了)

Bot 的开发并没有对环境太特别的要求,只要安装了 VS2015+ 即可——毕竟VS本身就是巨无霸了:)微软强烈建议在配置前保证Windows和VS已经安装了最新的更新,最好检查并更新一下。

下载和安装

参考链接 Getting started with the Connector

Bot Framework Emulator

虽然官方文档指出其实也并不一定需要模拟器,但是模拟器除了方便的对话界面之外还能显示一些调试信息,多方便呀对不对!
下载戳这里,大小约为61MB。
微软开发定律之你无法选择安装路径
一个奇怪的地方是该模拟器安装完之后无法在开始菜单找到,也不会生成快捷方式,然后由于不能自定义安装路径也不知道它跑哪里去了【
最后是用Listary搜到的……所以建议第一次安装完自动打开的时候就把它加入到开始屏幕里……

Bot Framework VS项目模板

  • 首先下载Bot Framework项目模板,大小为23.8KB。
    将下载得到的.zip文件复制到 Visual Studio 文件目录的templates\Visual C#\下。通常安装位置为%USERPROFILE%\Documents\Visual Studio 2017\Templates\ProjectTemplates\Visual C#\
  • 放置好模板之后甚至不需要重启VS。此时新建项目,选择Visual C#即可在列表尾部看到新增的Bot Framework项目模板,选中后照常配置项目名称路径即可。

首个项目的运行

使用Bot Framework模板新建的项目中有NuGet依赖,需要先安装这些依赖。

  • 在项目名处 右键 - 管理NuGet程序包(NuGet Package Management)
  • 窗口上方会显示缺少的NuGet包依赖,点击还原安装。
  • 其实安装完依赖项目就完成了,但此时打开文件目录中的如Controllers/MessagesController.cs可能还会有库丢失找不到类的相关报错,使用菜单生成 - 对解决方案运行代码分析功能即可(Alt+F11)。

解决依赖问题后项目就可以正常运行了。直接点击运行按钮,会打开默认浏览器窗口。稍等一段时间后跳转到一个localhost地址,即为Bot的端口地址。此时打开Bot Framework Emulator,在顶端输入https://localhost:端口号/api/messages,然后直接点击CONNECT即可。

右下角的POST状态信息为200就意味着连接成功啦。此时直接在输入框输入信息即可与Bot对话~模板默认新建的项目的Bot是一个Echo Bot,会返回你输入的信息并顺便统计一下字数;点击任意一个气泡可以在右上方的窗口看到具体的JSON信息。
黑色为被选中的气泡
如图,黑色的气泡是被选中的。

文件目录

文件目录非常好懂:

  • Web.config 配置Bot应用的网络信息,包括应用ID等。
  • App Start/ 配置启动信息,配置api路由。
  • Controllers/ 控制器业务逻辑。执行REST请求,沟通前后端,就是经典的Web服务套路。
  • Dialogs/ 对话回复的业务逻辑,可以说是真·后端了 文档

文档与更多项目示例

微软官方有非常细致的 系列文档教程,英语浅显易懂,实在不行 Chrome 安装一个划词翻译插件也足够看懂了(前提是翻译引擎别选百度)。

微软提供的 Bot Framework SDK 中提供了12个包含业务逻辑的示例源码,位于 SDK 的/Samples目录下,适合入门学习,与官方文档的教程是相互配合的。

另外微软还另外提供了一个 BotBuilder-Samples 的库,里面对 Bot 的各项核心机能进行了分别展示,另外还有关于部署到 Azure 以及与微软认知服务对接相关的示例。下载后打开项目后同样需要在NuGet包管理中还原依赖。