Как вы разрешаете пользователю отменить, пока Google Assistant отвечает через веб-перехватчик?

У меня есть действие Google (с использованием API.AI), которое очень похоже на Пример веб-перехватчика Silly Name Maker.

Однако мое приложение было отклонено по следующей причине:

Одно или несколько ваших действий не позволяют пользователю легко выйти из беседы. Убедитесь, что вы не продолжаете разговаривать с пользователем, если он просит отменить или выйти.

Когда вы говорите «стоп», «отменить» или «выйти», когда микрофон открыт, он отвечает: «Конечно, отменено» , закрывает микрофон и выходит. Однако, когда вы пытаетесь использовать эти команды, пока агент говорит, он закрывает микрофон и выходит, но не говорит «Конечно, отменено», как предполагалось.

Мое действие настроено так:

  1. Приветственное намерение. Пользователя просят указать два параметра.
  2. Ответ веб-перехватчика: после ввода всех параметров веб-перехватчик (структурированный точно так же, как этот веб-перехватчик Silly Name Maker) доставляет одно предложение и сразу же завершает беседу.

Если во время приветствия пользователь говорит «Окей, Google, отменить», пока агент говорит, он отвечает «Конечно, отменено» и выходит.

Однако, пока агент передает ответ веб-перехватчика (от assistant.tell()), если вы скажете «Окей, Google, отменить», он немедленно выйдет, не сказав «Конечно, отменено».

Как мне заставить Google Assistant сказать "Конечно, отменено"? Нужно ли мне настраивать намерение "отменить" в API.AI и использовать actionMap на моем веб-перехватчике для обработки запроса пользователя ?


person Dan Leveille    schedule 02.02.2017    source источник


Ответы (3)


Используйте assistant.ask (), а не сообщайте, тогда отмена должна сработать. Вы можете посмотреть https://github.com/actions-on-google/actions-on-google-nodejs/blob/master/assistant.js

person Shishi Fu    schedule 07.02.2017
comment
Но разве цель asssitant.tell () - дать окончательный ответ, а затем отменить? Кажется странным, что вас отвергают с тем, что кажется предполагаемым поведением, особенно если это то, что указано в их демонстрационном действии. (Недавно я связался с Google, объяснив мое конкретное поведение, чтобы узнать, не допустила ли рецензента какой-либо ошибки - ожидая ответа.) - person Dan Leveille; 07.02.2017
comment
Это действительно странный отзыв об обзоре. Держу пари, они пропустят вас, но тем не менее у меня есть ответ ниже, который позволил бы вам выполнить странную просьбу ... - person spechter; 15.05.2018

Я знаю, что это старый вопрос, но, тем не менее, у меня есть ответ.

Вы можете перехватывать запросы типа «Отмена» от пользователя, если необходимо, чтобы воспроизвести собственное «прощай», как, казалось, желал ваш выделенный желтым цветом запрос. (Это отзыв об обзоре? Странно ...)

Как описано здесь: https://developers.google.com/actions/assistant/app-exits

Основной трюк - настроить намерение в диалоговом потоке, которое настроено для «события» «actions_intent_CANCEL».

Установите его так, чтобы «закончить разговор» (или, я думаю, это не сработает).

Не используйте примеры фраз.

Установите желаемый ответ или настройте его на попадание в ваш веб-перехватчик.

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

person spechter    schedule 15.05.2018

В настоящее время нет возможности открыть микрофон, когда вы выполняете app.tell () внутри своего пользовательского приложения. Итак, нет возможности прервать ответ.

Только фраза «окей, Google» открывает микрофон. Таким образом, вы можете добавить пользовательские слова "Окей, Google", чтобы перейти к вашему исполнению. Таким образом, вы сможете справиться с прерыванием работы вашего собственного приложения.

person A.C.    schedule 15.05.2018