Azure AI 之机器人(1)

Azure 认知服务里计算机视觉API的图片处理功能,包括智能缩略图,OCR 图中取字和图片分析,是通过传统的网页操作方式来交互演示,这相当于前沿酷炫的内核,却穿了件传统普通的衣服,有点不搭,所以我决定用当下最流行的技术来重新包装下,那就是机器人了

说到人工智能,我个人觉得机器人主要体现在两个方面,一是智能内核(大脑),另外就是聊天式的交互方式。现在我们有了基于 Azure 认知服务的智能内核,交互的聊天方式我们将使用微软的机器人框架(Bot Framework)来实现。考虑到目前Azure机器人服务(Azure Bot Service)在中国 Azure 还没上线,所以在服务端,我们将基于机器人框架 SDK,结合 Azure 认知服务,实现我的 Azure Ai Demo 机器人服务,并发布到 Azure Web App 上面,然后客户端则选择 Web Chat 通道,放在我的Azure Ai 演示网站上,整个架构如下:

该机器人的核心功能就是前面实现好的图片处理功能,所以会调用我原来开发好的 API,而对用户输入的理解则是通过调用认知服务里的语义分析服务*,交互沟通则是通过机器人框架实现。

因为目前机器人框架的 .NET SDK还没有完全支持 CORE,只有 Connector 部分是基于 CORE 的,所以从跨平台的角度考虑,我这里选择基于 Node.js 的 SDK,开发工具使用VS Code。

说明:*语义分析服务(LUIS – Language Understanding Intelligent Service)暂时还没在中国 Azure 上线,所以我这里暂时使用全球 Azure 上的服务。

在分享具体实现之前,先来了解下微软提供的机器人框架。

机器人框架

Robot Frame

机器人其实就跟网站或者手机应用一样,是一种提供服务的载体,只是它的交互方式是对话,就显得更方便更友好,所以也更被人们期待。那我们在开发机器人的时候,也会跟开发其他应用时一样,也会遇到很多共同的问题,比如机器人如何与用户建立连接,用什么语言沟通。

如何对话,如何展示内容,如何接收请求并响应等等,所以我们也需要有一个框架或者工具能帮忙我们解决这些基础问题,从而使得我们能专注于机器人功能的开发。微软的机器人框架就应运而生了,它提供了强大的工具和库来方便于我们的机器人开发。总的来说,包括以下内容:

Bot Builder

框架的核心部分,目前提供了两种语言的 SDK:.NET 和 Node.js,基于这个 SDK 进行开发,我们就可以非常方便快捷的构建自己的机器人了。SDK 是开源的,源代码公开在GitHub 上。当然,如果不想使用 SDK,也可以使用 REST API 。除此之外,Bot Builder 还包含了一个模拟器,方便于本地开发测试。同时,还有很多示例机器人,演示了各种功能的使用,非常具有参考价值。

Channels

机器人框架内置支持了多种沟通渠道,基本上囊括了所有的主流社交沟通工具,包括 Skype,Facebook,邮件,Slack 等等,不过可惜暂时还不支持咱们国内常用的微信和 QQ。更关键的是,使用这些内置支持的渠道作为客户端,我们只需要在机器人框架门户网站上,针对你自己的机器人按照步骤配置即可使用,不需要额外的代码,还是很方便的。

Bot Framework portal

机器人框架的门户网站提供了一站式服务,可以让我们很方便的注册,连接和管理我们的机器人,而且还可以配置 Azure Application Insight 对机器人进行问题排查和分析,另外提供了个 Web Chat 的控件,方便于快速测试。

机器人框架

Robot Frame

机器人框架可以帮助我们快速开发自己的机器人,但是这个机器人是否足够智能,功能是否强大,则取决于我们开发者自己了。比如,机器人可以很傻的只是个回声虫,用户说句什么,然后机器人就回复同样内容,但也可以很无比聪明的像大白一样各项全能。那如何才能让机器人智能起来呢?当然是用 Azure 的各种智能服务啦,比如认知服务,从图片分析,人脸感情识别,到语义理解,语言翻译等等,还有机器学习和必应搜索服务,绝对可以让我们的机器人智能起来。如果把机器人物理化,添加上各种传感器,再加上 Azure 的 IoT 服务,那就更加不可思议了。

下图就是如何构建一个智能机器人的架构图,主要基于机器人框架和 Azure 提供的智能服务,然后作为开发者的我们,则可以站在巨人的肩膀上,根据自己的业务功能需要选择合适的服务,这样即使少量的代码,也可以写出智能的机器人!

续将会结合机器人框架的细节,分享如何实现我的 Azure AIDemo 机器人,敬请期待。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180110G08NYJ00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券