ガードレールをテストする - Amazon Bedrock

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

ガードレールをテストする

ガードレールを作成すると、作業中のドラフト (DRAFT) バージョンを利用できるようになります。作業中のドラフトとは、ガードレールの 1 つのバージョンであり、ユースケースに適した設定に仕上がるまで編集と反復作業を続けることができます。ガードレールの作業中のドラフトやその他のバージョンをテストして、その設定内容がユースケースに適しているかどうかを確認することができます。作業中のドラフトの設定を編集し、さまざまなプロンプトをテストして、ガードレールがプロンプトやレスポンスをどの程度適切に評価し、遮断しているかを確認します。

設定に満足したら、ガードレールのバージョンを作成できます。このバージョンは、作成時点における作業中のドラフトの設定のスナップショットとして機能します。バージョンを使用することで、ガードレールを変更するたびに、本番アプリケーションに効率的にデプロイできます。作業中のドラフトを変更した場合や新しいバージョンを作成した場合、その新しいバージョンをアプリケーションで明示的に使用しない限り、生成 AI アプリケーションには反映されません。

Console
ガードレールが有害なコンテンツを遮断しているかどうかをテストするには
  1. IAM Amazon Bedrock のアクセス許可を持つ ロール AWS Management Console を使用して にサインインし、 で Amazon Bedrock コンソールを開きますhttps://console.aws.amazon.com/bedrock/

  2. 左側のナビゲーションペインから [ガードレール] を選択します。次に、[ガードレール] セクションでガードレールを選択します。

  3. 右側にテストウィンドウが表示されます。テストウィンドウには、次のオプションがあります。

    1. デフォルトでは、ガードレールの作業中のドラフトがテストウィンドウで使用されます。ガードレールの別のバージョンをテストするには、テストウィンドウの上部で [作業中のドラフト] を選択し、バージョンを選択します。

    2. モデルを選択するには、[モデルを選択] を選択します。選択したら、[適用] を選択します。モデルを変更するには、[変更] を選択します。

    3. [プロンプト] ボックスにプロンプトを入力します。

    4. モデルレスポンスを引き出すには、[実行] を選択します。

    5. モデルからレスポンスが返され、[最終応答] ボックスに表示されます (最終レスポンスには、ガードレールによる変更が適宜加えられます)。ガードレールがプロンプトまたはモデルレスポンスをブロックまたはフィルタリングした場合は、ガードレールで検出された違反の数を知らせるメッセージが [ガードレールチェック] の下に表示されます。

    6. プロンプトまたはレスポンスの中で認識されたトピックや有害カテゴリのうち、どれがフィルターを通過 (合格) し、どれがブロックされたかを確認するには、[トレースを表示] を選択します。

    7. [プロンプト] タブと [モデルレスポンス] タブを使用して、ガードレールでフィルタリングまたはブロックされたトピックや有害なカテゴリを表示します。

[テキストのプレイグラウンド] でガードレールをテストすることもできます。プレイグラウンドを選択し、プロンプトをテストする前に [設定] ペインで [ガードレール] を選択してください。

API

モデル呼び出しでガードレールを使用するには、 InvokeModelまたは InvokeModelWithResponseStreamリクエストを送信します。または、会話型アプリケーションを構築する場合は、 Converse API.

リクエストの形式

モデルを呼び出すためのリクエストエンドポイント (ストリーミングありの場合となしの場合) は、次のとおりです。を、使用するモデルの ID modelIdに置き換えます。

  • InvokeModel – POST /model/modelId/invoke HTTP/1.1

  • InvokeModelWithResponseStream – POST /model/modelIdinvoke-with-response-stream HTTP/1.1

両方のAPIオペレーションの ヘッダーは、次の形式です。

Accept: accept Content-Type: contentType X-Amzn-Bedrock-Trace: trace X-Amzn-Bedrock-GuardrailIdentifier: guardrailIdentifier X-Amzn-Bedrock-GuardrailVersion: guardrailVersion

