用户是否可以单击上一提示符的按钮并被重定向回该状态?
例如:
机器人:这是你的选项:菜单,促销,方向(以PromptDialog.Choice的形式提供) 用户:单击菜单 Bot:入门、入门、甜点(以PromptDialog.Choice的形式提供) 用户:单击Main 机器人:这是主管道:(主管道的列表,后面跟着一个PromptDialog.Choice,在其他地方) 用户:向上滚动,点击促销 Alternatively__, User:向上滚动,单击启动器
我知道我可以处理切换到“蝎子”的对话框,但是如果我有一个具有4-5提示符的对话框,并且用户滚动起来在同一个对话框中点击前面的一个提示,该怎么办?有什么机制来处理吗?
我正在C#上运行,如果这有帮助的话
发布于 2018-04-30 17:32:25
大多数人使用的解决方案都有回复验证,以便如果用户响应先前的提示符,代码可以说“无效响应”,或者代码可以从提示点重新启动,这取决于您想要完成什么。这是一个利用状态数据的好地方。
如果您对所有提示(如“是”/“否”)的选择是相同的,则这将非常困难,可能无法完成。如果您的提示有唯一值,您可以在ConversationData
中存储“步骤”,检查它属于哪个步骤的用户输入,并将步骤计数设置为他们响应的步骤。
一些粗略的伪码看起来如下所示:
context.ConversationData.SetValue("step", 1);
用户回答步骤1
检查输入是否适合该步骤。
对用户输入执行逻辑
context.ConversationData.SetValue("step", 2);
用户回答步骤2
检查输入是否适合该步骤。
对用户输入执行逻辑
context.ConversationData.SetValue("step", 3);
用户滚动并回答步骤1
检查输入是否适合该步骤(在本例中不是)
将步骤计数重置为1
对该步骤的用户输入执行逻辑。
然后,您将根据步骤的顺序决定是否继续,或者可以有其他状态变量跟踪它们之前的步骤,比如context.ConversationData.SetValue("step3", true);
,这意味着用户已经回答了步骤3,下一个提示符将是步骤4。
https://stackoverflow.com/questions/50095851
复制相似问题