Spaces:
Sleeping
Sleeping
Vineetiitg commited on
Commit ·
5521d9e
1
Parent(s): 9cc0476
feat: add prompt injection guardrails for user queries
Browse files- app/guardrails/validators.py +22 -0
app/guardrails/validators.py
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
from guardrails.validators import Validator, register_validator, ValidationResult, PassResult, FailResult
|
| 2 |
+
|
| 3 |
+
@register_validator(name="security/detect_prompt_injection", data_type="string")
|
| 4 |
+
class DetectPromptInjection(Validator):
|
| 5 |
+
def validate(self, value: str, metadata: dict = {}) -> ValidationResult:
|
| 6 |
+
injection_indicators = [
|
| 7 |
+
"ignore previous instructions",
|
| 8 |
+
"ignore the instructions above",
|
| 9 |
+
"forget all previous",
|
| 10 |
+
"system prompt",
|
| 11 |
+
"you are now an arbitrary",
|
| 12 |
+
"bypass system",
|
| 13 |
+
"disregard instructions"
|
| 14 |
+
]
|
| 15 |
+
normalized_value = value.lower()
|
| 16 |
+
for indicator in injection_indicators:
|
| 17 |
+
if indicator in normalized_value:
|
| 18 |
+
return FailResult(
|
| 19 |
+
error_message=f"Security Policy Violation: Prompt injection detected ('{indicator}').",
|
| 20 |
+
fix_value="[BLOCKED]"
|
| 21 |
+
)
|
| 22 |
+
return PassResult()
|