Обработка "Отмена диалога заполнения слотов" - PullRequest
0 голосов
/ 29 января 2019

Я создаю бота, который использует подход «заполнение слотов», и я хочу предоставить расширенное сообщение от веб-крюка, когда в бот вводится фраза выхода.

Я строю бота, который содержит слотЗаполнение подхода.В документации по ссылке «1003 *https://dialogflow.com/docs/concepts/slot-filling#canceling_slot_filling_dialog

* 1005» я наткнулся на «диалог отмены заполнения слотов». Пока я пытался это сделать, я обнаружил, что не только упомянутые в документации высказывания, но и другие выходные фразы, такие кактот.Пример: ничего, прервать.

Я не смог найти никаких намерений / настроек для настройки / изменения этого поведения.

  1. Есть ли способ, которым я мог бы найти все фразы выхода?
  2. Есть ли способ изменить выводимое сообщение, отображаемое, когда пользователь произносит фразу выхода?
  3. Можем ли мы подключиться к веб-крюку после того, как пользователь произнесет фразу выхода, чтобы предоставить настраиваемый расширенный ответ?

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

1 Ответ

0 голосов
/ 31 января 2019

Насколько я могу судить, нет встроенного способа сделать это, но есть хакерский способ, которым вы могли бы использовать 3 для достижения 2. Я предполагаю, что вы знакомы с тем, как запросы и ответы Dialogflow webhook работают в целом.Пожалуйста, смотрите здесь , если нет.

В основном все сводится к проверке того, собирается ли Dialogflow ответить одной из своих фраз об отмене акций, а затем к замене одной собственной.

Убедитесь, что «включить вызов webhook для заполнения слотов» включено.Когда пользователь вводит фразу завершения заполнения слота, JSON webhook, который отправляет Dialogflow, все равно будет иметь то же свойство intent.name, что и намерение, с которым вы работаете.Таким образом, вы можете поймать это намерение в операторе switch.

Тогда внутри этого вы можете просто использовать оператор «if», чтобы проверить свойство «FulfillmentText» запроса webhook и посмотреть, является ли это какой-либо из стандартных фраз, которые Dialogflow использует для ответа на отмены, например «Sure,отмена "или" Нет проблем, отмена ".Я не знаю, сколько их, но я предполагаю, что их не так уж много, вам придется проверить, чтобы попытаться найти их все.

Если это какая-либо из этих фраз, вы можете затем изменить то, что Dialogflow говорит пользователю, возвращая ответ на веб-крючок с вашим собственным FulfillmentText, установленным на то, что вы хотите (см. Ссылку выше, как JSONответ должен быть структурирован).

Этот метод не совсем идеален, так как ответы на выходе из акций, которые может использовать Dialogflow, могут измениться, и трудно определить, нашли ли вы их все, но это должен быть обходной путь, пока Dialogflow не станетболее гибким.

Также копирую мой комментарий по поводу вопроса 1 ранее, так как он, кажется, работает (спасибо за исправление опечатки):

Я подозреваю, что список фраз отмены такой же, как и внамерение «отменить» предварительно собранного агента Smalltalk.Чтобы найти это, зайдите в Prebuilt Agents -> Small Talk -> Import.Затем перейдите к этому агенту и найдите намерение «smalltalk.confirmation.cancel», чтобы просмотреть список фраз.

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

...