Dialogflow - 如果在调用上下文时输入无效,如何重新提示最终用户?
Dialogflow - How to re-prompt an end-user if the input is not valid whilst calling a context?
内联编辑器(Node.js)
我正在构建一个聊天机器人,该机器人要求最终用户提供 his/her 可用日期(格式:2020 年 12 月 12 日)。如果最终用户输入的日期早于今天的日期,我希望我的机器人给出提示,而不是已经在我的上下文中的提示。
目前,我的代码再次触发上下文,要求用户提供可用日期。在特定意图中定义了 'Date1' 参数,它是 'required' 并且带有一个提示。
如果 'IF' 语句满足,我应该如何提供自定义重新提示,然后将输入存储在相同的参数中,即 Date1?
代码片段:
if(Date4<currentDate){ //Date4 is the availability date //If the Date4 is less than currentDate then the Date intent will be recalled with the prompt mentioned at the bottom.
agent.context.set({
'name': 'Date123-followup',
'lifespan': 1
});
agent.add('Please provide a valid Date, which is after today.');//the custom prompt
}
如果需要,请询问更多详细信息。
对话流程:
机器人:请提供您的可用日期?
用户:2019 年 1 月 1 日
'Current Response which is in the prompt of my intent'
机器人:请提供您的可用日期?
'Required Response: This is what the bot should ask'
机器人:请提供有效日期,即今天之后。
您可以对代理对象使用 setFollowupEvent
方法。这基本上会触发您只需要在意图中添加此事件的任何意图。
agent.setFollowupEvent({ name: 'deliveryEvent', parameters: {} }); // parameters are any data that you want to pass to next conversation.
您可以使用事件选项在任何意图中设置事件:这样您就可以从任何地方触发此意图,只需使用参数处理上下文即可。
内联编辑器(Node.js)
我正在构建一个聊天机器人,该机器人要求最终用户提供 his/her 可用日期(格式:2020 年 12 月 12 日)。如果最终用户输入的日期早于今天的日期,我希望我的机器人给出提示,而不是已经在我的上下文中的提示。
目前,我的代码再次触发上下文,要求用户提供可用日期。在特定意图中定义了 'Date1' 参数,它是 'required' 并且带有一个提示。
如果 'IF' 语句满足,我应该如何提供自定义重新提示,然后将输入存储在相同的参数中,即 Date1?
代码片段:
if(Date4<currentDate){ //Date4 is the availability date //If the Date4 is less than currentDate then the Date intent will be recalled with the prompt mentioned at the bottom.
agent.context.set({
'name': 'Date123-followup',
'lifespan': 1
});
agent.add('Please provide a valid Date, which is after today.');//the custom prompt
}
如果需要,请询问更多详细信息。
对话流程:
机器人:请提供您的可用日期?
用户:2019 年 1 月 1 日
'Current Response which is in the prompt of my intent'
机器人:请提供您的可用日期?
'Required Response: This is what the bot should ask'
机器人:请提供有效日期,即今天之后。
您可以对代理对象使用 setFollowupEvent
方法。这基本上会触发您只需要在意图中添加此事件的任何意图。
agent.setFollowupEvent({ name: 'deliveryEvent', parameters: {} }); // parameters are any data that you want to pass to next conversation.
您可以使用事件选项在任何意图中设置事件:这样您就可以从任何地方触发此意图,只需使用参数处理上下文即可。