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" 参数有值,因此它会提示输入它。
我遇到的问题是,当参数丢失时,我为意图所需的参数定义的提示根本不会被触发。如果缺少参数,模拟器将以 "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" 参数有值,因此它会提示输入它。