グローバルな法律事務所が Amazon Bedrock Knowledge Bases を使用して判例・法規・社内ガイドラインを格納したシステムを構築しています。各文書には以下のメタデータが付与されています: ・jurisdiction(管轄): "US", "EU", "JP" ・document_type: "case_law", "regulation", "internal_guideline" ・confidentiality_level: "public", "restricted", "confidential" 弁護士が検索する際、自分の担当管轄(US または EU)かつ公開・制限レベルの資料のみを取得させ、機密資料(confidential)の誤取得リスクを完全に排除する必要があります。最も適切な実装はどれですか?
Amazon Bedrock Knowledge Bases のメタデータフィルタリング機能を使用すると、RetrieveAndGenerate API 呼び出し時に andAll/orAll/equals/in などの条件を指定して、ベクトル検索の実行前にメタデータで文書を絞り込めます。機密文書がそもそも検索対象に含まれないため、誤取得リスクをシステムレベルで完全排除できます。 選択肢Aのシステムプロンプトによる指示はモデルの解釈に依存するため確実な制御ができず、プロンプトインジェクション攻撃にも脆弱で「完全な排除」要件を満たしません。 選択肢Cの管轄ごとの別 Knowledge Base は運用コストが高く、弁護士が複数管轄を担当する場合や文書が複数管轄に関連する場合の柔軟な対応が困難です。 選択肢DのLambda による後処理は、機密文書が先にベクトル検索で取得されることを許してしまうため「完全な排除」要件を満たさず、不要なチャンク取得によるコスト増と処理複雑化も生じます。