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

Вот несколько рекомендаций, которые следует соблюдать при определении намерений чат-бота.

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

Это может варьироваться от синонимов до различных грамматических конструкций фраз.

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

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

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

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

Например, начинку, которую пользователь хочет для пиццы, при ее заказе, или количество ломтиков пиццы.

И вы можете сделать это с помощью сущностей.

Сущности помогают вам разобраться в особенностях взаимодействия с пользователем.

В диалоге сущности – это существительные, найденные в ходе разговора, такие как имя человека, конкретные цифры, даты, и так далее.

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

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

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

Сущности также являются отличным способом добавления персонализации.

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

Теперь, давайте посмотрим, как мы можем создавать сущности в Dialogflow.

Чтобы создать новую сущность в Dialogflow, нажмите в правой части Entities, и на этой странице нажмите «Create Entity».

Введите имя сущности.

И здесь вы увидите две опции: одна – определить синонимы, по умолчанию, а другая – автоматическое расширение.

Давайте оставим синонимы и определим термины, чтобы описать начинку пиццы.

Давайте введем сыр.

Когда вы нажмете ввод, вы увидите, что сыр уже добавлен в качестве синонима.

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

И нажмем сохранить Save.

Теперь, что насчет опции автоматического расширения.

Разрешить автоматическое расширение – это означает, что мы хотим разрешить агенту принимать термины, которые могут быть сказаны пользователем и изначально не добавлены в список.

Допустим, пользователь хочет помидоры в пиццу.

Если установлен флажок «Разрешить автоматическое расширение», то, когда пользователь заказывает пиццу и упоминает помидоры, и хотя этой начинки здесь нет, помидоры будут добавлен в список.

Но если вы хотите зафиксировать этот список начинок, и не хотите, чтобы новые начинки добавлялись в ваш список, вам не нужно включать эту опцию.

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

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

И в списке выберем нашу сущность.

Теперь термин грибы помечен сущностью pizza_topping.

Сделаем то же самое с беконом и сыром и с другими начинками.

И в конце не забудем нажать кнопку Сохранить.

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