パラメータについて、以下に説明します。

  • レスポンスの推論本文MIMEのタイプAcceptに設定します。デフォルト値は application/json です。

  • リクエストの入力データのMIMEタイプContent-Typeに設定します。デフォルト値は application/json です。

  • X-Amzn-Bedrock-TraceENABLED に設定すると、トレースが有効になり、ガードレールによってブロックされたコンテンツとその理由などを確認できます。

  • X-Amzn-Bedrock-GuardrailIdentifier には、リクエストとモデルレスポンスに適用するガードレールの識別子を指定します。

  • X-Amzn-Bedrock-GuardrailVersion には、リクエストとモデルレスポンスに適用するガードレールのバージョンを指定します。

一般的なリクエスト本文の形式は、次の例のとおりです。tagSuffix プロパティは、入力のタグ付けにのみ使用されます。streamProcessingMode を使用して、ガードレールでストリーミングを同期処理にするか非同期処理にするかを設定することもできます。これは、InvokeModelWithResponseStream でのみ使用できます。

{ <see model details>, "amazon-bedrock-guardrailConfig": { "tagSuffix": "string", "streamProcessingMode": "SYNCHRONOUS" | "ASYNCHRONOUS" } }
警告

次の状況下では、エラーが発生します。

  • ガードレールを有効にしたのに、リクエスト本文に amazon-bedrock-guardrailConfig フィールドがない。

  • ガードレールを無効にしたのに、リクエスト本文に amazon-bedrock-guardrailConfig フィールドを指定した。

  • ガードレールを有効にしたのに、contentTypeapplication/json ではない。

さまざまなモデルのリクエスト本文を確認するには、「Inference request parameters and response fields for foundation models」を参照してください。

注記

