Телеграмм бот для отправки замечаний машинистами электропоездов на инфратруктуре Московского Центрального Кольца
Бот предназначен для упрощения передачи рутинных замечаний. В случае угрозе безопасности движения замечания передавать только по радиосвязи. Использование бота позволит снизить нагрузку на ДСП, ДНЦ и конечно на машинистов, что особенно важно в условиях высокоинтенсивного движения как на МЦК. Это позволит меньше отвлекаться и сосредоточится на выполнении своих непосредственных обязанностей. Также нет необходимости заполнять книгу замечаний после смены. В электронном виде будет все и доступно в любой момент по запросу. Нужно печатный(классический вид) - сделал запрос одной командой - распечатал - поставили росписи - готово!
- Передача замечаний
- Машинист надиктовывает замечание в виде голосового сообщения
- Бот использует языковую модель на основе нейронной сети и распознает текст, выделяет нужные паттерны
- Формирует предварительный отчет с распознанной информацией. При желании можно отредактировать или отправить замечание заново
- При наличии связи с АРМ(система регистрации поездок) никакой дополнительной информации вводить не нужно. Все данные о поездке подтягиваются автоматически
- При отсутствии связи с АРМ - необходимо ввести дополнительные данные. Бот подскажет какие
- После заполнения замечание записывается в базу данных. И далее доступны в виде книги замечаний по запросу
- Получение замечаний ДСП/ДНЦ
Даже если вы не выбрали станцию программа автоматически поймет какому ДСП/ДНЦ нужно отправить сообщение. Уведомление им придет в любом удобном виде(телеграмм, почта...). Также у них будет доступ к базе, чтобы обработать замечание. Опять же нет никакой необходимости руками вносить информацию, все уже есть в электронном варианте.
- Получение отчетов и статистик
Набрав команду /reports
или кликнув на нее вы можете получить доступ к формированию отчетов из книги замечаний, агрегации и графиков статистики.
https://drive.google.com/file/d/1L0-xcItk3lJCxgN3eEmjfxqZW70uCFdx/view?usp=sharing
- Сам телеграмм бот написан с использованием библиотеки
pyTelegramBotAPI
- Для распознавания и транскрипции текста использовалась предобученная мультиязычная модель
whisper-small
от OpenAI - Выделение нужных паттернов из текста. Использовались регулярные выражения
- Считывание и валидация дополнительных данных от пользователя
- Запись информации в базы данных. Регистрация переданных замечаний в виде аудиозаписей. Логирование каждой коммуникации с пользователем
- Реализация возможности получения отчетов, агрегации, графиков
scripts
Содержит только питоновские скрипты, необходимые для работы приложения
note_bot.py
- Основной файл, в котором реализования вся логика работы ботаtransformers_whisper.py
- Распознавание и транскрипция текстаformat_text.py
- Выделение нужных паттернов из текста замечанияdata_validation.py
- Валидация данных, передаваемых пользователемdb_connection.py
- Файл для работы с базами данныхreports.py
- Файл для формирования отчетов и статистик
Директория volumes
со вложенными папками создаться после первого запуска бота и работы с ним
volumes/data_bases
notes.sql
- Основная база данных(чистовая) для хранения информации о переданном замечании согласно регламенту железных дорог. На основании ее формируется книга замечаний и необходимые отчетыhistory_db.sql
- База для внутренних нужд. Для мониторинга работы бота и качества распознавания текста
volumes/voices
Содержит голосовые записи переданных замечаний, которые были успешно записаны в чистовую базу notes.sql
. Название аудиофайлов соответствует номеру id
в базе данных. Так что не составит труда найти для конкретного замечания запись или наоборот
volumes/history_log_voices
Содержит голосовые записи всех переданных замечаний, в том числе и неудачных. Используются для мониторинга работы бота, качество распознавания замечаний. Можно понять какие трудности возникают при передаче замечаний. Название аудиофайлов соответствуют формату: "hour_minutes-day_month_year.ogg". По этому времени можно найти нужные логи и наоборот
volumes/history_log
Содержит все логи для каждой коммуникации с пользователем. Записывает все основные этапы взаимодействия с пользователем. По этой информации можно искать баги или моменты, в которые вызывают у пользователей затруднения. Все ошибки, по причинам которых программа может упасть мы тоже увидим в логах
addition_files
Содержит содержит служебные информационные файлы для работы бота. Также в этой папке содержатся файлы для отправки пользователю в случае затруднений. Например, схема расположения станций или пример записи голосового сообщения согласно регламенту переговоров
temp_report_files
Содержит временные файлы для отчетов
root_dir
Файлы в корневом каталоге
requirements.txt
- Список необходимых библиотекDockerfile
- Файл для сборки образа Docker.dockerignore
- Что не добавлять в образcommands.sh
- bash скрипт с командами для создания образа и поднятия контейнера
-
Docker
- Скопировать файлы к себе на компьютер. Указать токен в файле commands.sh в поле <токен>. Запустить скрипт commands.sh в терминале. -
Скопировать файлы к себе на компьютер, установить зависимости из
requirements.txt
. Добавить в токен в скриптnote_bot.py
или прокинуть в переменную окруженияMCC_TOKEN
при запуске скрипта. -
Если хочется просто попробовать как работает бот без лишних усилий, вы можете написать мне в телеграмм @garick161, я запущу бота у себя и скину вам ссылку на бота.