0

我们正在构建一个采取行动的便笺,并希望从用户那里接收可以是自由文本或未定义的输入(我们不知道其内容的便笺)。我们正在使用 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)
});
4

1 回答 1

1

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

于 2019-03-05T15:44:04.440 回答