问题描述
我正在使用Google和dialogflow上的操作来构建开放式对话应用程序。我创建了一个名为“评级”的实体,该实体用于存储1到5之间的数字,以下是该实体的屏幕截图:
我在名为“第一”的意图中使用此实体。下面是屏幕截图:
我使用的第一个意图是“调查ID”。以下是调查ID意图的代码:
app.intent('Survey ID',(conv,{number}) => {
const id = number;
if(id == 2020){
conv.ask(qstion[0]);
}
else{
conv.close('This is not a valid survey ID');
}
});
以下是“第一”意图的代码:
app.intent('First',(conv) => {
const rating = conv.parameters.rating;
if(type[0] === 'rating'){
if(rating >= 1 && rating <= 5){
senddata[0] = qstion[0] + rating;
conv.ask(qstion[1]);
}
else{
conv.ask('Please enter a number between 1 and 5');
}
}
});
我还将“后备”意图用于“第一”意图。以下是后备意图的代码:
app.intent('First - fallback',(conv) => {
const userSaid = conv.query;
conv.close(userSaid);
});
我面临的问题是,即使我输入的数字介于1到5之间,它也会进入“第一个”意图代码中的else块中,并说“请输入1到5之间的数字”。当我使用的数字不是1到5时,应该使用回退意图,但使用“调查ID”意图并说“这不是有效的调查ID”。
预期的行为是,如果我输入一个介于1到5之间的数字,它应该存储该数字并询问下一个问题,如果我说其他话,它应该转到回退意图并显示用户的响应。
作为参考,我还将给出所有三种意图的上下文:
“调查ID”上下文:
“第一个”上下文:
“第一后备”上下文:
有人可以帮我吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)