UNPKG

umbot

Version:

Мультиплатформенный фреймворк для создания голосовых навыков и чат-ботов с единой бизнес-логикой. Встроенная поддержка ВКонтакте, Telegram, Viber, MAX, Яндекс Алисы, Маруси и Сбера SmartApp. Архитектура на адаптерах позволяет подключать любые другие платф

107 lines (106 loc) 4.84 kB
/** * @author Maxim-M <maximco36895@yandex.ru> * * **umbot** — кроссплатформенный TypeScript-фреймворк для разработки голосовых навыков и чат-ботов. Он даёт единую бизнес-логику для всех платформ — но одинаково эффективен, даже если вы работаете только с одной. * Поддерживаются: `Яндекс.Алиса`, `Маруся`, `Сбер Салют`, а также `Telegram`, `VK`, `MAX` и `Viber` из коробки. * * ## 🚀 Основные возможности * - Создание голосовых навыков для Алисы, Маруси и Сбер Салют (SmartApp) * - Разработка чат-ботов для Telegram, Viber, VK и MAX * - Создание навыка/бота для любой платформы * - Единая логика для голосовых и текстовых интерфейсов (навыки/чат-боты) * - Гибкая система команд, интентов и многошаговых диалогов * - Встроенная работа с состоянием (локальное хранилище, БД Mongo из коробки) * - UI-компоненты: кнопки, карточки, звуки, TTS * - Middleware, плагины, метрики и логирование * - Расширяемость: легко добавить новую платформу через адаптер * * Основная работа приложения основана на использовании {@link Bot}, который отвечает за всё взаимодействие с платформами и обработку запросов. * * Подробнее о каждом компоненте читайте в соответствующих разделах документации. * * @example * ```ts * // Минимальный пример работы * import { Bot, FALLBACK_COMMAND, HELP_INTENT_NAME, WELCOME_INTENT_NAME } from 'umbot'; * import { fullPlatforms } from 'umbot/plugins'; * * const bot = new Bot() * .use(fullPlatforms) // Подключаем все доступные платформы * .setAppConfig({ json: './data', isLocalStorage: true }) // Директория для данных и локальное хранилище * .addCommand(WELCOME_INTENT_NAME, ['привет'], (_: string, bc: BotController) => { * bc.text = 'Привет! Я новый навык.'; * bc.buttons.addBtn('Помощь'); * }) * .addCommand(HELP_INTENT_NAME, ['помощь'], (_: string, bc: BotController) => { * bc.text = 'Я умею отвечать на команды и показывать кнопки'; * }) * .addCommand(FALLBACK_COMMAND, [], (_: string, bc: BotController) => { * bc.text = bc.userCommand || 'Вы ничего не сказали'; * }) // Если команда не найдена * .start('localhost', 3000); * ``` * * @packageDocumentation * @module index */ /** * Основные компоненты ядра фреймворка * * Включает: * - Базовые классы и интерфейсы * - Систему обработки команд * - Управление состоянием * - Обработку ошибок */ export * from './core'; /** * Модули для работы с внешними API * * Предоставляет: * - Интерфейсы для API * - Классы для HTTP-запросов * - Интеграции с сервисами * - Обработку ответов */ export * from './api'; /** * Вспомогательные компоненты * * Включает: * - Кнопки и клавиатуры * - Карточки и изображения * - Звуки и аудио * - UI элементы */ export * from './components'; /** * Контроллеры приложения * * Предоставляет: * - Базовый класс BotController * - Методы для обработки команд * - Управление состоянием * - Шаблоны ответов */ export * from './controller'; /** * Модели данных * * Содержит: * - Классы для работы с БД * - Интерфейсы моделей * - Миграции * - Запросы */ export * from './models'; /** * Вспомогательные утилиты * * Включает: * - Работа с текстом * - Форматирование данных * - Валидация * - Хелперы */ export * from './utils';