guardrails

package
v0.22.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 4, 2025 License: MIT Imports: 6 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type CheckTrigger

type CheckTrigger string

CheckTrigger 检查触发类型

const (
	// CheckTriggerInputNotAllowed 输入不允许
	CheckTriggerInputNotAllowed CheckTrigger = "input_not_allowed"

	// CheckTriggerPIIDetected PII 检测到
	CheckTriggerPIIDetected CheckTrigger = "pii_detected"

	// CheckTriggerPromptInjection 提示注入检测到
	CheckTriggerPromptInjection CheckTrigger = "prompt_injection"

	// CheckTriggerToxicContent 有毒内容检测到
	CheckTriggerToxicContent CheckTrigger = "toxic_content"

	// CheckTriggerCustom 自定义触发
	CheckTriggerCustom CheckTrigger = "custom"
)

type Guardrail

type Guardrail interface {
	// Check 同步检查输入内容
	// 如果检测到违规内容,返回 error
	Check(ctx context.Context, input *GuardrailInput) error

	// Name 返回防护栏的名称
	Name() string

	// Description 返回防护栏的描述
	Description() string
}

Guardrail 防护栏接口 - 用于检查输入内容的安全性

type GuardrailChain

type GuardrailChain struct {
	// contains filtered or unexported fields
}

GuardrailChain 防护栏链 - 依次执行多个防护栏

func NewGuardrailChain

func NewGuardrailChain(guardrails ...Guardrail) *GuardrailChain

NewGuardrailChain 创建防护栏链

func (*GuardrailChain) Add

func (gc *GuardrailChain) Add(guardrail Guardrail) *GuardrailChain

Add 添加防护栏到链中

func (*GuardrailChain) Check

func (gc *GuardrailChain) Check(ctx context.Context, input *GuardrailInput) error

Check 依次执行所有防护栏检查

func (*GuardrailChain) Guardrails

func (gc *GuardrailChain) Guardrails() []Guardrail

Guardrails 获取所有防护栏

type GuardrailError

type GuardrailError struct {
	// GuardrailName 触发错误的防护栏名称
	GuardrailName string

	// Trigger 触发类型
	Trigger CheckTrigger

	// Message 错误消息
	Message string

	// Details 详细信息
	Details map[string]any

	// ShouldMask 是否应该掩码而不是拒绝
	ShouldMask bool

	// MaskedContent 掩码后的内容(如果 ShouldMask=true)
	MaskedContent string
}

GuardrailError 防护栏错误

func (*GuardrailError) Error

func (e *GuardrailError) Error() string

type GuardrailInput

type GuardrailInput struct {
	// Content 文本内容
	Content string

	// Images 图片 URL 列表
	Images []string

	// Metadata 额外元数据
	Metadata map[string]any

	// UserID 用户 ID(可选)
	UserID string

	// SessionID 会话 ID(可选)
	SessionID string
}

GuardrailInput 防护栏输入

type ModerationCategory

type ModerationCategory string

ModerationCategory OpenAI 审核类别

const (
	CategorySexual                ModerationCategory = "sexual"
	CategorySexualMinors          ModerationCategory = "sexual/minors"
	CategoryHarassment            ModerationCategory = "harassment"
	CategoryHarassmentThreatening ModerationCategory = "harassment/threatening"
	CategoryHate                  ModerationCategory = "hate"
	CategoryHateThreatening       ModerationCategory = "hate/threatening"
	CategoryIllicit               ModerationCategory = "illicit"
	CategoryIllicitViolent        ModerationCategory = "illicit/violent"
	CategorySelfHarm              ModerationCategory = "self-harm"
	CategorySelfHarmIntent        ModerationCategory = "self-harm/intent"
	CategorySelfHarmInstructions  ModerationCategory = "self-harm/instructions"
	CategoryViolence              ModerationCategory = "violence"
	CategoryViolenceGraphic       ModerationCategory = "violence/graphic"
)

type ModerationOption

type ModerationOption func(*OpenAIModerationGuardrail)

ModerationOption 审核选项

func WithModerationAPIKey

func WithModerationAPIKey(apiKey string) ModerationOption

WithModerationAPIKey 设置 API Key

func WithModerationModel

func WithModerationModel(model string) ModerationOption

WithModerationModel 设置审核模型

func WithRaiseForCategories

