翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
クエリ設定
ナレッジベースをクエリするときに設定を変更して、取得とレスポンスの生成をカスタマイズできます。設定の詳細と、コンソールまたは API で設定を変更する方法については、次のトピックから選択します。
検索タイプは、ナレッジベースのデータソースのクエリ方法を定義します。次の検索タイプを使用できます。
-
デフォルト — Amazon Bedrock が検索戦略を決定します。
-
Hybrid – 検索ベクトルの埋め込み (セマンティック検索) と raw テキストの検索を組み合わせます。現在、ハイブリッド検索は、フィルタリング可能なテキストフィールドを含む Amazon OpenSearch Serverless ベクトルストアでのみサポートされています。別のベクトルストアを使用するか、Amazon OpenSearch Serverless ベクトルストアにフィルタリング可能なテキストフィールドが含まれていない場合、クエリはセマンティック検索を使用します。
-
セマンティック — ベクトル埋め込みのみを検索します。
検索タイプを定義する方法については、選択した方法に対応するタブを選択し、ステップに従います。
クエリ分解は、複雑なクエリをより小さく、管理しやすいサブクエリに分割するために使用される手法です。このアプローチは、特に最初のクエリが多面的または広すぎる場合に、より正確で関連情報を取得するのに役立ちます。このオプションを有効にすると、ナレッジベースに対して複数のクエリが実行され、より正確な最終レスポンスが得られる可能性があります。
例えば、「2022 FIFA ワールドカップ、アルゼンチン、フランスで誰がスコアを付けたか」などの質問の場合、Amazon Bedrock ナレッジベースは、最終的な回答を生成する前に、まず次のサブクエリを生成することがあります。
-
2022 FIFA ワールドカップ決勝でアルゼンチンがスコアを付けた目標は何個ですか?
-
2022 年 FIFA ワールドカップ決勝でフランスがスコアを付けた目標は何個ですか?
情報の取得に基づいてレスポンスを生成する場合、推論パラメータを使用して、推論中のモデルの動作をより詳細に制御し、モデルの出力に影響を与えることができます。推論パラメータを変更する方法については、選択した方法に対応するタブを選択し、ステップに従います。
ナレッジベースをクエリすると、Amazon Bedrock はデフォルトでレスポンスに最大 5 つの結果を返します。各結果はソースチャンクに対応します。返される結果の最大数を変更するには、選択した方法に対応するタブを選択し、ステップに従います。
データソースには、「last_updated」や、ドキュメントが現在の日付から最後に更新されてからの日数など、フィルタリングするドキュメントメタデータ属性/フィールドを含めることができます。ナレッジベースをクエリするときにフィルターを使用するには、ナレッジベースが次の要件を満たしていることを確認します。
-
データソースコネクタを設定する場合、ほとんどのコネクタはドキュメントのメインメタデータフェイルドをクロールします。Amazon S3 バケットをデータソースとして使用する場合、バケットには、関連付けられているソースドキュメントと同じ名前の
.metadata.json
ファイルが少なくとも 1 つ含まれている必要があります。 -
ナレッジベースのベクトルインデックスが Amazon OpenSearch Serverless ベクトルストアにある場合は、ベクトルインデックスが
faiss
エンジンで設定されていることを確認します。ベクトルインデックスがnmslib
エンジンで設定されている場合は、次のいずれかを実行する必要があります。-
コンソールで新しいナレッジベースを作成し、Amazon Bedrock が Amazon OpenSearch Serverless でベクトルインデックスを自動的に作成できるようにします。
-
ベクトルストアに別のベクトルインデックスを作成し、エンジン
faiss
として を選択します。次に、新しいナレッジベースを作成し、新しいベクトルインデックスを指定します。
-
次のフィルタリング演算子を使用して、クエリ時に結果をフィルタリングできます。
演算子のフィルタリング | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
演算子 | コンソール | API フィルター名 | サポートされている属性データ型 | フィルタリングされた結果 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
等しい | = | が | 文字列、数値、ブール値 | 属性が指定した値と一致する | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
等しくない | != | notEquals | 文字列、数値、ブール値 | 属性が指定した値と一致しません | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Greater than | > | greaterThan | 数値 | 属性が指定した値より大きい | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
以上 | >= | greaterThanOr等しい | 数値 | 属性が指定した値以上 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Less than | < | lessThan | 数値 | 属性が指定した値より小さい | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
以下 | <= | lessThanOr等しい | 数値 | 属性が指定した値以下 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
中 | : | の | 文字列リスト | 属性は、指定したリストにあります | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
にない | !: | notIn | 文字列リスト | 属性が指定したリストにない | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
で始まる | ^ | startsWith | string | 属性は指定した文字列で始まります (Amazon OpenSearch Serverless ベクトルストアでのみサポートされます) |
フィルタリング演算子を組み合わせるには、次の論理演算子を使用できます。
メタデータを使用して結果をフィルタリングする方法については、選択した方法に対応するタブを選択し、ステップに従います。
ナレッジベースをクエリしてレスポンス生成をリクエストすると、Amazon Bedrock は、指示とコンテキストをユーザークエリと組み合わせたプロンプトテンプレートを使用して、レスポンス生成のためにモデルに送信されるプロンプトを作成します。プロンプトテンプレートは、次のツールを使用して設計できます。
-
プロンプトプレースホルダー – Amazon Bedrock のナレッジベースで事前定義された変数で、ナレッジベースのクエリ中に実行時に動的に入力されます。システムプロンプトには、これらのプレースホルダーが
$
記号で囲まれています。次のリストでは、使用できるプレースホルダーについて説明します。変数 に置き換え モデル 必須? $query$ ナレッジベースに送信されたユーザークエリ。 Anthropic Claude Instant、AnthropicClaudev2.x あり Anthropic Claude 3 Sonnet いいえ (モデル入力に自動的に含まれます) $search_results$ ユーザークエリで取得した結果。 すべて あり $output_format_instructions$ レスポンスの生成と引用をフォーマットするための基本的な手順。モデルによって異なります。独自のフォーマット手順を定義する場合は、このプレースホルダーを削除することをお勧めします。このプレースホルダーがないと、レスポンスに引用は含まれません。 すべて なし $current_time$ 現在の時刻。 すべて なし -
XML タグ – Anthropicモデルは、プロンプトの構造化と説明のための XML タグの使用をサポートしています。最適な結果を得るには、わかりやすいタグ名を使用します。例えば、デフォルトのシステムプロンプトには、以前に質問されたデータベースを記述するために使用される
<database>
タグが表示されます)。詳細については、「 ユーザーガイド」の「XML タグを使用するAnthropic 」を参照してください。
プロンプトエンジニアリングの一般的なガイドラインについては、「」を参照してください プロンプトエンジニアリングガイドライン。
選択した方法に対応するタブを選択し、ステップに従います。
ユースケースと責任のある AI ポリシーのナレッジベースに保護を実装できます。さまざまなユースケースに合わせた複数のガードレールを作成し、複数のリクエストおよびレスポンス条件に適用して、一貫したユーザーエクスペリエンスを提供し、ナレッジベース全体で安全制御を標準化できます。拒否されたトピックを設定して、望ましくないトピックやコンテンツフィルターを禁止し、モデルの入力とレスポンスの有害なコンテンツをブロックできます。詳細については、「Amazon Bedrock のガードレール」を参照してください。
注記
ナレッジベースにコンテキストに基づくグラウンドでガードレールを使用することは、現在 Claude 3 Sonnet および Haiku ではサポートされていません。
プロンプトエンジニアリングの一般的なガイドラインについては、「」を参照してください プロンプトエンジニアリングガイドライン。
選択した方法に対応するタブを選択し、ステップに従います。