
Gardien anti-injection de prompt pour applications LLM. Modèle compact qui surpasse les gardiens open-source plus volumineux. Pas de regex, pas de signatures. Démo: anton.securelayer7.net
Pare-feu anti-injection par prompts pour applications de chat LLM. ~14 Mo. CPU uniquement. Protection intégrée entre votre saisie utilisateur et votre LLM — s'exécute sur la même machine, sans GPU, sans API, sans service supplémentaire.
Construit par l'équipe rouge de SecureLayer7. La plupart des barrières de sécurité open source pèsent des centaines de Mo, nécessitent un GPU, et ratent encore les attaques que nous voyons en production. Nous avions besoin de quelque chose que nous pourrions embarquer dans nos propres produits IA et les applications de nos clients sans tout cela.
Comparaison de performance par rapport aux baselines open source → docs/BENCHMARKS.md.
# SDK (zéro dépendance, ~50 Ko) — pare-feu structurel + bundle navigateur
npm i promptpurify
# Ajouter le modèle (~14 Mo ONNX) pour la protection anti-injection de chat
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 # DOIT afficher "OK"
tar xzf promptpurify-model.tar.gz # crée models/l5e/
Le modèle n'est pas dans l'archive npm — le SDK reste léger pour ceux qui ne veulent que le pare-feu structurel (navigateur, edge, RAG). Options de distribution complètes : docs/SAMPLE-DATA.md.
import { createL5eRunner } from "promptpurify/l5";
const guard = await createL5eRunner();
// Dans votre gestionnaire /chat :
const score = await guard.score(userMessage);
if (score >= 0.95) return refusal(); // blocage strict
if (score >= 0.85) flagForReview(userMessage); // avis
const reply = await yourLLM.complete(userMessage); // passage direct
Fonctionne avec Groq, OpenAI, Anthropic, vLLM, LLMs locaux — promptpurify ne communique jamais avec votre LLM, seulement avec votre entrée.
Pour le pare-feu structurel déterministe (neutralisation Unicode, messages cloisonnés par rôle, protection contre l'exfiltration de sortie) voir docs/QUICKSTART.md.
Nous avons construit notre modèle à partir d'une initialisation aléatoire car aucune barrière de sécurité open source existante ne nous offrait le compromis taille / latence dont nous avions besoin pour l'embarquer dans nos propres produits.
Vue d'ensemble de l'architecture → docs/HOW-IT-WORKS.md.
Nous organisons un défi adversarial en direct sur anton.securelayer7.net. Demandez le mot de passe à Son of Anton. Si vous pouvez le faire passer outre la protection, dites-nous comment — SECURITY.md.
Un chatbot de support client fintech équipé de promptpurify, prêt à être exécuté localement :
cd examples/customer-support && npm install
GROQ_API_KEY=gsk_... node server.mjs
# http://localhost:8787
Voir examples/customer-support/README.md.
.safe.Tout ce que nous livrons est signé et vérifiable de bout en bout :
npm audit signatures # ✓ signature de registre vérifiée + attestation de provenance
*.cosign.bundle), une attestation de provenance de build SLSA, un manifeste SHA256, et une SBOM CycloneDX (SBOM.cdx.json).models/l5e/SHA256SUMS — chaque artefact est haché ; vérifié dans le CI à chaque PR.Si l'une de ces vérifications échoue de votre côté, le paquet n'est pas promptpurify — signalez un problème de sécurité dans SECURITY.md.
Le nom et la philosophie de conception sont inspirés par DOMPurify de Cure53 — la même idée, appliquée aux prompts LLM au lieu du HTML. Merci à Mario Heiderich pour avoir suggéré le nom.
MIT pour le SDK et les poids du modèle. Les sources de benchmark que nous évaluons sont listées dans training/CORPUS_LICENSES.json.
Divulgations de sécurité : SECURITY.md.
| promptpurify | barrière de sécurité open source typique |
|---|
| Taille d'installation | ~14 Mo ONNX | 180 Mo – 7 Go |
| Inférence | CPU, quelques ms | GPU recommandé |
| Où il s'exécute | Dans votre processus Node | Sidecar ou API hébergée |
| Coût par appel | 0 $ | $ ou calcul GPU |