Documentation
¶
Index ¶
- Variables
- func BuildInjectionDetector(cfg *guardrails.InjectionConfig) guardrails.InputGuardrail
- func BuildLengthValidator(cfg *guardrails.LengthConfig) guardrails.InputGuardrail
- func BuildSanitizer(cfg *guardrails.SanitizerConfig) guardrails.InputGuardrail
- func DefaultBuilders() guardrails.InputChainBuilders
- type InjectionDetector
- func (d *InjectionDetector) AddPatterns(patterns ...string) *InjectionDetector
- func (d *InjectionDetector) CaseSensitive(sensitive bool) *InjectionDetector
- func (d *InjectionDetector) Check(_ context.Context, input string) (*guardrails.Result, error)
- func (d *InjectionDetector) Name() string
- func (d *InjectionDetector) WithAction(action guardrails.Action) *InjectionDetector
- func (d *InjectionDetector) WithPatterns(patterns []string) *InjectionDetector
- func (d *InjectionDetector) WithSeverity(severity guardrails.Severity) *InjectionDetector
- type LengthValidator
- type PatternValidator
- func (v *PatternValidator) AllowPatterns(patterns ...string) *PatternValidator
- func (v *PatternValidator) BlockPatterns(patterns ...string) *PatternValidator
- func (v *PatternValidator) Check(_ context.Context, input string) (*guardrails.Result, error)
- func (v *PatternValidator) Name() string
- func (v *PatternValidator) WithAction(action guardrails.Action) *PatternValidator
- func (v *PatternValidator) WithSeverity(severity guardrails.Severity) *PatternValidator
- type Sanitizer
- func (s *Sanitizer) Check(_ context.Context, input string) (*guardrails.Result, error)
- func (s *Sanitizer) MaxLength(length int) *Sanitizer
- func (s *Sanitizer) Name() string
- func (s *Sanitizer) NormalizeUnicode(normalize bool) *Sanitizer
- func (s *Sanitizer) StripHTML(strip bool) *Sanitizer
- func (s *Sanitizer) TrimWhitespace(trim bool) *Sanitizer
Constants ¶
This section is empty.
Variables ¶
var DefaultInjectionPatterns = []string{
`(?i)ignore\s+(all\s+)?(previous|prior|above)\s+(instructions?|prompts?|rules?)`,
`(?i)disregard\s+(all\s+)?(previous|prior|above)\s+(instructions?|prompts?|rules?)`,
`(?i)forget\s+(all\s+)?(previous|prior|above)\s+(instructions?|prompts?|rules?)`,
`(?i)you\s+are\s+now\s+`,
`(?i)pretend\s+(to\s+be|you\s+are)\s+`,
`(?i)act\s+as\s+(if\s+you\s+are\s+)?`,
`(?i)roleplay\s+as\s+`,
`(?i)^system\s*:`,
`(?i)^assistant\s*:`,
`(?i)\[system\]`,
`(?i)\[assistant\]`,
`(?i)jailbreak`,
`(?i)dan\s+mode`,
`(?i)developer\s+mode`,
`(?i)<\s*system\s*>`,
`(?i)<\s*/\s*system\s*>`,
`(?i)\[\[system\]\]`,
`(?i)base64\s*:`,
}
DefaultInjectionPatterns contains common prompt injection patterns.
Functions ¶
func BuildInjectionDetector ¶
func BuildInjectionDetector(cfg *guardrails.InjectionConfig) guardrails.InputGuardrail
BuildInjectionDetector creates an InjectionDetector from config.
func BuildLengthValidator ¶
func BuildLengthValidator(cfg *guardrails.LengthConfig) guardrails.InputGuardrail
BuildLengthValidator creates a LengthValidator from config.
func BuildSanitizer ¶
func BuildSanitizer(cfg *guardrails.SanitizerConfig) guardrails.InputGuardrail
BuildSanitizer creates a Sanitizer from config.
func DefaultBuilders ¶
func DefaultBuilders() guardrails.InputChainBuilders
DefaultBuilders returns the standard input guardrail builders. Use with Config.BuildInputChain(input.DefaultBuilders()).
Types ¶
type InjectionDetector ¶
type InjectionDetector struct {
// contains filtered or unexported fields
}
InjectionDetector detects prompt injection attempts.
func NewInjectionDetector ¶
func NewInjectionDetector() *InjectionDetector
NewInjectionDetector creates a new injection detector with default patterns.
func (*InjectionDetector) AddPatterns ¶
func (d *InjectionDetector) AddPatterns(patterns ...string) *InjectionDetector
AddPatterns adds additional patterns to the existing ones.
func (*InjectionDetector) CaseSensitive ¶
func (d *InjectionDetector) CaseSensitive(sensitive bool) *InjectionDetector
CaseSensitive sets whether pattern matching is case-sensitive.
func (*InjectionDetector) Check ¶
func (d *InjectionDetector) Check(_ context.Context, input string) (*guardrails.Result, error)
Check detects prompt injection in the input.
func (*InjectionDetector) Name ¶
func (d *InjectionDetector) Name() string
Name returns the guardrail name.
func (*InjectionDetector) WithAction ¶
func (d *InjectionDetector) WithAction(action guardrails.Action) *InjectionDetector
WithAction sets the action to take on detection.
func (*InjectionDetector) WithPatterns ¶
func (d *InjectionDetector) WithPatterns(patterns []string) *InjectionDetector
WithPatterns adds custom patterns (replaces defaults if called).
func (*InjectionDetector) WithSeverity ¶
func (d *InjectionDetector) WithSeverity(severity guardrails.Severity) *InjectionDetector
WithSeverity sets the severity of detections.
type LengthValidator ¶
type LengthValidator struct {
// contains filtered or unexported fields
}
LengthValidator validates input length.
func NewLengthValidator ¶
func NewLengthValidator(minLength, maxLength int) *LengthValidator
NewLengthValidator creates a new length validator.
func (*LengthValidator) Check ¶
func (v *LengthValidator) Check(_ context.Context, input string) (*guardrails.Result, error)
Check validates the input length.
func (*LengthValidator) Name ¶
func (v *LengthValidator) Name() string
Name returns the guardrail name.
func (*LengthValidator) WithAction ¶
func (v *LengthValidator) WithAction(action guardrails.Action) *LengthValidator
WithAction sets the action to take on violation.
func (*LengthValidator) WithSeverity ¶
func (v *LengthValidator) WithSeverity(severity guardrails.Severity) *LengthValidator
WithSeverity sets the severity of violations.
type PatternValidator ¶
type PatternValidator struct {
// contains filtered or unexported fields
}
PatternValidator validates input against regex patterns.
func NewPatternValidator ¶
func NewPatternValidator() *PatternValidator
NewPatternValidator creates a new pattern validator.
func (*PatternValidator) AllowPatterns ¶
func (v *PatternValidator) AllowPatterns(patterns ...string) *PatternValidator
AllowPatterns sets patterns that input must match (at least one).
func (*PatternValidator) BlockPatterns ¶
func (v *PatternValidator) BlockPatterns(patterns ...string) *PatternValidator
BlockPatterns sets patterns that input must NOT match.
func (*PatternValidator) Check ¶
func (v *PatternValidator) Check(_ context.Context, input string) (*guardrails.Result, error)
Check validates the input against patterns.
func (*PatternValidator) Name ¶
func (v *PatternValidator) Name() string
Name returns the guardrail name.
func (*PatternValidator) WithAction ¶
func (v *PatternValidator) WithAction(action guardrails.Action) *PatternValidator
WithAction sets the action to take on violation.
func (*PatternValidator) WithSeverity ¶
func (v *PatternValidator) WithSeverity(severity guardrails.Severity) *PatternValidator
WithSeverity sets the severity of violations.
type Sanitizer ¶
type Sanitizer struct {
// contains filtered or unexported fields
}
Sanitizer cleans and normalizes user input.
func NewSanitizer ¶
func NewSanitizer() *Sanitizer
NewSanitizer creates a new input sanitizer with sensible defaults.
func (*Sanitizer) Check ¶
Check sanitizes the input and returns a modified result if changes were made.
func (*Sanitizer) NormalizeUnicode ¶
NormalizeUnicode enables/disables Unicode normalization (NFC).
func (*Sanitizer) TrimWhitespace ¶
TrimWhitespace enables/disables whitespace trimming.