ИЗ КОРОБКИ · БЕЗ ВНЕШНЕЙ НЕЙРОСЕТИ
От архива
до работающего стенда.
Эта страница уже загружена с работающего сервера. Для демонстрации не нужны API-ключи, OpenAI, модели, регистрация или база с настоящими клиентами.
1. Проверить прямо сейчас
Вернитесь на главную, оставьте режим «Хакатон», выберите пример «Анкета клиента» и нажмите «Проверить весь цикл». Приложение отправит оригинал, его повтор, маску и её повтор. Зелёный результат «4/4» означает точное восстановление и устойчивость к повторам именно этого примера, а не оценку 95% на скрытом датасете.
Для ручной проверки нажмите «Защитить запрос», затем вкладку «Восстановить ответ» и кнопку восстановления. В режиме хакатона нельзя произвольно переписывать маску: организаторы отправляют обратно ровно нашу строку.
2. Установить локально
Распакуйте ZIP целиком, откройте папку pii_guard. На Windows запустите START_WINDOWS.cmd, на macOS — START_MAC.command, на Linux — bash start.sh. Нужен Python 3.12–3.14; рекомендуемая и проверенная здесь версия — 3.13. Если его нет, сначала установите Python с официального сайта; на Windows отметьте Add python.exe to PATH. На Linux также нужен пакет python3-venv.
Скрипт создаст изолированное окружение, установит закреплённые зависимости, создаст случайные ключи, запустит тесты и откроет браузер. Интернет нужен на первой установке зависимостей; само приложение работает локально. Терминал должен оставаться открытым. Остановка — Ctrl+C, повторный запуск — тот же файл. Существующие ключи и данные не сбрасываются.
# Универсальная команда из распакованной папки: python scripts/setup_local.py --start # На macOS/Linux обычно: python3 scripts/setup_local.py --start # Если порт 8080 занят: python scripts/setup_local.py --start --port 8081
Не открывайте static/index.html двойным щелчком: это интерфейс сервера, а не автономное приложение.
3. Развернуть для организаторов
Нужен отдельный Linux-сервер с доступом из Интернета. Инструкция и готовые конфигурации находятся в docs/DEVOPS_RU.md. Установка не требует писать код: оператор указывает домен или IP, запускает установщик и выполняет проверку. По умолчанию работают четыре API-контейнера, общее зашифрованное SQLite-хранилище и Caddy перед ними.
# На Ubuntu/Debian, из папки проекта: sudo bash deploy/install.sh --host pii.example.com --email ops@example.com --install-docker # IP-адрес без домена: HTTP, только вымышленные данные: sudo bash deploy/install.sh --host 203.0.113.10 --http --install-docker # Проверка после установки: sudo bash deploy/manage.sh check
В командах замените демонстрационный адрес на реальный. Домен заранее направьте DNS-записью A на сервер, откройте 80/443 во внешнем firewall. Установщик не меняет ваш firewall и не настраивает DNS вместо владельца домена. За существующим Nginx Proxy Manager предусмотрен режим --behind-proxy.
4. Что указать при сдаче
Загрузите исходный ZIP и укажите адрес развёрнутого решения. Базовый адрес: https://ваш-домен; endpoint: https://ваш-домен/process. Поле портала названо «Ссылка на развёрнутое решение» — используйте базовый адрес, если интерфейс отдельно не требует полный endpoint. Формат тела строго {"payload":"строка","payload_id":"уникальный-id"}, ответ — только {"result":"строка"}. Сервер должен оставаться доступным во время прогона.
5. API с ключом и безопасность
Для токенизации реального потока LLM есть отдельный /v1/process. Ключи лежат только у владельца установки в .credentials.local.json. Профиль bank необратимо скрывает CVV/PIN, sandbox используется только с вымышленными данными. Публичный хакатонный endpoint нельзя использовать для настоящих банковских данных: он намеренно доступен без ключа по контракту проверки.
Соответствия по умолчанию живут 30 минут. Потеря ключа или базы, истечение срока и смена политики могут сделать восстановление невозможным. Не публикуйте файлы .env, *.local.*, базу и резервные копии.
6. Если не работает
Браузер не открылся: вручную перейдите на http://127.0.0.1:8080. Python не найден: установите его и заново откройте терминал. Ошибка pip: проверьте доступ к PyPI, дисковое место и повторите установку; никакие ключи вручную удалять не нужно. 409: новый текст должен иметь новый payload_id; повторяйте точное тело оригинала или точную маску. 429: уменьшите параллелизм и соблюдайте Retry-After. 503: проверяйте хранилище и готовность контейнеров, исходный текст в обход защиты не отправляйте.
Для отчёта запустите python scripts/verify.py или VERIFY_WINDOWS.cmd. Для внешнего адреса — python scripts/smoke.py --url https://ваш-домен. Без успешной проверки не отправляйте адрес организаторам.