



本节将创建一个Actions on Google项目,然后将其与Google Assistant应用集成。这将允许我们构建的聊天机器人可以通过Google Assistant应用程序访问,而Google Assistant目前可在全球数十亿台设备上使用。
创建Actions on Google项目的具体操作步骤如下。
(1)在浏览器中打开以下网址,以打开Google主页上的Actions,你可以在其中阅读到有关该平台的所有信息。
https://developers.google.com/actions/
(2)要进入控制台,请单击Start Building(开始构建)或Go to Actions Console(转到Actions控制台)按钮。
此时你将转到Actions on Google控制台,然后被提示创建一个项目。
(3)在创建项目时,你将看到一个对话框,如图3-8所示。
图3-8
这里你必须选择与创建Dialogflow聊天机器人代理相同的Google项目(gcp-api)。
(4)单击IMPORT PROJECT(导入项目),将Dialogflow聊天机器人的Action添加到Google Assistant。在下一个屏幕中,选择Conversational(对话)模板来创建Action。
(5)然后你将被带到Actions on Google控制台,如图3-9所示。
图3-9
在图3-9最上面的标题栏上,可以看到Action所在的Google项目的项目ID(gcp-api)。在左侧垂直导航栏中,列出了完成Action设置所需的各个步骤。在右侧的主要内容部分,提供了用于设置你的第一个Action的快速指导。
(6)单击Decide how your Action is invoked(决定你的Action调用的方式)。你需要为自己的Action提供一个唯一的调用字符串。对于本章示例,我们使用的是Talk to Peter please调用字符串。你在创建自己的项目时,需要选择一个不同的调用字符串。
成功设置调用后,快速指导会要求你添加一个Action。
(7)单击Add Action(添加Action)链接以开始Action创建过程。
(8)在出现的Create Action(创建Action)对话框中选择左侧列表中的Custom intent(自定义Intent),然后单击Build(构建)按钮。这将带你返回Dialogflow界面。
接下来,你需要启用Actions on Google以访问聊天机器人的Intent。
默认情况下,你在Dialogflow控制台中构建的聊天机器人不允许Actions on Google项目访问其中可用的Intent。可通过以下步骤启用对Intent的访问。
(1)在Dialogflow界面上,单击左侧导航窗格中的Integration(集成)按钮。
(2)在载入的页面上,你将看到与Dialogflow支持的不同服务集成的选项,其中包括所有主要的社交聊天平台,以及亚马逊的Alexa和微软的Cortana(小娜)。
(3)此时你应该会看到Google Assistant的Integration Settings(集成设置)按钮。单击该按钮,将打开一个对话框,如图3-10所示。
图3-10
图3-10中的对话框允许你快速定义Dialogflow代理和Actions on Google项目之间的集成设置。
(4)在Default Invocation(默认调用)下,将Default Welcome Intent(默认欢迎Intent)设置为当用户开始通过Google Assistant与你的聊天机器人交互时将首先运行的Intent。
(5)在Implicit Invocation(隐式调用)中,指定之前创建的luckyNum Intent。这将用于为用户生成幸运数字。
(6)启用Auto-preview changes(自动预览更改)是一个好主意,因为它允许你将集成设置自动传播到Actions on Google控制台和Google Assistant Test Simulator(详见第3.10节“创建一个Actions on Google版本”),以便在创建应用程序版本之前进行测试。
现在,让我们为Default Welcome Intent(默认欢迎Intent)提供一个有意义的提示信息,以要求用户输入他们的姓名,以便当用户响应时,他们的输入类似于luckyNum Intent的训练短语,从而调用相应的Intent。
(1)单击Intents按钮。然后单击Default Welcome Intent(默认欢迎Intent),向下滚动到Intent编辑页面的Responses(响应)部分,并删除其中的所有响应。
由于luckyNum Intent期望用户说出类似于My name is XYZ的内容,因此恰当的问题便是“What is your name?”。因此,在这里我们将响应设置为“Hi, what is your name?”。
请注意,Responses(响应)部分的标签式导航中有一个名为Google Assistant的新导航。这允许我们在从Google Assistant调用此Intent时为其指定不同的响应。
(2)单击该标签并启用DEFAULT(默认)选项卡中的用户响应,将其作为第一个响应。这样做是因为我们不想在聊天机器人中指定特殊的Google Assistant响应。
(3)向上滚动到Events(事件)部分并检查它是否和图3-11类似。
图3-11
(4)缺少上述两个事件中的任何一个,你都可以单击Add event(添加事件),然后输入相应的名称(系统会提供自动建议框供你选择)。
(5)单击Dialogflow控制台中间部分右上方的Save(保存)按钮。
现在我们已经做好了准备,可以创建业务逻辑为用户生成幸运数字。首先,我们将为luckyNum Intent创建一个Webhook,然后将其部署到Cloud Functions。