Dialogflow es 如何处理不带';不匹配实体值?

Dialogflow es 如何处理不带';不匹配实体值?,dialogflow-es,actions-on-google,Dialogflow Es,Actions On Google,您好,我在dialogflow中创建了一个名为answers的实体,该实体包含我的问答游戏问题的所有答案 我从数据库中获取问题,然后检查给出的答案是否正确 app.intent('answer-question', (conv, {answer})=> { if(answer == ((conv.data.answers)[0])){ //stuff} else{ conv.close('you lose'); } }); 但是,只有当用户得到正确答案时,此功能才起作用。如果用

您好,我在dialogflow中创建了一个名为
answers
的实体,该实体包含我的问答游戏问题的所有答案

我从数据库中获取问题,然后检查给出的答案是否正确

app.intent('answer-question', (conv, {answer})=> {

  if(answer == ((conv.data.answers)[0])){
//stuff}

else{
conv.close('you lose');
}

});
但是,只有当用户得到正确答案时,此功能才起作用。如果用户回答的问题不正确,则会出现以下错误:

"Question Master isn't responding right now. Try again soon."
MalformedResponse
'final_response' must be set.
所以我的问题是,我怎样才能满足用户可能给出的无数错误答案的选择


干杯

您应该以回退的方式处理该问题。新的Dialogflow代理附带默认设置:


你也应该考虑使用上下文,所以回退意图知道你在期待答案,并在没有回答的时候提供不同的响应。

啊,谢谢,我以前试过了,但是没有用。原因是dialogflow已经为回退目的自动填充了一个“输入上下文”,因此它总是会中断,因为从来没有任何输入。我删除了这个上下文,它工作得很好。