Создание чат-ботов с Dialogflow, Watson, ChatterBot и Rasa - страница 10

Шрифт
Интервал


И мы создадим такое же намерение для отрицательного ответа, и этим же контекстом в качестве входного контекста.

Теперь у нас есть два намерения, но нам нужно добавить для них обучающие фразы.

Для намерения нет, мы добавим фразы с отказом, а для намерения да, мы добавим подтверждающие фразы.

И добавим ответ в это намерение.

Теперь давайте проверим.

Давайте зададим вопрос: «Могу ли я получить пиццу?»

Агент скажет: «Конечно, вы хотели бы получить напиток с пиццей?»

И если я скажу «да», тогда ответ будет: «Отлично, скоро будет».

Теперь мы видим, что «да» связано с заказом пиццы с напитком.

В случае нет, мы должны просто разместить заказ на пиццу.

Теперь, что, если вы хотите, чтобы агент сделал больше, чем просто давал ответы пользователю?

Что если вы решите сохранить заказ пиццы в базе данных?

Вы можете достичь этого с выполнением fulfillment.

Выполнение – это действие с использованием кода, развернутого вне диалога.

Это позволяет чат-боту выполнять внешнюю бизнес-логику на основе намерения.

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

И мы можем написать код для этого взаимодействия с внешней системой.

Здесь мы будем использовать встроенный редактор DialogFlow для написания кода.

Для размещения заказа пиццы, серверная сторона должна знать как минимум три фрагмента информации; размер пиццы, начинку и время получения заказа.

Это будут три разных сущности, которые нам необходимо идентифицировать и извлечь из запроса клиента.

Если клиент говорит: «Можно мне пиццу?», нам нужно настроить агента запросить дополнительную информацию, необходимую для отправки заказа в бэкэнд-систему, ответственную за размещение заказов.

Как мы можем собрать эти недостающие фрагменты информации?

Для этого мы можем использовать раздел действия и параметры намерения.

Здесь вы можете установить необходимые значения параметров, соответствующие сущностям в запросе.

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

Поэтому в разделе действия и параметры отметим параметр pizza_topping и нажмем Define prompts.

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