我对Google主页(Dialogflow)进行了查询。
具体来说,在我执行回退意图三次后,它会以一个语句退出
对不起,我忍不住了
但它应该提示
我结束本次会议后再见。
这是后备意图的代码
app.intent('Default Fallback Intent', (conv) =>
{
const repromptCount = parseInt(conv.arguments.get('REPROMPT_COUNT'));
if (repromptCount === 0) { conv.ask(`Hey are you listening?`); }
else if (repromptCount === 1) { conv.ask(`Are you still around?`); }
else if (conv.arguments.get('IS_FINAL_REPROMPT')) { conv.close(`I am ending this session see you again later.`); }
});
我假设您正在尝试按照documentation about dynamic reprompts中的指示进行“无输入”类型响应。
问题似乎是你试图将它用于后备意图,这不是在NO_INPUT事件上专门触发的。所以它正在进行测试,并且既没有设置REPROMPT_COUNT也没有设置IS_FINAL_REPROMPT参数。
如果您正在使用multivocal library,它将保留所有被调用的Intent和Actions的计数器(包括会话和顺序),并且有一些宏可以帮助您做出响应。
如果要使用现有库,则需要自己跟踪它并将其存储在上下文中或将其存储在会话数据对象中。
如果您打算将此作为“无输入”响应的一部分使用,则需要确保将其与具有actions_intent_NO_INPUT
事件集的Intent一起使用。