如何在不为 Google 上的操作定义训练短语的情况下接收用户的输入

How can I receive input from user without defining training phrases for Actions on Google

我们正在构建一个笔记记录操作,并希望接收来自用户的输入,可以是自由文本或未定义的(我们不知道其内容的笔记)。我们正在使用 Dialogflow,我们的实现是在 webhook 中定义的。

我了解到我们可以创建自定义事件作为触发意图的可选方式,而无需训练短语。但是,当我发送输入时我无法获得触发的意图,我正在尝试找出我遗漏的部分。

如果我们让用户在注释前说 'trigger' 短语并将该触发短语定义为训练短语 ex,我可以获得触发的意图。 "This is my note" [用户口述他们的笔记]。

我希望对话可以这样进行

What do you want to do today?

Create a new note

Okay, let's go! What is your note!

[ User dictates their note ]

在 Dialogflow 中,我有一个默认的欢迎意图、一个默认的回退意图和一个具有后续意图的创建语音笔记意图 "Create Voice Note - Custom"

我的 webhook 代码如下所示

app.intent("create voice note", (conv) => {
    conv.ask("Okay, lets go! What is your note?");
});

app.intent("create voice note - custom", (conv) => {
    conv.ask("Here's what I have so far: ", conv.input.raw)
});

您可以根据 create voice note 意图设置上下文,然后使用范围限于该上下文的后备意图捕获用户注释。如果用户输入(即注释)与任何其他意图不匹配,即事实上总是如此,则将触发此回退意图。然后将用户说出的完整文本作为 queryResult.queryText 参数包含在 Webhook 请求中。