適用対象: Developer | Basic | Basic v2 | Standard | Standard v2 | Premium | Premium v2
llm-content-safety
ポリシーでは、バックエンド LLM API に送信する前に Azure AI Content Safety サービスに送信することで、大規模言語モデル (LLM) 要求 (プロンプト) にコンテンツの安全性チェックを適用します。 ポリシーが有効になっていて、Azure AI Content Safety が悪意のあるコンテンツを検出すると、API Management によって要求がブロックされ、 403
エラー コードが返されます。
次のようなシナリオでポリシーを使用します。
- 有害なコンテンツまたはヘイト スピーチの定義済みのカテゴリを含む要求をブロックする
- 特定のコンテンツが送信されないようにカスタム ブロックリストを適用する
- 攻撃パターンに一致するプロンプトからシールドする
注
ポリシーの要素と子要素を、ポリシー ステートメントで指定された順序で設定します。 API Management ポリシーを設定または編集する方法について説明します。
[前提条件]
- Azure AI Content Safety リソース。
- コンテンツ セーフティ API 呼び出しをルーティングし、Azure AI Content Safety サービスに対して認証するように構成された API Management バックエンド (
https://<content-safety-service-name>.cognitiveservices.azure.com
形式)。 認証には、Cognitive Services ユーザー ロールを持つマネージド ID をお勧めします。
ポリシー ステートメント
<llm-content-safety backend-id="name of backend entity" shield-prompt="true | false" >
<categories output-type="FourSeverityLevels | EightSeverityLevels">
<category name="Hate | SelfHarm | Sexual | Violence" threshold="integer" />
<!-- If there are multiple categories, add more category elements -->
[...]
</categories>
<blocklists>
<id>blocklist-identifier</id>
<!-- If there are multiple blocklists, add more id elements -->
[...]
</blocklists>
</llm-content-safety>
属性
特性 | 説明 | 必須 | 既定値 |
---|---|---|---|
backend-id | Content-safety API 呼び出しをルーティングする Azure AI Content Safety バックエンドの識別子 (名前)。 ポリシー式を使用できます。 | イエス | なし |
shield-prompt |
true に設定すると、ユーザー攻撃のコンテンツがチェックされます。 それ以外の場合は、このチェックをスキップします。 ポリシー式を使用できます。 |
いいえ | false |
元素
要素 | 説明 | 必須 |
---|---|---|
カテゴリー | カテゴリが検出されたときにブロック要求の設定を指定する category 要素の一覧。 |
いいえ |
blocklists | 検出によって要求がブロックされる Azure AI Content Safety インスタンスの ブロックリストid 要素の一覧。 ポリシー式を使用できます。 |
いいえ |
categories 属性
特性 | 説明 | 必須 | 既定値 |
---|---|---|---|
output-type | Azure AI Content Safety によって重大度レベルがどのように返されるかを指定します。 属性には、次のいずれかの値が必要です。 - FourSeverityLevels : 4 つのレベルの出力重大度: 0,2,4,6。- EightSeverityLevels : 8 レベルの出力重大度: 0,1,2,3,4,5,6,7。ポリシー式を使用できます。 |
いいえ | FourSeverityLevels |
category 属性
特性 | 説明 | 必須 | 既定値 |
---|---|---|---|
名前 | このカテゴリの名前を指定します。 属性には、 Hate 、 SelfHarm 、 Sexual 、 Violence のいずれかの値が必要です。 ポリシー式を使用できます。 |
イエス | なし |
閾 | 要求がブロックされるこのカテゴリのしきい値を指定します。 コンテンツの重大度がしきい値より小さい要求はブロックされません。 値は 0 から 7 の間である必要があります。 ポリシー式を使用できます。 | イエス | なし |
使用方法
- ポリシー セクション: inbound
- ポリシー スコープ: グローバル、ワークスペース、製品、API
- ゲートウェイ: クラシック、v2、従量課金、セルフホステッド、ワークスペース
使用に関する注記
- このポリシーは、完了要求またはチャット完了要求内のすべてのテキスト コンテンツを連結して実行されます。
- 要求が Azure AI Content Safety の文字制限を超えた場合は、
403
エラーが返されます。 - このポリシーは、ポリシー定義ごとに複数回使用できます。
例
次の例では、Azure AI Content Safety サービスを使用して LLM 要求にコンテンツの安全性チェックを適用します。 このポリシーは、重大度レベルが 4 以上の Hate
または Violence
カテゴリの音声を含む要求をブロックします。
shield-prompt
属性は、敵対的攻撃をチェックするためにtrue
に設定されます。
<policies>
<inbound>
<llm-content-safety backend-id="content-safety-backend" shield-prompt="true">
<categories output-type="EightSeverityLevels">
<category name="Hate" threshold="4" />
<category name="Violence" threshold="4" />
</categories>
</llm-content-safety>
</inbound>
</policies>
関連ポリシー
- コンテンツの検証
- llm-token-limit ポリシー
- llm-emit-token-metric ポリシー
関連コンテンツ
ポリシーに対する処理の詳細については、次のトピックを参照してください。
- チュートリアル:API を変換および保護する
- ポリシー ステートメントとその設定の完全な一覧については、ポリシー参照をご覧ください。
- ポリシー表現
- ポリシーを設定または編集する
- ポリシー構成を再利用する
- ポリシー スニペット リポジトリ
- ポリシープレイグラウンドリポジトリ
- Azure API Management ポリシー ツールキット
- ポリシーの作成、説明、トラブルシューティングを行う Copilot のサポートを受ける