最新发布《数智时代的AI人才粮仓模型解读白皮书(2024版)》,立即领取! 了解详情
写点什么

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

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

关注

评论

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

JavaScript 文件优化指南

快乐非自愿限量之名

JavaScript 架构 前端 Web

金融行业核心系统最佳搭档|如何基于PolarDB分布式版打造两地三中心架构?

阿里云瑶池数据库

金融行业 阿里云; 阿里云瑶池数据库

mac右键助手 MouseBoost Pro 3.3.4破解版

iMac小白

【第七在线】媒介投产分析 Colony Brands每一个宣传画册运营产出收益

第七在线

浅析 ArrayList

不在线第一只蜗牛

Java 开发语言

随时爆雷!2023年四大“安全债”

这我可不懂

网络安全 数据安全 云安全 应用安全

【第七在线】服装企业的商品计划策略:提高销售和库存管理的关键

第七在线

【第七在线】国际市场扩张与商品计划:跨越地域的挑战与机会

第七在线

2023-12-20:用go语言,给定一个数组arr,长度为n,在其中要选两个不相交的子数组。 两个子数组的累加和都要是T,返回所有满足情况中,两个子数组长度之和最小是多少? 如果没有有效方法,返回-

福大大架构师每日一题

福大大架构师每日一题

【第七在线】服装企业商品部关注的关键问题与解决策略

第七在线

1688商品列表数据接口(1688.item_search)

tbapi

1688商品列表接口 1688商品数据接口 关键词搜索1688商品接口 1688商品数据采集接口 1688API

精彩回顾 | 《国产数据库共话未来趋势》技术沙龙成功举办!

阿里云数据库开源

数据库 阿里云 开源社区 polarDB 线下沙龙

数据可视化:数据仪表盘的定义及设计

2D3D前端可视化开发

大数据 数据分析 数据可视化 可视化图表 数据仪表盘

使用阿里云性能测试工具 JMeter 场景压测 RocketMQ 最佳实践

阿里巴巴云原生

阿里云 云原生 可观测

从学到考,一图带你读懂开发者技能成长秘籍

亚马逊云科技 (Amazon Web Services)

Amazon

Java多线程系列7:JDK包中的管程实现

BigBang!

Java多线程

Gemini自曝中文用百度文心一言训练,网友看呆:大公司互薅羊毛??

Openlab_cosmoplat

如何又快又好、又便宜地开发体育赛事直播平台

软件开发-梦幻运营部

【第七在线】新品上市与清仓计划:商品计划的关键策略

第七在线

React高手都会用的useMemo有什么用的?

互联网工科生

性能优化 React useMemo

每日一题:LeetCode-240. 搜索二维矩阵 II

半亩房顶

Go 面试 算法 矩阵 LeetCode

http代理错误代码表(详细列表)

巨量HTTP

代理IP IP地址 http代理

【案例】第七在线商品组合计划赋能安德玛每一个加盟商精准计划

第七在线

2024年市场上最好的免费开源工单管理系统六强

PingCode

开源 工单管理

C++中的RAII机制及其智能指针的应用

高端章鱼哥

c++ 编程语言 RAII

盘点超好用的 6 款低代码开发平台

伤感汤姆布利柏

低代码 JNPF

Seata:打造行业首个分布式事务产品

阿里巴巴云原生

阿里云 云原生 dubbo

Visio Viewer for Mac激活版 查看和编辑Visio文件

iMac小白

学会使用 FastAPI 轻松实现定时任务与调度

Apifox

微服务 定时任务 后端 FastApi

加强用户教育和培训,提高用户对淘宝商品详情API的认知度和使用率

技术冰糖葫芦

API 接口

SpringBoot代码混淆与反混淆加密工具详解

雪奈椰子

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