КЛЕВЕР

КЛЕВЕР — корпоративный цифровой ассистент для мессенджера TrueConf.


О сервисе

КЛЕВЕР объединяет несколько корпоративных сервисов в одном диалоге. Пользователь получает меню из пунктов‑цифр, выбирает нужный сервис и работает в его «режиме»; цифра 0 возвращает в главное меню, 9 — на уровень назад.

Ключевые принципы работы:

  • Единая точка входа. Все сервисы доступны из одного меню бота; в каждом — свои подпункты.
  • Меню на цифрах. Навигация цифрами и клавишами‑цифрами (1…9), что удобно на мобильных устройствах.
  • Живая сессия. Каждому пользователю ведётся своё состояние диалога; при длительном бездействии сессия автоматически сбрасывается в главное меню.
  • Меню под пользователя. Состав главного меню зависит от пользователя: например, раздел «Столовая» показывается только сотрудникам заводов, где он работает (определяется по организационным подразделениям AD).
  • Наблюдаемость. Собирается статистика использования (по модулям и действиям), ведётся логирование, контролируются ошибки и расход памяти; критические сбои дублируются на служебную почту.
  • Защита от спама и посторонних. Глобальные фильтры на входе: сообщения от других ботов игнорируются (анти‑цикл), а доступ к модулям ограничен корпоративными пользователями (whitelist).

Платформа: Python, asyncio, официальный SDK trueconf (WebSocket, версия 1.5.2 — совместимость с TrueConf Server 5.5.6). Код модульный — каждый сервис вынесен в отдельный модуль со своим роутером, что позволяет добавлять, отключать и развивать сценарии независимо.


Возможности (модули)

Состав главного меню формируется динамически: пункт «Столовая» показывается только пользователям соответствующих заводов, у остальных последующие пункты сдвигаются на цифру выше. Ниже — полный состав модулей в порядке позиции.

1️⃣ Личный кабинет

Подробное описание модуля (файлы, логика, источники данных): docs/lk.md

Cервис «самообслуживание» в чате: карточка сотрудника (компания, отдел, должность, стаж) и доступ к основным кадровым данным.

  • Расчётный лист — за выбранный месяц, защищён 2FA; текстовая разбивка + PDF.
  • Отпуска, больничные, командировки, награды, переводы — справки по соответствующим сведениям.
  • Табель учёта рабочего времени — недельный разбор и итоги за месяц.
  • Справки — заказ кадровых справок нескольких типов (2‑НДФЛ, удержания, средний заработок, пособия, исполнительные листы, копия трудовой книжки) с автоматической отправкой заявки в отдел кадров.

2️⃣ Столовая

Подробное описание модуля (файлы, логика, разведение по заводам): docs/cafe.md

Меню и заказы столовой АО ХК Сибцем: дни с доступным заказом, блюда с порциями ½/🥡, корзина, оформление заказа, история заказов с отменой. Для сотрудников АО «Ангарскцемент» — просмотр меню буфета на текущий день (завтрак/обед). Раздел виден только сотрудникам этих заводов; в тестовом режиме — объединённый экран с двумя блоками.

3️⃣ Расшифровка совещаний

Подробное описание модуля (файлы, логика, лимиты): docs/transcription.md

Аудио‑ и видеозаписи совещаний отправляются на распознавание речи: бот принимает файл, проверяет его (разрешённые форматы, лимит размера — настраивается в конфигурации) и передаёт на обработку; расшифровка и резюме приходят на корпоративную почту. Поддерживается заглушка (TRANSCRIPTION_STUB_MODE) — при недоступности внешнего сервиса пользователь получает понятное сообщение вместо ошибки.

4️⃣ Service Desk

Создание и работа с заявками техподдержки: создание заявки по описанию проблемы, привязка к категории и исполнителю.

5️⃣ Изменение фотографии профиля

Подробное описание модуля (файлы, логика, проверки, модерация): docs/photo.md

Самостоятельная смена фотографии профиля: загрузка снимка в чат, автоматический кроп вокруг лица, превью для подтверждения, проверка качества (CV + ИИ на стороне корпоративного сайта), модерация и публикация в Active Directory. Модуль всегда показывает текущий статус (на модерации / отклонено с причиной / опубликовано). Поддерживается заглушка (PHOTO_STUB_MODE) — при недоступности сервера файлов пользователь получает сообщение о временной недоступности и ссылку на веб‑сервис смены фото.

6️⃣ Поиск по регламентам

Интеллектуальный поиск (RAG) по корпоративным регламентам: вопрос в чате — ответ со ссылкой на источник.

7️⃣ Инструкции по самостоятельной настройке

Подробное описание модуля (файлы, логика, проверка доступа, ServiceDesk): docs/instruct.md

Библиотека инструкций по самостоятельной настройке корпоративных сервисов (TrueConf и корпоративная почта на мобильном устройстве). Модуль проверяет реальное состояние пользователя (есть ли доступ, не создана ли уже заявка), присылает готовый файл‑инструкцию и при необходимости автоматически создаёт заявку в ServiceDesk. Включается флагом ENABLE_INSTRUCT (по умолчанию выключено).


Как устроен сервис (кратко)

Слой Что делает
Ядро Подключение к TrueConf, диспетчер событий, главное меню (динамическое, под пользователя), маршрутизация между модулями
Глобальные фильтры Анти‑спам: игнорирование входящих от ботов; whitelist корпоративных пользователей до всех роутеров
Модули Отдельные роутеры сервисов (ЛК, столовая, транскрипция, ServiceDesk, фото, поиск, инструкции)
Состояние Хранение состояния диалога по пользователю, таймауты, возврат в меню; у каждого модуля — свой список состояний (entry‑guard роутера)
Конфигурация Единый эталонный config/config.py (флаги модулей, лимиты, режимы); для каждого бота ключи дописываются скриптом sync_config.py без перезаписи файла бота; секреты выносятся в хранилище (passwork)
Интеграции Active Directory (данные сотрудника, OU заводов), MS SQL (кадровые данные), веб‑ЛК Сибцем и Cart-API (столовая), API распознавания речи, ServiceDesk, SMTP (уведомления)
Надёжность Мониторинг RAM и статистики, логирование (общий журнал + отдельные логи модулей), авто‑уведомления об ошибках с защитой от дублей

Каждый модуль — отдельная директория с файлом handlers.py (логика) и общими служебными пакетами utils/ (тексты, меню, состояние, статистика, AD-поиск). Это позволяет менять тексты, поведение и пороговые значения, не трогая остальной код.

Развёртывание: Docker; один репозиторий — единый код всех ботов (prod / beta / klever), различия — только в локальных config/config.py.


Документация

Статья Содержимое
Личный кабинет Состав модуля, файлы, логика работы, 2FA, SQL-таблицы
Столовая Заказы ХК и буфет Ангарска, разведение по заводам, API, экраны
Расшифровка совещаний Приём файла, лимиты, внешний API, уведомления об ошибках
Изменение фото профиля Приём и кроп, превью, проверки, модерация, размещение в AD
Инструкции по настройке сервисов Сценарии TrueConf/почта, проверка 2FA, авто-заявка в ServiceDesk
Обновления КЛЕВЕР Хронология всех изменений проекта по датам
S
Description
TrueConf Chatbot КЛЕВЕР
Readme 9.3 MiB
Languages
Python 99.8%
Dockerfile 0.2%