Конструктор класса Nlu. Инициализирует пустой объект NLU. Кэш данных в конструкторе не аллоцируется — он создаётся лениво при первом извлечении сущности (приватный метод #getCache).
Static ReadonlyT_DATETIMEТип сущности: Дата и время. Используется для извлечения дат, времени и временных интервалов.
Поддерживаемые форматы:
const dateTime = nlu.getDateTime();
if (dateTime.status) {
const date = dateTime.result?.[0];
// Абсолютная дата
if (date?.year && date.month && date.day) {
console.log(`Дата: ${date.day}.${date.month}.${date.year}`);
}
// Время
if (date?.hour !== undefined) {
console.log(`Время: ${date.hour}:${date.minute || '00'}`);
}
// Относительная дата
if (date?.day_is_relative) {
console.log(`Через ${date.day} дней`);
}
}
Static ReadonlyT_FIOТип сущности: ФИО. Используется для извлечения имен, фамилий и отчеств.
Static ReadonlyT_GEOТип сущности: Геолокация. Используется для извлечения адресов, городов и других географических данных.
Поддерживаемые форматы:
Static ReadonlyT_INTENT_CONFIRMВстроенный интент: Согласие. Используется для распознавания положительных ответов.
Определяется интентом YANDEX.CONFIRM, присланным платформой; при его отсутствии срабатывает текстовый фолбэк Text.isSayTrue («да», «конечно», «согласен/согласна», «подтверждаю» и т.п.).
Static ReadonlyT_INTENT_HELPВстроенный интент: Запрос помощи. Используется для распознавания запросов о помощи.
Static ReadonlyT_INTENT_REJECTВстроенный интент: Отказ. Используется для распознавания отрицательных ответов.
Определяется интентом YANDEX.REJECT, присланным платформой; при его отсутствии срабатывает текстовый фолбэк Text.isSayFalse («нет», «неа», «не...»).
Static ReadonlyT_INTENT_REPEATВстроенный интент: Повторение. Используется для распознавания запросов повторить последний ответ.
Static ReadonlyT_NUMBERТип сущности: Число. Используется для извлечения числовых значений.
Поддерживаемые форматы:
const numbers = nlu.getNumber();
if (numbers.status) {
numbers.result.forEach(number => {
// Проверка на целое число
if (Number.isInteger(number)) {
console.log(`Целое число: ${number}`);
}
// Проверка на дробное число
else if (number % 1 !== 0) {
console.log(`Дробное число: ${number}`);
}
});
}
Получает дату и время из сущностей NLU (entities), заполненных платформой. На чат-платформах без NLU результат будет пуст (status=false).
Результат поиска даты и времени
const dateTime = nlu.getDateTime();
if (dateTime.status) {
const dt = dateTime.result?.[0];
if (dt?.year) console.log('Год:', dt.year);
if (dt?.month) console.log('Месяц:', dt.month);
if (dt?.day) console.log('День:', dt.day);
if (dt?.hour !== undefined) console.log('Час:', dt.hour);
if (dt?.minute !== undefined) console.log('Минуты:', dt.minute);
if (dt?.day_is_relative) console.log('Относительный день:', dt.day);
}
Получает ФИО из сущностей NLU (entities), заполненных платформой. На чат-платформах без NLU результат будет пуст (status=false).
Результат поиска ФИО
Получает геолокацию из сущностей NLU (entities), заполненных платформой. На чат-платформах без NLU результат будет пуст (status=false).
Результат поиска геолокации
const geo = nlu.getGeo();
if (geo.status) {
const location = geo.result?.[0];
console.log('Страна:', location?.country);
console.log('Город:', location?.city);
console.log('Улица:', location?.street);
console.log('Номер дома:', location?.house_number);
console.log('Аэропорт:', location?.airport);
}
Получает конкретный интент по имени.
Имя интента
Интент или null
Получает все интенты из текста.
Объект с интентами или null
const intents = nlu.getIntents();
if (intents) {
// Проверка наличия конкретного интента
if (intents['YANDEX.CONFIRM']) {
console.log('Найден интент согласия');
}
if (intents['YANDEX.HELP']) {
console.log('Найден интент помощи');
}
// Получение слотов интента
const helpIntent = intents['YANDEX.HELP'];
if (helpIntent && helpIntent.slots) {
console.log('Слоты интента:', helpIntent.slots);
}
}
Возвращает объект nlu, который был обработан платформой, либо заполнен из плагина
Объект данных NLU (entities, intents, thisUser, tokens)
Получает числа из сущностей NLU (entities), заполненных платформой. На чат-платформах без NLU результат будет пуст (status=false).
Результат поиска чисел
Получает информацию о текущем пользователе.
Информация о пользователе или null
Проверяет наличие интента согласия в тексте.
Если интент YANDEX.CONFIRM не найден в NLU и передан текст, он дополнительно проверяется через Text.isSayTrue («да», «конечно» и т.п.).
OptionaluserCommand: string = ''Текст для проверки
true если найден интент согласия
Проверяет наличие интента отказа в тексте.
Если интент YANDEX.REJECT не найден в NLU и передан текст, он дополнительно проверяется через Text.isSayFalse («нет», «не хочу» и т.п.).
OptionaluserCommand: string = ''Текст для проверки
true если найден интент отказа
Устанавливает данные NLU.
Кэш извлечённых сущностей очищается только при isClearCache = true —
без этого повторный вызов с новыми данными продолжит возвращать
закэшированные результаты по старым данным.
Данные NLU для обработки
OptionalisClearCache: boolean = falseФлаг, говорящий о том, что нужно сбросить кэш
StaticgetEMailИзвлекает email адреса из текста.
Текст для поиска
Результат поиска email
StaticgetLinkИзвлекает ссылки из текста.
Текст для поиска
Результат поиска ссылок
StaticgetPhoneИзвлекает телефонные номера из текста.
Текст для поиска
Результат поиска телефонов
Nlu Класс для работы с результатами NLU платформы и извлечения контактов из текста.
Основные возможности:
Платформенные ограничения (геттеры getFio/getGeo/getDateTime/getNumber читают только
nlu.entities, заполненные платформой):Поддерживаемые форматы:
Example