写点什么

使用 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:003840
用户头像

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

关注

评论

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

企业数字化转型,低代码是“趋势”还是“陷阱”?

云智慧AIOps社区

大前端 低代码 云开发

谈谈讲清楚这件事的重要性

阿里巴巴中间件

阿里云 技术 云原生

抖音或将推出独立种草社区平台:会不会成为第二个小红书

石头IT视角

java零基础入门-Scanner类

喵手

Java’ 7月月更

【刷题记录】2. 两数相加

WangNing

7月月更

Linux 下的传统 IPC 通信原理

北洋

Andriod 7月月更

架构实战营模块 6 作业

Roy

架构实战营

当 Knative 遇见 WebAssembly

阿里巴巴中间件

阿里云 容器 云原生 Knative WebAssenbly

【愚公系列】2022年7月 Go教学课程 005-变量

愚公搬代码

7月月更

算法入门很简单:算法题的破解之道上篇

宇宙之一粟

算法 7月月更

HAVE FUN | “飞船计划”活动最新进展

SOFAStack

微服务架构 开源软件 新手引导

枚举通用接口&枚举使用规范

靠谱的程序员

枚举 企业应用 企业级应用

SchedulX V1.4.0及SaaS版发布,免费体验降本增效高级功能!

星汉未来

DevOps 运维 k8s IT FinOps

一个酷酷的“幽灵”控制台工具

为自己带盐

C# 控制台 7月月更

小程序能运行在自有App中,且实现直播和连麦?

Speedoooo

小程序 直播 移动开发 小程序容器 连麦

用头像模仿天狗食月

急需上岸的小谢

7月月更

【写给初发论文的人】撰写综述性科技论文常见问题

左手の明天

论文阅读 论文 论文写作 研究论文 论文撰写

组织实战攻防演练的5个阶段

穿过生命散发芬芳

攻防演练 7月月更

牛客java选择题每日打卡Day8

京与旧铺

7月月更

offer如何选择该考虑哪些因素

KEY.L

7月月更

Salesforce 容器化 ISV 场景下的软件供应链安全落地实践

阿里巴巴中间件

阿里云 容器 云原生 安全

阿里云中间件开源往事

阿里巴巴中间件

阿里云 开源 中间件

华为小米互“抄作业”

科技新知

“去虚向实”大潮下,百度智能云向实而生

科技新知

Flutter3.0了,小程序不止于移动应用跨端运行

Speedoooo

flutter 小程序 移动开发 小程序容器 跨端运行

leetcode 53. Maximum Subarray 最大子数组和(中等)

okokabcd

LeetCode 动态规划 数据结构与算法

ServiceMesh主要解决的三大痛点

阿泽🧸

Service Mesh 7月月更

从解析HTML开始,破解页面渲染时间长难题

华为云开发者联盟

html 前端 web开发 网页

阿里云易立:云原生如何破解企业降本提效难题?

阿里巴巴中间件

阿里云 架构 云原生

张平安:加快云上数字创新,共建产业智慧生态

华为云开发者联盟

云计算 后端 SaaS 华为云

从0开始创建小程序

小恺

7月月更

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