umbot
    Preparing search index...

    Module umbot[v-2.2] - v2.2.1

    umbot

    umbot — это первая в своём роде TypeScript-библиотека для разработки чат-ботов и голосовых навыков с единой бизнес-логикой под все ведущие российские платформы: Яндекс.Алиса, Маруся, Сбер SmartApp, а также Telegram, VK, MAX и Viber.

    В отличие от большинства решений, требующих отдельной реализации под каждую платформу, umbot абстрагирует различия в форматах запросов и ответов, предоставляя разработчику единый, предсказуемый интерфейс. Это позволяет писать логику один раз — и запускать её везде.

    Библиотека следует SemVer . Breaking changes возможны только в MAJOR-версиях.

    npm version License: MIT TypeScript Security Supported Platforms


    Больше не нужно писать три версии одного навыка.
    Больше не нужно разбираться в JSON-форматах Алисы, Сбера и Маруси.
    Ваша логика — одна. Платформы — любые.

    Ключевые преимущества:

    • Алиса + Маруся + Сбер SmartApp + ... — одновременно, без костылей
    • Гарантированное время обработки ≤1 сек (оставляет минимум 2 сек на вашу логику)
    • 🔒 Безопасная обработка регулярных выражений с защитой от ReDoS
    • 💾 Встроенное состояние, кэширование медиа, кнопки, карточки — «из коробки»
    • 🛠 TypeScript, CLI, автодополнение, 80%+ покрытие тестами

    umbot — пишешь один раз, запускаешь везде.

    • Команды, поддерживающие навыки на Алисе, Сбере и Марусе одновременно
    • Корпорации с внутренними мессенджерами
    • Разработчики, уставшие от дублирования кода

    Платформа Идентификатор Статус
    Яндекс.Алиса alisa ✅ Полная поддержка
    Маруся marusia ✅ Полная поддержка
    Сбер SmartApp smart_app ✅ Полная поддержка
    Telegram telegram ✅ Полная поддержка
    VK vk ✅ Полная поддержка
    Max max_app ✅ Полная поддержка
    Viber viber ✅ Полная поддержка
    Ваша платформа user_application ✅ Базовая поддержка

    💡 Нужна своя платформа?
    Просто укажите user_application в appType и реализуйте обработку входящих/исходящих сообщений под ваш формат.
    Это позволяет интегрировать umbot в любую внутреннюю систему или корпоративный мессенджер.


    Установите библиотеку:

    npm install umbot
    

    Создайте и запустите проект за четыре команды:

    npx umbot create echo
    cd echo
    npm i
    npm run start

    Поправьте файлы нужным вам образом. Например:

    // index.ts
    import { Bot } from 'umbot';
    import { EchoController } from './EchoController';

    const bot = new Bot()
    .setAppConfig({ json: './data', isLocalStorage: true })
    .initBotController(new EchoController())
    .start('localhost', 3000);
    // EchoController.ts
    import { BotController, WELCOME_INTENT_NAME } from 'umbot';

    export class EchoController extends BotController {
    public action(intentName: string): void {
    if (intentName === WELCOME_INTENT_NAME) {
    this.text = 'Привет! Я повторяю за вами.';
    } else {
    this.text = `Вы сказали: ${this.userCommand}`;
    }
    }
    }

    👉 Подробное руководство по запуску

    Подробная документация доступна в следующих разделах:

    • CLI команды

    Библиотека поддерживает работу с re2. За счет использования данной библиотеки, можно добиться существенного ускорения обработки регулярных выражений, а также добиться сокращения по потреблению памяти. По памяти потребление уменьшается примерно в 3-7 раз, а время выполнения увеличивается в среднем в 2-15 раз. Для корректной установки на window нужно следовать инструкции, установив python3.13, а также инструменты visual studio. Установка на linux или mac происходит без лишних действий. Также стоит учитывать что последние версия re2(1.21 и выше) не поддерживает работу nodejs 18, поэтому необходимо установить версию 1.20.12. Если вы используете nodejs 20 и выше, то лучше установить актуальную версию. Установка:

    npm install --save re2@latest
    

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

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

    1. поле db в настройке приложения bot.setAppConfig({db:{...}})
    2. укажите свое подключение к БД через bot.setUserDbController(new DbConnect());

    MIT License. См. LICENSE для деталей.

    Если у вас есть вопросы или предложения:

    Modules

    cli
    cli/controllers/ConsoleController
    cli/controllers/CreateController
    cli/umbot
    cli/utils
    src
    src/api
    src/api/interfaces
    src/api/interfaces/IMarusiaApi
    src/api/interfaces/IMaxAppApi
    src/api/interfaces/IRequest
    src/api/interfaces/ITelegramApi
    src/api/interfaces/IViberApi
    src/api/interfaces/IVkApi
    src/api/interfaces/IYandexApi
    src/api/MarusiaRequest
    src/api/MaxRequest
    src/api/request/Request
    src/api/TelegramRequest
    src/api/ViberRequest
    src/api/VkRequest
    src/api/YandexImageRequest
    src/api/YandexRequest
    src/api/YandexSoundRequest
    src/api/YandexSpeechKit
    src/build
    src/components
    src/components/button
    src/components/button/Button
    src/components/button/Buttons
    src/components/button/interfaces
    src/components/button/interfaces/IButton
    src/components/button/interfaces/IViberButton
    src/components/button/interfaces/IVkButton
    src/components/button/types/AlisaButton
    src/components/button/types/MaxButton
    src/components/button/types/SmartAppButton
    src/components/button/types/TelegramButton
    src/components/button/types/TemplateButtonTypes
    src/components/button/types/ViberButton
    src/components/button/types/VkButton
    src/components/card
    src/components/card/Card
    src/components/card/types/AlisaCard
    src/components/card/types/MarusiaCard
    src/components/card/types/MaxAppCard
    src/components/card/types/SmartAppCard
    src/components/card/types/TelegramCard
    src/components/card/types/TemplateCardTypes
    src/components/card/types/ViberCard
    src/components/card/types/VkCard
    src/components/image/Image
    src/components/nlu
    src/components/nlu/interfaces/INlu
    src/components/nlu/Nlu
    src/components/sound
    src/components/sound/interfaces
    src/components/sound/Sound
    src/components/sound/types/AlisaSound
    src/components/sound/types/MarusiaSound
    src/components/sound/types/TelegramSound
    src/components/sound/types/TemplateSoundTypes
    src/components/sound/types/ViberSound
    src/components/sound/types/VkSound
    src/components/standard
    src/components/standard/Navigation
    src/controller
    src/controller/BaseBotController
    src/controller/BotController
    src/core
    src/core/AppContext
    src/core/Bot
    src/core/BotTest
    src/core/interfaces/IBot
    src/models
    src/models/db
    src/models/db/DB
    src/models/db/DbController
    src/models/db/DbControllerFile
    src/models/db/DbControllerModel
    src/models/db/DbControllerMongoDb
    src/models/db/Model
    src/models/db/ProxyUtils
    src/models/db/QueryData
    src/models/db/Sql
    src/models/ImageTokens
    src/models/interface
    src/models/interface/IDbControllerModel
    src/models/interface/IModel
    src/models/SoundTokens
    src/models/UsersData
    src/platforms
    src/platforms/Alisa
    src/platforms/interfaces
    src/platforms/interfaces/IAlisa
    src/platforms/interfaces/IMarusia
    src/platforms/interfaces/IMaxApp
    src/platforms/interfaces/ISberSmartApp
    src/platforms/interfaces/ITelegram
    src/platforms/interfaces/IViber
    src/platforms/interfaces/IVk
    src/platforms/Marusia
    src/platforms/MaxApp
    src/platforms/skillsTemplateConfig
    src/platforms/skillsTemplateConfig/alisaConfig
    src/platforms/skillsTemplateConfig/marusiaConfig
    src/platforms/skillsTemplateConfig/maxAppConfig
    src/platforms/skillsTemplateConfig/smartAppConfig
    src/platforms/skillsTemplateConfig/telegramConfig
    src/platforms/skillsTemplateConfig/viberConfig
    src/platforms/skillsTemplateConfig/vkConfig
    src/platforms/SmartApp
    src/platforms/Telegram
    src/platforms/TemplateTypeModel
    src/platforms/Viber
    src/platforms/Vk
    src/Preload
    src/test
    src/utils
    src/utils/EnvConfig
    src/utils/standard/RegExp
    src/utils/standard/Text
    src/utils/standard/util