すべてのプロダクト
Search
ドキュメントセンター

Microservices Engine:AIコンテンツモデレーション

最終更新日:Apr 19, 2025

このトピックでは、ai-security-guardプラグインを使用してクラウドネイティブ ゲートウェイを Alibaba Cloud Content Moderation に接続し、大規模言語モデル(LLM)の入力と出力をチェックして、AI アプリケーションとの対話のコンプライアンスを確保する方法について説明します。

実行属性

プラグイン実行ステージ: default stage。プラグイン実行優先度: 300

構成の説明

パラメーター

データ型

必須

デフォルト値

説明

serviceName

string

はい

-

サービスの名前。

servicePort

string

はい

-

サービスポート。

serviceHost

string

はい

-

Alibaba Cloud Content Moderation のエンドポイント。

accessKey

string

はい

-

Alibaba Cloud アカウントの AccessKey ID。

secretKey

string

はい

-

Alibaba Cloud アカウントの AccessKey シークレット。

checkRequest

bool

いいえ

false

質問のコンプライアンスをチェックするかどうかを指定します。

checkResponse

bool

いいえ

false

LLM から提供された回答のコンプライアンスをチェックするかどうかを指定します。この属性を true に設定すると、ストリーミング応答ではなく、非ストリーミング応答が生成されます。

requestCheckService

string

いいえ

llm_query_moderation

LLM の入力をチェックするために Alibaba Cloud Content Moderation を使用することを指定します。

responseCheckService

string

いいえ

llm_response_moderation

LLM の出力をチェックするために Alibaba Cloud Content Moderation を使用することを指定します。

requestContentJsonPath

string

いいえ

messages.@reverse.0.content

リクエスト本文でチェックするコンテンツの JSON パス。

responseContentJsonPath

string

いいえ

choices.0.message.content

レスポンス本文でチェックするコンテンツの JSON パス。

responseStreamContentJsonPath

string

いいえ

choices.0.delta.content

ストリーミング レスポンス本文でチェックするコンテンツの JSON パス。

denyCode

int

いいえ

200

コンテンツが準拠していない場合に返される状態コード。

denyMessage

string

いいえ

Alibaba Cloud Content Moderation によって推奨される OpenAI ストリーミングまたは非ストリーミング応答が返されます。

コンテンツが準拠していない場合に返される応答。

前提条件

プラグインが Alibaba Cloud Content Moderation を呼び出すために、DNS タイプのサービスが作成されます。次の図は、DNS タイプのサービスを作成するためのパラメーターを示しています。

image

入力が準拠しているかどうかを確認する

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 サービスのチェック ルールの変更に基づいてチェック ルールが作成されます。

image

エンドポイント、ルート、またはサービス レベルで次のコードを実行して、コンテンツ チェックに 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_01

Alibaba 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"
        }
    ]
}