Системные сущности и справочники


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

Среди таких сущностей и справочников: $TEXT$NUMBER, $FLOATNUMBER, $PHONE, $CITY, $CAPITAL, $COUNTRY$NAME.

Системные сущности

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

$TEXT

Данная сущность позволяет извлечь из фразы клиента произвольный текст.

Сущность $TEXT можно использовать только в шаблонах. В примерах фраз ее использовать нельзя. 

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

На ее месте появится иконка   :

system entities references 2

Например, если вы добавили шаблон вида Я ищу $TEXT, то бот извлечет из фразы клиента «Я ищу интересную работу» сущность $TEXT. Он сохранит часть фразы «интересную работу» в переменной $TEXT.

$NUMBER

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

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

сколько будет $NUMBER::x плюс $NUMBER::y

После того как клиент пришлет фразу «сколько будет пять плюс 25», бот создаст переменные $x и $y со значениями 5 и 25 соответственно.

$FLOATNUMBER

Данная переменная аналогична переменной $NUMBER, только она позволяет извлечь из фразы клиента дробные числа.

Например, если клиент напишет «пять целых шесть десятых» или «пять и шесть сотых», бот создаст переменную $FLOATNUMBER со значением 5.6 или 5.06 соответственно.

$PHONE

Извлекает из фразы клиента мобильный номер телефона. Соответствует блоку phone to $var.

Например, если клиент напишет «восемь девять один два три четыре пять шесть семь восемь девять» или «89123456789», бот сохранит значение +79123456789 в переменную $phone.

Подробнее о формате телефонных номеров

Системные справочники

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

system entities references 1

$CITY

Эту сущность можно использовать, чтобы извлечь из фразы клиента название какого-либо города мира. Например, если в примерах фраз указать Я живу в $CITY, то бот будет реагировать на фразы, в которых клиент назовет город проживания. При этом бот создаст переменную $CITY, в которой сохранит объект со следующими полями:

Поле Тип Описание
name Строка Название города
lat Число Широта
lon Число Долгота
country Строка Код страны в формате ISO 3166-1 alpha-2
timezone Строка Часовой пояс в формате спецификации Java
population Число Численность населения на 2017 г.
capital Строка "true", если город является столицей, иначе "false"
continent Строка Название части света

Если клиент скажет Я живу в Москве, то бот создаст переменную $CITY со значением:

{
  "name": "Москва",
  "lat": 55.75222,
  "lon": 37.61556,
  "country": "RU",
  "timezone": "Europe/Moscow",
  "population": 10381222,
  "capital": "true",
  "continent": "Europe"
}

$CAPITAL

Если во фразе клиента есть столица, бот создаст переменную $CAPITAL, в которой сохранит объект со следующими полями:

Поле Тип Описание
name Строка Название города
country Строка Название страны
genCountry Строка Название страны в родительном падеже
continent Строка Название континента
continent_part Строка Название части света
duplicateName Строка "true", если название столицы совпадает с названием страны, иначе "false"
facts Массив строк Факт или набор фактов о стране, массив может быть пустым
complexity Строка Уровень сложности (от "1" до "5"), который определяет, насколько легко отгадать столицу

Если клиент скажет Я живу в Афинах, то бот создаст переменную $CAPITAL со значением:

{
  "name": "Афины",
  "country": "Греция",
  "genCountry": "Греции",
  "continent": "Евразия",
  "continent_part": "Европа",
  "duplicateName": "false",
  "facts": ["Именно Афины считаются родиной театра."],
  "complexity": "1"
}

$COUNTRY

Все страны мира. Если во фразе клиента есть страна, то бот создаст переменную $COUNTRY со следующими полями:

  • name — название страны в именительном падеже;
  • currency — валюта страны.

$NAME

Эта сущность позволяет извлечь из фразы клиента самые популярные имена. Если во фразе клиента есть имя, то бот создаст переменную $NAME с полями:

Поле Тип Описание
name Строка Нормативный вариант имени
full Строка Полное имя или пустая строка (для нейтральных имен)
diminutive Строка Уменьшительно-ласкательная форма имени или пустая строка
sex Строка Пол: "м", "ж", "н" (для нейтральных имен)

$DATETIME

Системная сущность, которая принимает значения даты и времени.

Подробнее о том, как получить дату и время