UNPKG

umbot

Version:

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

130 lines (129 loc) 6.17 kB
"use strict"; /** * @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 */ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __exportStar = (this && this.__exportStar) || function(m, exports) { for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); }; Object.defineProperty(exports, "__esModule", { value: true }); // ===== Ядро приложения ===== /** * Основные компоненты ядра фреймворка * * Включает: * - Базовые классы и интерфейсы * - Систему обработки команд * - Управление состоянием * - Обработку ошибок */ __exportStar(require("./core"), exports); // ===== Взаимодействие с web api ===== /** * Модули для работы с внешними API * * Предоставляет: * - Интерфейсы для API * - Классы для HTTP-запросов * - Интеграции с сервисами * - Обработку ответов */ __exportStar(require("./api"), exports); // ===== Второстепенные компоненты ===== /** * Вспомогательные компоненты * * Включает: * - Кнопки и клавиатуры * - Карточки и изображения * - Звуки и аудио * - UI элементы */ __exportStar(require("./components"), exports); // ===== Поддерживаемые платформы ===== // ===== Базовый контроллер для написания логики приложения ===== /** * Контроллеры приложения * * Предоставляет: * - Базовый класс BotController * - Методы для обработки команд * - Управление состоянием * - Шаблоны ответов */ __exportStar(require("./controller"), exports); // ===== Модели для взаимодействия с бд ===== /** * Модели данных * * Содержит: * - Классы для работы с БД * - Интерфейсы моделей * - Миграции * - Запросы */ __exportStar(require("./models"), exports); // ===== Дополнительные утилиты ===== /** * Вспомогательные утилиты * * Включает: * - Работа с текстом * - Форматирование данных * - Валидация * - Хелперы */ __exportStar(require("./utils"), exports);