我有一个意图需要三个位置的技能。所有三个插槽都是必需的,最后一个插槽也需要确认。 我使用request.dialogState
获取插槽的值插槽为:
如果在“ IN_PROGRESS” if块的情况下尝试返回Dialog.Delegate指令,则不会执行任何操作。
switch (request.dialogState) {
case 'STARTED':
if (slots.item1.value && slots.item1.value && slots.item3.value) {
await super.checkItem(input);
return input.responseBuilder.addDelegateDirective(request.intent).getResponse();
} else {
return input.responseBuilder.addDelegateDirective(request.intent).getResponse();
}
case 'IN_PROGRESS':
if (
slots.item1.value &&
slots.item2.value &&
slots.item3.value &&
slots.item3.confirmationStatus === 'NONE'
) {
await super.checkItem(input);
return input.responseBuilder.addDelegateDirective(request.intent).getResponse();
} else if (
slots.item1.value &&
slots.item2.value &&
slots.item3.value &&
slots.item3.confirmationStatus !== 'NONE'
) {
await this.checkConfirmation(input);
return input.responseBuilder.addDelegateDirective(request.intent).getResponse();
} else {
return input.responseBuilder.addDelegateDirective(request.intent).getResponse()
}
case 'COMPLETED':
return this.finalCreate(input);
default:
return null;
}