大略的说,API.AI 是一家B2D(business to developer)公司,是一个为开拓者供应做事的机器人搭建平台,帮助开拓者迅速开拓一款bot并把发布到各种message平台上。
先容
官方的阐明是这个样子的:

API.AI is a natural language understanding platform that makes it easy for developers (and non-developers) to design and integrate intelligent and sophisticated conversational user interfaces into mobile apps, web applications, devices, and bots.
Our goal is to make the process of creating and integrating sophisticated conversational user interfaces as simple as possible.
我以为我的阐明会更清楚一点:
API.AI 是一个自然语义理解平台,换句话说,将用户说的【人话】 翻译成一个【程序能读懂】的措辞,以JSON的格式返回结果,有参数,有值。
TIPS:自然措辞理解(NLU):natural language understanding
下图很好的阐明了API.AI 是如何与其他模块合营处理数据的:
用户发送一个query,api.ai会解析出用户的真实intent,并返回成json方便程序处理。举个例子,用户说'我饿了,想吃东西了,中午该当吃什么呢?' api.ai 就会见告程序实行’查询餐厅‘ 功能。
识别intent是通过开拓者不断在intent中录入信息,并进行数据演习实现的。
API.AI作为一个谈天机器人开拓框架,供应了诸如语音识别(紧张依赖调用第三方框架实现,api.ai 并没有这个功能)、意图识别、高下文管理等功能,并且许可开拓者针对特定机器人的独特需求供应领域知识,从而让开发者可以定制、强化谈天机器人的智能。
接入办法
从上述的先容中,我们理解到,api.ai 智能帮助开拓者实现自然措辞理解,将【人话】翻译成【程序话】,之后开拓者须要实现的逻辑还是须要开拓者自行完成的。接入平台有一下3种办法:
GET/POST 要求利用API.AI供应的SDK实现支持Android,iOS,Cordova,HTML,JavaScript,Node.js,C#.NET,Unify,Xamarin,C++,Python,Ruby,php,Epson Moverio,Botkit,Java一键接入主流的message平台很遗憾,这些主流的message平台如Facebook Messenger,Slack,Skype,Kik,Line,Telegram,Amazon Alexa,Twitter等都须要翻墙才能看到,但是github上有一些很赞的源码可供学习https://github.com/api-ai输入
API.AI 支持文本输入,如果希望进行语音输入,推举利用第三方平台将语音转换成问题,推举下面几个库:
Google SpeechMicrosoftSpeech科大讯飞–讯飞开放平台百度语音搜狗语音云开放平台输出
API.AI 本身并不支持语音输出,如果希望实现语音输出,可以利用刚刚推举的语音识别库进行转换,但是API.AI 除了支持文本输出外,还支持一些富文本的输出,如图片。
Quick Start
1. 新建Agent
agent可以理解成一个chatbot运用,类比一个APP可能会比较好理解一些。一个agent是为了完成chatbot的一系列特界说务而组成的凑集。
API.AI已经支持中文了,记得创建的时候在LANGUAGE中勾选中文(简体),DEFAULT TIME ZONE 选择(GMT+8:00)PRC,措辞一旦选择往后是不能变动的,之后你就可以得到你的API KEY和开拓者的access token了。
2.新建Entities
Entities 可以理解成一个规范的自然措辞短语凑集,常日为运用所在领域的关键词、术语等。
新建agent之后须要创建entities, 进而可以从用户的自然措辞提取关键词。每个entities的值在不同的场景下有不同的意义,他们确认那些信息存入JSON中并授予不同的值。
举个例子,一个披萨店中有一个entity叫’品种‘,他代表了不同的披萨种别,不同的披萨种别可能有一些近义词,这些近义词都会映射到相同的JSON键中。
3.新建Intent
一个intent可以算作将用户的输入解析成JSON的过程。
同样,我们利用披萨店的例子,看一个’点pizza‘的 intent
我们把稳到,所有的intent都有一个默认的machine learning的可选项,他表示你的agent将会从添加到intent的例子进行自我演习,进而更加适应用户对类似问题的提问。
TIPS:添加到intent中的“用户提问”越是多样化,你的机器人就越聪明。
4.测试Agent
开拓者页面的右侧是专门测试当前Agent的地方,并可以点击查看返回的JSON
如果用户的输入被解析成功,就可以看到用于处理它的intent以及提取到的信息。
如果输入匹配失落败,你可以将它添加到它应属的intent中,或者利用’train‘工具查找到所有不匹配的输入,并通过它对agent进行演习。
5. 接口对接
在运用设置中找到token,并通过上述先容的三种办法将agent接入到你的运用中,为用户供应更多的做事。API.AI 供应了下面三种工具:
SDK一键集成(针对被墙的app,你懂得。。)Webhook写在末了
近期我在利用API.AI 为我的客户搭建一个订票做事的运用,我会接下来在文章中以此为案例详细先容API.AI 中的关键模块,包括agents,intent,entity,train等。
恩,我坚信在不就的将来,我连这个运用都不须要自己搭建了,由于3月30日的时候,API.AI 加入了下面的Prebuild Agent, 不过现在并不支持中文。
末了的末了,有人会问,API.AI 中这么多英文,海内有木有干系的平台,近期创造了一个还不错的平台:一个AI(http://www.yige.ai/) 如果有兴趣也可以去看看。
BotOrange
用最大略措辞分享chatbot 产品 & 技能
转载请注明出处
作者Github: https://github.com/lijiarui