我有一个工作流程会询问不同的是/否问题。使用亚马逊内置的是和否意图,我如何将它们用于多个问题。
我创建了一个名为“Injury”的状态,以便为此流程提供不同的处理程序。当用户对第一个问题说“不”时,AMAZON.NoIntent
发出BurnIntent
问题。此时,如果用户说“不”,它会循环回到BurnIntent
. 如何在“是”和“否”意图中确定要继续前进的意图?有没有办法跟踪我正在处理的问题以确定发出哪个意图?
我有一个工作流程会询问不同的是/否问题。使用亚马逊内置的是和否意图,我如何将它们用于多个问题。
我创建了一个名为“Injury”的状态,以便为此流程提供不同的处理程序。当用户对第一个问题说“不”时,AMAZON.NoIntent
发出BurnIntent
问题。此时,如果用户说“不”,它会循环回到BurnIntent
. 如何在“是”和“否”意图中确定要继续前进的意图?有没有办法跟踪我正在处理的问题以确定发出哪个意图?
其中一种方法是将状态或问题保留在self.attributes
. 这是一种在意图之间共享的会话变量,一旦用户结束使用技能就会消失。
例如,您可以在那里存储您向用户提出的最后一个问题self.attrbiutes["lastQuestionID"] = questionId
或当前的“级别”。然后,一旦您的“是/否”意图被触发,您就可以使用该值并决定下一步该做什么。
我的假设是您使用的是 Node.js SDK。但我很确定其他语言也有类似的东西。
您还可以在三个不同级别的状态管理技巧文章中阅读更多关于状态管理的信息。
另一种方法是制作自定义是否插槽,如果您的流程不是太大,则将其用于每个问题。 这篇文章解释了如何做到这一点。