我有一个问题,即我在参数缺失时根本不会触发为intent定义的参数 . 如果参数丢失,模拟器回答“对不起,我没有得到” .
一个例子:
函数代码使用 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上的意图:
模拟器:
1 回答
问题在于您使用的训练短语包含一个数字,因此机器学习将模式视为大致类似于“如果该人说'测试'后跟数字,则触发此意图 . ”
但在测试时,我们只是使用短语“test” . 模式检测没有将数字视为短语的一部分,因此它认为它不符合该意图 .
要解决这个问题,您可以添加仅仅“test”的训练短语而不给它一个参数 . 这将匹配短语,但仍需要确保“age”参数具有值,因此它将提示它 .