我正在用PHP端点实现Alexa对话框模型。 我使用了Alexa doc(https://developer.amazon.com/fr/docs/custom-skills/dialog-interface-reference.html)
这是我的例子: 我的技能:
RequestIntent
话语:在卧室里添加一个{obj}
插槽:{obj} /插槽填充
短语:
我:Alexa,在卧室添加一个对象
Alexa:您要在卧室中添加什么对象?
我:我想在卧室里增加一辆车
Alexa:您想在卧室里增加一辆车吗?
我:是
STEP1:
DialogState已启动
我使用ElicitSlot设置{obj}插槽
STEP2:
dialogState为IN_PROGRESS。
我使用ConfirmIntent要求用户确认
STEP3:
用户说是/不是
ConfirmIntent现在设置为CONFIRMED / DENIED
但仍处于IN_PROGRESS
dialogState应该为COMPLETED,因为我将所有slot和intent值都设置正确了吗?那么,为什么不应该在这里工作呢?
多谢
答案 0 :(得分:3)
您的dialogState
不是COMPLETE
的原因是因为您正在使用Dialog.ElicitSlot
指令。仅当您使用 COMPLETED
指令时,Dialog.Delegate
状态才可能。
有关通过Dialog.Delegate
指令here控制对话框的更多信息
答案 1 :(得分:1)
DialogState仅具有以下状态: “ STARTED”,“ IN_PROGRESS”,“已完成”。
之所以未完成,可能是因为并非所有步骤都已完成,或者IntentRequest并没有所有必需的插槽值。
答案 2 :(得分:0)
对于我来说,我必须在Alexa开发人员控制台的界面中启用自动委派选项。
让Alexa根据您的对话框模型自动确定并完成对话框的每个步骤。对话框完成后,您的技能将获得一个IntentRequest。您可以在意图级别覆盖此设置。 Learn More关于自动委派。
所有步骤完成后,技能会收到最终的IntentRequest
,且dialogState
设置为COMPLETED
。