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

91 lines
3.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 2026-matrix-sumka
Matrix-бот для запуска
[`2026-linux-sumka`](https://git.tyukalov.su/nikita/2026-linux-sumka.git).
Бот принимает поддерживаемые аудио- и видеофайлы, запускает `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`:
```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` и образ бота.
```bash
mkdir -p runtime
docker compose build
docker compose run --rm bot
```
Первый запуск создаст конфиг и завершится. Заполните
`runtime/config.json`, затем повторите команду для первой авторизации в Matrix.
После успешного входа остановите процесс через `Ctrl+C`; сессия сохранится в
`runtime/session_storage`.
Пароль также можно передать через окружение:
```bash
MATRIX_PASSWORD='matrix-password' \
docker compose run --rm -e MATRIX_PASSWORD bot
```
Постоянный запуск:
```bash
docker compose up -d
```
Бот использует Docker daemon хоста через `/var/run/docker.sock`; вложенный
Docker daemon не запускается.
## Запуск через `.venv`
Нужны Python 3.12+, Docker CLI, `libmagic` и `libolm`.
```bash
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`.