我需要什么:
假设我有一个意图,要求两件事:
用户:显示计算机 机器人:请从以下选项中选择一个标准:高性能、低价格、构建质量
用户:高性能 bot:在高性能方面,我有两个品牌,苹果和华硕,你会选择哪一个 喜欢喜欢吗?
用户: 苹果 BOT:您希望如何排序,按发布日期或评级?
用户:评分 Bot:这是按评级排序的计算机:iMac 2018和MacBook Pro 2018
用户: Uywiuewrw Bot:这是你的电脑:iMac 2018和MacBook Pro 2018
用户: Kljrtklet Bot:这是你的电脑:iMac 2018和MacBook Pro 2018
我需要的是当用户说"uywiuewrww"时,我需要它在后备中落下
我有什么代码
我正在使用插槽填充表单 webhook,因为我需要代表第一个参数从数据库获取一些数据,然后,第二个参数的查询也取决于第一个参数,
根据我的情况,我的意图中有三个输入,但实际上我的意图中总共有 5 个操作参数,并且所有参数都被标记为必需,因为如果我不将其标记为必需,它只会在插槽填充期间忘记值
为什么我有 5 个参数: 我有第一个实体,它有三种可能性(高性能、低价格、构建质量),并且在选择每种可能性时,我都有进一步的可能性, 如果用户选择高性能,我需要要求苹果和华硕,这是MT第二个实体 如果用户选择低价,我需要询问"低于 100 新"或"二手电脑",这是我的第二个实体 如果用户选择构建质量,我需要询问"行业类"或"军事类" 然后我要求按"发布日期"或"评级"排序,这是我的第 5 个实体
由于我将它们全部设置为必需,因此在仅收集两个参数后,它不会将意图标记为已完成,但实际上我只需要填写两个参数,如果那 4 个,我无法将其中任何一个标记为可选,因为它在插槽填充过程中忘记了 vlaue(实际上在这种情况下它不会忘记,但在我的实际情况下,在这些参数之后我还有更多问题, 比如你想如何排序等)
用例:
实际上,我有一些进一步的常见问题解答意图,例如">此聊天机器人的作用"或"您的公司位于何处",因此用户可以随时提出这些问题,如果用户提出任何常见问题解答,则计算机建议完成后,它会正确回复,因为我即将过期上下文,但是如果用户命令与任何常见问题解答意图不匹配,则应转到回退,我随机给他们问题示例,例如"嘿,我没有得到你的问题,你可以问这个,这个,还有这个">
寻求帮助
目前还不清楚你的问题到底是什么,但听起来你可以做一些事情来让你的设计更容易:
-
不要使用插槽填充。由于需要哪些参数取决于先前设置的条件,因此不要尝试使用插槽来弄清楚已经说过的内容和未说过的内容。参数/插槽最适合用户可能在一个响应中说出所有内容的内容,而不是您希望必须提示他们的内容。
-
使用上下文跟踪它们已提供的值。
-
在 webhook 逻辑中,您可以使用他们已经说的值(存储在上下文中)和他们所说的值(在当前回复的参数中)的组合来弄清楚下一步要提示他们什么。您的所有提示都将来自您的 Webhook - 而不是来自对话流回复。
-
添加一个或多个其他 Intent,用于处理用户的通用响应,并使用保存用户要回复的值的参数。它应该将传入上下文设置为条件,以便它是他们回复时触发的上下文。您需要将这些值传输到 Webhook 中的上下文中。