Действия с обработкой Google NO_MATCH
В консоли действий можно указать NO_Match, если ответ пользователя не соответствует существующему параметру. Но этот NO_MATCH не обеспечивает перехода к другой сцене. Когда ввод пользователя не распознается, я хочу вернуться к началу разговора и начать заново. Как я могу это сделать?
1 ответ
Решение
Кажется странным, что единственный переход, который NO_MATCH поддерживает в Actions Builder/SDK, - это (обязательная) сцена End Conversation. Но это скорее концептуальное понятие - NO_MATCH указывает, что вы хотите попытаться восстановить диалог или что вы отказываетесь от этого.
Если вы хотите запечатлеть сказанное и / или предпринять соответствующие действия (например, перейти к другой сцене), вы можете сделать что-то вроде этого:
- Создайте Тип, который принимает "Текст в произвольной форме" (я обычно называю его "Любой"), создав тип и выбрав его для "Какие типы значений" он будет поддерживать.
- Создайте намерение, в котором все образцы фраз используют этот тип Any - в этом примере я назвал его "резервным". Вы должны указать, что это не глобальное намерение, поскольку мы хотим, чтобы оно явно запускалось в сцене. Затем создайте параметр намерения, который использует тип Any и несколько примеров фраз, использующих этот параметр. Обязательно выделите некоторые слова во фразах, чтобы показать, какие части относятся к типу "Любые", поскольку они не будут совпадать автоматически.
- Наконец, поместите это в свою сцену как последнее пользовательское намерение. (Обратите внимание, что это должно быть последнее пользовательское намерение, поскольку они оцениваются по порядку.) Затем вы можете назначить его для перехода к любой сцене, которую вы хотите.