Guardrails
プロバイダーに到達する前に、チャットリクエストをブロックまたはフラグするユーザーごとのキーワードポリシー。
ガードレールは、指定したキーワードをチャットリクエストのボディから検査するユーザーごとのポリシーです。 各ポリシーは action に応じて 2 通りに動作します — block は 一致したリクエストをプロバイダー呼び出し前に拒否し、flag はリクエストをそのまま通過させ、 監査イベントのみを記録します。
ガードレールは PII マスキングとは異なります。マスキングは機微な内容を伏せたうえで リクエストをプロバイダーに送りますが、ガードレールは一致したリクエスト自体をブロック(block) またはフラグ(flag)します。
ポリシー管理#
ポリシーはログインセッション(JWT)で管理します。一覧は GET /v1/guardrails、 更新は PATCH /v1/guardrails/{id}、削除は DELETE /v1/guardrails/{id} を使います。作成は成功時に 201 を返します。
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| name | string | 必須 | ポリシー名。1〜100 文字。 |
| blocked_terms | string[] | 任意 | ブロック/フラグするキーワードの配列。デフォルト値 []。大文字小文字を区別しない部分文字列マッチで、空の項目は除去されます。 |
| action | string | 任意 | block または flag。デフォルト値 block。 |
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 で拒否され、 ボディに error・message・一致したポリシーの guardrail 名が含まれます。プロバイダーは呼び出されないため、クレジットも差し引かれません。
{
"error": "guardrail_blocked",
"message": "Request blocked by a guardrail policy.",
"guardrail": "no-secrets"
}flag ポリシーが一致すると、リクエストはそのまま通過し、監査イベントのみが 記録されます。リクエストの内容は保存されず、ポリシー名と一致したキーワードのみが残ります。