我正在用PHP端点实现Alexa对话框模型。我用了Alexa医生(https://developer.amazon.com/fr/docs/custom-skills/dialog-interface-reference.html)
下面是我的例子:我的技能:
RequestIntent
话语:在卧室中添加一个{obj}
插槽:{obj}/插槽填充
短语:
Me:Alexa,在卧室中添加一个对象
Alexa:你想在卧室里加什么东西?
我:我想在卧室里加一辆汽车
Alexa:你想在卧室里加一辆车吗?
我:是
步骤1:
对话框状态已启动
我使用ElicitSlot设置{obj}插槽
步骤2:
对话状态为IN_PROGRESS。
我使用ConfirmIntent要求用户确认
步骤3:
用户说是/否
ConfirmIntent现在设置为CONFIRMED/DENIED
但仍在in_PROGRESS 中
dialogState应该是COMPLED,因为我设置了所有插槽和意向值,对吗?那为什么不应该在这里工作呢?
提前感谢
您的dialogState
不是COMPLETE
的原因是您使用的是Dialog.ElicitSlot
指令。只有当使用Dialog.Delegate
指令时,COMPLETED
状态才是。
有关使用Dialog.Delegate
指令控制对话框的更多信息,请点击此处
DialogState只有以下状态:"已启动"、"IN_PROGRESS"、"已完成。
未完成的原因可能是并非所有步骤都已完成,或者IntentRequest没有所有所需的插槽值。
对我来说,我必须从Alexa开发者控制台启用接口中的自动委派选项。
让Alexa根据您的对话框模型自动确定并完成对话框的每个步骤。当对话框完成时,你的技能会得到一个IntentRequest。您可以在意图级别替代此设置。了解有关自动委派的更多信息。
完成所有步骤后,技能将获得最终的IntentRequest
,dialogState
设置为COMPLETED
。