Действия с обработкой Google NO_MATCH

В консоли действий можно указать NO_Match, если ответ пользователя не соответствует существующему параметру. Но этот NO_MATCH не обеспечивает перехода к другой сцене. Когда ввод пользователя не распознается, я хочу вернуться к началу разговора и начать заново. Как я могу это сделать?

1 ответ

Решение

Кажется странным, что единственный переход, который NO_MATCH поддерживает в Actions Builder/SDK, - это (обязательная) сцена End Conversation. Но это скорее концептуальное понятие - NO_MATCH указывает, что вы хотите попытаться восстановить диалог или что вы отказываетесь от этого.

Если вы хотите запечатлеть сказанное и / или предпринять соответствующие действия (например, перейти к другой сцене), вы можете сделать что-то вроде этого:

  1. Создайте Тип, который принимает "Текст в произвольной форме" (я обычно называю его "Любой"), создав тип и выбрав его для "Какие типы значений" он будет поддерживать.

  1. Создайте намерение, в котором все образцы фраз используют этот тип Any - в этом примере я назвал его "резервным". Вы должны указать, что это не глобальное намерение, поскольку мы хотим, чтобы оно явно запускалось в сцене. Затем создайте параметр намерения, который использует тип Any и несколько примеров фраз, использующих этот параметр. Обязательно выделите некоторые слова во фразах, чтобы показать, какие части относятся к типу "Любые", поскольку они не будут совпадать автоматически.

  1. Наконец, поместите это в свою сцену как последнее пользовательское намерение. (Обратите внимание, что это должно быть последнее пользовательское намерение, поскольку они оцениваются по порядку.) Затем вы можете назначить его для перехода к любой сцене, которую вы хотите.

Другие вопросы по тегам