Сервис представляет собой API для генерации случайных чисел на основе аудиопотоков из источников звука по всему миру.
-
Генерация случайных чисел на основе аудиопотоков от Locus Sonus
-
Загрузка пользовательских аудиофайлов в качестве источника энтропии
-
Гибкая настройка параметров генерации:
- Диапазон значений
- Количество цифр
- Основание системы счисления (2–36)
- Формат вывода (JSON/TXT)
- Количество генерируемых чисел
-
Генерация бинарных последовательностей для тестирования (указанное количество 0 и 1)
-
Полная батарея статистических тестов NIST (15 тестов) для верификации качества ГСЧ
-
Подробная аналитическая отчетность по результатам тестирования
- Backend: FastAPI (Python 3.13)
- Кэширование: Redis
- Аудиоисточники: Locus Sonus API & ffmpeg
- Контейнеризация: Docker & Docker Compose
# Создание виртуальной среды
uv venv .venv
# Активация (в зависимости от вашей системы)
source .venv/bin/activate # MacOs & Linux
.venv/Scripts/activate # Windows
# Установка зависимостей
uv sync
# Запуск сервиса
uv run src/main.py# Сборка и запуск всех сервисов
docker compose -f docker-compose.local.yml up --buildПри установленном just доступно:
just build-localСервис будет доступен по адресу: http://localhost:8000
После запуска доступна интерактивная документация:
- Swagger UI:
http://localhost:8000/docs - ReDoc:
http://localhost:8000/redoc
- Frequency (Monobit) Test — Тест частоты
- Block Frequency Test — Тест блочной частоты
- Runs Test — Тест серий
- Longest Run of Ones Test — Тест самой длинной серии единиц
- Binary Matrix Rank Test — Тест ранга бинарной матрицы
- Discrete Fourier Transform Test — Тест дискретного преобразования Фурье
- Non-overlapping Template Matching Test — Тест неперекрывающихся шаблонов
- Overlapping Template Matching Test — Тест перекрывающихся шаблонов
- Maurer’s Universal Statistical Test — Универсальный статистический тест Маурера
- Linear Complexity Test — Тест линейной сложности
- Serial Test — Серийный тест
- Approximate Entropy Test — Тест приближенной энтропии
- Cumulative Sums (Cusum) Test — Тест кумулятивных сумм
- Random Excursions Test — Тест случайных блужданий
- Random Excursions Variant Test — Вариант теста случайных блужданий
Основные настройки могут быть изменены через переменные окружения:
DEBUG- режим работы логгераAPP_NAME- название сервисаAPP_HOST- хост сервисаAPP_PORT- порт сервисаMAX_AUDIO_DURATION- максимальная длинна ауди дорожки, которую может загрузить пользовательREDIS_HOST- хост редисаREDIS_PORT- порт редисаREDIS_PASS- пароль редисаREDIS_DB- используемая база данных редиса
.
├── README.md
├── justfile
├── pyproject.toml
├── uv.lock
├── logs/
│
├── docker/
│ ├── Dockerfile
│ ├── docker-compose.local.yml
│ ├── docker-compose.dev.yml
│ └── docker-compose.prod.yml
│
└── src/
├── main.py
├── core/
│ ├── config.py
│ ├── logger.py
│ └── __init__.py
│
├── integrations/
│ ├── locusonus/
│ │ ├── api.py
│ │ ├── cache.py
│ │ ├── client.py
│ │ ├── models.py
│ │ └── __init__.py
│ │
│ ├── redis/
│ │ ├── client.py
│ │ └── __init__.py
│ │
│ └── __init__.py
│
├── presentation/
│ ├── api/
│ │ ├── v1/
│ │ │ ├── nist/
│ │ │ │ ├── dep.py
│ │ │ │ ├── models.py
│ │ │ │ ├── router.py
│ │ │ │ └── __init__.py
│ │ │ │
│ │ │ ├── rng/
│ │ │ │ ├── dep.py
│ │ │ │ ├── models.py
│ │ │ │ ├── router.py
│ │ │ │ └── __init__.py
│ │ │ │
│ │ │ └── __init__.py
│ │ │
│ │ └── __init__.py
│ │
│ ├── middlewares/
│ │ ├── logging.py
│ │ └── __init__.py
│ │
│ └── __init__.py
│
├── services/
│ ├── rng/
│ │ ├── rng.py
│ │ ├── service.py
│ │ └── __init__.py
│ │
│ ├── nist/
│ │ ├── service.py
│ │ ├── tests/
│ │ │ ├── approximate_entropy_test.py
│ │ │ ├── binary_matrix_rank_test.py
│ │ │ ├── block_frequency_test.py
│ │ │ ├── cumulative_sums_test.py
│ │ │ ├── discrete_fourier_transform_test.py
│ │ │ ├── frequency_test.py
│ │ │ ├── linear_complexity_test.py
│ │ │ ├── longest_run_ones_test.py
│ │ │ ├── non_overlapping_template_test.py
│ │ │ ├── overlapping_template_test.py
│ │ │ ├── random_excursions_test.py
│ │ │ ├── random_excursions_variant_test.py
│ │ │ ├── runs_test.py
│ │ │ ├── serial_test.py
│ │ │ ├── universal_test.py
│ │ │ └── templates/
│ │ │ ├── dataInfo
│ │ │ ├── template2 … template21.Z
│ │ │ └── другие шаблоны NIST
│ │ │
│ │ └── __init__.py
│ │
│ └── __init__.py
│
└── __init__.py