Dialogflow v2 пользовательский ввод и выполнение

Я пишу чат-бота Dialogflow v2 с Actions on Google.

Я прошу пользователей создать список, а затем иметь возможность упорядочить их.

Мне нужно получить от пользователя некоторую информацию. Ее имя, номер телефона и адрес.

Затем мне нужно имя продавца и номер его мобильного телефона, на который будет отправлен заказ.

Если они уже назвали свое имя, я хочу показать им его и попросить подтвердить это. Проблема в том, что все является намерением. В качестве примера говорят «Заказ из моего списка». Я должен спросить у них название магазина, например Walmart. Теперь проблема в том, что у меня может не быть всех поставщиков в списке сущностей. И если они просто скажут «Walmart», как я узнаю, что это имя продавца. Я знаю, что мог бы иметь последующее намерение, но не уверен, что произойдет, если они не скажут правильные слова.

В принципе, я хочу, чтобы разговор пошел именно так.

Они создают список, над которым я работаю.

Затем они говорят заказ из списка

Чат-бот запрашивает название магазина и номер мобильного телефона для заказа. Чат-бот проверяет имя в базе данных и, если его не существует, добавляет его.

Запрашивает имя, номер, адрес пользователя

Показывает заказ, продавца, имя и адрес пользователя.

Передает эту информацию ловушке выполнения сервера.

В следующий раз ему нужно почувствовать, что он знает имя пользователя, адрес и номер, и попросить пользователя подтвердить.


person user3631034    schedule 17.08.2018    source источник


Ответы (1)


Проще говоря, вам нужно будет полагаться на контексты и веб-перехватчик для проверки названия магазина.

  • Если магазин недействителен, сбросить контекст (как ввод) и вежливо попросить пользователя указать правильное название магазина.
  • Поддерживайте счетчик в параметрах, чтобы отслеживать количества ошибочных попыток.
  • Увеличивайте этот счетчик, если он ошибочен, и сбрасывайте, когда он правильный.
  • Если счетчик достигает 3 или 4, вежливо ответьте, что вы не можете обслужить их у этого поставщика, и попросите их попробовать приложение позже.

Если это приложение-помощник предназначено для США, вам может потребоваться добавить API транзакций, чтобы показать окончательный заказ и подтвердить его пользователю. На данный момент Transaction API доступен в США, так что имейте это в виду.

person Abhinav Tyagi    schedule 18.08.2018
comment
Спасибо за ваш ответ. Не могли бы вы привести конкретный пример? К сожалению, у меня нет в списке названий магазинов. Магазин может быть новым магазином, поэтому его может не быть в списке сущностей. Поэтому я не могу ни проверить это, ни использовать заполнение слотов. Я знаю о Transaction API, но спасибо. Проблема еще и в том, что если пользователь говорит Veggie Reggie, я могу не знать, что это магазин. Так я должен сказать «магазин» и «название магазина»? Только так я могу быть уверен, что она вводит название магазина. - person user3631034; 18.08.2018
comment
Кроме того, я использую MySQL для хранения пользовательских запросов и данных, поэтому, вероятно, мне не нужны параметры. - person user3631034; 18.08.2018
comment
Возможно, вам придется вручную обновить имена магазинов в БД и в сущности для магазинов, которые вы поддерживаете. Те, кто не входит в этот список, должны быть либо введены пользователем с помощью отдельного потока, либо вы можете попросить пользователя попробовать с другими магазинами, поскольку вы не поддерживаете текущий. - person Abhinav Tyagi; 18.08.2018