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 ¶
func (g *OpenAIModerationGuardrail) Check(ctx context.Context, input *GuardrailInput) error
Check 检查内容
func (*OpenAIModerationGuardrail) Description ¶
func (g *OpenAIModerationGuardrail) Description() string
Description 返回防护栏描述
func (*OpenAIModerationGuardrail) Name ¶
func (g *OpenAIModerationGuardrail) Name() string
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 ¶
func (g *PIIDetectionGuardrail) Check(ctx context.Context, input *GuardrailInput) error
Check 检查内容
func (*PIIDetectionGuardrail) Description ¶
func (g *PIIDetectionGuardrail) Description() string
Description 返回防护栏描述
type PIIOption ¶
type PIIOption func(*PIIDetectionGuardrail)
PIIOption PII 选项
func WithCustomPattern ¶
WithCustomPattern 添加自定义 PII 模式
func WithDisableCreditCardCheck ¶
func WithDisableCreditCardCheck() PIIOption
WithDisableCreditCardCheck 禁用信用卡检查
type PromptInjectionGuardrail ¶
type PromptInjectionGuardrail struct {
// contains filtered or unexported fields
}
PromptInjectionGuardrail 提示注入攻击检测防护栏
func NewPromptInjectionGuardrail ¶
func NewPromptInjectionGuardrail(opts ...PromptInjectionOption) *PromptInjectionGuardrail
NewPromptInjectionGuardrail 创建提示注入检测防护栏
func (*PromptInjectionGuardrail) Check ¶
func (g *PromptInjectionGuardrail) Check(ctx context.Context, input *GuardrailInput) error
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 添加自定义关键词