有人问我,如何快速上手编写智能聊天机器人,应该怎么回答呢,于是打算从 api .AI 聊起, 在2016年9月收购了这家公司,很多人忽然正视起这家公司,但仍很难说明白这到底是一家什么样的公司。
简单的说,API.AI 是一家B2D( to )公司,是一个为开发者提供服务的机器人搭建平台,帮助开发者迅速开发一款bot并把发布到各种平台上。
介绍
官方的解释是这个样子的:
API.AI is a that makes it easy for (and non-) to and and user into apps, web , , and bots.
Our goal is to make the of and user as as .
我觉得我的解释会更清楚一点:
API.AI 是一个自然语义理解平台,换句话说, 将用户说的【人话】 翻译成一个【程序能读懂】的语言 ,以JSON的格式返回结果,有参数,有值。
TIPS: 自然语言理解(NLU):
下图很好的解释了API.AI 是如何与其他模块配合处理数据的:
用户发送一个query,api.ai会解析出用户的真实 ,并返回成json方便程序处理。举个例子,用户说’我饿了,想吃东西了,中午应该吃什么呢?’ api.ai 就会告诉程序执行’查询餐厅‘ 功能。
识别是通过开发者不断在中录入信息,并进行数据训练实现的。
API.AI作为一个聊天机器人开发框架,提供了诸如语音识别(主要依靠调用第三方框架实现,api.ai 并没有这个功能)、意图识别、上下文管理等功能,并且允许开发者针对特定机器人的独特需求提供领域知识,从而让开发者可以定制、强化聊天机器人的智能。
接入方式
从上述的介绍中,我们了解到,api.ai 智能帮助开发者实现自然语言理解,将 【人话】 翻译成 【程序话】 ,之后开发者需要实现的逻辑还是需要开发者自行完成的。接入平台有一下3种方式:
输入
API.AI 支持文本输入,如果希望进行语音输入,推荐使用第三方平台将语音转换成问题,推荐下面几个库:
输出
API.AI 本身并不支持语音输出,如果希望实现语音输出,可以使用刚刚推荐的语音识别库进行转换,但是API.AI 除了支持文本输出外,还支持一些富文本的输出,如图片。
Quick Start
1. 新建Agent
agent可以理解成一个应用,类比一个APP可能会比较好理解一些。一个agent是为了完成的一系列特定任务而组成的集合。
API.AI已经支持中文了,记得创建的时候在中勾选 中文(简体) , TIME ZONE 选择 (GMT+8:00)PRC ,语言一旦选择以后是不能更改的,之后你就可以得到你的API KEY和开发者的 token了。
2.新建
可以理解成一个规范的自然语言短语集合,通常为应用所在领域的关键词、术语等。
新建agent之后需要创建, 进而可以从用户的自然语言提取关键词。每个的值在不同的场景下有不同的意义,他们确认那些信息存入JSON中并赋予不同的值。
举个例子,一个 披萨 店中有一个叫’品种‘,他代表了不同的披萨类别,不同的披萨类别可能有一些近义词,这些近义词都会映射到相同的JSON键中。
3.新建
一个可以看成将用户的输入解析成JSON的过程。
同样,我们使用披萨店的例子,看一个’点pizza‘的
我们注意到,所有的都有一个默认的 的可选项,他表示你的agent将会从添加到的例子进行自我训练,进而更加适应用户对类似问题的提问。
TIPS:添加到中的“用户提问”越是多样化,你的机器人就越聪明。
4.测试Agent
开发者页面的右侧是专门测试当前Agent的地方,并可以点击查看返回的JSON
如果用户的输入被解析成功,就可以看到用于处理它的以及提取到的信息。
如果输入匹配失败,你可以将它添加到它应属的中,或者使用’train‘工具查找到所有不匹配的输入,并通过它对agent进行训练。
5. 接口对接
在应用设置中找到token,并通过上述介绍的三种方式将agent接入到你的应用中,为用户提供更多的服务。API.AI 提供了下面三种工具:
写在最后
近期我在使用API.AI 为我的客户搭建一个订票服务的应用,我会接下来在文章中以此为案例具体介绍API.AI 中的关键模块,包括,,,train等。
恩,我坚信在不就的将来,我连这个应用都不需要自己搭建了,因为3月30日的时候,API.AI 加入了下面的 Agent, 不过现在并不支持中文。
最后的最后,有人会问,API.AI 中这么多英文,国内有木有相关的平台,近期发现了一个还不错的平台: 一个AI () 如果有兴趣也可以去看看。
用最简单语言分享 产品 & 技术