Skip to content

検出器

検出器はテキストをスキャンし、パターンに一致する箇所を報告します。pii(), secrets() 等のビルダーが内部で使用しています。

PIIDetector

個人情報を正規表現で検出します。

タイプ検出対象信頼度
emailメールアドレス0.95
phone_international国際電話番号 (+1-555-123-4567)0.85
phone_jp日本の電話番号 (03-1234-5678)0.80
credit_cardクレジットカード番号0.90
my_numberマイナンバー (12桁)0.70
ssn米国社会保障番号 (XXX-XX-XXXX)0.90
ip_addressIPv4 アドレス0.75

使い方

ts
// ビルダー API (推奨)
pii().block()
pii().exclude("ip_address").block()
pii().only("email", "credit_card").block()

SecretsDetector

API キー、トークン、秘密鍵などのパターンを検出します。

タイプ検出対象信頼度
aws_access_keyAWS アクセスキー (AKIA...)0.95
aws_secret_keyAWS シークレットキー0.60
github_tokenGitHub トークン (ghp_, github_pat_)0.95
slack_tokenSlack トークン (xoxb-, xoxp-)0.95
bearer_tokenBearer トークン0.85
private_key秘密鍵 (BEGIN PRIVATE KEY)0.99
api_key汎用 API キーパターン (api_key=...)0.75
google_api_keyGoogle API キー (AIza...)0.90
stripe_keyStripe キー (sk_live_, sk_test_)0.95
generic_secret汎用シークレット (password=, token=)0.70

使い方

ts
secrets().block()
secrets().exclude("generic_secret", "aws_secret_key").block()
secrets().only("github_token", "stripe_key").block()

PromptInjectionDetector

プロンプトインジェクション攻撃をスコアリングベースで検出します。各パターンに重みがあり、累計スコアが閾値を超えると検出されます。

カテゴリ検出対象の例重み
role_override"ignore all instructions", "you are now"0.6 - 0.9
system_prompt_extraction"show me your system prompt"0.75 - 0.8
jailbreak"DAN", "developer mode", "unrestricted"0.7 - 0.9
delimiter_injection<|im_start|>, [INST]0.8 - 0.9
encoded_injection"base64 decode", "rot13"0.5
persona_switch"pretend to be", "roleplay"0.3 - 0.5

使い方

ts
promptInjection().block()                 // デフォルト閾値: 0.7
promptInjection().threshold(0.5).block()  // より厳格に (誤検知が増える可能性)
promptInjection().threshold(0.9).block()  // 緩めに (見逃しが増える可能性)

ContentFilterDetector

ユーザーが定義したパターンでコンテンツをフィルタリングします。

使い方

ts
// 文字列と正規表現を混在可能
contentFilter(["機密", /confidential/i, /社外秘/]).block()

// ラベルを付けて検出結果を識別しやすくする
contentFilter(
  ["internal only", /do not distribute/i],
  { label: "internal_document" }
).warn()

文字列パターンは自動的に大文字小文字を無視する正規表現に変換されます。