NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

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

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

关注

评论

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

去中心化交易所开发

西安链酷科技

区块链 去中心化 交易所 合约 合约数字货币

服务器大揭秘:美国服务器为何成为热门选项?

一只扑棱蛾子

美国服务器

知识图谱与大模型相结合的3种方法,1+1>2

华为云开发者联盟

人工智能 华为云 华为云开发者联盟 大语言模型

荣耀推送服务 - 发送下行消息能力指导

荣耀开发者服务平台

基础服务 实时推送 API 接口 荣耀开发者服务平台 开放能力

Java应用程序性能开发工具:JProfiler 14 「Mac」附 注册码

彩云

java开发工具 JProfiler 14

GameFi游戏NFT链游开发系统搭建技术

西安链酷科技

区块链 dapp 去中心化 链游开发

终身学习支持非结构化场景 | KubeEdge-Ianvs v0.2 发布

华为云原生团队

云计算 容器 云原生 边缘计算 kubeedge

购买小间距LED显示屏需要考虑8个方面

Dylan

领域 LED LED显示屏 实用指南

稳定扩散的高分辨率图像合成

3D建模设计

AI自动纹理 稳定扩散

大模型 | 今天聊聊大语言模型幻觉(AI Hallucinations)

澳鹏Appen

数据标注 大模型 生成式AI LLM 大模型幻觉

混沌工程稳态假说

腾讯云混沌演练平台

混沌工程 稳定性保障

UltraEdit for mac(文本编辑器) v21.00.0.12中文完整版

mac

UltraEdit 文本编辑器 苹果mac Windows软件

堪比文件传输助手!解决文本、图片、视频、音乐跨设备同步难题!

彭宏豪95

软件推荐 文件传输 数据同步 在线白板 浏览器插件

PDF编辑器:Acrobat Pro DC 2023 「Mac」

彩云

PDF编辑 Acrobat Pro DC 2023

混沌工程GameDay

腾讯云混沌演练平台

混沌工程 GameDay 稳定性建设 混沌演练

VMware Workstation 17安装教程之设置系统模式

小齐写代码

容器安全和安全运行时的重要性

Geek_2d6073

DAPP链上质押挖矿分红开发原理

西安链酷科技

区块链 dapp 去中心化 挖矿

AI 革命:最佳 txt 转纹理工具

3D建模设计

AI自动纹理 AI纹理

流行的矿机系统定制开发 | IPFS虚拟矿机源码开发 | 矿机模式挖矿搭建功能开发

V\TG【ch3nguang】

Go的命令行工具开发:使用Cobra库

这我可不懂

cobra go语言

如何调用API获取你想要的数据

Noah

「燃情大促,年终钜惠」,家人们这一波可以冲!

融云 RongCloud

活动 服务 IM RTC 融云

重磅更新!Sermant 1.2.0 release版本新特性速览

华为云开发者联盟

开源 后端 华为云 华为云开发者联盟

DeFi链上金融借贷系统开发 | DAPP区块链挖矿系统搭建

V\TG【ch3nguang】

利用Docker容器化构建可移植的分布式应用程序

互联网工科生

Docker 容器化

速谈Beyond Compare使用的六个步骤

晴雯哥

Luminar Neo(超强AI图像编辑器)特别版下载mac/win

影影绰绰一往直前

Luminar Neo破解版 Luminar Neo下载 Luminar Neo mac

AI PC的时代,英特尔和联想、爱奇艺是怎样玩转AI的?

E科讯

7 款用于训练 AI 模型的合成数据工具

3D建模设计

人工智能模型 合成数据 UnrealSynth

科技企业正成为外交名片

TE智库

新能源

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