Как включить паузу для ввода в DialogFlow? - PullRequest
0 голосов
/ 27 сентября 2018

Например, когда я спрашиваю пользователя о последовательности чисел, я хочу иметь возможность взять эту последовательность только после того, как он / она сделал паузу в течение по крайней мере 4 секунд.Например - "12345 ..." (пауза на одну секунду) "... 789" -> взятый ввод: 12345789 - "1234 ..." (пауза на 4 секунды) "... 789" -> принятоввод: 1234

Мой код:

    'confirmNumberIntent' : function(assistant, cache) {
      let userNumber = assistant.getRawInput();
      assistant.setContext('number', 1);

      let confirmNumberMessage = "I heard " + userNumber + ". Is that right?";
      cache.user.lastSpeech = confirmNumberMessage;
      cache.user.promptSpeech = cache.user.lastSpeech;
      assistant = sessionUtil.setData(assistant, cache);
      askWithSuggestion(assistant, cache, ['Yes', 'No']);
    }

В диалоге: - имя намерения - подтверждают. номер - тип параметра: @ sys.flight-номер

1 Ответ

0 голосов
/ 28 сентября 2018

Пауза, о которой вы говорите, будет интерпретирована как пустая или прерванная в разговоре, поскольку механизм преобразования речи в текст отличается от человека.Таким образом, вы пропустите захват всего, что говорилось после «паузы».

Вы можете настроить веб-крючок для заполнения слота для проверки введенного номера, и, если номер телефона имеет неправильную длину или не соответствует вашим требованиям, вы можете сбросить контекст, чтобы снова захватить номер телефона и задать запросПользователь говорит это без перерыва.

Надеюсь, это поможет.

...