首页 > 解决方案 > Google Assistant Action - 隐式调用体验

问题描述

我目前正在开发 Google 助理操作。我理解Google 所描述的隐式调用,并且根据我测试我自己的应用程序的经验,我非常理解它可以像他们描述的那样工作。

这是该流程的样子:

User: Ok Google, what's a good recipe I can make?
Google Assistant: Okay. For that, you might like < Your App Here >. Wanna give it a try?
User: Yes
Google Assistant: Opening < Your App Here >
Google Assistant: You should make spaghetti!

说得通。我问它一个一般性问题,它问我是否愿意使用某种服务来满足该请求。

为什么不是每个动作都是这样?例如,音乐。

User: Ok Google, play blink-182
Google Assistant: Playing blink-182 on Spotify

好吧。我将 Spotify 配置为我的默认音乐播放器,播放音乐是开箱即用的标准 Google Action。我可以理解为什么它会跳过确认并直接进入应用程序。

我从 Internet 下载的随机服务怎么样?喜欢这个

User: Ok Google, enable study mode
Google Assistant: I'll make sure no one disturbs you

什么?!

没有确认?

Google 助理如何知道我想使用 IFTTT 服务并使用该服务中的意图来完成请求?显然可以改善 Google Assistant 操作的隐式调用体验,这样如果您的设备上没有安装明显的竞争服务,它将继续选择适当的服务并执行请求。

你到底是怎么做到的?

标签: androidactions-on-googlegoogle-homegoogle-smart-home

解决方案


处理调用的方式有很多,所以让我们看看你概述的那些,以及一些你没有提到的。

显式调用

You: Ok Google, talk to Shakespearean Insult
GA:  Ok, Here's Shakespearean Insult
SI:  ...

最直接的方法是通过您提供的名称调用您的操作。由于这是一个独特的名称,Google 可以直接在 Assistant 语音和您的 Action 语音之间进行切换,尽管如果用户使用得足够多,该切换部分会越来越短。因此,如果您与莎士比亚侮辱(在我们上面的示例中)交谈足够多,或者连续交谈足够多,对话就会变成:

You: Hey Google, talk to Shakespearean Insult
SI:  ...

Google 对何时会发生这种情况,或在什么情况下会触发它含糊不清,但它会发生在您最常使用的操作上。

隐式调用

You: Ok Google, I need a chicken soup recipe.
GA:  Sure. For that, you might like Personal Chef. Wanna give it a try?

这些旨在帮助用户解决“发现问题”——如果您不知道操作的名称,但您希望他们做什么,如何找到它们。在某些方面与搜索引擎优化 (SEO) 类似,这使您可以添加也会触发您的操作的调用短语。然而,由于许多 Action 可能支持这些相同的短语,Google 将验证用户想要使用的 Action。

在某些情况下,Google 还会查看哪些短语被用作您的操作的一部分,并且如果用户提出问题或尝试做某事,则可能会将您的操作作为直接响应的一部分。

与显式调用类似,如果用户选择了足够多的相同操作,那么如果这是他们希望使用的操作,Google 可能会停止提示。同样,确切的水平尚不清楚,但这是可能的。

内置意图

You: Hey Google, I'd like to play a game.
GA:  Alright, I have a few options for that ... Which one would you like to try?

这类似于隐式调用,但不同之处在于可能的调用短语已由 Google 确定。开发者可以注册 Actions 来接受这些内置的 Intent。

目前,只有“玩游戏”意图是公开可用的,但谷歌表示他们希望在开发和国际化后推出更多。

音乐和智能家居命令

You: Ok Google, play blink-182
GA:  Playing blink-182 on Spotify
You: Turn on the living room light
GA:  <rising tone>

这些类似于内置 Intent 的工作方式,因为 Google 已经确定了可以调用不同 Intent 的短语。然而,不同之处在于两者都需要与 Google 更紧密地集成,因为用户通过 Google Home 应用程序中的控件来指定两者。

IFTTT

IFTTT 在 Google Assistant 中内置了特殊支持,但与其他会话操作相比,它有一些限制。不需要明确的确认,因为您已经采取了明确的措施来启用小程序 - 您必须将您的帐户链接到 IFTTT 并设置小程序。这也不是必需的——因为 Applet 所能做的只是说出一件事然后关闭,而那一件事是由用户设置的。

例程

You: Hey Google, Good Night
GA:  <declining tone>
GA:  Ok, playing relaxing sounds for 30 minutes
You:  Hey Google, record my weight
GA:   Getting Vodo Drive
Vodo: Ok, I've added a row to the spreadsheet named weight. What would you like to set today's weight to?

您在示例中没有提到改进调用短语的一件事是,用户可以使用例程设置他们自己的短语,但是他们想要。这类似于 IFTTT,因为它具有一些内置集成,但需要用户显式创建它们。例程就像别名一样,您可以在其中设置一些命令,当您说某事时助手将执行这些命令。

用户可以使用 Google Home 应用设置例程。Google 提供了一些例程的名称,例如“早安”和“晚安”,但您也可以使用您想要的任何名称创建自己的例程。在上面的示例中,我有一个名为“记录我的体重”的例程,我告诉 Google,它相当于ask Vodo Drive to add a row to weight调用 Vodo Drive 操作以打开电子表格、向其中添加一行并提示我输入信息的命令。

虽然某些内置例程将您限制为非对话式操作,但设置自定义例程可为您提供更大的灵活性。

概括

开发人员有一些(但不是很多)方法来获得更好的调用短语。然而,当用户利用它们时,谷歌会确保他们使用的不是谷歌的东西——而是第三方操作。随着时间的推移,谷歌将这一点做得更好,因为很明显用户接受了这一点。

用户有一些方法可以自己设置更好的调用短语。在这种情况下,由于用户明确设置了针对第三方的设置,因此 Google 在这些情况下更加灵活,因为用户已经确认了这种第三方交互。


推荐阅读