当前位置:新闻中心行业动态 → 正文

使用Actions on Google和API.AI构建会话式应用

责任编辑:editor004 作者:Kent Weare |来源:企业网D1Net  2017-01-03 12:10:01 本文摘自:INFOQ

在Amazon re:Invent大会上,Amazon发布了深度学习服务Lex,该服务底层所使用的技术与Alexa应用到Amazon移动蓝牙和Wi-Fi Echo扬声器中的技术一样。在Amazon发布该服务之后不久,Google就发布了Actions on Google项目,使开发者能够构建基于Google Assistant的语音交互应用,并与Google Home设备进行集成。

  图片来源: https://madeby.google.com/home/

Google的高级开发工程师Wayne Piekarsk将Actions on Google平台描述为一种集成方式:

开发者可以通过它将自己的服务与Google Assistant集成到一起。

该集成的实现方式是:

会话行为(Conversation Action)允许开发者通过一个双向窗口满足用户的请求。当用户请求一个Action的时候,Google Assistant就会处理该请求,决定由哪个Action处理该请求最好,并调用相关的会话行为。调用之后,开发者开发的会话行为就能掌控剩下的所有事情,包括如何欢迎用户,如何满足用户的请求,以及如何结束会话。

为了阐述Actions on Google的功能,Google使用了一个私人厨师的示例应用,该应用允许最终用户通过Google Home设备与食谱查找服务交互。首先,最终用户需要告诉该应用自己现在的情绪以及所拥有的佐料,然后会话应用会解析用户的情绪,理解可用的佐料有哪些,之后会根据用户的情绪和食欲为其提供食谱。

编写这种类型的应用是非常具有挑战性的,因为很难准确地提取Action的意义。Solvvy的联合创始人和CTO Mehdi Samadi解释说:

现在即使利用AI技术,将“告诉我附近便宜的Indian餐馆在哪里”这样的命令/指令转换成一组可执行的命令集也不是一件容易的任务。我们首先需要理解用户想要寻找“Indian”风味的餐馆,然后需要知道用户心中的“便宜”到底指什么价位。

Google开发会话行为的目的就是为了应对这些上下文敏感的挑战,以帮助开发者构建会话App。

图片来源: (screenshot) https://www.youtube.com/watch?v=HNfE0uaKcfY

会话行为由三个主要的组件组成,包括:

调用触发器(Invocation Triggers)定义了用户如何调用和发现Action。一旦被触发,Action就会展开一个由对话框定义的会话与用户交互。对话框(Dialogs )定义了用户如何与Action进行交谈,同时它也是Action的用户界面。它们依靠实现代码推动会话的前行。实现(Fulfillment)是处理用户输入并返回响应的代码,它是一个REST服务。实现通常还包含一些执行具体行为的逻辑,例如检索菜谱或者新闻并大声朗读。

调用会话行为的方式有三种:

会话API,它提供了与Google Assistant通信所必须使用的请求和响应的格式。Actions SDK,包含一个NodeJS客户端类库,行为包(Action Package)定义,CLI和Web模拟器。包含API.AI在内的其他工具。

API.AI是Google最近收购的一家公司,开发者可以通过它来构建会话接口。Google负责工程的副总裁Scott Huffman在2016年9月曾宣称:

超过60,000名开发者正在使用API.AI在Slack、Facebook Messenger和Kik等环境中构建会话式体验。

在Actions on Google平台上,开发者可以将API.AI接入自己的会话界面上以减少会话API通常所需要的文字转录量。Piekarsk着重强调了在Actions on Google平台上使用API.AI的一些好处:

API.AI为会话接口的创建提供了一个直观的图形用户界面,同时它还会处理会话状态的管理和表单的填充等繁重的任务。

图片来源:(screenshot) https://www.youtube.com/watch?v=HNfE0uaKcfY

为了处理一个会话,开发者可以使用控制台来定义Intents。在Google私人厨师食谱的示例中,Intents包括定义需要从用户那里获取的信息,例如材料、温度、菜式和烹饪时间。

接下来,开发者需要提供一些例句。API.AI会使用这些例句训练机器学习算法,以便于处理其他来自于用户的句子。开发者不需要为API.AI编写正则表达式来解析其他的句子。

  图片来源:https://www.youtube.com/watch?v=HNfE0uaKcfY

开发者可以人工地为每个信息指定可接受的值。一旦提供了这些内容,API.AI就能使用这些信息从用户所说的句子中提取语义。例如,开发者可以定义一组映射到某种蛋白质的实体。如果私人厨师App想要在食谱中包含蛋白质,那么可以从开发者定义的一组同义词(例如牛肉、羊肉、豆腐和鸡肉等)中选取。

当用户与应用通信的时候,用户可以提供自然信息,包括一些无序的、只言片语的信息,如果应用没有接收到完整的信息,或者接受到的信息不明确,那么它会通过一些跟进的问题来获取信息。

开发者还可以将Intents连接到后端的webhook,这样就可以通过连接到IFTTT、Zapier或者Azure Logic Apps等第三方平台上实现扩展。当一个webhook被调用的时候,所有适合的数据都会以JSON字符串的方式传送。

开发者在控制台上配置好了自己的Intents和实体之后,他们就可以在API.AI的Web模拟器上启动一个测试,在将其提供给所有的Google Home用户之前首先通过私人的Google Home进行预览。

查看英文原文:Building Conversational Apps Using Actions on Google and API.AI

关键字:Google

本文摘自:INFOQ

x 使用Actions on Google和API.AI构建会话式应用 扫一扫
分享本文到朋友圈
当前位置:新闻中心行业动态 → 正文

