ユーザー入力にタグを適用してコンテンツをフィルタリングする - Amazon Bedrock

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

ユーザー入力にタグを適用してコンテンツをフィルタリングする

入力タグを使用して、入力テキスト内の特定のコンテンツをガードレールによる処理対象としてマークすることができます。入力の特定の部分にだけガードレールを適用し、他の部分は未処理のままにする場合に便利です。

例えば、RAGアプリケーションの入力プロンプトには、システムプロンプト、信頼できるドキュメントソースからの検索結果、およびユーザークエリが含まれる場合があります。システムプロンプトは開発者、検索結果は信頼できるソースがそれぞれ提供元であるため、この場合、ユーザークエリだけをガードレールで評価すれば十分です。

別の例として、会話型アプリケーションの入力プロンプトに、システムプロンプト、会話履歴、現在のユーザー入力が含まれている場合があります。システムプロンプトは開発者固有の指示であり、会話履歴に含まれている過去のユーザー入力とモデルレスポンスは、既にガードレールで評価されている可能性があります。このような場合は、現在のユーザー入力のみを評価することができます。

入力タグを使用すれば、入力プロンプトのどの部分をガードレールで処理および評価するかを細かく制御し、ユースケースに合わせて保護対策をカスタマイズできます。また、入力プロンプト全体ではなく、入力の比較的短く、関連性の高い部分だけを柔軟に評価できるため、パフォーマンスの向上とコスト削減にも役立ちます。

ガードレール用にコンテンツにタグを付ける

処理するガードレールのコンテンツにタグを付けるには、予約済みプレフィックスとカスタム を組み合わせたXMLタグを使用しますtagSuffix。以下に例を示します。

{ "text": """ You are a helpful assistant. Here is some information about my account: - There are 10,543 objects in an S3 bucket. - There are no active EC2 instances. Based on the above, answer the following question: Question: <amazon-bedrock-guardrails-guardContent_xyz> How many objects do I have in my S3 bucket? </amazon-bedrock-guardrails-guardContent_xyz> ... Here are other user queries: <amazon-bedrock-guardrails-guardContent_xyz> How do I download files from my S3 bucket? </amazon-bedrock-guardrails-guardContent_xyz> """, "amazon-bedrock-guardrailConfig": { "tagSuffix": "xyz" } }

前の例では、コンテンツ「How many objects do I have in my S3 bucket?」と「How do I download files from my S3 bucket?」 に、タグ <amazon-bedrock-guardrails-guardContent_xyz> を使用して、ガードレール処理用のタグが付いています。プレフィックス amazon-bedrock-guardrails-guardContent はガードレールによって予約されています。

タグのサフィックス

入力のタグ付けを使用する場合、タグのサフィックス (前の例では xyz) として、amazon-bedrock-guardrailConfigtagSuffix フィールドに動的な値を指定する必要があります。リクエストごとに新しいランダムな文字列を tagSuffix として使用することをお勧めします。そうすることで、タグの構造が予測不能になり、潜在的なプロンプトインジェクション攻撃を軽減できます。静的タグを使用すると、悪意のあるユーザーがXMLタグを閉じ、タグを閉じた後に悪意のあるコンテンツを追加し、インジェクション攻撃が発生する可能性があります。1~20 文字長の英数字のみ使用できます。サフィックス の例ではxyz、タグを使用して保護するすべてのコンテンツをサフィックス XMLで囲む必要があります<amazon-bedrock-guardrails-guardContent_xyz>。 およびコンテンツ </amazon-bedrock-guardrails-guardContent_xyz>。リクエストごとに動的な UUID をタグのサフィックスとして使用することをお勧めします。

複数のタグ

入力テキストで同じタグ構造を複数回使用して、コンテンツの異なる部分をガードレールによる処理対象としてマークすることができます。タグをネスト構造にすることはできません。

タグの付いていないコンテンツ

入力タグの外側のコンテンツは、ガードレールによって処理されません。そのおかげで、安全だとわかっていて、ガードレールで処理する必要のない指示、会話例、ナレッジベース、その他のコンテンツを含めることができます。入力プロンプトにタグがない場合、プロンプト全体がガードレールによって処理されます。唯一の例外はプロンプト攻撃フィルターで、この場合は入力タグが必須です。

ガードレールのテストペインで、以下の手順に従って、入力のタグ付けを試すことができます。

  1. ガードレールのテストペインに移動する (この方法は Amazon Bedrock テキストまたはチャットのプレイグラウンドではサポートされておらず、ガードレールのテストペインのみ)。

  2. デフォルトのプレイグラウンドの入力タグのサフィックス playground を使用します。

VIOLENT STATEMENT: I think I could fight a grizzly bear. <amazon-bedrock-guardrails-guardContent_playground> BENIGN INPUT: How's the weather? </amazon-bedrock-guardrails-guardContent_playground>

入力タグに挟まれたコンテンツだけが、ガードレールの実行対象になります。