func WithRaiseForCategories(categories ...string) ModerationOption

WithRaiseForCategories 设置触发的类别

type OpenAIModerationGuardrail

type OpenAIModerationGuardrail struct {
	// contains filtered or unexported fields
}

OpenAIModerationGuardrail OpenAI 内容审核防护栏

func NewOpenAIModerationGuardrail

func NewOpenAIModerationGuardrail(opts ...ModerationOption) *OpenAIModerationGuardrail

NewOpenAIModerationGuardrail 创建 OpenAI 审核防护栏

func (*OpenAIModerationGuardrail) Check

Check 检查内容

func (*OpenAIModerationGuardrail) Description

func (g *OpenAIModerationGuardrail) Description() string

Description 返回防护栏描述

func (*OpenAIModerationGuardrail) Name

Name 返回防护栏名称

type PIIDetectionGuardrail

type PIIDetectionGuardrail struct {
	// contains filtered or unexported fields
}

PIIDetectionGuardrail PII(个人身份信息)检测防护栏

func NewPIIDetectionGuardrail

func NewPIIDetectionGuardrail(opts ...PIIOption) *PIIDetectionGuardrail

NewPIIDetectionGuardrail 创建 PII 检测防护栏

func (*PIIDetectionGuardrail) Check

Check 检查内容

func (*PIIDetectionGuardrail) Description

func (g *PIIDetectionGuardrail) Description() string

Description 返回防护栏描述

func (*PIIDetectionGuardrail) Name

func (g *PIIDetectionGuardrail) Name() string

Name 返回防护栏名称

type PIIOption

type PIIOption func(*PIIDetectionGuardrail)

PIIOption PII 选项

func WithCustomPattern

func WithCustomPattern(name string, pattern *regexp.Regexp) PIIOption

WithCustomPattern 添加自定义 PII 模式

func WithDisableCreditCardCheck

func WithDisableCreditCardCheck() PIIOption

WithDisableCreditCardCheck 禁用信用卡检查

func WithDisableEmailCheck

func WithDisableEmailCheck() PIIOption

WithDisableEmailCheck 禁用邮箱检查

func WithDisablePhoneCheck

func WithDisablePhoneCheck() PIIOption

WithDisablePhoneCheck 禁用电话检查

func WithDisableSSNCheck

func WithDisableSSNCheck() PIIOption

WithDisableSSNCheck 禁用 SSN 检查

func WithMaskPII

func WithMaskPII(mask bool) PIIOption

WithMaskPII 启用 PII 掩码(而不是拒绝)

type PIIType

type PIIType string

PIIType PII 类型

const (
	PIITypeSSN        PIIType = "SSN"        // 社会安全号
	PIITypeCreditCard PIIType = "CreditCard" // 信用卡
	PIITypeEmail      PIIType = "Email"      // 邮箱
	PIITypePhone      PIIType = "Phone"      // 电话号码
	PIITypeIPAddress  PIIType = "IPAddress"  // IP 地址
)

type PromptInjectionGuardrail

type PromptInjectionGuardrail struct {
	// contains filtered or unexported fields
}

PromptInjectionGuardrail 提示注入攻击检测防护栏

func NewPromptInjectionGuardrail

func NewPromptInjectionGuardrail(opts ...PromptInjectionOption) *PromptInjectionGuardrail

NewPromptInjectionGuardrail 创建提示注入检测防护栏

func (*PromptInjectionGuardrail) Check

Check 检查内容

func (*PromptInjectionGuardrail) Description

func (g *PromptInjectionGuardrail) Description() string

Description 返回防护栏描述

func (*PromptInjectionGuardrail) Name

func (g *PromptInjectionGuardrail) Name() string

Name 返回防护栏名称

type PromptInjectionOption

type PromptInjectionOption func(*PromptInjectionGuardrail)

PromptInjectionOption 提示注入选项

func WithCaseSensitive

func WithCaseSensitive(sensitive bool) PromptInjectionOption

WithCaseSensitive 启用大小写敏感

func WithCustomInjectionPattern

func WithCustomInjectionPattern(pattern string) PromptInjectionOption

WithCustomInjectionPattern 添加自定义注入模式

func WithCustomKeyword

func WithCustomKeyword(keyword string) PromptInjectionOption

WithCustomKeyword 添加自定义关键词

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL