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

时间:2019-02-22 14:07:00

标签: dialogflow actions-on-google dialogflow-fulfillment

我们正在构建一个便笺采取行动,并希望接收来自用户的输入,这些输入可以是自由文本,也可以是未定义的(便笺,我们将不知道其内容)。我们正在使用Dialogflow,而实现是在webhook中定义的。

我已经读到我们可以创建一个自定义事件作为触发意图的可选方式,而无需训练短语。但是,当我发送输入时,我一直无法触发意图,而是试图找出缺少的部分。

如果我们让用户在音符前说一个“触发”短语并将该触发短语定义为一个训练短语ex,我就可以触发。 “这是我的笔记” [用户要求他们的笔记]。

我希望对话像

What do you want to do today?

Create a new note

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

[ User dictates their note ]

在Dialogflow中,我具有默认的欢迎意图,默认的后备意图和具有后续意图“创建语音注释-自定义”的创建语音注释意图

我的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)
});

1 个答案:

答案 0 :(得分:0)

您可以从create voice note意图中设置上下文,然后使用范围限于该上下文的后备意图捕获用户注释。如果用户输入(即便笺)与任何其他意图都不匹配,即总是事实上,则将触发此后备意图。然后,用户说出的全文作为webhook请求中的https://firebase.google.com/docs/database/web/lists-of-data#listen_for_value_events参数。