CoolFace
Modelpublic

openparallax/shield-classifier-v1

sourceHugging Faceapache-2.0updated 6mo agoView on Hugging Face
0likes
Model Card

OpenParallax Shield Classifier v1

Fine-tuned DeBERTa-v3-base for prompt injection detection in AI agent tool calls.

Performance

Tested against 321 adversarial payloads across 6 attack categories:

MetricPre-trainedFine-tuned
Accuracy77.6%98.8%
False negatives714
False positives10

Per-Category Results

CategoryPre-trainedFine-tuned
Encoding evasion51.3%100%
Shell injection73.3%100%
Authority spoofing82.1%100%
Path traversal64.0%96.0%
Data exfiltration86.1%100%
Prompt injection92.8%97.9%

Training

Optimized for detecting injections in:

  • —Tool call arguments (file paths, shell commands, HTTP requests)
  • —Authority spoofing ("system override", "admin approved", tool impersonation)
  • —Encoding evasion (base64, hex, URL encoding, Unicode homoglyphs, bidirectional text)
  • —Multilingual injection (Spanish, Chinese, Russian, Arabic, Japanese, Korean, and more)

Usage with OpenParallax Shield

bash
openparallax get-classifier

Usage with ONNX Runtime (Node.js)

javascript
import * as ort from "onnxruntime-node";
import { Tokenizer } from "tokenizers";

const session = await ort.InferenceSession.create("model.onnx");
const tokenizer = Tokenizer.fromFile("tokenizer.json");

const encoded = await tokenizer.encode("your text here");
const inputIds = new ort.Tensor("int64", BigInt64Array.from(encoded.getIds().map(BigInt)), [1, encoded.getIds().length]);
const attentionMask = new ort.Tensor("int64", BigInt64Array.from(encoded.getAttentionMask().map(BigInt)), [1, encoded.getAttentionMask().length]);

const results = await session.run({ input_ids: inputIds, attention_mask: attentionMask });
// logits[0] = SAFE probability, logits[1] = INJECTION probability

License

Apache 2.0