【发布时间】:2020-06-23 06:02:14
【问题描述】:
我们的聊天机器人(用 .NET core 3.1 编写)有多个提示,以按钮的形式提供选择。在用户通过聊天发送轮次后(通过单击按钮或键入任何内容),我们隐藏按钮,因为单击它们只会将按钮文本作为轮次发送。然后,我们的提示会获取用户的响应并将其与选择字典进行比较,以产生更适合后端的结果,以在对话步骤中使用。
用户向我们提供了有关我们如何处理他们的反馈。一个经常被要求的功能是向上滚动到上一个提示并对问题给出不同的回答。这是一个例子:
“您想了解更多关于哪种超声波的信息?
- 定位超声
- 术语超声
- 结构超声检查"
用户通常只寻找其中之一,但提示本身会激发好奇心。他们将选择他们最初寻找的选项,然后希望看到其他响应之一。目前,我们的用户必须重新输入触发超声意图的短语,将他们引导到触发提示的超声对话框。理想情况下,他们会向上滚动到提示并单击不同的按钮,可能还有一个中间步骤,即他们在提示的问题上单击“选择不同的选项”按钮。
我们已经简要研究了如何实现此功能,并正在考虑在整个对话中存储提示的选择字典。然后我们会添加很多自定义逻辑来处理话语,可能通过在前端使用特殊标签。或者我们会让中间步骤将对话倒回到提示并从那里处理他们的进一步行动。
在我们继续做任何这些之前,我们对自己说“微软一定已经想到了这一点”,但我们找不到任何关于提示重复使用的文档。
Bot Framework 是否有本地方式允许用户从前端重新激活已在后端处理的提示?
【问题讨论】:
-
欢迎来到 Stack Overflow。您使用的是什么渠道/客户端?是网络聊天吗?
-
我们目前正在使用网络聊天频道,但正在寻求更改为 Direct Line。
-
这不太合理。 Web Chat 是 Direct Line 客户端。您是说要从网络聊天切换到您自己的自定义客户端吗?
-
我们正在使用网络聊天 v3 客户端并将其更新到 v4。在 Azure Web App Bot 服务中,我们使用网络聊天频道,而在 v4 中,我们将使用 Direct Line 频道。
-
这里似乎仍然有些混乱。从 Web Chat v3 升级到 Web Chat v4 并不意味着更改为 Direct Line。两个版本的网络聊天都使用 Direct Line 作为他们的频道。在这两种情况下,Direct Line 都是您的渠道。网络聊天可能会出现在 Azure 的频道刀片中,但从技术上讲,它不是频道。 Web Chat v3 和 Web Chat v4 都是 Direct Line 客户端。不过,我不想太偏离你的问题。由于您使用的是 Direct Line 和 Web Chat,因此主要的一点是,如果您需要,您可以对客户端进行一些控制。