Alexa Dialog Model Step 和 dialogState 永远不会处于 COMPLETED

Alexa Dialog Model Step and dialogState is never in COMPLETED

我正在使用 PHP 端点实现 Alexa 对话模型。 我使用了 Alexa 文档 (https://developer.amazon.com/fr/docs/custom-skills/dialog-interface-reference.html)

这是我的例子: 我的技能:

RequestIntent

Utterance : add an {obj} in the bedroom

Slots : {obj} / Slot Filling

短语:

Me : Alexa, Add an object in the bedroom

Alexa : What object do you want to add in bedroom ?

Me : I would like to add a cars in the bedroom

Alexa : You want to add a car in the bedroom ?

Me : Yes

第 1 步:

DialogState is STARTED

I use ElicitSlot to set the {obj} slot

第 2 步:

dialogState is IN_PROGRESS.

I use ConfirmIntent to ask user to confirm it

第 3 步:

User say yes/no

ConfirmIntent 现在设置为 CONFIRMED/DENIED

但仍在 IN_PROGRESS

dialogState 应该是 COMPLETED 因为我设置了我所有的插槽和意图值吗?那为什么不应该在这里工作呢?

提前致谢

DialogState 只有以下状态: "STARTED" , "IN_PROGRESS" , “完成。

未完成的原因可能是未完成所有步骤或 IntentRequest 没有所有必需的槽值。

您的 dialogState 不是 COMPLETE 的原因是您使用的是 Dialog.ElicitSlot 指令。 COMPLETED 状态 只有当您使用 Dialog.Delegate 指令时才有可能。

有关使用 Dialog.Delegate 指令控制对话框的更多信息 here

对我来说,我必须在 Alexa Developer Console 的 Interfaces 中启用 Auto Delegation 选项。

Let Alexa automatically determine and complete each step of the dialog, based on your dialog model. Your skill gets a single IntentRequest when the dialog is complete. You can override this setting at the intent level. Learn More about Auto Delegation.

所有步骤完成后,技能将获得最终的 IntentRequestdialogState 设置为 COMPLETED