Node.js 上下文流和实体不在dialogflow中工作
我正在谷歌和dialogflow上使用actions构建一个开放式对话应用程序。我创建了一个名为“评级”的实体,用于存储1到5的数字,下面是该实体的屏幕截图: 我在名为“第一”的意图中使用此实体。以下是截图: 我使用的第一个意图是“调查ID”。以下是测量ID意图的代码:Node.js 上下文流和实体不在dialogflow中工作,node.js,actions-on-google,dialogflow-es-fulfillment,Node.js,Actions On Google,Dialogflow Es Fulfillment,我正在谷歌和dialogflow上使用actions构建一个开放式对话应用程序。我创建了一个名为“评级”的实体,用于存储1到5的数字,下面是该实体的屏幕截图: 我在名为“第一”的意图中使用此实体。以下是截图: 我使用的第一个意图是“调查ID”。以下是测量ID意图的代码: app.intent('Survey ID', (conv, {number}) => { const id = number; if(id == 2020){ conv.ask(qst
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');
}
}
});
我面临的问题是,即使我输入了一个介于1到5之间的数字,它仍会进入“First”意图代码中的else块,并说“请输入一个介于1到5之间的数字”。当我使用除1到5以外的任何数字时,它应该转到备用意图,但它转到“调查ID”意图并说“这不是有效的调查ID”
预期的行为是,如果我输入一个介于1和5之间的数字,它应该存储它并询问下一个问题,如果我说了其他任何事情,它应该转到回退意图并显示用户的响应
作为参考,我还提供了所有三个意图的上下文:
“调查ID”上下文:
“第一”语境:
“第一个回退”上下文:
有人能帮我一下吗?如果你看JSON请求,我猜评级的值不是一个
数字,而是一个字符串。您可能需要首先使用parseInt(conv.parameters.Rating)
@NickFelker转换值。我尝试过这个,但它不起作用“Rating”的值是多少?如果输入5,评级值是“五”,我更改了评级实体,而不是使用1的“一”,因此,如果我输入1到5之间的任何数字都可以正常工作,但是如果我输入9,它不会进入后备计划,并且仍然会说“这不是有效的调查ID”
app.intent('First - fallback', (conv) => {
const userSaid = conv.query;
conv.close(userSaid);
});