umbot
Version:
Мультиплатформенный фреймворк для создания голосовых навыков и чат-ботов с единой бизнес-логикой. Встроенная поддержка ВКонтакте, Telegram, Viber, MAX, Яндекс Алисы, Маруси и Сбера SmartApp. Архитектура на адаптерах позволяет подключать любые другие платф
107 lines (106 loc) • 4.84 kB
TypeScript
/**
* @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';