业界|Bot框架完全指南:定义你的聊天机器人
选自:Maruti
参与:赵华龙、黄小天
今年聊天机器人备受瞩目。科技巨头诸如Facebook和微软已经大规模发布了Bot框架,旨在量产聊天机器人。 在Facebook Messenger上开发了超过11,000个聊天机器人,并且有近23,000个开发人员注册了Facebook 机器人引擎
(Facebook Bot Engine)。 此外,大量初创公司拥有自属开发框架和功能性产品。 较小的交流平台,如Telegram和Slack,也推出了“机器人商店”(“Bot Stores”),并成立基金吸引开发人员。
什么是Bot框架?
简单地解释,Bot框架用来制造机器人并定义其行为。作为聊天机器人开发者,开发和定向如此之多的交流平台与聊天机器人开发 SDKs常会感到无所适从。Bot开发框架是这样一种软件框架,它能对聊天机器人开发过程中的人工内容做抽象化处理。
然而,尽管很多Bot开发框架宣称“代码一旦写好可部署到任何地方”,你还是很可能为你的每一个目标交流平台开发一个单独的聊天机器人。Bot开发框架包括机器人制造者 SDK(Bot Builder SDK)、机器人连接器(Bot Connector)、开发者入口(Developer Portal)、机器人目录(Bot Directory)以及一个用来测试已开发机器人的模拟器。 此外,Bot框架并不适合初学者用来学习聊天机器人开发。
机器人框架与机器人平台的差别?
Bot框架(Bot Framework)有时错误地与Bot平台(“Bot Platform”)通用。 在开发应用程序时,Bot平台的作用是提供部署和运行应用程序的,Bot框架的作用是开发和绑定各种组件到应用程序。 Bot平台是在线生态系统,其中聊天机器人可以被部署并与用户进行交互,代表用户执行操作,包括与其他平台交互。
Bot开发框架是一组预定义函数和开发人员用来加快开发的类,一组可以使你更快更好编码的工具。 简单来说,初学者或非技术用户可以用Bot平台来开发不需要写代码的机器人,而Bot开发框架则被开发人员和码农借助编程语言从头开始构建机器人。
例如Bot平台Motion.ai可使用户无需编码便能快速创建强大的机器人。 原因在于Motion.ai提供了一个能创建聊天机器人的工具包,使得机器人可与APIs相连并部署到任何一个可用的交流平台。
一些著名的Bot框架:
Facebook bot引擎
2016年4月,Facebook实现了基于Wit.ai技术的Facebook Bot引擎。 Wit.ai在自己的云服务器运行,Bot引擎是一个包装器,用于在Facebook Messenger平台上部署机器人。 Facebook作为社交巨头的力量在于海量用户,因此他们不需要任何其他的Bot开发平台,并且聊天机器人将仅限于Facebook Messenger(其本身即是一个巨大的空间)。
Facebook正在为Facebook Bot引擎采用一种新策略。如果开发人员获得框架,Facebook Messenger用户将享有各种专业聊天机器人
Facebook Bot引擎依赖于机器学习。提供Bot框架示例对话之后,它可以处理同一问题的很多不同变体。随着开发人员不断完善聊天机器人,它们的潜力也会越来越巨大。
Wit.ai提供一些选项:
它能提取出一些预定义的实体,比如时间、日期等等。
提取用户的意图。
提取情绪。
它可进行自我定义和提取。
微软Bot框架
微软几乎与Facebook同时宣布了其Bot框架。尽管微软的哲学和方法有点不同。就像Facebook的产品一样,微软的SDK可以被看作是2个彼此独立的组件。
1. Bot连接器,集成框架
2. LUIS.ai,自然语言理解组件
微软Bot框架的集成组件适用于Slack、Facebook Messenger、Telegram、Webchat、GroupMe、SMS、电子邮件和Skype,令人印象深刻。此外,Azure上有一个PaaS选项,就是用于Bots。
微软Bot框架是一个全面的产品,用于构建和部署高质量的聊天机器人供用户享受最喜欢的对话体验。机器人开发人员都面临着同样的问题:机器人需要基本的输入和输出;它们必须具备语言和会话能力;机器人必须具有高性能,响应性和可扩展性;并且它们必须能够向用户提供理想的对话体验。 微软Bot框架提供了我们构建,连接,管理和发布智能聊天机器人所需要的一切,无论是通过文字/SMS,还是其他平台诸如Slack、Skype、 Facebook Messenger、Kik等,聊天机器人都可以和用户自然地交流。微软Bot框架由许多组件组成,包括Bot创建者SDK(Bot Builder SDK)、开发人员门户(Developer Portal)和Bot目录(Bot Directory)。
API.ai
API.ai是另一个基于Web的bot开发框架。 API.ai似乎已经发现了让用户通过输入多个话语来定义实体和意图的缺陷,并因此提供了一个巨大的领域集(a huge set of domains)。API.ai为bot开发提供的一些SDK和库,包括Android、iOS、Webkit HTML5、JavaScript、Node.js、Python等。
API.ai建立在如下几个概念上:
代理器:代理器对应于应用。一旦我们训练并测试一个代理器,我们就可以把它集成到我们的app或设备中去。
实体:实体表示那些通常专用于某一领域的概念,作为将NLP(自然语言处理)短语映射到捕获其含义的批准短语的方式。
意图:意图表示用户说什么和软件需要采取什么动作之间的映射。
动作:动作对应于您的应用在用户的输入触发特定的意图时所采取的步骤。
上下文:上下文是表示用户表达的当前上下文的字符串。这对于区分可能是不明确的并且因取决于前面的话而具有不同含义的短语是有用的。
API.ai 能被集成在很多流行的交流平台、物联网和虚拟个人助理平台。它们中的一些包括Actions on Google、Slack、Facebook Messenger、Skype、Kik、Line、Telegram、Amazon Alexa、Twilio SMS和Twitter等。
Aspect CXP and Aspect NLU
Aspect客户体验平台(CXP)是设计,实施和部署多渠道客户服务应用程序的平台。Aspect NLU是一个给出人类语言感觉的组件,其采用的方法与Wit.ai、API.ai和微软Bot框架完全不同,并能为Facebook Messenger上的自助服务对话带来人性化的交谈口吻。这使它能够通过自动化以聊天机器人特有的方式进行扩展。 Aspect CXP使得设计、实现和在多种交流渠道(诸如文本、语音、移动网、社交网络)部署聊天机器人变得容易起来。这很适合那些需要复杂聊天机器人、客服应用和企业软件的地方;不太适合对简单机器人、嵌入式应用和物联网应用的需求。
这些是市场上可用的、开发人员构建机器人的Bot框架。如果你的组织要花费大量的金钱和时间与客户交流,你可以尝试建立一个机器人来处理这种情况。对话用户界面的时代(The era of Conversational User Interfaces )已经dao lai,成为掌握趋势的先行者之一吧。