выход из беседы Google Action: не ждите ответа пользователя - PullRequest
0 голосов
/ 06 февраля 2019

Я пытаюсь получить обратную связь с пользователем в конце сеанса действий Google с помощью Actions SDK.

Согласно документации по действиям (https://developers.google.com/actions/assistant/conversation-exits), Я установил намерение отмены

   "conversations" : {
    ...
    "inDialogIntents": [
        {
          "name": "actions.intent.CANCEL"
        },
     ... 

и в коде моих функций я вызываю SimpleResponse, как показано ниже:

app.intent('actions.intent.CANCEL', (conv, input) => {
  conv.close(new SimpleResponse({
    speech: 'Kindly rate between 1 and 5,
    text: 'Rate between 1 and 5'
  }));
});

Когда пользователь говорит goodbye, вызывается вышеуказанный код. Речь слышна, и отображается текстно разговор немедленно завершается с наушником.

В документации упоминается, что система будет ждать 2 секунды, прежде чем завершить работу, но, похоже, она делает это немедленно. Есть ли способ заставить это работать? Спасибо

1 Ответ

0 голосов
/ 06 февраля 2019

Мне не совсем понятно, чего бы вы хотели достичь.Прежде всего, пока вы используете метод conv.close(), вы заканчиваете разговор.Если вы хотите оставить микрофон открытым, вам нужно использовать метод conv.ask().Но я не уверен, что вы можете использовать conv.ask() с actions.intent.CANCEL, потому что это событие предназначено для вывода пользователя, а не для продолжения разговора.Но я не уверен на 100%, вам нужно попробовать.

Если вы пытаетесь достичь чего-то подобного:

Пользователь: Отмена

Система: Как бы вы оценили наше взаимодействие?

Пользователь: Хорошо.

earcon

Тогда, по моему скромному мнению, вы, вероятно, не должны (и, как я сказал, вы, вероятно, не можете) сделать это.В документах четко указано, что целью пользовательского поведения при выходе является:

, чтобы очистить логику выполнения и ответить пользователю в последний раз.

Кроме того, в документах не говорится, что система будет ждать ответа пользователя в течение 2 секунд.В нем говорится, что выполнение запроса (время ожидания для вашего выполнения) составляет 2 секунды.Плюс;если пользователь отменяет разговор в середине разговора, есть вероятность, что взаимодействие все равно было неудачным.Я бы предпочел создать диалоги обратной связи, которые связаны с запасными намерениями и счастливыми путями.

Тем не менее, попробуйте использовать conv.ask() и дайте мне знать, если это работает.(И, пожалуйста, дайте мне знать, комментируя.) В любом случае, я бы посоветовал получить обратную связь другим способом.

...