单击提示对话框.从上一个提示中选择



用户是否可以单击上一个提示的按钮并重定向回该状态?


例如:

机器人:以下是您的选项:菜单、促销、方向(在 提示对话框的形式(

用户:点击菜单

机器人:开胃菜、主菜、甜点(以 提示对话框选择(

用户:点击电源

机器人:这是主电源:(电源列表,后跟一个 提示对话框.选择引导到其他地方(

用户:向上滚动,点击促销

或者

用户:向上滚动,点击启动器


我知道我可以通过 scorable 处理对话框切换,但是如果我有一个有 4-5 个提示的对话框,并且用户向上滚动以点击同一对话框中较早的提示之一怎么办?有没有处理它的机制?

如果有帮助,我正在 C# 上运行机器人框架

大多数人用来进行响应验证的解决方案,以便如果用户响应以前的提示,代码可以说"不是有效的响应"之类的内容,或者代码可以从该提示点重新启动,具体取决于您要完成的操作。 这是利用状态数据的好地方。

如果所有提示的提示选择都相同(例如是/否(,这将非常困难,可能无法完成。 如果您的提示具有唯一值,则可以在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。

最新更新