使用Actions on Google和API.AI构建会话式应用

责任编辑:editor004 作者:Kent Weare |来源:企业网D1Net  2017-01-03 12:10:01 本文摘自:INFOQ

在Amazon re:Invent大会上,Amazon发布了深度学习服务Lex,该服务底层所使用的技术与Alexa应用到Amazon移动蓝牙和Wi-Fi Echo扬声器中的技术一样。在Amazon发布该服务之后不久,Google就发布了Actions on Google项目,使开发者能够构建基于Google Assistant的语音交互应用,并与Google Home设备进行集成。

  图片来源: https://madeby.google.com/home/

Google的高级开发工程师Wayne Piekarsk将Actions on Google平台描述为一种集成方式:

开发者可以通过它将自己的服务与Google Assistant集成到一起。

该集成的实现方式是:

会话行为(Conversation Action)允许开发者通过一个双向窗口满足用户的请求。当用户请求一个Action的时候,Google Assistant就会处理该请求,决定由哪个Action处理该请求最好,并调用相关的会话行为。调用之后,开发者开发的会话行为就能掌控剩下的所有事情,包括如何欢迎用户,如何满足用户的请求,以及如何结束会话。

为了阐述Actions on Google的功能,Google使用了一个私人厨师的示例应用,该应用允许最终用户通过Google Home设备与食谱查找服务交互。首先,最终用户需要告诉该应用自己现在的情绪以及所拥有的佐料,然后会话应用会解析用户的情绪,理解可用的佐料有哪些,之后会根据用户的情绪和食欲为其提供食谱。

编写这种类型的应用是非常具有挑战性的,因为很难准确地提取Action的意义。Solvvy的联合创始人和CTO Mehdi Samadi解释说:

现在即使利用AI技术,将“告诉我附近便宜的Indian餐馆在哪里”这样的命令/指令转换成一组可执行的命令集也不是一件容易的任务。我们首先需要理解用户想要寻找“Indian”风味的餐馆,然后需要知道用户心中的“便宜”到底指什么价位。

Google开发会话行为的目的就是为了应对这些上下文敏感的挑战,以帮助开发者构建会话App。

图片来源: (screenshot) https://www.youtube.com/watch?v=HNfE0uaKcfY

会话行为由三个主要的组件组成,包括:

调用触发器(Invocation Triggers)定义了用户如何调用和发现Action。一旦被触发,Action就会展开一个由对话框定义的会话与用户交互。对话框(Dialogs )定义了用户如何与Action进行交谈,同时它也是Action的用户界面。它们依靠实现代码推动会话的前行。实现(Fulfillment)是处理用户输入并返回响应的代码,它是一个REST服务。实现通常还包含一些执行具体行为的逻辑,例如检索菜谱或者新闻并大声朗读。

调用会话行为的方式有三种:

会话API,它提供了与Google Assistant通信所必须使用的请求和响应的格式。Actions SDK,包含一个NodeJS客户端类库,行为包(Action Package)定义,CLI和Web模拟器。包含API.AI在内的其他工具。

API.AI是Google最近收购的一家公司,开发者可以通过它来构建会话接口。Google负责工程的副总裁Scott Huffman在2016年9月曾宣称:

超过60,000名开发者正在使用API.AI在Slack、Facebook Messenger和Kik等环境中构建会话式体验。

在Actions on Google平台上,开发者可以将API.AI接入自己的会话界面上以减少会话API通常所需要的文字转录量。Piekarsk着重强调了在Actions on Google平台上使用API.AI的一些好处:

API.AI为会话接口的创建提供了一个直观的图形用户界面,同时它还会处理会话状态的管理和表单的填充等繁重的任务。

图片来源:(screenshot) https://www.youtube.com/watch?v=HNfE0uaKcfY

为了处理一个会话,开发者可以使用控制台来定义Intents。在Google私人厨师食谱的示例中,Intents包括定义需要从用户那里获取的信息,例如材料、温度、菜式和烹饪时间。

接下来,开发者需要提供一些例句。API.AI会使用这些例句训练机器学习算法,以便于处理其他来自于用户的句子。开发者不需要为API.AI编写正则表达式来解析其他的句子。

  图片来源:https://www.youtube.com/watch?v=HNfE0uaKcfY

开发者可以人工地为每个信息指定可接受的值。一旦提供了这些内容,API.AI就能使用这些信息从用户所说的句子中提取语义。例如,开发者可以定义一组映射到某种蛋白质的实体。如果私人厨师App想要在食谱中包含蛋白质,那么可以从开发者定义的一组同义词(例如牛肉、羊肉、豆腐和鸡肉等)中选取。

当用户与应用通信的时候,用户可以提供自然信息,包括一些无序的、只言片语的信息,如果应用没有接收到完整的信息,或者接受到的信息不明确,那么它会通过一些跟进的问题来获取信息。

开发者还可以将Intents连接到后端的webhook,这样就可以通过连接到IFTTT、Zapier或者Azure Logic Apps等第三方平台上实现扩展。当一个webhook被调用的时候,所有适合的数据都会以JSON字符串的方式传送。

开发者在控制台上配置好了自己的Intents和实体之后,他们就可以在API.AI的Web模拟器上启动一个测试,在将其提供给所有的Google Home用户之前首先通过私人的Google Home进行预览。

查看英文原文:Building Conversational Apps Using Actions on Google and API.AI

关键字:Google

本文摘自:INFOQ

电子周刊
回到顶部

关于我们联系我们版权声明隐私条款广告服务友情链接投稿中心招贤纳士

企业网版权所有 ©2010-2024 京ICP备09108050号-6 京公网安备 11010502049343号

^