Initial commit (codex)
This commit is contained in:
90
README.md
Normal file
90
README.md
Normal file
@@ -0,0 +1,90 @@
|
||||
# 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`.
|
||||
Reference in New Issue
Block a user