1. Прежде чем начать
В Dialogflow сущности — это механизм для идентификации и извлечения полезных данных из входных данных на естественном языке. В то время как намерения позволяют вашему агенту понять мотивацию, стоящую за конкретным вводом пользователя, сущности используются для выделения конкретных фрагментов информации, которые упоминают ваши пользователи — от адресов до названий продуктов и сумм с указанием единиц измерения. Любые важные данные, которые вы хотите получить из запроса пользователя, будут иметь соответствующую сущность.
Ниже приведён список, описывающий три типа сущностей:
- Системные сущности, входящие в состав Dialogflow, позволяют агентам извлекать информацию о широком спектре понятий без какой-либо дополнительной настройки. Например, доступны системные сущности для извлечения дат, времени и местоположений из входных данных на естественном языке.
- Определяемые вами сущности разработчиков извлекают информацию о концепциях, выходящих за рамки тех, которые охватываются системными сущностями. Например, бренд может создать сущность разработчика для распознавания уникального набора названий своих продуктов.
- Определяемые вами сущности сессии применяются только к конкретной беседе. Например, вы можете создать сущность сессии для представления ограниченных по времени опций, доступных конкретному пользователю при бронировании.
Предварительные требования
Прежде чем продолжить, вам необходимо выполнить следующие практические задания:
- Создайте расписание встреч с помощью Dialogflow.
- Интегрируйте чат-бот Dialogflow с Actions on Google.
Вам также необходимо понимать основные концепции и принципы работы Dialogflow, которые вы можете изучить в следующих видеороликах, входящих в курс «Создание чат-бота с помощью Dialogflow» :
Что вы узнаете
- Как создавать и использовать системные сущности в Dialogflow
- Как создавать и использовать сущности разработчиков в Dialogflow
- Как протестировать агента
Что вы построите
- Улучшенная версия уже созданного агента Dialogflow.
- Сущности разработчика в Dialogflow
- Системные сущности в Dialogflow
Что вам понадобится
- Для входа в консоль Dialogflow вам потребуется веб-браузер и адрес электронной почты.
2. Как включить и использовать системные сущности в Dialogflow
- Перейдите в консоль Dialogflow .
- Выберите агента AppointmentScheduler, которого вы создали ранее.

- Намерения клика.

- Нажмите «Запланировать встречу» , чтобы открыть настройки намерения.
Вы заметите обучающие фразы, например, "Запланируйте встречу на 16:00 завтра", где дата и время автоматически извлекаются как @sys.date и @sys.time . Не стесняйтесь добавлять больше обучающих фраз, чтобы увидеть, как Dialogflow автоматически извлекает системные сущности.

Как вы уже видели, системные сущности позволяют агентам извлекать информацию о широком спектре понятий без какой-либо дополнительной настройки. К распространенным примерам системных сущностей относятся такие данные, как адреса, электронные письма, валюта и номера телефонов. Подробнее см. раздел «Системные сущности» .
3. Как включить и использовать сущности разработчика в Dialogflow
Создание сущностей разработчика
До сих пор вы описывали свою систему планирования встреч в общем виде. Теперь предположим, что ваша система планирования предназначена для управления автотранспортных средств штата, которое в основном предоставляет услуги по выдаче водительских прав и регистрации транспортных средств. Создайте соответствующие сущности.
- Нажмите «Сущности» .

- Нажмите «Создать сущность» .

- Введите "AppointmentType" в качестве имени сущности , затем добавьте "Vehicle registration" и "Driver license" в качестве двух ссылочных значений, а также несколько синонимов, как показано на следующем изображении. Нажмите " Сохранить ".

Вы можете добавить больше строк с различными типами сущностей, содержащими больше услуг.
- Нажмите « Сохранить ».
Отредактируйте намерение, чтобы учесть недавно созданный объект разработчика.
- Намерение клика.
- Введите "Назначить встречу для получения водительских прав на 15:00 завтра" в поле "Запланировать встречу".
Автоматическое распознавание водительских прав начнется в 15:00 , а завтра вы увидите их также в качестве сущностей разработчика и системы.

- Введите следующие обучающие фразы:
- Приём по поводу продления лицензии назначен на понедельник.
- Запишитесь на прием в понедельник в 14:00 для получения водительских прав.
- Регистрация транспортного средства назначена на понедельник.

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

- Добавьте подсказку, например: «Какие услуги вам нужны? DMV предлагает услуги по выдаче водительских прав и регистрации транспортных средств». Если пользователь не укажет тип записи на прием, будет использована подсказка.
- Нажмите « Сохранить ».
4. Протестируйте своего чат-бота.
Вы можете протестировать своего чат-бота в симуляторе Actions или использовать интеграцию с веб-браузером или Google Home, которую вы изучили ранее.
Тестовый пример 1
В этом случае пользователь запрашивает только дату, время и тип встречи, без указания трех необходимых данных, поэтому Dialogflow запрашивает дату, время и тип встречи, используя заданные вами подсказки для заполнения слотов.
- Пользователь: "Записаться на прием."
- Чат-бот: "Какое число?"
- Пользователь: "23 мая."
- Чат-бот: "В какое время вы хотели бы прийти?"
- Пользователь: "10 утра"
- Чат-бот: «Какие услуги вас интересуют? Департамент транспортных средств (DMV) предоставляет услуги по выдаче водительских прав и регистрации транспортных средств».
- Пользователь: "Лицензия."
- Чат-бот: «Вы готовы к назначению даты регистрации вашего транспортного средства — 23 мая 2019 года в 10:00. До встречи!»
Тестовый пример 2
В этом случае пользователь запрашивает запись на прием, предоставив неполную информацию, поэтому Dialogflow запрашивает дату, время и тип встречи, используя заданные вами подсказки для заполнения временных слотов.
- Пользователь: "Мне нужна встреча на завтра в 16:00."
- Чат-бот: «Какие услуги вас интересуют? Департамент транспортных средств (DMV) предоставляет услуги по выдаче водительских прав и регистрации транспортных средств».
- Пользователь: "Лицензия."
- Чат-бот: "Вы готовы к записи на получение водительских прав 24 апреля 2019 года в 16:00. До встречи!"
Тестовый пример 3
В этом случае пользователь предоставляет всю необходимую информацию. Dialogflow обрабатывает информацию и выдает ответ с подтверждением записи на прием.
- Пользователь: «Записалась на регистрацию транспортного средства на завтра в 14:00».
- Чат-бот: «Вы готовы к назначенному времени регистрации вашего транспортного средства — 24 апреля 2019 года в 14:00:00. До встречи!»
5. Уборка
Если вы планируете пройти другие практические занятия по Dialogflow, то пропустите этот раздел и вернитесь к нему позже.
Удалите агент Dialogflow.
- Нажмите
рядом с вашим текущим агентом.

- На вкладке «Общие» прокрутите вниз и нажмите «Удалить этого агента» .
- Введите «Delete» в диалоговое окно и нажмите «Delete» .
6. Поздравляем!
Вы создали чат-бота, который обрабатывает пользовательские данные с помощью сущностей разработчика. Теперь вы — разработчик чат-ботов!
Узнать больше
Для получения более подробной информации ознакомьтесь со следующими ресурсами:
- Понимание процесса выполнения заказов: как интегрировать Dialogflow с Calendar.
- Примеры кода можно найти на странице Dialogflow в GitHub .