OptionalplatformToken: stringOptionaladditionalPlatformOptions: IAdapterOptionsProtected Optional_Protected Optional_OptionalappКонтекст приложения
Определяет тип платформы(голосовая или чат-бот)
Определяет лимит платформы. В значение указывается количество запросов, которое можно отправить платформе за 1 секунду. В случае если у платформы нет ограничений, можно указать 0 или null. По умолчанию null
ProtectedMAX_Максимальное время ответа навыка в миллисекундах при превышении этого времени, будет отправлена ошибка
Имя платформы
OptionalsignatureИмя поля в заголовке запроса, по которому можно проверить корректность полученного запроса от платформы.
ProtectedWARMING_Время ответа навыка в миллисекундах при превышении этого времени, будет отправлено предупреждение
Protected_Формирует ответ для пользователя. Собирает текст, TTS, карточки и кнопки в единый объект ответа
Объект ответа для Алисы
Protected_ProtectedИнициализирует TTS (Text-to-Speech) в контроллере. Обрабатывает звуки и стандартные звуковые эффекты
Тип приложения
Protected_При превышении установленного времени исполнения, пишет информацию в лог После вызова getContent() автоматически проверяется время выполнения. Если оно превышает 2000 мс — пишется warning, если >2900 мс — ошибка.
Метод, который вызывается при уничтожении плагина. В данном методе можно добавить отписку, либо выполнить другие действия.
Основной класс приложения
Формирует тело ответа для отправки пользователю.
Возвращает платформо-специфичный ответ (например, JSON для Алисы).
Для платформ, которые отправляют ответ напрямую (например, Telegram через sendMessage),
метод может возвращать { ok: true } или аналог.
контроллер с готовым ответом
OptionalstateData: Record<string, unknown> | nullданные для локального хранилища
ответ в формате, понятном платформе
Возвращает состояние из request.state (user/application/session).
Тип состояния определяется настройками навыка в Яндекс.Диалогах.
Получает время выполнения запроса в миллисекундах
Время выполнения запроса
Генерирует пример входящего запроса для локального тестирования вашего приложения. Позволяет эмулировать запрос от платформы с заданным текстом, ID пользователя, номером сообщения и состоянием. Необходимо указывать для того, чтобы можно было корректно проверить работоспособность приложения.
Обязательно определите метод, если планируется тестирования приложения через инструменты предоставляемые платформой. Это существенно упростит процесс разработки приложения.
Запрос пользователя
Идентификатор пользователя
Порядковый номер запроса
Данные из локального хранилища
Инициализация адаптера. Определять не обязательно. Стоит указывать в случаях, когда нужно выполнить доп логику, например указать токены или писать какую-то статистику по использованию.
Проверяет полученный запрос от платформы на корректность. Из коробки проверка идет по sha256. Если по какой-то причине поведение по умолчанию не подходит, то просто переопределите метод.
Optionalheaders: Record<string, unknown>Проверяет, присутствует ли сохранённое состояние в запросе.
контроллер с бизнес-логикой приложения
true, если состояние есть (не null)
Возвращает признак того, соответствует ли запрос текущей платформе или нет
Запрос, который пришел в приложение
Optional_headers: Record<string, unknown>Заголовок с которым был отправлен запрос
true, если запрос относится к этой платформе, иначе false
Алиса не поддерживает push-сообщения, поэтому всегда возвращает false.
Сохраняет данные в локальное хранилище платформы.
данные для сохранения
контроллер приложения
Обрабатывает входящий запрос и заполняет контроллер данными.
Обязательно установите:
controller.userCommand и controller.originalUserCommand — текст сообщения пользователяcontroller.userId — уникальный ID пользователяcontroller.appType = this.platformNameОпционально:
controller.userToken — если платформа присылает токен авторизацииcontroller.userMeta — если платформа присылает метаданныеcontroller.state — если платформа поддерживает локальное хранилищеcontroller.nlu — если платформа присылает NLU/интенты (через controller.nlu.setNlu(...))Запрос от платформы
Контроллер приложения
false, если запрос повреждён или не может быть обработан; иначе true
Использует кастомную обработку TTS через soundProcessing для вставки звуковых эффектов в соответствии с требованиями Алисы.
Устанавливает время начала обработки запроса. Используется для измерения времени выполнения
StaticisФлаг, указывающий, что платформа голосовая (например, Алиса, Маруся).
Адаптер, обеспечивающий полную поддержку платформы Яндекс.Диалоги (Алиса). Позволяет разрабатывать навыки для Алисы на TypeScript с использованием всего функционала платформы: от обработки голосовых запросов до работы с карточками и кнопками.
Подключение адаптера не требует изменения существующей бизнес-логики: после интеграции все команды и обработчики, написанные для umbot, автоматически становятся доступны для Алисы. Единый интерфейс позволяет одновременно использовать одну бизнес-логику для нескольких платформ (Telegram, VK, Алиса и др.) без дублирования кода.
Этот адаптер автоматически обрабатывает входящие webhook`и от Алисы, преобразует их в унифицированный формат фреймворка и формирует ответ, совместимый с требованиями платформы. Подключается одной строкой и не мешает работе других адаптеров (например, для Telegram или VK).
Поддерживает:
ping→pong);Подключается как любой другой адаптер:
bot.use(new AlisaAdapter(token)). Несколько адаптеров могут работать одновременно — система сама выберет подходящий на основе заголовков и структуры входящего запроса.Example
See