[ Cohere Command モデルでは、ガードレールを使用する場合、 num_generationsフィールドで指定できる世代は 1 つだけです。

ガードレールとそのトレースを有効にする場合、モデル呼び出しの一般的なレスポンスの形式 (ストリーミングありの場合となしの場合) は、次のとおりです。各モデルの body の他の部分の形式を確認するには、「Inference request parameters and response fields for foundation models」を参照してください。は、リクエストで指定したものcontentTypeと一致します。

  • InvokeModel

    HTTP/1.1 200 Content-Type: contentType { <see model details for model-specific fields>, "completion": "<model response>", "amazon-bedrock-guardrailAction": "INTERVENED | NONE", "amazon-bedrock-trace": { "guardrail": { "modelOutput": [ "<see model details for model-specific fields>" ], "input": { "sample-guardrailId": { "topicPolicy": { "topics": [ { "name": "string", "type": "string", "action": "string" } ] }, "contentPolicy": { "filters": [ { "type": "string", "confidence": "string", "filterStrength": "string", "action": "string" } ] }, "wordPolicy": { "customWords": [ { "match": "string", "action": "string" } ], "managedWordLists": [ { "match": "string", "type": "string", "action": "string" } ] }, "sensitiveInformationPolicy": { "piiEntities": [ { "type": "string", "match": "string", "action": "string" } ], "regexes": [ { "name": "string", "regex": "string", "match": "string", "action": "string" } ] }, "invocationMetrics": { "guardrailProcessingLatency": "integer", "usage": { "topicPolicyUnits": "integer", "contentPolicyUnits": "integer", "wordPolicyUnits": "integer", "sensitiveInformationPolicyUnits": "integer", "sensitiveInformationPolicyFreeUnits": "integer", "contextualGroundingPolicyUnits": "integer" }, "guardrailCoverage": { "textCharacters": { "guarded": "integer", "total": "integer" } } } } }, "outputs": ["same guardrail trace format as input"] } } }
  • InvokeModelWithResponseStream – 各レスポンスは、bytes フィールドにテキストを含む chunk を返します。例外が発生した場合は、それらの例外も併せて返されます。ガードレールトレースは、最後のチャンクにのみ返されます。

    HTTP/1.1 200 X-Amzn-Bedrock-Content-Type: contentType Content-type: application/json { "chunk": { "bytes": "<blob>" }, "internalServerException": {}, "modelStreamErrorException": {}, "throttlingException": {}, "validationException": {}, "amazon-bedrock-guardrailAction": "INTERVENED | NONE", "amazon-bedrock-trace": { "guardrail": { "modelOutput": ["<see model details for model-specific fields>"], "input": { "sample-guardrailId": { "topicPolicy": { "topics": [ { "name": "string", "type": "string", "action": "string" } ] }, "contentPolicy": { "filters": [ { "type": "string", "confidence": "string", "filterStrength": "string", "action": "string" } ] }, "wordPolicy": { "customWords": [ { "match": "string", "action": "string" } ], "managedWordLists": [ { "match": "string", "type": "string", "action": "string" } ] }, "sensitiveInformationPolicy": { "piiEntities": [ { "type": "string", "match": "string", "action": "string" } ], "regexes": [ { "name": "string", "regex": "string", "match": "string", "action": "string" } ] }, "invocationMetrics": { "guardrailProcessingLatency": "integer", "usage": { "topicPolicyUnits": "integer", "contentPolicyUnits": "integer", "wordPolicyUnits": "integer", "sensitiveInformationPolicyUnits": "integer", "sensitiveInformationPolicyFreeUnits": "integer", "contextualGroundingPolicyUnits": "integer" }, "guardrailCoverage": { "textCharacters": { "guarded": "integer", "total": "integer" } } } } }, "outputs": ["same guardrail trace format as input"] } } }

ガードレールを有効にした場合、レスポンスで次のフィールドが返されます。

  • amazon-bedrock-guardrailAction – ガードレールが INTERVENED かそうでない (NONE) かを指定します。

  • amazon-bedrock-trace – トレースを有効にした場合にのみ表示されます。トレースのリストが含まれています。各トレースは、ガードレールがブロックしたコンテンツに関する情報を提供します。トレースには、次のフィールドが含まれています。

    • modelOutput – モデルからの出力のうち、ブロックされた出力を含むオブジェクト。

    • input – ガードレールによるプロンプトの評価に関して、次の詳細が含まれています。

      • topicPolicytopics (違反となった各トピックポリシーの評価のリスト) が含まれています。各トピックには、次のフィールドが含まれています。

        • name – トピックポリシーの名前。

        • type – トピックを拒否するかどうかを指定します。

        • action – トピックがブロックされたことを指定します。

      • contentPolicyfilters (違反となった各コンテンツフィルターの評価のリスト) が含まれています。各フィルターには、次のフィールドが含まれています。

        • type – コンテンツフィルターのカテゴリ。

        • confidence – 出力が有害カテゴリに分類される可能性を示す信頼度。

        • action – コンテンツがブロックされたことを指定します。この結果は、ガードレールに設定されているフィルターの強度によって異なります。

      • wordPolicy – フィルタリングされたカスタム単語とマネージド単語のコレクションと、それらの単語に対する評価が含まれています。各リストには、次のフィールドが含まれています。

        • customWords – フィルターに一致したカスタム単語のリスト。

          • match – フィルターに一致した単語またはフレーズ。

          • action – 単語がブロックされたことを指定します。

        • managedWordLists – フィルターに一致したマネージド単語のリスト。

          • match – フィルターに一致した単語またはフレーズ。

          • type – フィルターに一致したマネージド単語のタイプを指定します。例えば、冒涜的な表現フィルターと一致した場合は PROFANITY です。

          • action – 単語がブロックされたことを指定します。

      • sensitiveInformationPolicy – 以下のオブジェクトが含まれます。このオブジェクトには、違反した個人を特定できる情報 (PII) と正規表現フィルターの評価が含まれています。

        • piiEntities – 違反した各PIIフィルターの評価のリスト。各フィルターには、次のフィールドが含まれています。

          • type - 見つかったPIIタイプ。

          • match – フィルターに一致した単語またはフレーズ。

          • action – 単語がブロックされたか (BLOCKED)、識別子で置き換えられたか (ANONYMIZED) を指定します。

        • regexes – 違反となった各正規表現フィルターの評価のリスト。各フィルターには、次のフィールドが含まれています。

          • name – 正規表現フィルターの名前。

          • regex - 見つかったPIIタイプ。

          • match – フィルターに一致した単語またはフレーズ。

          • action – 単語がブロックされたか (BLOCKED)、識別子で置き換えられたか (ANONYMIZED) を指定します。

    • outputs – ガードレールによるモデルレスポンスの評価に関する詳細のリスト。リスト内の各項目は、input オブジェクトの形式に一致するオブジェクトです。詳細については、input フィールドを参照してください。