2 01 Installation
sophrosyne edited this page 2026-10-07 02:28:24 +00:00
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.

Установка

Требования, способы запуска и настройка окружения для СТАНКИН Анти-Спам.

Требования

Компонент Версия Назначение
Python 3.14+ Backend, бот, ML
PostgreSQL 14+ Хранение данных
Node.js 22+ Сборка фронтенда (только для разработки)
Docker 24+ Контейнерный запуск (рекомендуется)

Способ 1: Docker Compose (рекомендуется)

1. Подготовка

git clone https://scm.overklassniy.space/nyashki/STANKIN_AntiSpam.git
cd STANKIN_AntiSpam
cp .env.example .env

2. Настройка переменных окружения

Отредактируйте .env, обязательно заполните:

  • BOT_TOKEN — токен бота от @BotFather
  • DATABASE_URL — строка подключения к PostgreSQL
  • SECRET_KEY — секретный ключ для сессий
  • NOTIFICATION_CHAT_ID — ID чата управления

Полный список переменных — в configuration.md.

3. Запуск

docker compose up -d

Образ собирается локально из Dockerfile при первом запуске. Веб-панель доступна по адресу http://localhost:12523.

4. Получение доступа к панели

Отправьте боту в личные сообщения команду:

/start get_password

или

/get_password

Бот проверит, что вы администратор хотя бы в одной группе, и отправит учётные данные для входа.

Способ 2: Локальный запуск

1. Установка Python-зависимостей

python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
pip install -r requirements-ml-onnx.txt

2. Сборка фронтенда

npm ci
npm run build

3. Настройка окружения

cp .env.example .env
# Отредактируйте .env

4. Подготовка базы данных

Убедитесь, что PostgreSQL запущен и база данных, указанная в DATABASE_URL, существует. Таблицы создаются автоматически при первом запуске.

5. Запуск

python run.py

Режимы запуска:

python run.py              # Бот и панель (по умолчанию)
python run.py --bot        # Только бот
python run.py --panel      # Только панель

ML-модели

BERT-модель должна находиться в директории models/. По умолчанию используется finetuned_rubert_tiny2_raw. Модель выбирается через настройку BERT_MODEL в базе данных (веб-панель, страница «Настройки»).

Поддерживаемые форматы моделей:

  • ONNX — файлы model.onnx или model_quantized.onnx в директории модели
  • PyTorch / safetensors — стандартный формат transformers

Сжатые модели размещаются в models/compressed/ и выбираются с префиксом compressed/ в веб-панели.

Выпуски моделей

Готовые обученные модели публикуются в виде выпусков (releases) репозитория с тегами models-v*. Актуальный выпуск — models-v3.

Каждый выпуск содержит архивы:

  • stankin-antispam-transformers-v*.tar.gz — дообученные трансформеры в формате Hugging Face;
  • stankin-antispam-compressed-fp16-v*.tar.gz — сжатые модели float16;
  • stankin-antispam-compressed-onnx-v*.tar.gz — модели ONNX fp32;
  • stankin-antispam-compressed-int8-v*.tar.gz — модели ONNX int8 (dynamic quantization);
  • stankin-antispam-classic-v*.tar.gz — классические sklearn-модели и TF-IDF векторизаторы;
  • SHA256SUMS.txt — контрольные суммы для проверки целостности.

Архивы распаковываются в директорию models/:

cd STANKIN_AntiSpam
tar -xzf stankin-antispam-transformers-v3.tar.gz -C models/
sha256sum -c SHA256SUMS.txt

Для работы бота достаточно сжатых моделей (compressed-* архивы). Полные трансформеры нужны для дообучения и экспериментов.

Проверка установки

После запуска проверьте:

  1. Бот отвечает на команду /start в личных сообщениях
  2. Веб-панель доступна по адресу http://localhost:12523
  3. В логах нет ошибок подключения к базе данных
  4. Команда /get_password возвращает учётные данные