【发布时间】:2018-06-04 02:44:39
【问题描述】:
我正在构建 Alexa 技能,但不太确定我是否正确使用了 sessionAtrributes。我知道sessionAttributes 用于将会话的数据结转到下一次调用。
所以我有这两个意图
1) ListToDoItem
- 在这个意图中,我的技能将查看数据库并列出
存储在数据库中的待办事项。列出物品后,Alexa
会继续说“你想让我列出这些的详细信息吗?
待办事项?”,为了处理这个问题,我将传递在
上一届会议为
sessionAttributes。当被要求列出详细信息时 关于物品的信息,我会提取之前转发的sessionAtrributes并撰写详细的语音回复。 - 因此,为了这个意图,我必须对话语进行抽样
- 列出我的待办事项
- 是的
将使用话语“是”,以便提取 sessionAttributes 以创建详细的语音响应。
2)ListDoneItems
此意图将用于列出已完成的项目。它与之前的意图类似,唯一的区别是,这个意图将列出已完成的项目。
为此意图将有 2 个示例话语
- 列出我完成的项目
- 是的
就像之前一样,它有一个“是”来根据 sessionAttributes 生成详细的语音响应。
但我遇到的问题是,当我对 ListDoneItems 意图的“您要我列出已完成的项目吗?”回复“是”时,生成的下一个意图请求的类型为 ListToDoItems 而不是 @987654330 @,即使我在技能回复中将shouldEndSession 设置为false。发生这种情况是因为我的意图之间的示例话语之间存在交叉。那么在不同的意图中有相似的意图是错误的吗?如何设计交互模型来创建多轮对话以便在sessionAttributes中使用?
【问题讨论】:
标签: alexa alexa-skill