Skip to content

Guardrails

プロバイダーに到達する前に、チャットリクエストをブロックまたはフラグするユーザーごとのキーワードポリシー。

ガードレールは、指定したキーワードをチャットリクエストのボディから検査するユーザーごとのポリシーです。 各ポリシーは action に応じて 2 通りに動作します — block は 一致したリクエストをプロバイダー呼び出し前に拒否し、flag はリクエストをそのまま通過させ、 監査イベントのみを記録します。

ガードレールは PII マスキングとは異なります。マスキングは機微な内容を伏せたうえで リクエストをプロバイダーに送りますが、ガードレールは一致したリクエスト自体をブロック(block) またはフラグ(flag)します。

ポリシー管理#

ポリシーはログインセッション(JWT)で管理します。一覧は GET /v1/guardrails、 更新は PATCH /v1/guardrails/{id}、削除は DELETE /v1/guardrails/{id} を使います。作成は成功時に 201 を返します。

POST/v1/guardrails
パラメータ必須説明
namestring必須ポリシー名。1〜100 文字。
blocked_termsstring[]任意ブロック/フラグするキーワードの配列。デフォルト値 []。大文字小文字を区別しない部分文字列マッチで、空の項目は除去されます。
actionstring任意block または flag。デフォルト値 block
create guardrail
curl https://apirouter.pleum.ai/v1/guardrails \
  -H "Authorization: Bearer <JWT>" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "no-secrets",
    "blocked_terms": ["api_key", "AWS_SECRET", "password"],
    "action": "block"
  }'

適用方式#

ガードレールは /v1/chat/completions/v1/messages /v1/responses の呼び出し時に、プロバイダーが呼び出されるに 適用されます。マッチングはテキストパートのみを対象とし、画像パートは無視されます。

block ポリシーが一致すると、リクエストは HTTP 403 で拒否され、 ボディに errormessage・一致したポリシーの guardrail 名が含まれます。プロバイダーは呼び出されないため、クレジットも差し引かれません。

403 guardrail_blocked
{
  "error": "guardrail_blocked",
  "message": "Request blocked by a guardrail policy.",
  "guardrail": "no-secrets"
}

flag ポリシーが一致すると、リクエストはそのまま通過し、監査イベントのみが 記録されます。リクエストの内容は保存されず、ポリシー名と一致したキーワードのみが残ります。

マッチングはテキストパートに対する、大文字小文字を区別しない部分文字列マッチです。単語境界を考慮しないため、 キーワードがより長い単語の一部として現れても一致します。