このトピックでは、ai-security-guardプラグインを使用してクラウドネイティブ ゲートウェイを Alibaba Cloud Content Moderation に接続し、大規模言語モデル(LLM)の入力と出力をチェックして、AI アプリケーションとの対話のコンプライアンスを確保する方法について説明します。
実行属性
プラグイン実行ステージ: default stage。プラグイン実行優先度: 300。
構成の説明
パラメーター | データ型 | 必須 | デフォルト値 | 説明 |
| string | はい | - | サービスの名前。 |
| string | はい | - | サービスポート。 |
| string | はい | - | Alibaba Cloud Content Moderation のエンドポイント。 |
| string | はい | - | Alibaba Cloud アカウントの AccessKey ID。 |
| string | はい | - | Alibaba Cloud アカウントの AccessKey シークレット。 |
| bool | いいえ | false | 質問のコンプライアンスをチェックするかどうかを指定します。 |
| bool | いいえ | false | LLM から提供された回答のコンプライアンスをチェックするかどうかを指定します。この属性を true に設定すると、ストリーミング応答ではなく、非ストリーミング応答が生成されます。 |
| string | いいえ | llm_query_moderation | LLM の入力をチェックするために Alibaba Cloud Content Moderation を使用することを指定します。 |
| string | いいえ | llm_response_moderation | LLM の出力をチェックするために Alibaba Cloud Content Moderation を使用することを指定します。 |
| string | いいえ |
| リクエスト本文でチェックするコンテンツの JSON パス。 |
| string | いいえ |
| レスポンス本文でチェックするコンテンツの JSON パス。 |
| string | いいえ |
| ストリーミング レスポンス本文でチェックするコンテンツの JSON パス。 |
| int | いいえ | 200 | コンテンツが準拠していない場合に返される状態コード。 |
| string | いいえ | Alibaba Cloud Content Moderation によって推奨される OpenAI ストリーミングまたは非ストリーミング応答が返されます。 | コンテンツが準拠していない場合に返される応答。 |
例
前提条件
プラグインが Alibaba Cloud Content Moderation を呼び出すために、DNS タイプのサービスが作成されます。次の図は、DNS タイプのサービスを作成するためのパラメーターを示しています。

入力が準拠しているかどうかを確認する
serviceName: safecheck.dns
servicePort: 443
serviceHost: "green-cip.cn-shanghai.aliyuncs.com"
accessKey: "XXXXXXXXX"
secretKey: "XXXXXXXXXXXXXXX"
checkRequest: true入力と出力が準拠しているかどうかを確認する
serviceName: safecheck.dns
servicePort: 443
serviceHost: green-cip.cn-shanghai.aliyuncs.com
accessKey: "XXXXXXXXX"
secretKey: "XXXXXXXXXXXXXXX"
checkRequest: true
checkResponse: trueカスタム コンテンツ モデレーション サービスを構成する
エンドポイント、ルート、またはサービスに対して異なるコンテンツ モデレーション サービスを構成して、さまざまなシナリオに適応させることができます。この例では、コンテンツ モデレーション サービス llm_query_moderation_01 が作成されます。このコンテンツ モデレーション サービスでは、llm_query_moderation サービスのチェック ルールの変更に基づいてチェック ルールが作成されます。

エンドポイント、ルート、またはサービス レベルで次のコードを実行して、コンテンツ チェックに llm_query_moderation_01 サービスを指定できます。
serviceName: safecheck.dns
servicePort: 443
serviceHost: "green-cip.cn-shanghai.aliyuncs.com"
accessKey: "XXXXXXXXX"
secretKey: "XXXXXXXXXXXXXXX"
checkRequest: true
requestCheckService: llm_query_moderation_01Alibaba Cloud Model Studio など、OpenAI プロトコルを使用しないサービスを構成する
serviceName: safecheck.dns
servicePort: 443
serviceHost: "green-cip.cn-shanghai.aliyuncs.com"
accessKey: "XXXXXXXXX"
secretKey: "XXXXXXXXXXXXXXX"
checkRequest: true
checkResponse: true
requestContentJsonPath: "input.prompt"
responseContentJsonPath: "output.text"
denyCode: 200
denyMessage: "Sorry, I cannot answer your question."可観測性
メトリック
AI-Security-Guard プラグインは、次のメトリックを提供します。
ai_sec_request_deny: コンテンツ モデレーションに失敗した質問の数。ai_sec_response_deny: コンテンツ モデレーションに失敗した LLM 提供の回答の数。
トレース分析
トレース分析を有効にすると、AI-Security-Guard プラグインはクエリ スパンに次の属性を追加します。
ai_sec_risklabel: クエリがヒットしたリスクのタイプ。ai_sec_deny_phase: リスクが検出されたクエリのステージ。有効な値: request および response。
例
curl http://localhost/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-4o-mini",
"messages": [
{
"role": "user",
"content": "A non-compliant question." // 準拠していない質問。
}
]
}'質問内容は検出のために Alibaba Cloud Content Moderation に送信されます。コンテンツが準拠していない場合、ゲートウェイは次の回答を返します。
{
"id": "chatcmpl-123",
"object": "chat.completion",
"created": 1677652288,
"model": "gpt-4o-mini",
"system_fingerprint": "fp_44709d6fcb",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "As an AI assistant, I cannot provide content on sensitive topics such as pornography, violence, and politics. You are welcome to ask other questions.", // AIアシスタントとして、ポルノ、暴力、政治などのセンシティブなトピックに関するコンテンツを提供することはできません。他の質問を歓迎します。
},
"logprobs": null,
"finish_reason": "stop"
}
]
}