写点什么

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

  • 2017-01-02
  • 本文字数:2030 字

    阅读完需:约 7 分钟

在 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

2017-01-02 18:003794
用户头像

发布了 321 篇内容, 共 118.6 次阅读, 收获喜欢 19 次。

关注

评论

发布
暂无评论
发现更多内容

我的职场规划

escray

学习 极客时间 朱赟的技术管理课 7月日更

抖音获客系统开发

获客I3O6O643Z97

抖音 头条抖音 抖音霸屏

带你认识MindSpore量子机器学习库MindQuantum

华为云开发者联盟

mindspore 量子机器 MindQuantum 量子机器学习库

以1敌10不是梦,Spring Boot企业级真实应用案例

博文视点Broadview

电脑里的视频被误删了可以用EasyRecovery恢复吗?

淋雨

EasyRecovery 文件恢复 硬盘数据恢复

短视频获客软件系统开发公司

小透明学弟的华为上岸之路

程序员鱼皮

Java c++ Python 大前端 后端

秒懂 Java 的三种代理模式

Unity ML-agents 参数设置解明

行者AI

科技监管能源运作?智慧能源从光热发电技术开始描述

一只数据鲸鱼

数据可视化 智慧能源 光热发电

私域流量系统开发,APP源码搭建

获客I3O6O643Z97

私域流量 抖音霸屏

手把手教你实现Android编译期注解

vivo互联网技术

android 注解 sdk

还在用Jenkins?试试Gitlab的CI/CD功能吧,贼带劲!

一个Android程序员的腾讯面试心得,进阶学习资料!

欢喜学安卓

android 面试 移动开发 程序猿

Cypress 自动化测试

admin

自动化测试 Cypress 测试 单元测试 UI测试

来自网络资源资产管理的灵魂拷问

鲸品堂

网络 资源 运营商

CWE发布2021年最危险的25种软件缺陷

华为云开发者联盟

安全 隐私保护 安全漏洞 cwe 软件缺陷

最壕逆天改命:18名Java程序员凭阿里P8笔记,同时斩获一线大厂offer

Java架构师迁哥

给新手学习MySQL的建议

Simon

MySQL

经典译文 | 项目经理必读的基本工作法则

LigaAI

项目管理 项目经理

外包学生管理系统的架构设计

面向对象的猫

如何基于磁盘 KV 实现 Bitmap

Kvrocks

redis BitMap storage KV存储引擎

英特尔加速制程工艺和封装技术创新

E科讯

论文解读丨Zero-Shot场景下的信息结构化提取

华为云开发者联盟

测试 图网络 信息结构化 图卷积网络 zero-shot

图解红黑树

Ayue、

数据结构

SpringBoot启动加载监听器以及监听应用启动阶段事件

捡对象的cy

springboot

哔哩哔哩B站视频下载器推荐(简单又好用)

资源君

工具 分享 哔哩哔哩 b站视频下载 教程分享

开源 Rainbond 5.3.2 版本发布,易用的云原生应用管理平台

Barnett

云计算 开源 基础软件 小版本升级

一例智能网卡(mellanox)的网卡故障分析

安第斯智能云

后端

财务或类财务系统数值精度设计

路边水果摊

数字 财务 精度 数值

Python OpenCV Canny 边缘检测知识补充

梦想橡皮擦

Python 7月日更

使用Actions on Google和API.AI构建会话式应用_Google_Kent Weare_InfoQ精选文章