翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
ユーザー入力にタグを適用してコンテンツをフィルタリングする
入力タグを使用して、入力テキスト内の特定のコンテンツをガードレールによる処理対象としてマークすることができます。入力の特定の部分にだけガードレールを適用し、他の部分は未処理のままにする場合に便利です。
例えば、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-guardrailConfig
の tagSuffix
フィールドに動的な値を指定する必要があります。リクエストごとに新しいランダムな文字列を tagSuffix
として使用することをお勧めします。そうすることで、タグの構造が予測不能になり、潜在的なプロンプトインジェクション攻撃を軽減できます。静的タグを使用すると、悪意のあるユーザーがXMLタグを閉じ、タグを閉じた後に悪意のあるコンテンツを追加し、インジェクション攻撃が発生する可能性があります。1~20 文字長の英数字のみ使用できます。サフィックス の例ではxyz
、タグを使用して保護するすべてのコンテンツをサフィックス XMLで囲む必要があります<amazon-bedrock-guardrails-guardContent_xyz>
。 およびコンテンツ </amazon-bedrock-guardrails-guardContent_xyz>
。リクエストごとに動的な UUID
をタグのサフィックスとして使用することをお勧めします。
複数のタグ
入力テキストで同じタグ構造を複数回使用して、コンテンツの異なる部分をガードレールによる処理対象としてマークすることができます。タグをネスト構造にすることはできません。
タグの付いていないコンテンツ
入力タグの外側のコンテンツは、ガードレールによって処理されません。そのおかげで、安全だとわかっていて、ガードレールで処理する必要のない指示、会話例、ナレッジベース、その他のコンテンツを含めることができます。入力プロンプトにタグがない場合、プロンプト全体がガードレールによって処理されます。唯一の例外はプロンプト攻撃フィルターで、この場合は入力タグが必須です。
ガードレールのテストペインで、以下の手順に従って、入力のタグ付けを試すことができます。
-
ガードレールのテストペインに移動する (この方法は Amazon Bedrock テキストまたはチャットのプレイグラウンドではサポートされておらず、ガードレールのテストペインのみ)。
-
デフォルトのプレイグラウンドの入力タグのサフィックス
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>
入力タグに挟まれたコンテンツだけが、ガードレールの実行対象になります。