Dialogflow 未触发所需参数的提示

Dialogflow not triggering prompt for required parameters

我遇到的问题是,当参数丢失时,我为意图所需的参数定义的提示根本不会被触发。如果缺少参数,模拟器将以 "sorry, I didn't get that" 响应。

一个例子:

使用 dialogflow-fulfillment nodejs 库的函数代码:

function test(agent) {
    let age = agent.parameters.age.amount;
    let conv = agent.conv();
    conv.ask('This is from the backend: ' + age);
    return agent.add(conv);
}

Dialogflow 上的意图:

模拟器:

问题是您使用的训练短语包含一个数字,因此机器学习将模式视为大致类似于 "If the person says 'test' followed by a number, trigger this intent."

但是在测试时,我们只使用了一个短语"test"。模式检测没有将数字视为短语的一部分,因此它认为它不符合该意图。

为了解决这个问题,你可以添加 "test" 的训练短语而不给它一个参数。这将匹配短语,但仍需要确保 "age" 参数有值,因此它会提示输入它。