Files
2026-matrix-sumka/README.md
2026-09-24 19:32:57 +03:00

3.4 KiB
Raw Permalink Blame History

2026-matrix-sumka

Matrix-бот для запуска 2026-linux-sumka. Бот принимает поддерживаемые аудио- и видеофайлы, запускает sumka в отдельном Docker-контейнере и отправляет пользователю готовый output.pdf.

Одновременно выполняется только одно задание. Новый файл во время обработки сразу отклоняется и не ставится в очередь.

Поддерживаемые расширения: .mp4, .mkv, .avi, .mp3, .m4a, .wav. Файл можно отправить в Matrix как видео, аудио или обычный файл.

Как это работает

Для каждого принятого видео бот:

  1. очищает runtime/work;
  2. скачивает файл как runtime/work/input.<расширение>;
  3. запускает контейнер sumka через run_sumka.sh;
  4. читает этапы обработки из report.txt;
  5. проверяет код выхода процесса;
  6. отправляет output.pdf в исходную Matrix-комнату.

Вывод контейнера сохраняется в runtime/work/sumka.log.

Конфигурация

При первом запуске автоматически создаётся runtime/config.json:

{
    "matrix_homeserver": "https://matrix.example.org",
    "matrix_user": "sumka-bot",
    "store_dir": "session_storage",
    "sumka_image": "sumka:amd",
    "ai_api_key": "change-me",
    "sumka_args": []
}

matrix_user — локальная часть Matrix ID без @ и имени сервера. В sumka_args можно передать аргументы командной строки sumka, например имена моделей. Для NVIDIA укажите образ с nvidia в теге, например sumka:nvidia; для AMD — sumka:amd.

Запуск в Docker

На машине заранее должны быть собраны нужный образ sumka и образ бота.

mkdir -p runtime
docker compose build
docker compose run --rm bot

Первый запуск создаст конфиг и завершится. Заполните runtime/config.json, затем повторите команду для первой авторизации в Matrix. После успешного входа остановите процесс через Ctrl+C; сессия сохранится в runtime/session_storage.

Пароль также можно передать через окружение:

MATRIX_PASSWORD='matrix-password' \
  docker compose run --rm -e MATRIX_PASSWORD bot

Постоянный запуск:

docker compose up -d

Бот использует Docker daemon хоста через /var/run/docker.sock; вложенный Docker daemon не запускается.

Запуск через .venv

Нужны Python 3.12+, Docker CLI, libmagic и libolm.

python3 -m venv .venv
. .venv/bin/activate
python -m pip install -r requirements.txt
cp config.example.json config.json
python main.py

Используется стабильная версия mab v0.5.2.