
Защитный барьер от инъекций промптов для приложений LLM. Компактная модель, превосходящая более крупные open-source защитные решения. Без regex, без сигнатур. Демо: anton.securelayer7.net
Миниатюрный межсетевой экран от инъекций в подсказки для LLM-чат-приложений. ~14 МБ. Только ЦП. Вставляемый защитный слой между пользовательским вводом и вашей LLM — работает на той же машине, без GPU, без API, без дополнительного сервиса.
Создан командой красной команды SecureLayer7. Большинство открытых решений весят сотни МБ, требуют GPU и всё равно пропускают атаки, которые мы видим в продакшене. Нам нужно было что-то, что можно встроить в наши собственные AI-продукты и приложения клиентов без всех этих сложностей.
Сравнение с открытыми решениями → docs/BENCHMARKS.md.
# SDK (без зависимостей, ~50 КБ) — структурный межсетевой экран + сборка для браузера
npm i promptpurify
# Добавьте модель (~14 МБ ONNX) для защиты от инъекций в чат
npm i onnxruntime-node
curl -L -o promptpurify-model.tar.gz \
https://github.com/securelayer7/PROMPTPurify/releases/download/v0.0.1/promptpurify-model.tar.gz
curl -L -o promptpurify-model.tar.gz.sha256 \
https://github.com/securelayer7/PROMPTPurify/releases/download/v0.0.1/promptpurify-model.tar.gz.sha256
sha256sum -c promptpurify-model.tar.gz.sha256 # ДОЛЖНО вывести "OK"
tar xzf promptpurify-model.tar.gz # создаёт каталог models/l5e/
Модель не входит в npm-архив — SDK остаётся крошечным для тех, кому нужен только структурный межсетевой экран (браузер, edge, RAG). Полные варианты распространения: docs/SAMPLE-DATA.md.
import { createL5eRunner } from "promptpurify/l5";
const guard = await createL5eRunner();
// В обработчике /chat:
const score = await guard.score(userMessage);
if (score >= 0.95) return refusal(); // жёсткая блокировка
if (score >= 0.85) flagForReview(userMessage); // предупреждение
const reply = await yourLLM.complete(userMessage); // пропустить
Работает с Groq, OpenAI, Anthropic, vLLM, локальными LLM — promptpurify никогда не обращается к вашей LLM, только к вашему вводу.
Для детерминированного структурного межсетевого экрана (нейтрализация Unicode, сообщения с ролевой оградой, защита от утечки вывода) см. docs/QUICKSTART.md.
Мы построили нашу модель с нуля, потому что ни одно существующее открытое решение не давало нам нужного соотношения размера и задержки для встраивания в наши собственные продукты.
Полное описание архитектуры → docs/HOW-IT-WORKS.md.
Мы запустили живой соревновательный вызов на anton.securelayer7.net. Спросите у Son of Anton пароль. Если сможете обмануть защиту, расскажите нам — SECURITY.md.
Чат-бот техподдержки финтех-компании, подключённый к promptpurify, готовый к запуску локально:
cd examples/customer-support && npm install
GROQ_API_KEY=gsk_... node server.mjs
# http://localhost:8787
См. examples/customer-support/README.md.
.safe.Всё, что мы выпускаем, подписано и проверяемо от начала до конца:
npm audit signatures # ✓ проверенная регистрационная подпись + аттестация происхождения
*.cosign.bundle), аттестацию происхождения сборки SLSA, манифест SHA256 и SBOM CycloneDX (SBOM.cdx.json).models/l5e/SHA256SUMS — каждый артефакт имеет контрольную сумму; проверяется в CI на каждом PR.Если любая из этих проверок у вас не проходит, пакет — не promptpurify — сообщите о проблеме в SECURITY.md.
Название и философия дизайна вдохновлены DOMPurify от Cure53 — та же идея, применённая к LLM-подсказкам вместо HTML. Спасибо Mario Heiderich за предложение названия.
MIT для SDK и весов модели. Источники бенчмарков, с которыми мы сравниваем, перечислены в training/CORPUS_LICENSES.json.
Раскрытие уязвимостей: SECURITY.md.
| promptpurify | типичное открытое решение |
|---|
| Размер установки | ~14 МБ ONNX | 180 МБ – 7 ГБ |
| Инференс | ЦП, единицы миллисекунд | Рекомендуется GPU |
| Где работает | В вашем Node-процессе | Sidecar или размещённый API |
| Стоимость за вызов | $0 | $ или GPU-вычисления |