Пользовательские запасные намерения при использовании помощника подтверждения - PullRequest
0 голосов
/ 06 января 2019

Я пытаюсь создать пользовательские запасные варианты для намерений, которые содержат подтверждения. Вот код:

const functions = require('firebase-functions');
const {
    dialogflow,
    Confirmation
} = require('actions-on-google');


const app = dialogflow({
    debug: true,
});

app.intent('vitals-confirmation', (conv, input, confirmation) => {
    conv.ask(new Confirmation(`Great! Have you fainted recently?`));
});

app.intent('vitals-confirmation-fallback', (conv, input, confirmation) => {
    conv.ask(new Confirmation(`Sorry I didn't understand what you said. Did you faint?`));
})

app.intent('S1-confirmation', (conv, input, confirmation) => {
    if (confirmation) {
        conv.ask(new Confirmation(`I have recorded that you have fainted. Have your feet been hurting?`));
    } else {
        conv.ask(new Confirmation(`I have recorded that you have not fainted. Have your feet been hurting?`));
    }
});

Мое приложение спрашивает пользователя, упали ли они в обморок в "vitals-подтверждении", и ожидается ли, что пользователь ответит типом ответа "да" или "нет", который будет идентифицирован помощником подтверждения, если они сделают это правильно, они перейдут к «S1-подтверждение» и будет задан следующий вопрос.

Однако, когда я отвечаю с ответом, который не является ответом типа да / нет (например, «красный»), выводится следующее:

Sorry, Great! Have you fainted recently?

Кажется, что по умолчанию есть запасной вариант, который отвечает "Извините, [повторяет предыдущий текстовый вывод]" и не переходит к пользовательскому намерению отступления, которое я создал (что является моим желаемым результатом).

1 Ответ

0 голосов
/ 22 марта 2019

Ознакомьтесь с документацией для помощника по подтверждению Actions SDK для Node.js.

Вам нужно настроить намерение с событием actions_intent_CONFIRMATION в DialogFlow, чтобы получить ответ пользователя. Мой совет - проверить, как вы настроили свои намерения и использовать этот метод, в противном случае обязательно создайте последующие намерения с желаемой продолжительностью жизни контекста.

Пример из документации:

app.intent('Default Welcome Intent', conv => {
  conv.ask(new Confirmation('Are you sure you want to do that?'))
})

// Create a Dialogflow intent with the `actions_intent_CONFIRMATION` event
app.intent('Get Confirmation', (conv, input, confirmation) => {
  if (confirmation) {
    conv.close(`Great! I'm glad you want to do it!`)
  } else {
    conv.close(`That's okay. Let's not do it now.`)
  }
})
...