Тот же слот "Alexa речевое приглашение" запрашивается даже после получения значения - PullRequest
0 голосов
/ 01 мая 2019

Позвольте мне попытаться объяснить мою ситуацию. У меня есть Intent FundTransfer, который спрашивает что-то вроде: «Вы хотите сделать перевод сейчас или позже?» Пользователь говорит позже.

Затем я перенаправляю к другому назначению для планирования передачи.

Код узла:

return handlerInput.responseBuilder
        .addDelegateDirective({
          name: "ScheduleTransferIntent",
          confirmationStatus: "NONE",
          slots: {}
        })
        .withShouldEndSession(false)
        .getResponse();

ScheduleTransferIntent имеет 2 слота, scheduleDate и scheduleTime.

Я разрешаю Алексе обрабатывать эти слоты. У меня есть обработчик для не завершенного статуса,

const StartedInProgressScheduleTransferIntentHandler = {
  canHandle(handlerInput) {
    return (
      handlerInput.requestEnvelope.request.type === "IntentRequest" &&
      handlerInput.requestEnvelope.request.intent.name ===
        "ScheduleTransferIntent" &&
      handlerInput.requestEnvelope.request.dialogState !== "COMPLETED"
    );
  },
  handle(handlerInput) {
    return handlerInput.responseBuilder.addDelegateDirective().getResponse();
  }
};

scheduleDate относится к типу Amazon.Date, и я сделал его обязательным.

Речевое приглашение Alexa: На какую дату я должен запланировать этот перевод?

Пользовательские высказывания: {scheduleDate}

Когда пользователь дает ответ, как завтра, я вижу, что значение заполняется, но Алекса снова задает тот же вопрос.

Теперь, если я добавлю новое пользовательское высказывание,

Пользовательские высказывания:

{scheduleDate}

в {scheduleDate}

А когда пользователь дает «на завтра», Алекса спрашивает время. Почему так себя ведет? Я не хочу добавлять текст перед моим ответом.

Обновление: когда я отвечаю «завтра», это работает, но когда я даю дату, это та же проблема. Но журнал устройства показывает значение, которое я заполнил

"payload": {
        "skillId": null,
        "timestamp": "2019-05-01T11:46:47.644Z",
        "dialogRequestId": "5d2dc23b-899c-4656-9be4-65faf1df88ec",
        "skillRequestId": null,
        "type": "ConsideredIntents",
        "content": {
            "intents": [
                {
                    "name": "ScheduleTransferIntent",
                    "confirmationStatus": "NONE",
                    "slots": {
                        "scheduleTime": {
                            "name": "scheduleTime",
                            "value": null,
                            "confirmationStatus": "NONE",
                            "encryptedValue": null
                        },
                        "scheduleDate": {
                            "name": "scheduleDate",
                            "value": "2019-09-25",
                            "confirmationStatus": "NONE",
                            "encryptedValue": null
                        }
                    }
                }
            ]
        }
    }
...