diff --git a/docs.json b/docs.json index d9a8be99..3b10e77a 100644 --- a/docs.json +++ b/docs.json @@ -374,6 +374,7 @@ "integrations/guardrails/palo-alto-panw-prisma", "integrations/guardrails/pillar", "integrations/guardrails/prompt-security", + "integrations/guardrails/regex", "integrations/guardrails/bring-your-own-guardrails" ] }, diff --git a/integrations/guardrails/regex.mdx b/integrations/guardrails/regex.mdx new file mode 100644 index 00000000..0feeac90 --- /dev/null +++ b/integrations/guardrails/regex.mdx @@ -0,0 +1,97 @@ +--- +title: "Replace Custom Regex Patterns" +description: "Redact custom patterns with Regex in Portkey." +--- + +For more granular control over pattern redaction, you can create custom patterns using Portkey's **Regex Match** guardrail with redaction capabilities. This allows you to define specific regex patterns for sensitive information unique to your use case. + +### Setting Up Custom Regex Patterns + + + + + +1. **Navigate to Guardrails**: Go to the `Guardrails` page and click `Create` +2. **Select Regex Match**: Choose the "Regex Replace" guardrail from the BASIC category +3. **Configure the Pattern**: + - **Regex Rule**: Enter your regex pattern to match specific data (e.g., `\b\d{3}-\d{2}-\d{4}\b` for SSN patterns) + - **Replacement Text**: Define what to replace matches with (e.g., `[REDACTED]`, `*****`, `[SSN_HIDDEN]`) + +4. **Save the Guardrail**: Name your guardrail and save it to get the associated Guardrail ID + +### Common Regex Patterns for Sensitive Data + + +| Pattern Type | Regex Pattern | Replacement Example | +|----------|---------------|-------------------| +| Credit Card | `\b\d{4}[- ]?\d{4}[- ]?\d{4}[- ]?\d{4}\b` | `[CREDIT_CARD]` | +| Social Security Number | `\b\d{3}-\d{2}-\d{4}\b` | `[SSN_REDACTED]` | +| Phone Numbers | `\b\d{3}[-.]\d{3}[-.]\d{4}\b` | `[PHONE_HIDDEN]` | +| Email Addresses | `\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}\b` | `[EMAIL_REDACTED]` | +| Custom Employee IDs | `EMP-\d{6}` | `[EMPLOYEE_ID]` | + + +### Adding to Your Config + +Once you've created your custom regex pattern guardrail, add it to your Portkey config: + +```json +{ + "before_request_hooks": [ + {"id": "your-guardrail-id"} + ], + "after_request_hooks": [ + {"id": "your-guardrail-id"} + ] +} +``` + + +You can add the same guardrail to both `before_request_hooks` (input guardrails) and `after_request_hooks` (output guardrails) to scan and redact regex patterns in both user inputs and LLM responses. + + +### Example Implementation + + + +```js +const portkey = new Portkey({ + apiKey: "PORTKEY_API_KEY", + config: "pc-***" // Config with custom regex pattern redaction +}); + +const response = await portkey.chat.completions.create({ + model: "@your-model-slug", + messages: [ + { + role: "user", + content: "My SSN is 123-45-6789 and credit card is 4532-1234-5678-9012" + } + ] +}); +``` + + +```py +portkey = Portkey( + api_key="PORTKEY_API_KEY", + config="pc-***" # Config with custom regex pattern redaction +) + +response = portkey.chat.completions.create( + model="@your-model-slug", + messages=[ + { + "role": "user", + "content": "My SSN is 123-45-6789 and credit card is 4532-1234-5678-9012" + } + ] +) +``` + + + +With the custom regex guardrail configured, the input would be automatically transformed to: +``` +"My SSN is [SSN_REDACTED] and credit card is [CREDIT_CARD]" +``` diff --git a/product/guardrails/pii-redaction.mdx b/product/guardrails/pii-redaction.mdx index 612c1bf5..afa8ccb1 100644 --- a/product/guardrails/pii-redaction.mdx +++ b/product/guardrails/pii-redaction.mdx @@ -23,7 +23,7 @@ Redact `Phone number`, `Email addresses`, `Location information`, `IP addresses` Based on Patronus's EnterprisePII dataset, this guardrail can detect and redact confidential information typically found in business documents like meeting notes, commercial contracts, marketing emails, performance reviews, and more - + Pangea's redact feature can redact PII like geographic locations, payment card industry (PCI) data, and many other types of sensitive information, with support for rule customization @@ -173,10 +173,6 @@ You can track request transformations through two key indicators in the request/ - Maintain records of what types of PII you're scanning for - Document any specific compliance requirements being addressed -4. **Custom Regex Testing**: - - Test your regex patterns thoroughly before deploying - - Use regex testing tools to validate pattern accuracy - - Consider edge cases and variations in data formats ## Security Considerations @@ -214,13 +210,13 @@ If you experience issues: -For pre-built guardrails, redaction patterns are standardized. However, you can create fully custom patterns using Portkey's Regex Match guardrail with redaction enabled. +Currently, redaction patterns are standardized and not customizable. -Each instance receives a numbered identifier (e.g., `{{EMAIL_ADDRESS_1}}`, `{{EMAIL_ADDRESS_2}}`, etc.) or your custom replacement text for regex-based redaction. +Each instance receives a numbered identifier (e.g., `{{EMAIL_ADDRESS_1}}`, `{{EMAIL_ADDRESS_2}}`, etc.). -Impact varies by guardrail provider and request complexity. Custom regex patterns with complex expressions may add minimal latency. +Impact varies by guardrail provider and request complexity. Custom regex patterns with complex expressions may add minimal latency. Yes, the feature works with any LLM supported by Portkey.