rpi: усилить ограничения разговорного сервиса Маруси

This commit is contained in:
2026-10-11 18:24:26 +03:00
parent e2bd908198
commit 258367d22d
4 changed files with 10 additions and 2 deletions
+4 -2
View File
@@ -1,7 +1,7 @@
# Разговор с Астрой через Марусю
Код: `ruzzy/astra-bot`, `marusia/server.py`, тесты `test_marusia.py`.
Сервис на rpi слушает только `127.0.0.1:8788`; наружу пока не опубликован.
Сервис на rpi слушает только `127.0.0.1:8788`; доступ через fr1 подготовлен; SSH-туннель на rpi ещё нужно запустить.
Webhook: `POST /webhook/<секрет из /etc/astra-marusia.env>`.
Проверка: `GET /health`.
@@ -20,7 +20,7 @@ StateDirectory. Не подключать этот сервис к админи
Быстрый ответ ожидается до 2 секунд. Если ответ ещё готовится, колонка просит
сказать «готово?»; новая реплика во время ожидания не запускает вторую задачу.
Повтор webhook с теми же session_id/message_id получает кешированный ответ.
Не более двух обращений к модели одновременно, не более 50 разговоров.
Одно обращение к модели одновременно, не более 50 разговоров. Глобальный бюджет модели: 10 новых вопросов/мин и 60/час; webhook: 30 POST/мин, в том числе отклонённые. Счётчики в памяти, при рестарте сбрасываются.
## Публичный вход на fr1 (с 2026-10-11)
@@ -57,3 +57,5 @@ https://skill-tester.marusia.mail.ru/ (актуальность интерфей
До заполнения skill_id все POST закрыты (403), знание случайного пути обязательно.
skill_id не является криптографическим доказательством отправителя; секрет URL
и приватный доступ навыка обеспечивают первичное ограничение доступа.
С 2026-10-11 обязателен `MARUSIA_ALLOWED_USER_IDS`: список точных идентификаторов пользователя Маруси из проверенного запроса отладчика VK. Пустой список закрывает доступ всем; автоматически первого пришедшего пользователя не добавлять. Это не Telegram ID. Schema: version 1.0, SimpleUtterance, ограниченные session_id/message_id, вопрос до 1000 символов, Content-Type application/json, без chunked transfer. TTS экранирует разметку. Только разговор, любые действия подключаются отдельно по решению владельца. systemd: MemoryMax 512M, CPUQuota 100%, TasksMax 64. На fr1 агент уже установил nginx 1 r/s с burst 5; дополнительное ужесточение до 30 r/m и тела 16 KiB рекомендовано, но ещё не установлено на fr1. Локальный сервис уже применяет 30 POST/мин и 16 KiB.
@@ -25,6 +25,9 @@ ProtectKernelTunables=yes
ProtectKernelModules=yes
ProtectControlGroups=yes
RestrictSUIDSGID=yes
MemoryMax=512M
CPUQuota=100%
TasksMax=64
[Install]
WantedBy=multi-user.target
+2
View File
@@ -1,3 +1,5 @@
# Root-owned /etc/astra-marusia.env, mode 600. Never commit actual secret.
MARUSIA_WEBHOOK_SECRET=GENERATE_RANDOM_SECRET_AT_LEAST_32_CHARACTERS
MARUSIA_SKILL_ID=
# Marusia user IDs from trusted debugger requests; these are NOT Telegram IDs.
MARUSIA_ALLOWED_USER_IDS=