umbot - v2.1.3
    Preparing search index...

    Class BaseBotController<TUserData>

    Бот контроллер по умолчанию. Стоит использовать в случаях, когда все команды добавляются через addCommand

    Type Parameters

    Hierarchy (View Summary)

    Index

    Constructors

    Properties

    appContext: AppContext

    Контекст приложения

    appeal: "official" | "no_official" | null = null

    Стиль обращения к пользователю Определяет формальность общения

    Возможные значения:

    • 'official': официальное обращение
    • 'no_official': неофициальное обращение
    • null: стиль не определен
    this.appeal = 'official'; // официальное обращение
    
    buttons: Buttons

    Компонент для отображения кнопок пользователю. Позволяет создавать интерактивные элементы управления

    Buttons

    this.buttons
    .addBtn('Помощь')
    .addBtn('Выход');
    card: Card

    Компонент для отображения карточек пользователю Позволяет создавать визуальные элементы с изображениями и текстом

    Card

    this.card
    .addImage('url/to/image.jpg', 'Заголовок', 'Описание')
    emotion: string | null = null

    Эмоция для голосового ответа Используется для голосовых ассистентов

    this.emotion = 'good';
    
    isAuth: boolean = false

    Флаг необходимости авторизации Определяет, требуется ли авторизация пользователя

    this.isAuth = true; // требуется авторизация
    
    isEnd: boolean = false

    Флаг завершения сессии Определяет, нужно ли завершить диалог

    this.isEnd = true; // завершить диалог
    
    isScreen: boolean = false

    Флаг наличия экрана Определяет, доступен ли экран пользователю

    this.isScreen = true; // экран доступен
    
    isSend: boolean = false

    Флаг необходимости отправки запроса к API Используется для Vk и Telegram

    Если true, все запросы уже отправлены в логике приложения

    this.isSend = true; // запросы уже отправлены
    
    isSendRating: boolean = false

    Флаг отправки запроса на оценку Определяет, нужно ли запросить оценку у пользователя

    this.isSendRating = true; // запросить оценку
    
    messageId: string | number | null = null

    ID сообщения Используется для определения начала нового диалога

    this.messageId = 12345;
    
    nlu: Nlu

    Обработанный NLU (Natural Language Understanding) Содержит результаты обработки естественного языка

    Nlu

    oldIntentName: string | null = null

    Название предыдущего интента. Используется для отслеживания контекста диалога

    this.oldIntentName = 'greeting';
    
    originalUserCommand: string | null = null

    Оригинальный запрос пользователя Текст запроса без изменений

    this.originalUserCommand = 'Привет, бот!';
    
    payload: string | object | null | undefined = null

    Дополнительные параметры запроса Может содержать любые дополнительные данные

    this.payload = {
    source: 'mobile',
    version: '1.0'
    };
    requestObject: string | object | null = null

    Полученный запрос Содержит оригинальный объект запроса

    this.requestObject = {
    command: 'start',
    payload: { source: 'mobile' }
    };
    sound: Sound

    Компонент для работы со звуками. Позволяет добавлять звуковые эффекты и музыку

    Sound

    state: string | object | null = null

    Пользовательское локальное хранилище Используется для Алисы, Маруси и Сбера

    this.state = {
    lastIntent: 'greeting',
    step: 1
    };
    store: Record<string, unknown> | undefined

    Локальное хранилище с данными. Используется в случаях, когда нужно сохранить данные пользователя, но userData приложением не поддерживается. В случае если данные хранятся в usetData и store, пользователю вернятеся информация из userData.

    text: string = ''

    Текст, отображаемый пользователю Основной способ коммуникации с пользователем

    this.text = 'Привет! Чем могу помочь?';
    
    thisIntentName: string | null = null

    Название текущего интента. Определяет текущее состояние диалога

    this.thisIntentName = 'help';
    
    tts: string | null = null

    Текст для преобразования в речь. Используется для голосовых ассистентов

    Для неголосовых платформ текст будет преобразован в речь через Yandex SpeechKit и отправлен как аудио сообщение

    this.tts = 'Привет! Я голосовой ассистент.';
    
    userCommand: string | null = null

    Запрос пользователя в нижнем регистре Нормализованный текст запроса

    this.userCommand = 'привет бот';
    
    userData: TUserData = ...

    Пользовательские данные Хранятся в базе данных или файле

    Тип хранения зависит от параметра appContext.isSaveDb

    this.userData = {
    name: 'John',
    preferences: {
    language: 'ru'
    }
    };
    userEvents: IUserEvent | null = null

    Статус пользовательских событий Содержит информацию об авторизации и оценке

    IUserEvent

    this.userEvents = {
    auth: { status: true },
    rating: { status: true, value: 5 }
    };
    userId: string | number | null = null

    Идентификатор пользователя Уникальный идентификатор для каждого пользователя

    this.userId = 'user_123';
    
    userMeta: any = null

    Метаданные пользователя Дополнительная информация о пользователе

    this.userMeta = {
    timezone: 'Europe/Moscow',
    locale: 'ru-RU'
    };
    userToken: string | null = null

    Пользовательский токен авторизации Используется для авторизованных запросов (например, в Алисе)

    this.userToken = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...';
    

    Methods

    • Protected

      Получает команду из запроса пользователя Извлекает команду из текста запроса

      Returns string | null

      Команда или null

      const command = this._getCommand();
      // 'start'
    • Protected

      Определяет интент по тексту запроса. Сопоставляет текст с доступными интентами

      Parameters

      • text: string | null

        Текст запроса

      Returns string | null

      Название интента или null

      const intent = BotController._getIntent('привет');
      // 'greeting'
    • Protected

      Возвращает список доступных интентов. Определяет все возможные команды и их обработчики

      Returns IAppIntent[]

      Массив интентов

      const intents = BotController._intents();
      // [
      // { name: 'greeting', slots: ['привет', 'здравствуйте'] },
      // { name: 'help', slots: ['помощь', 'справка'] }
      // ]
    • Запускает обработку запроса. Определяет тип запроса и вызывает соответствующий обработчик

      Returns void

      this.run();
      // Обрабатывает запрос и формирует ответ