В Graph уже есть набор наиболее часто используемых системных справочников и сущностей, чтобы вам не пришлось каждый раз создавать их вручную. Вы можете использовать их в блоке Интенты, чтобы смартап извлекал из реплики пользователя ту или иную сущность и создавал переменную с ее языконезависимым представлением.
Системные сущности позволяют извлечь из реплики пользователя данные, которые соответствуют определенным шаблонам.
$TEXT
Эта сущность позволяет извлечь из реплики пользователя произвольный текст. Но ее можно использовать только в шаблоне, а не в примере реплики. Переключите кавычки на символ @
чтобы использовать эту сущность. Например, если в репликах есть шаблон такого вида
я ищу $TEXT
то смартап извлечет из реплики пользователя "Я ищу интересную работу" сущность $TEXT
со значением "интересную работу" и создаст переменную с именем $TEXT
.
Если создать интент со значением $TEXT
и больше ничего в него не добавлять, то интент будет срабатывать на все фразы пользователя. Не рекомендуем делать такой интент глобальным.
$NUMBER
Эта сущность извлекает из реплики пользователя целые числа. Причем пользователь
может указать их как цифрами, так и словами. В результате смартап создаст переменную $NUMBER
, в которую поместит целое число.
Если в реплике пользователя должны присутствовать два числа, то используйте шаблон вместо примера реплик и используйте переименование таким образом
сколько будет $NUMBER::x плюс $NUMBER::y
В итоге после реплики пользователя "сколько будет пять плюс 25" смартап создаст две переменные $x
и $y
со значениями 5 и 25 соответственно.
$FLOATNUMBER
То же самое, что $NUMBER
, но позволяет извлечь из реплики пользователя дробные числа. Например, "пять целых шесть десятых" или "пять и шесть сотых".
$PHONE
Сущность, которая распознает из сообщения пользователя номер мобильного телефона в российском формате. Значение сущности сохраняется в переменной $PHONE
.
Сущность $PHONE
содержит регулярное выражение:
$regexp<(+?(8|7)[\-\s]?)?(?9\d{2})?[\-\s]?\d{3}[\-\s]?\d{2}[\-\s]?\d{2}>
Это выражение принимает российские номера мобильных телефонов, состоящих из трех частей:
- код 8 или +7;
- цифра 9;
- девять цифр номера.
Сущность $PHONE
также распознает:
- номера без кода 8 или +7, состоящие из 10 цифр. Например: 901 234 56 78;
- номера со скобками между цифрами. Например: 8 (901) 234 56 78;
- номера с дефисами между цифрами. Например 8-901-234-56-78.
В результате в переменную $PHONE
сохраняется строка вида +79012345678.
$DATETIME
Системная сущность, которая извлекает из реплики пользователя значения даты и времени.
$GENDER
Системная сущность, которая распознает пол пользователя. Сущность воспринимает такие слова, как «мужчина», «женщина», «девочка», «мальчик», «парень» и т.д.
В результате сущность задает соответствующее значение переменной $GENDER
в виде строки:
- 0 — мужской пол;
- 1 — женский пол.
$EMAIL
Системная сущность, которая распознает адрес электронной почты. Значение сущности сохраняется в переменную $EMAIL
.
Сущность содержит следующее регулярное выражение:
$regexp<[\w\.\-]@[\w\-]\.\w+>
Регулярное выражение может содержать следующие последовательности:
- латинские буквы, цифры, дефисы и точки;
- значок @;
- латинские буквы, цифры и дефисы;
- точка;
- латинские буквы и цифры.
Помните, что у пользователя не получится ввести адрес электронной почты голосом — это необходимо учитывать в сценарии.
Подробнее о работе с сущностями: