

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

# クエリとレスポンスを使用してナレッジベースをテストする
<a name="knowledge-base-test"></a>

ナレッジベースの設定後、次の方法でナレッジベースの動作をテストできます。
+ [https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_Retrieve.html](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_Retrieve.html) オペレーションを使用して、クエリを送信し、データソースから関連情報を取得します。
+ [https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrieveAndGenerate.html](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrieveAndGenerate.html) オペレーションを使用して、クエリを送信し、データソースから取得した情報に基づいてクエリへのレスポンスを生成します。
+ [https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_Retrieve.html](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_Retrieve.html) または [https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrieveAndGenerate.html](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrieveAndGenerate.html) を使用する際に、Amazon Bedrock ナレッジベースのデフォルトの再ランク付けモデルではなく、再ランク付けモデルを使用することで、より関連性の高いソースを取得します。
+ `Retrieve` API または `RetrieveAndGenerate` API でオプションのメタデータフィルターを使用して、データソースで使用できるドキュメントを指定します。

ナレッジベースの動作に問題がなければ、「[AI アプリケーションのナレッジベースをデプロイする](knowledge-base-deploy.md)」に進み、ナレッジベースをクエリするようにアプリケーションを設定したり、ナレッジベースをエージェントにアタッチしたりできます。

詳細情報については、トピックを選択してください。

**Topics**
+ [ナレッジベースのクエリを実行してデータを取得する](kb-test-retrieve.md)
+ [ナレッジベースをクエリし、取得したデータに基づいてレスポンスを生成する](kb-test-retrieve-generate.md)
+ [構造化データのクエリを生成する](knowledge-base-generate-query.md)
+ [Amazon Kendra GenAI Index グラフに接続されたナレッジベースのクエリ](kb-test-kendra.md)
+ [Amazon Neptune Analytics グラフに接続されたナレッジベースをクエリする](kb-test-neptune.md)
+ [クエリとレスポンスの生成を設定してカスタマイズする](kb-test-config.md)
+ [ナレッジベースを使用して推論モデルのレスポンス生成を設定する](kb-test-configure-reasoning.md)

# ナレッジベースのクエリを実行してデータを取得する
<a name="kb-test-retrieve"></a>

**重要**  
ガードレールは、入力と LLM から生成されたレスポンスにのみ適用されます。実行時にナレッジベースから取得したリファレンスには適用されません。

ナレッジ ベースを設定したら、それについてクエリを実行し、[https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_Retrieve.html](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_Retrieve.html) API オペレーションを使用して、そのクエリに関連するソースデータからチャンクを取得できます。デフォルトの Amazon Bedrock ナレッジベースランカーではなく[再ランク付けモデル](rerank.md)を使用して、取得中にソースチャンクの関連性をランク付けすることもできます。

ナレッジベースのクエリを実行する方法については、任意の方法のタブを選択し、その手順を実行してください。

------
#### [ Console ]

**ナレッジベースをテストするには**

1. Amazon Bedrock コンソールを使用するアクセス許可を持つ IAM ID AWS マネジメントコンソール を使用して にサインインします。Amazon Bedrock コンソール ([https://console.aws.amazon.com/bedrock](https://console.aws.amazon.com/bedrock)) を開きます。

1. 左側のナビゲーションペインで **[ナレッジベース]** を選択します。

1. **[ナレッジベース]** セクションで、次のいずれかの操作を行います。
   + テストするナレッジベースの横にあるラジオボタンを選択して、**[ナレッジベースをテストする]** を選択します。右側からテスウィンドウが表示されます。
   + テストするナレッジベースを選択します。右側からテスウィンドウが表示されます。

1. テストウィンドウで、**[クエリに対する応答を生成する]** をクリアして、ナレッジベースから直接取得した情報を返します。

1. (オプション) 設定アイコン (![\[Three horizontal sliders with adjustable circular controls for settings or parameters.\]](http://docs.aws.amazon.com/ja_jp/bedrock/latest/userguide/images/icons/configurations.png)) を選択して、**[設定]** を開きます。構成については、「[クエリとレスポンスの生成を設定してカスタマイズする](kb-test-config.md)」を参照してください。

1. チャットウィンドウのテキストボックスにクエリを入力して **[実行]** を選択すると、ナレッジベースからのレスポンスが表示されます。

1. ソースチャンクは関連性の高い順に直接返されます。データソースから抽出された画像もソースチャンクとして返される可能性があります。

1. 返されたチャンクの詳細を表示するには、**[ソースの詳細を表示]** を選択します。
   + クエリの設定を表示するには、**[クエリ設定]** を展開します。
   + ソースチャンクの詳細を表示するには、ソースチャンクの横の右矢印 (![\[Play button icon with a triangular shape pointing to the right.\]](http://docs.aws.amazon.com/ja_jp/bedrock/latest/userguide/images/icons/caret-right-filled.png)) を選択して展開します。以下の情報が表示されます。
     + ソースチャンクからの未加工テキスト。このテキストをコピーするには、コピーアイコン (![\[Icon representing a crop or resize function, with two overlapping rectangles.\]](http://docs.aws.amazon.com/ja_jp/bedrock/latest/userguide/images/icons/copy.png)) を選択します。Amazon S3 を使用してデータを保存した場合は、外部リンクアイコン (![\[Icon of a square with an arrow pointing outward from its top-right corner.\]](http://docs.aws.amazon.com/ja_jp/bedrock/latest/userguide/images/icons/external.png)) を選択して、対象ファイルを含む S3 オブジェクトに移動します。
     + Amazon S3 を使用してデータを保存した場合、ソースチャンクに関連付けられているメタデータ。属性/フィールドのキーと値は、ソースドキュメントに関連付けられている `.metadata.json` ファイルで定義されています。詳細については、「[クエリとレスポンスの生成を設定してカスタマイズする](kb-test-config.md)」の「**メタデータとフィルタリング**」セクションを参照してください。

**チャットオプション**
+ **[回答を生成]** をオンにして、取得したソースチャンクに基づいて応答を生成するように切り替えます。設定を変更すると、チャットウィンドウ内のテキストは完全に消去されます。
+ チャットウィンドウ内のテキストを消去するには、ほうきアイコン (![\[Magnifying glass icon with a checkmark inside, symbolizing search or inspection.\]](http://docs.aws.amazon.com/ja_jp/bedrock/latest/userguide/images/icons/broom.png)) を選択します。
+ チャットウィンドウ内のすべての出力をコピーするには、コピーアイコン (![\[Icon representing a crop or resize function, with two overlapping rectangles.\]](http://docs.aws.amazon.com/ja_jp/bedrock/latest/userguide/images/icons/copy.png)) を選択します。

------
#### [ API ]

ナレッジベースのクエリを実行し、データソースから関連するテキストのみを返すには、[Amazon Bedrock エージェントのランタイムエンドポイント](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#bra-rt)を使用して [https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_Retrieve.html](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_Retrieve.html) リクエストを送信します。

以下のフィールドが必要です。


****  

| フィールド | 基本的な説明 | 
| --- | --- | 
| knowledgeBaseId | クエリを実行するナレッジベースを指定します。 | 
| retrievalQuery | クエリを指定する text フィールドが含まれます。 | 
| guardrailsConfiguration | リクエストでガードレールを使用するために、guardrailsId や guardrailsVersion などの guardrailsConfiguration フィールドを含めます。 | 

次のフィールドはオプションです。


****  

| フィールド | ユースケース | 
| --- | --- | 
| nextToken | 応答の次のバッチを返します (以下の応答フィールドを参照)。 | 
| retrievalConfiguration | ベクトル検索をカスタマイズするための[クエリ設定](kb-test-config.md)が含まれます。詳細については、「[KnowledgeBaseVectorSearchConfiguration](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_KnowledgeBaseVectorSearchConfiguration.html)」を参照してください。 | 

[KnowledgeBaseVectorSearchConfiguration](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_KnowledgeBaseVectorSearchConfiguration.html) に `rerankingConfiguration` フィールドを含めることで、デフォルトの Amazon Bedrock ナレッジベースのランキングモデルよりも再ランク付けモデルを優先して使用できます。`rerankingConfiguration` フィールドは [VectorSearchRerankingConfiguration](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_VectorSearchRerankingConfiguration.html) オブジェクトにマッピングされています。このオブジェクトでは、使用する再ランキングモデル、含める追加のリクエストフィールド、再ランキング中にドキュメントを除外するメタデータ属性、および再ランク付け後に返される結果の数を指定できます。詳細については、「[VectorSearchRerankingConfiguration](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_VectorSearchRerankingConfiguration.html)」を参照してください。

**注記**  
指定した `numberOfRerankedResults` 値が [KnowledgeBaseVectorSearchConfiguration](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_KnowledgeBaseVectorSearchConfiguration.html) の `numberOfResults` 値より大きい場合、返される結果の最大数は `numberOfResults` の値になります。例外は、クエリ分解を使用する場合です (詳細については、「[クエリとレスポンスの生成を設定してカスタマイズする](kb-test-config.md)」の「**クエリの変更**」セクションを参照してください)。クエリ分解を使用する場合、`numberOfRerankedResults` は `numberOfResults` の最大 5 倍になります。

応答では、データソースからのソースチャンクが、`retrievalResults` フィールドの [KnowledgeBaseRetrievalResult](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_KnowledgeBaseRetrievalResult.html) オブジェクトの配列として返されます。各 [KnowledgeBaseRetrievalResult](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_KnowledgeBaseRetrievalResult.html) には、次のフィールドが含まれます。


****  

| フィールド | 説明 | 
| --- | --- | 
| content | text にテキストソースチャンクが含まれるか、byteContent フィールドに画像ソースチャンクが含まれます。コンテンツが画像の場合、base64 でエンコードされたコンテンツのデータ URI は data:image/jpeg;base64,\$1\$1base64-encoded string\$1 の形式で返されます。 | 
| メタデータ | 各メタデータ属性をキーとして、メタデータ値をキーがマッピングする JSON 値として含めます。 | 
| location | ソースチャンクが属するドキュメントの URI または URL が含まれます。 | 
| score | ドキュメントの関連性スコア。このスコアを使用して、結果のランキングを分析できます。 | 

ソースチャンクの数が応答に収まる数を超えると、`nextToken` フィールドに値が返されます。結果の次のバッチを返すには、別のリクエストでその値を使用します。

取得したデータに画像が含まれている場合、レスポンスは次のレスポンスヘッダーも返します。これには、レスポンスで返されたソースチャンクのメタデータが含まれます。
+ `x-amz-bedrock-kb-byte-content-source` – 画像の Amazon S3 URI が含まれます。
+ `x-amz-bedrock-kb-description` – 画像の Base64 でエンコードされた文字列が含まれます。

**注記**  
[メタデータフィルターを設定する](kb-test-config.md)ときに、これらのメタデータレスポンスヘッダーをフィルタリングすることはできません。

**マルチモーダルクエリ**  
マルチモーダル埋め込みモデルを使用するナレッジベースの場合、テキストまたはイメージを使用してクエリを実行できます。`retrievalQuery` フィールドは、イメージクエリの `multimodalInputList` フィールドをサポートします。

**注記**  
Nova アプローチと BDA アプローチの選択など、マルチモーダルナレッジベースのセットアップと操作に関する包括的なガイダンスについては、「」を参照してください[マルチモーダルコンテンツのナレッジベースを構築する](kb-multimodal.md)。

次の`multimodalInputList`フィールドを使用して、イメージでクエリを実行できます。

```
{
    "knowledgeBaseId": "EXAMPLE123", 
    "retrievalQuery": {
        "multimodalInputList": [
            {
                "content": {
                    "byteContent": "base64-encoded-image-data"
                },
                "modality": "IMAGE"
            }
        ]
    }
}
```

または、 `text`フィールドを使用してのみテキストでクエリを実行できます。

```
{
    "knowledgeBaseId": "EXAMPLE123",
    "retrievalQuery": {
        "text": "Find similar shoes"
    }
}
```

**一般的なマルチモーダルクエリパターン**  
以下は、一般的なクエリパターンです。

Image-to-image検索  
イメージをアップロードして、視覚的に似たイメージを見つけます。例: 赤い Nike 靴の写真をアップロードして、製品カタログで同様の靴を見つけます。

テキストベースの検索  
テキストクエリを使用して、関連するコンテンツを検索します。例: テキストの説明を使用して製品カタログを検索するには、「類似する靴を見つける」を使用します。

ビジュアルドキュメント検索  
ドキュメント内のグラフ、図、またはビジュアル要素を検索します。例: グラフイメージをアップロードして、ドキュメントコレクション内の同様のグラフを検索します。

**マルチモーダルコンテンツの Nova と BDA の選択**  
マルチモーダルコンテンツを使用する場合は、コンテンツタイプとクエリパターンに基づいてアプローチを選択します。


**Nova と BDA 決定マトリックス**  

| コンテンツタイプ | Nova マルチモーダル埋め込みを使用する | Bedrock Data Automation (BDA) パーサーを使用する | 
| --- | --- | --- | 
| 動画コンテンツ | ビジュアルストーリーテリングの焦点 (スポーツ、広告、デモンストレーション）、ビジュアル要素に関するクエリ、最小限の音声コンテンツ | 重要な音声/ナレーション (プレゼンテーション、会議、チュートリアル）、音声コンテンツに関するクエリ、文字起こしが必要 | 
| オーディオコンテンツ | 音楽またはサウンド効果の識別、非音声分析 | ポッドキャスト、インタビュー、会議、文字起こしが必要な音声を含むコンテンツ | 
| イメージコンテンツ | ビジュアル類似度検索、image-to-image取得、ビジュアルコンテンツ分析 | イメージからのテキスト抽出、ドキュメント処理、OCR 要件 | 

**注記**  
Nova マルチモーダル埋め込みでは、音声コンテンツを直接処理することはできません。音声ファイルまたは動画ファイルに重要な音声情報が含まれている場合は、まず BDA パーサーを使用して音声をテキストに変換するか、代わりにテキスト埋め込みモデルを選択します。

**マルチモーダルクエリの制限**  
マルチモーダルクエリにはいくつかの制限があります。
+ 現在のリリースでは、クエリごとに最大 1 つのイメージ
+ イメージクエリは、マルチモーダル埋め込みモデル (Titan G1 または Cohere Embed v3) でのみサポートされています。
+ RetrieveAndGenerate API は、マルチモーダル埋め込みモデルと S3 コンテンツバケットを持つナレッジベースではサポートされていません
+ テキストのみの埋め込みモデルを使用してナレッジベースにイメージクエリを指定すると、4xx エラーが返されます。

**マルチモーダル API レスポンス構造**  
マルチモーダルコンテンツの取得レスポンスには、追加のメタデータが含まれます。
+ **ソース URI:** 元の S3 バケットの場所を指す
+ **補足 URI:** マルチモーダルストレージバケット内のコピーを指す
+ **タイムスタンプメタデータ:** 正確な再生配置を可能にするビデオチャンクとオーディオチャンクに付属

**注記**  
API または SDK を使用する場合は、アプリケーションでファイルの取得とタイムスタンプナビゲーションを処理する必要があります。コンソールは、拡張ビデオ再生と自動タイムスタンプナビゲーションを使用してこれを自動的に処理します。

------

**注記**  
レスポンスの生成中にプロンプトが文字制限を超えたというエラーが表示された場合は、次の方法でプロンプトを短縮できます。  
取得される結果の最大数を減らします (これにより、[ナレッジベースのプロンプトテンプレート: オーケストレーションと生成](kb-test-config.md#kb-test-config-prompt-template) の \$1search\$1results\$1 プレースホルダーで入力される内容が短縮されます)。
より小さなチャンクを使用するチャンキング戦略でデータソースを再作成します (これにより、[ナレッジベースのプロンプトテンプレート: オーケストレーションと生成](kb-test-config.md#kb-test-config-prompt-template) の \$1search\$1results\$1 プレースホルダーで入力される内容が短縮されます)。
プロンプトテンプレートを短縮します。
ユーザークエリを短縮します (これにより、[ナレッジベースのプロンプトテンプレート: オーケストレーションと生成](kb-test-config.md#kb-test-config-prompt-template) の \$1query\$1 プレースホルダーに入力される内容が短縮されます)。

# ナレッジベースをクエリし、取得したデータに基づいてレスポンスを生成する
<a name="kb-test-retrieve-generate"></a>

**重要**  
ガードレールは、入力と LLM から生成されたレスポンスにのみ適用されます。実行時にナレッジベースから取得したリファレンスには適用されません。

ナレッジベースをセットアップした後、ナレッジベースをクエリし、[https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrieveAndGenerate.html](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrieveAndGenerate.html) APIオペレーションを使用してソースデータから取得されたチャンクに基づいてレスポンスを生成できます。元のソースデータへの引用を含めてレスポンスが返されます。デフォルトの Amazon Bedrock ナレッジベースランカーではなく[再ランク付けモデル](rerank.md)を使用して、取得中にソースチャンクの関連性をランク付けすることもできます。

**マルチモーダルコンテンツの制限**  
`RetrieveAndGenerate` では、マルチモーダルコンテンツのサポートが制限されています。Nova マルチモーダル埋め込みを使用する場合、RAG 機能はテキストコンテンツのみに制限されます。オーディオおよびビデオ処理を含むマルチモーダルを完全にサポートするには、テキスト埋め込みモデルで BDA を使用します。詳細については、「[マルチモーダルコンテンツのナレッジベースを構築する](kb-multimodal.md)」を参照してください。

**注記**  
`RetrieveAndGenerate` フロー中に `Retrieve` レスポンスから返されたイメージは、レスポンス生成のプロンプトに含まれます。`RetrieveAndGenerate` レスポンスにはイメージを含めることはできませんが、イメージを含むソースを引用できます。

ナレッジベースのクエリを実行する方法については、任意の方法のタブを選択し、その手順を実行してください。

------
#### [ Console ]

**ナレッジベースをテストするには**

1. Amazon Bedrock コンソールを使用するアクセス許可を持つ IAM ID AWS マネジメントコンソールを使用して にサインインします。Amazon Bedrock コンソール ([https://console.aws.amazon.com/bedrock](https://console.aws.amazon.com/bedrock)) を開きます。

1. 左側のナビゲーションペインで **[ナレッジベース]** を選択します。

1. **[ナレッジベース]** セクションで、次のいずれかの操作を行います。
   + テストするナレッジベースの横にあるラジオボタンを選択して、**[ナレッジベースをテストする]** を選択します。右側からテスウィンドウが表示されます。
   + テストするナレッジベースを選択します。右側からテスウィンドウが表示されます。

1. ナレッジベースから取得した情報を基にしたレスポンスを生成するには、**[クエリに対するレスポンスを生成する]** を有効にします。Amazon Bedrock はデータソースに基づいてレスポンスを生成し、提供された情報を脚注とともに引用します。

1. レスポンスの生成に使用するモデルを選択するには、**[モデルを選択]** を選択します。次に、**[適用]** を選択します。

1. (オプション) 設定アイコン (![\[Three horizontal sliders with adjustable circular controls for settings or parameters.\]](http://docs.aws.amazon.com/ja_jp/bedrock/latest/userguide/images/icons/configurations.png)) を選択して、**[設定]** を開きます。構成については、「[クエリとレスポンスの生成を設定してカスタマイズする](kb-test-config.md)」を参照してください。

1. チャットウィンドウのテキストボックスにクエリを入力して **[実行]** を選択すると、ナレッジベースからのレスポンスが表示されます。

1. 脚注を選択して、レスポンスのその部分の引用元からの抜粋を表示します。ファイルを含む S3 オブジェクトに移動するリンクを選択します。

1. 返されたチャンクの詳細を表示するには、**[ソースの詳細を表示]** を選択します。
   + クエリの設定を表示するには、**[クエリ設定]** を展開します。
   + ソースチャンクの詳細を表示するには、ソースチャンクの横の右矢印 (![\[Play button icon with a triangular shape pointing to the right.\]](http://docs.aws.amazon.com/ja_jp/bedrock/latest/userguide/images/icons/caret-right-filled.png)) を選択して展開します。以下の情報が表示されます。
     + ソースチャンクからの未加工テキスト。このテキストをコピーするには、コピーアイコン (![\[Icon representing a crop or resize function, with two overlapping rectangles.\]](http://docs.aws.amazon.com/ja_jp/bedrock/latest/userguide/images/icons/copy.png)) を選択します。Amazon S3 を使用してデータを保存した場合は、外部リンクアイコン (![\[Icon of a square with an arrow pointing outward from its top-right corner.\]](http://docs.aws.amazon.com/ja_jp/bedrock/latest/userguide/images/icons/external.png)) を選択して、対象ファイルを含む S3 オブジェクトに移動します。
     + Amazon S3 を使用してデータを保存した場合、ソースチャンクに関連付けられているメタデータ。属性/フィールドのキーと値は、ソースドキュメントに関連付けられている `.metadata.json` ファイルで定義されています。詳細については、「[クエリとレスポンスの生成を設定してカスタマイズする](kb-test-config.md)」の「**メタデータとフィルタリング**」セクションを参照してください。

**チャットオプション**
+ レスポンス生成に別のモデルを使用するには、**[モデルを変更]** を選択します。モデルを変更すると、チャットウィンドウ内のテキストは完全に消去されます。
+ **[レスポンスを生成]** をクリアして、ソースチャンクを直接取得するに切り替えます。設定を変更すると、チャットウィンドウ内のテキストは完全に消去されます。
+ チャットウィンドウ内のテキストを消去するには、ほうきアイコン (![\[Magnifying glass icon with a checkmark inside, symbolizing search or inspection.\]](http://docs.aws.amazon.com/ja_jp/bedrock/latest/userguide/images/icons/broom.png)) を選択します。
+ チャットウィンドウ内のすべての出力をコピーするには、コピーアイコン (![\[Icon representing a crop or resize function, with two overlapping rectangles.\]](http://docs.aws.amazon.com/ja_jp/bedrock/latest/userguide/images/icons/copy.png)) を選択します。

------
#### [ API ]

ナレッジベースにクエリを実行し、基盤モデルを使用してデータソースからの結果に基づいてレスポンスを生成するには、[Amazon Bedrock エージェントランタイムエンドポイント](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#bra-rt)を使用して、[https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrieveAndGenerate.html](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrieveAndGenerate.html) リクエストを送信します。

[https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrieveAndGenerateStream.html](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrieveAndGenerateStream.html) API はストリーミング形式でデータを返すため、結果全体を待たずにチャンクで生成されたレスポンスにアクセスできます。

以下のフィールドが必要です。

**注記**  
API レスポンスには引用イベントが含まれています。`citation` メンバーは非推奨になりました。代わりに、`generatedResponse` および `retrievedReferences` フィールドを使用することをお勧めします。参考までに、「[https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_CitationEvent.html](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_CitationEvent.html)」を参照してください。


****  

| フィールド | 基本的な説明 | 
| --- | --- | 
| input | クエリを指定する text フィールドが含まれます。 | 
| retrieveAndGenerateConfiguration | 取得と生成の設定を指定する [RetrieveAndGenerateConfiguration](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrieveAndGenerateConfiguration.html) が含まれます。詳細については、以下を参照してください。 | 

次のフィールドはオプションです。


****  

| フィールド | ユースケース | 
| --- | --- | 
| sessionId | 前のセッションと同じ値を使用してそのセッションを続行し、モデルのコンテキストを維持します。 | 
| sessionConfiguration | セッションの暗号化用のカスタム KMS キーが含まれます。 | 

[RetrieveAndGenerateConfiguration](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrieveAndGenerateConfiguration.html) に `knowledgeBaseConfiguration` フィールドを含めます。このフィールドは、次のフィールドを含む [KnowledgeBaseRetrieveAndGenerateConfiguration](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_KnowledgeBaseRetrieveAndGenerateConfiguration.html) オブジェクトにマッピングされます。
+ 以下のフィールドが必要です。  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/bedrock/latest/userguide/kb-test-retrieve-generate.html)
+ 次のフィールドはオプションです。  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/bedrock/latest/userguide/kb-test-retrieve-generate.html)

[KnowledgeBaseRetrievalConfiguration](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_KnowledgeBaseRetrievalConfiguration.html) 内の [KnowledgeBaseVectorSearchConfiguration](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_KnowledgeBaseVectorSearchConfiguration.html) に `rerankingConfiguration` フィールドを含めることで、デフォルトの Amazon Bedrock ナレッジベースランキングモデルで再ランキングモデルを使用できます。`rerankingConfiguration` フィールドは [VectorSearchRerankingConfiguration](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_VectorSearchRerankingConfiguration.html) オブジェクトにマッピングされています。このオブジェクトでは、使用する再ランキングモデル、含める追加のリクエストフィールド、再ランキング中にドキュメントを除外するメタデータ属性、および再ランク付け後に返される結果の数を指定できます。詳細については、「[VectorSearchRerankingConfiguration](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_VectorSearchRerankingConfiguration.html)」を参照してください。

**注記**  
指定した `numberOfRerankedResults` 値が [KnowledgeBaseVectorSearchConfiguration](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_KnowledgeBaseVectorSearchConfiguration.html) の `numberOfResults` 値より大きい場合、返される結果の最大数は `numberOfResults` の値になります。例外は、クエリ分解を使用する場合です (詳細については、「[クエリとレスポンスの生成を設定してカスタマイズする](kb-test-config.md)」の「**クエリの変更**」セクションを参照してください)。クエリ分解を使用する場合、`numberOfRerankedResults` は `numberOfResults` の最大 5 倍になります。

レスポンスは、生成されたレスポンスを `output` フィールドに返し、引用されたソースチャンクを `citations` フィールドの配列として返します。各 [Citation](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_Citation.html) オブジェクトは以下のフィールドを含みます。


****  

| フィールド | 基本的な説明 | 
| --- | --- | 
| generatedResponsePart | textResponsePart フィールドには、引用が関係する text が含まれます。span フィールドは、引用を含む出力の部分の先頭と末尾のインデックスを提供します。 | 
| retrievedReferences | [RetrievedReference](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrievedReference.html) オブジェクトの配列。各オブジェクトには、ソースチャンクの content、ドキュメントに関連付けられた metadata、データソース内のドキュメントの URI または URL の location が含まれます。コンテンツが画像の場合、base64 でエンコードされたコンテンツのデータ URI は data:image/jpeg;base64,\$1\$1base64-encoded string\$1 の形式で返されます。 | 

レスポンスは `sessionId` 値も返します。この値は、同じ会話を維持するために別のリクエストで再利用できます。

リクエストに `guardrailConfiguration` を含めた場合、`guardrailAction` フィールドはコンテンツがブロックされたかどうかを通知します。

取得したデータに画像が含まれている場合、レスポンスは次のレスポンスヘッダーも返します。これには、レスポンスで返されたソースチャンクのメタデータが含まれます。
+ `x-amz-bedrock-kb-byte-content-source` – 画像の Amazon S3 URI が含まれます。
+ `x-amz-bedrock-kb-description` – 画像の Base64 でエンコードされた文字列が含まれます。

**注記**  
[メタデータフィルターを設定する](kb-test-config.md)ときに、これらのメタデータレスポンスヘッダーをフィルタリングすることはできません。

------

**注記**  
レスポンスの生成中にプロンプトが文字制限を超えたというエラーが表示された場合は、次の方法でプロンプトを短縮できます。  
取得される結果の最大数を減らします (これにより、[ナレッジベースのプロンプトテンプレート: オーケストレーションと生成](kb-test-config.md#kb-test-config-prompt-template) の \$1search\$1results\$1 プレースホルダーで入力される内容が短縮されます)。
より小さなチャンクを使用するチャンキング戦略でデータソースを再作成します (これにより、[ナレッジベースのプロンプトテンプレート: オーケストレーションと生成](kb-test-config.md#kb-test-config-prompt-template) の \$1search\$1results\$1 プレースホルダーで入力される内容が短縮されます)。
プロンプトテンプレートを短縮します。
ユーザークエリを短縮します (これにより、[ナレッジベースのプロンプトテンプレート: オーケストレーションと生成](kb-test-config.md#kb-test-config-prompt-template) の \$1query\$1 プレースホルダーに入力される内容が短縮されます)。

# 構造化データのクエリを生成する
<a name="knowledge-base-generate-query"></a>

構造化データストアをナレッジベースに接続すると、ナレッジベースは、クエリ対象のデータソースの構造に基づいて、ユーザーによって指定された自然言語クエリを SQL クエリに変換することでクエリを実行できます。使用するバージョン:
+ [https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_Retrieve.html](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_Retrieve.html): レスポンスは SQL クエリ実行の結果を返します。
+ [https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrieveAndGenerate.html](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrieveAndGenerate.html): 生成されるレスポンスは、SQL クエリ実行の結果に基づいています。
+ [GenerateQuery](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_GenerateQuery.html): Amazon Bedrock ナレッジベースは、クエリの変換を取得プロセスから切り離します。この API オペレーションを使用することで、クエリを SQL に変換できます。

## `GenerateQuery` API を使用する場合
<a name="knowledge-base-generate-query-api"></a>

`GenerateQuery` API オペレーションからのレスポンスを後続の `Retrieve` または `RetrieveAndGenerate` アクションで使用するか、他のワークフローに挿入することができます。`GenerateQuery` を使用すると、ナレッジベースのデータソースの構造を考慮して、クエリを SQL クエリに効率的に変換できます。

自然言語クエリを SQL クエリに変換するには、[Amazon Bedrock エージェントのランタイムエンドポイント](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#bra-rt)を使用して [GenerateQuery](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_GenerateQuery.html) リクエストを送信します。`GenerateQuery` リクエストには、次に示すようなフィールドがあります。
+ queryGenerationInput – `TEXT` を `type` として指定し、`text` フィールドにクエリを含めます。
**注記**  
クエリは英語で記述する必要があります。
+ transformationConfiguration – `TEXT_TO_SQL` を `mode` として指定します。`textToSqlConfiguration` フィールドで、`KNOWLEDGE_BASE` を `type` として指定します。次に、ナレッジベースの ARN を指定します。

レスポンスは、`queries` フィールドに [GeneratedQuery](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_GeneratedQuery.html) オブジェクトを含む配列を返します。このオブジェクトには、`sql` フィールドのクエリの SQL クエリが含まれています。

## 主な考慮事項
<a name="knowledge-base-generate-query-considerations"></a>

以下は、構造化データを使用してクエリを生成する際の主な考慮事項です。
+ 

**クロスリージョン推論と構造化データの取得**  
構造化データ取り出しでは、クロスリージョン推論を使用して、推論リクエストを処理する最適な を地域AWS リージョン内で選択します。これにより追加料金が発生することはなく、利用可能なリソースとモデルの可用性を最大化することでカスタマーエクスペリエンスが向上します。

  クロス推論リクエストは、データが最初に存在する地域の一部AWS リージョンである 内に保持されます。データはソースリージョン内に保存されたままですが、入力プロンプトと出力結果がこのリージョン外に移動する可能性があります。すべてのデータは Amazon の安全なネットワーク経由で暗号化されて送信されます。

  詳細については、「[クロスリージョン推論によりスループットを向上させる](cross-region-inference.md)」を参照してください。
+ 

**生成された SQL クエリの精度**  
生成された SQL クエリの精度は、コンテキスト、テーブルスキーマ、およびユーザークエリの意図によって異なります。ワークロードで使用する前に、生成されたクエリを評価して、ユースケースに適していることを確認します。
+ 

**検索結果の数**  
レスポンスを生成するときは、次の制限が適用されます。
  + `InvokeAgent`、`RetrieveAndGenerate`、および `RetrieveAndGenerateStream` API オペレーションを使用する場合、取得結果のうち、レスポンス生成に使用されるのは 10 件のみです。
  + `InvokeAgent` API を使用しているとき、取得された結果の行数が 10 行を超える場合、取得された行の総数はレスポンスの生成時にエージェントに渡されません。代わりに `RetrieveAndGenerate` API を使用した場合、最終レスポンスの生成時に行の総数がプロンプトに含められます。
+ 

**`GenerateQuery` API クォータ**  
`GenerateQuery` API には、1 秒あたり 2 リクエストのクォータがあります。

## 生成されたクエリにアクセスするためのアクセス許可をロールに付与する
<a name="knowledge-base-structured-permissions"></a>

構造化データソースに接続されているナレッジベースで、生成されたクエリに対して追加のオペレーションを実行する場合は、`GenerateQuery` API アクションを実行するアクセス許可を付与する必要があります。構造化データストアに接続されたナレッジベースを IAM ロールがクエリできるようにするには、次のポリシーをロールにアタッチします。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "GetKB",
            "Effect": "Allow",
            "Action": [
                "bedrock:GetKnowledgeBase"
            ],
            "Resource": [
                "arn:aws:bedrock:us-east-1:123456789012:knowledge-base/KnowledgeBaseId"
            ]
        },
        {
            "Sid": "GenerateQueryAccess",
            "Effect": "Allow",
            "Action": [
                "bedrock:GenerateQuery",
                "sqlworkbench:GetSqlRecommendations"
            ],
            "Resource": "*"
        },
        {
            "Sid": "Retrieve",
            "Effect": "Allow",
            "Action": [
                "bedrock:Retrieve"
            ],
            "Resource": [
                "arn:aws:bedrock:us-east-1:123456789012:knowledge-base/KnowledgeBaseId"
            ]
        },
        {
            "Sid": "RetrieveAndGenerate",
            "Effect": "Allow",
            "Action": [
                "bedrock:RetrieveAndGenerate"
            ],
            "Resource": [
                "*"
            ]
        }
    ]
}
```

------

ユースケースに応じて、不要なステートメントは削除できます。
+ `GetKB` および `GenerateQuery` ステートメントは、[GenerateQuery](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_GenerateQuery.html) を呼び出して、ユーザークエリと接続されたデータソースを考慮した SQL クエリを生成するために必要です。
+ `Retrieve` ステートメントは、[https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_Retrieve.html](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_Retrieve.html) を呼び出して構造化データストアからデータを取得するために必要です。
+ `RetrieveAndGenerate` ステートメントは、[https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrieveAndGenerate.html](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrieveAndGenerate.html) を呼び出して構造化データストアからデータを取得し、データに基づいてレスポンスを生成するために必要です。

# Amazon Kendra GenAI Index グラフに接続されたナレッジベースのクエリ
<a name="kb-test-kendra"></a>

Amazon Kendra GenAI Index を使用するナレッジベースに対してクエリを実行して、データソースから関連するテキストのみを返すことができます。このクエリでは、標準のナレッジベースと同様に、[Amazon Bedrock エージェントのランタイムエンドポイント](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#bra-rt)を使用して、[https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_Retrieve.html](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_Retrieve.html) リクエストを送信します。

Amazon Kendra GenAI Index を使用するナレッジベースから返されるレスポンスの構造は、標準の [ KnowledgeBaseRetrievalResult](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_KnowledgeBaseRetrievalResult.html) と同じです。ただし、レスポンスには Amazon Kendra の追加フィールドもいくつか含まれています。

次の表では、返されるレスポンスに含まれる可能性のある Amazon Kendra のフィールドを説明しています。Amazon Bedrock は、Amazon Kendra レスポンスからこれらのフィールドを取得します。レスポンスにこれらのフィールドが含まれていない場合は、Amazon Bedrock から返されたクエリ結果にもこれらのフィールドは含まれません。


| フィールド | 説明 | 
| --- | --- | 
|  x-amz-kendra-document-title  |  返されたドキュメントのタイトル  | 
|  x-amz-kendra-score-confidence  |  レスポンスがクエリにどの程度関連しているかの相対的なランキング。想定される値は、VERY\$1HIGH、HIGH、MEDIUM、LOW、NOT\$1AVAILABLE。  | 
|  x-amz-kendra-passage-id  |  返された文節の ID  | 
|  x-amz-kendra-document-id  |  返されたドキュメントの ID  | 
|  DocumentAttributes  |  Amazon Kendra のドキュメント属性またはメタデータフィールド。ナレッジベースから返されたクエリ結果は、これらをメタデータの key-value ペアとして保存します。この結果は、Amazon Bedrock からのメタデータフィルタリングを使用してフィルタリングできます。詳細については、「[DocumentAttribute](https://docs.aws.amazon.com/kendra/latest/APIReference/API_DocumentAttribute.html)」を参照してください。  | 

# Amazon Neptune Analytics グラフに接続されたナレッジベースをクエリする
<a name="kb-test-neptune"></a>

Amazon Neptune Analytics グラフを使用するナレッジベースをクエリして、データソースから関連するテキストのみを返すことができます。このクエリでは、標準のナレッジベースと同様に、[Amazon Bedrock エージェントのランタイムエンドポイント](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#bra-rt)を使用して、[https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_Retrieve.html](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_Retrieve.html) リクエストを送信します。ナレッジベースのクエリ、データの取得、レスポンスの生成については、以下を参照してください。
+  [ナレッジベースのクエリを実行してデータを取得する](kb-test-retrieve.md) 
+  [ナレッジベースをクエリし、取得したデータに基づいてレスポンスを生成する](kb-test-retrieve-generate.md) 

Amazon Neptune Analytics グラフを使用するナレッジベースから返されるレスポンスの構造は、標準の [ KnowledgeBaseRetrievalResult](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_KnowledgeBaseRetrievalResult.html) と同じです。ただし、レスポンスには Amazon Neptune の追加フィールドもいくつか含まれています。

次の表では、返されるレスポンスに含まれる可能性のある Neptune Analytics のフィールドを説明しています。Amazon Bedrock は、Neptune Analytics レスポンスからこれらのフィールドを取得します。レスポンスにこれらのフィールドが含まれていない場合は、Amazon Bedrock から返されたクエリ結果にもこれらのフィールドは含まれません。


| フィールド | 説明 | 
| --- | --- | 
|  x-amz-bedrock-kb-source-uri  |  返されたドキュメントの Amazon S3 URL  | 
|  score  |  指定されたクエリとレスポンスがどの程度一致するかを示す距離の尺度。値が低いほど一致度が高いことを示す。  | 
|  x-amz-bedrock-kb-data-source-id  |  ナレッジベースに使用されるデータソースの ID  | 
|  x-amz-bedrock-kb-chunk-id  |  クエリの情報を取得してレスポンスを生成するために使用されたチャンクの ID  | 
|  DocumentAttributes  |  Amazon Kendra のドキュメント属性またはメタデータフィールド。ナレッジベースから返されたクエリ結果は、これらをメタデータの key-value ペアとして保存します。この結果は、Amazon Bedrock からのメタデータフィルタリングを使用してフィルタリングできます。  | 

## メタデータとフィルタリングの使用
<a name="kb-test-neptune-metadata"></a>

ナレッジベースにクエリを実行してレスポンスを生成する際、メタデータでフィルタリングして、より関連性の高いドキュメントを探すことができます。例えば、ドキュメントの公開日に基づいてフィルタリングできます。このためには、Amazon Bedrock コンソールまたはランタイム API [https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrievalFilter.html](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrievalFilter.html) を使用して、一般的なフィルター条件を指定できます。

以下は、Neptune Analytics グラフで `RetrievalFilter` API を使用する際の考慮事項です。
+ `startsWith` フィルターと `listContains` フィルターはサポートされていません。
+ `stringContains` フィルターのリストバリアントはサポートされていません。

例は、以下のとおりです。

```
"vectorSearchConfiguration": {
        "numberOfResults": 5,
        "filter": {
            "orAll": [
                {
                    "andAll": [
                        {
                            "equals": {
                                "key": "genre",
                                "value": "entertainment"
                            }
                        },
                        {
                            "greaterThan": {
                                "key": "year",
                                "value": 2018
                            }
                        }
                    ]
                },
                {
                    "andAll": [                        
                        {
                            "startsWith": {
                                "key": "author",
                                "value": "C"
                            }
                        }
                    ]
                }
            ]
        }
    }
}
```

# クエリとレスポンスの生成を設定してカスタマイズする
<a name="kb-test-config"></a>

情報取得とレスポンス生成の設定をカスタマイズすることで、レスポンスの関連性を高めることができます。例えば、ドキュメントのメタデータフィールド/属性にフィルターを適用して、最近更新されたドキュメント (最終更新日が新しいドキュメント) を利用できます。

**注記**  
**オーケストレーションと生成**を除く以下の設定はすべて、非構造化データソースにのみ適用されます。

コンソールまたは API でのこれらの設定の詳細については、以下の該当するトピックを選択してください。

## ソースチャンクの数
<a name="kb-test-config-number"></a>

ナレッジベースをクエリすると、Amazon Bedrock はデフォルトで最大 5 件の結果を返します。各結果はソースのチャンクに対応しています。

**注記**  
このパラメータにより、返す結果の最大数が設定されるため、レスポンスの結果の実際の数は指定された `numberOfResults` 値よりも少なくなる可能性があります。チャンキング戦略に階層チャンキングを設定している場合、`numberOfResults` パラメータはナレッジベースが取得する子チャンクの数にマッピングされます。同じ親チャンクを共有する子チャンクは、最終レスポンスで親チャンクに置き換えられるため、返される結果の数がリクエストされた量より少なくなる可能性があります。

返される結果の最大数を変更するには、使用する手段のタブを選択し、手順に従ってください。

------
#### [ Console ]

「[ナレッジベースのクエリを実行してデータを取得する](kb-test-retrieve.md)」または「[ナレッジベースをクエリし、取得したデータに基づいてレスポンスを生成する](kb-test-retrieve-generate.md)」のコンソールの手順に従ってください。**[設定]** ペインで、**[ソースチャンク]** セクションを展開し、返すソースチャンクの最大数を入力します。

------
#### [ API ]

[https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_Retrieve.html](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_Retrieve.html) または [https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrieveAndGenerate.html](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrieveAndGenerate.html) リクエストを行うときに、`retrievalConfiguration` フィールドを含め、[KnowledgeBaseRetrievalConfiguration](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_KnowledgeBaseRetrievalConfiguration.html) オブジェクトを指定してください。このフィールドの位置を確認するには、API リファレンスで [https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_Retrieve.html](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_Retrieve.html) リクエストと [https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrieveAndGenerate.html](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrieveAndGenerate.html) リクエストの本文を参照してください。

次の JSON オブジェクトは、検索結果の最大数を設定するために、[KnowledgeBaseRetrievalConfiguration](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_KnowledgeBaseRetrievalConfiguration.html) オブジェクトに最低限必要なフィールドを示しています。

```
"retrievalConfiguration": {
    "vectorSearchConfiguration": {
        "numberOfResults": number
    }
}
```

返される検索結果の最大数 (許容値の範囲については、[KnowledgeBaseRetrievalConfiguration](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_KnowledgeBaseRetrievalConfiguration.html) の `numberOfResults` フィールドを参照) を `numberOfResults` フィールドに指定してください。

------

## 検索タイプ
<a name="kb-test-config-search"></a>

検索タイプは、ナレッジベースでデータソースをどのようにクエリするかを定義します。次の検索タイプを指定できます。

**注記**  
ハイブリッド検索は、フィルタリング可能なテキストフィールドを含んでいる、Amazon RDS、Amazon OpenSearch Serverless、および MongoDB ベクトルストアでのみサポートされています。別のベクトルストアを使用する場合や、ベクトルストアにフィルタリング可能なテキストフィールドが含まれていない場合は、セマンティック検索が使用されます。
+ **デフォルト** – Amazon Bedrock が検索戦略を自動判定します。
+ **ハイブリッド** – ベクトル埋め込みの検索 (セマンティック検索) と未加工テキストの検索を組み合わせます。
+ **セマンティック** – ベクトル埋め込みのみを検索します。

検索タイプの定義方法については、使用する手段のタブを選択し、手順に従ってください。

------
#### [ Console ]

「[ナレッジベースのクエリを実行してデータを取得する](kb-test-retrieve.md)」または「[ナレッジベースをクエリし、取得したデータに基づいてレスポンスを生成する](kb-test-retrieve-generate.md)」のコンソールの手順に従ってください。**[設定]** ペインを開いたら、**[検索タイプ]** セクションを展開し、**[デフォルト検索をオーバーライド]** をオンにして、オプションを選択します。

------
#### [ API ]

[https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_Retrieve.html](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_Retrieve.html) または [https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrieveAndGenerate.html](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrieveAndGenerate.html) リクエストを行うときに、`retrievalConfiguration` フィールドを含め、[KnowledgeBaseRetrievalConfiguration](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_KnowledgeBaseRetrievalConfiguration.html) オブジェクトを指定してください。このフィールドの位置を確認するには、API リファレンスで [https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_Retrieve.html](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_Retrieve.html) リクエストと [https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrieveAndGenerate.html](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrieveAndGenerate.html) リクエストの本文を参照してください。

次の JSON オブジェクトは、検索タイプを設定するために、[KnowledgeBaseRetrievalConfiguration](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_KnowledgeBaseRetrievalConfiguration.html) オブジェクトに最低限必要なフィールドを示しています。

```
"retrievalConfiguration": {
    "vectorSearchConfiguration": {
        "overrideSearchType": "HYBRID | SEMANTIC"
    }
}
```

`overrideSearchType` フィールドに検索タイプを指定します。次のオプションがあります。
+ 値を指定しない場合、ベクトルストアの設定に最適な検索戦略が自動的に判定されます。
+ **HYBRID** – ベクトル埋め込みと未加工テキストの両方を使用してナレッジベースをクエリします。
+ **SEMANTIC** – ベクトル埋め込みを使用してナレッジベースをクエリします。

------

## ストリーミング
<a name="kb-test-config-stream"></a>

------
#### [ Console ]

「[ナレッジベースをクエリし、取得したデータに基づいてレスポンスを生成する](kb-test-retrieve-generate.md)」のコンソールの手順に従ってください。**[設定]** ペインを開くと、**[ストリーミングの環境設定]** セクションを展開し、**[応答をストリーム]** をオンにします。

------
#### [ API ]

レスポンスをストリーミングするには、[https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrieveAndGenerateStream.html](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrieveAndGenerateStream.html) API を使用します。フィールドに入力する方法の詳細については、「[ナレッジベースをクエリし、取得したデータに基づいてレスポンスを生成する](kb-test-retrieve-generate.md)」の **[API]** タブを参照してください。

------

## メタデータの手動フィルタリング
<a name="kb-test-config-filters"></a>

ドキュメントのフィールド/属性にフィルターを適用して、レスポンスの関連性をさらに高めることができます。データソースには、フィルタリングするドキュメントメタデータ属性/フィールドを含めることができ、埋め込みに含めるフィールドを指定できます。

例えば、「epoch\$1modification\$1time」は、ドキュメントが最後に更新された 1970 年 1 月 1 日 (UTC) からの秒数で表されます。「epoch\$1modification\$1time」にフィルターを適用して、その値が特定の数*より大きい*最新のデータだけを取得できます。そうして取得した最新のドキュメントをクエリで使用できます。

ナレッジベースのクエリ時にフィルターを使用するには、ナレッジベースが次の要件を満たしていることを確認してください。
+ データソースコネクタを設定する場合、ほとんどのコネクタはドキュメントの主要なメタデータフィールドをクローリングします。Amazon S3 バケットをデータソースとして使用する場合は、バケットに関連付けられているファイルまたはドキュメントの `fileName.extension.metadata.json` が少なくとも 1 つ含まれている必要があります。メタデータファイルの設定の詳細については、「[接続設定](s3-data-source-connector.md#configuration-s3-connector)」の「**ドキュメントメタデータフィールド**」を参照してください。
+ ナレッジベースのベクトルインデックスが Amazon OpenSearch Serverless ベクトルストアにある場合は、ベクトルインデックスが `faiss` エンジンで設定されていることを確認してください。ベクトルインデックスが `nmslib` エンジンで設定されている場合は、次のいずれかを行う必要があります。
  + コンソールで[新しいナレッジベースを作成](knowledge-base-create.md)し、Amazon Bedrock が Amazon OpenSearch Serverless でベクトルインデックスを自動作成できるようにします。
  + ベクトルストアに[別のベクトルインデックスを作成](knowledge-base-setup.md)し、**[エンジン]** として `faiss` を選択します。次に、[新しいナレッジベースを作成](knowledge-base-create.md)し、新しいベクトルインデックスを指定します。
+ ナレッジベースにより、S3 ベクトルバケットでベクトルインデックスが使用されている場合、`startsWith` および `stringContains`フィルターを使用することはできません。
+ Amazon Aurora データベースクラスター内の既存のベクトルインデックスにメタデータを追加する場合は、カスタムメタデータ列のフィールド名を指定して、すべてのメタデータを 1 つの列に保存することをお勧めします。[データインジェスト](kb-data-source-sync-ingest.md)中、この列はデータソースからメタデータファイル内のすべての情報を入力するために使用されます。このフィールドを指定することにした場合は、この列にインデックスを作成する必要があります。
  + コンソールで[新しいナレッジベースを作成](knowledge-base-create.md)し、Amazon Bedrock を使用して Amazon Aurora データベースを設定すると、自動的に 1 つの列が作成され、メタデータファイルからの情報が入力されます。
  + ベクトルストアに[別のベクトルインデックスを作成する](knowledge-base-setup.md)ことを選択した場合、メタデータファイルからの情報を保存するカスタムメタデータフィールド名を指定する必要があります。このフィールド名を指定しない場合は、ファイル内のメタデータ属性ごとに列を作成し、データ型 (テキスト、数値、またはブール値) を指定する必要があります。例えば、属性 `genre` がデータソースに存在する場合は、`genre` という名前の列を追加し、`text` をデータ型として指定します。インジェスト中、これらの別個の列には対応する属性値が入力されます。

データソースに PDF ドキュメントがあり、ベクトルストアに Amazon OpenSearch Serverless を使用している場合: Amazon Bedrock ナレッジベースによりドキュメントページ番号が生成され、*x-amz-bedrock-kb-document-page-number* というメタデータフィールド/属性に保存されます。ドキュメントのチャンキングを選択しない場合、メタデータフィールドに保存されているページ番号はサポートされない点に注意してください。

クエリ時に結果をフィルタリングするには、次のフィルタリング演算子を使用できます。


**フィルタリング演算子**  

| オペレーター | コンソール | API フィルター名 | サポートされている属性データ型 | フィルタリング結果 | 
| --- | --- | --- | --- | --- | 
| Equals (等しい) | = | [equals](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrievalFilter.html#bedrock-Type-agent-runtime_RetrievalFilter-equals) | 文字列、数値、ブール値 | 属性が指定した値と一致する | 
| Not equals (等しくない) | \$1= | [notEquals](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrievalFilter.html#bedrock-Type-agent-runtime_RetrievalFilter-notEquals) | 文字列、数値、ブール値 | 属性が指定した値と一致しない | 
| Greater than (より大きい) | > | [greaterThan](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrievalFilter.html#bedrock-Type-agent-runtime_RetrievalFilter-greaterThan) | 数値 | 属性が指定した値より大きい | 
| Greater than or equals (以上) | >= | [greaterThanOrEquals](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrievalFilter.html#bedrock-Type-agent-runtime_RetrievalFilter-greaterThanOrEquals) | 数値 | 属性が指定した値以上 | 
| Less than (より小さい) | < | [lessThan](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrievalFilter.html#bedrock-Type-agent-runtime_RetrievalFilter-lessThan) | 数値 | 属性が指定した値より小さい | 
| Less than or equals (以下) | <= | [lessThanOrEquals](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrievalFilter.html#bedrock-Type-agent-runtime_RetrievalFilter-lessThanOrEquals) | 数値 | 属性が指定した値以下 | 
| In (中にある) | : | [in](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrievalFilter.html#bedrock-Type-agent-runtime_RetrievalFilter-in) | 文字列リスト | 属性が指定したリスト内にある (現時点では、Amazon OpenSearch Serverless および Neptune Analytics GraphRAG ベクトルストアで最適にサポートされています) | 
| Not in (中にない) | \$1: | [notIn](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrievalFilter.html#bedrock-Type-agent-runtime_RetrievalFilter-notIn) | 文字列リスト | 属性が指定したリスト内にない (現時点では、Amazon OpenSearch Serverless および Neptune Analytics GraphRAG ベクトルストアで最適にサポートされています) | 
| を含む文字列 | 利用不可 | [stringContains](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrievalFilter.html#bedrock-Type-agent-runtime_RetrievalFilter-stringContains) | string | 属性は文字列にする必要があります。属性名はキーと一致しており、その値は、部分文字列として指定した値を含む文字列、または部分文字列として指定した値を含むメンバーを含むリストです (現時点では、Amazon OpenSearch Serverless ベクトルストアで最適にサポートされています。Neptune Analytics GraphRAG ベクトルストアでは文字列バリアントがサポートされますが、このフィルターのリストバリアントはサポートされません)。 | 
| を含むリスト | 利用不可 | [listContains](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrievalFilter.html#bedrock-Type-agent-runtime_RetrievalFilter-listContains) | string | 属性は文字列リストにする必要があります。属性名はキーと一致しており、その値はメンバーの 1 つとして指定した値を含むリストです (現時点では、Amazon OpenSearch Serverless ベクトルストアで最適にサポートされています)。 | 

フィルタリング演算子を組み合わせる場合は、次の論理演算子を使用できます。


**論理演算子**  

| 演算子 | コンソール | API フィルターフィールド名 | フィルタリング結果 | 
| --- | --- | --- | --- | 
| And | and | [andAll](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrievalFilter.html#bedrock-Type-agent-runtime_RetrievalFilter-andAll) | 結果がグループ内のすべてのフィルタリング式を満たす | 
| Or | or | [orAll](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrievalFilter.html#bedrock-Type-agent-runtime_RetrievalFilter-orAll) | 結果がグループ内のフィルタリング式の少なくとも 1 つを満たす | 

メタデータを使用して結果をフィルタリングする方法については、使用する手段のタブを選択し、手順に従ってください。

------
#### [ Console ]

「[ナレッジベースのクエリを実行してデータを取得する](kb-test-retrieve.md)」または「[ナレッジベースをクエリし、取得したデータに基づいてレスポンスを生成する](kb-test-retrieve-generate.md)」のコンソールの手順に従ってください。**[設定]** ペインを開くと、**[フィルター]** セクションが表示されます。次の手順では、さまざまなユースケースについて説明します。
+ フィルターを追加するには、メタデータ属性、フィルタリング演算子、値をボックスに入力し、フィルタリング式を作成します。式の各部を空白で区切ってください。**Enter** キーを押すと、フィルターが追加されます。

  使用できるフィルタリング演算子のリストについては、上記の「**フィルタリング演算子**」の表を参照してください。また、メタデータ属性の後に空白を追加すると、フィルタリング演算子のリストが表示されます。
**注記**  
文字列は引用符で囲む必要があります。

  例えば、ソースドキュメントからの結果をフィルタリングして、`genre` メタデータ属性の値が `"entertainment"` であるものを取得するには、フィルターとして **genre = "entertainment"** を追加します。  
![\[フィルターを 1 つ追加します。\]](http://docs.aws.amazon.com/ja_jp/bedrock/latest/userguide/images/kb/filter-one.png)
+ 別のフィルターを追加するには、別のフィルタリング式をボックスに入力し、**Enter** キーを押します。グループには最大 5 つのフィルターを追加できます。  
![\[別のフィルターを追加します。\]](http://docs.aws.amazon.com/ja_jp/bedrock/latest/userguide/images/kb/filter-more.png)
+ デフォルトでは、指定したすべてのフィルタリング式を満たすクエリ結果が返されます。フィルタリング式の少なくとも 1 つを満たす結果を返すには、2 つのフィルタリングオペレーションの間にある **[AND]** ドロップダウンメニューを選択し、**[OR]** を選択します。  
![\[フィルター間で論理演算子を変更します。\]](http://docs.aws.amazon.com/ja_jp/bedrock/latest/userguide/images/kb/filter-logical.png)
+ 異なる論理演算子を組み合わせるには、**[\$1 グループを追加]** を選択してフィルターグループを追加します。新しいグループにフィルタリング式を入力します。最大 5 個のフィルターグループを追加できます。  
![\[フィルターグループを追加して、さまざまな論理演算子を組み合わせます。\]](http://docs.aws.amazon.com/ja_jp/bedrock/latest/userguide/images/kb/filter-group.png)
+ すべてのフィルタリンググループ間で使用される論理演算子を変更するには、2 つのフィルターグループの間にある **[AND]** ドロップダウンメニューを選択し、**[OR]** を選択します。  
![\[フィルターグループ間で論理演算子を変更します。\]](http://docs.aws.amazon.com/ja_jp/bedrock/latest/userguide/images/kb/filter-group-logical.png)
+ フィルターを編集するには、フィルターを選択し、フィルタリングオペレーションを変更して **[適用]** を選択します。  
![\[フィルターを編集します。\]](http://docs.aws.amazon.com/ja_jp/bedrock/latest/userguide/images/kb/filter-edit.png)
+ フィルターグループを削除するには、グループの横にあるごみ箱アイコン (![\[Trapezoid-shaped diagram showing data flow from source to destination through AWS Transfer Family.\]](http://docs.aws.amazon.com/ja_jp/bedrock/latest/userguide/images/icons/trash.png)) を選択します。フィルターを削除するには、フィルターの横にある削除アイコン (![\[Close or cancel icon represented by an "X" symbol.\]](http://docs.aws.amazon.com/ja_jp/bedrock/latest/userguide/images/icons/close.png)) を選択します。  
![\[フィルターまたはフィルターグループを削除します。\]](http://docs.aws.amazon.com/ja_jp/bedrock/latest/userguide/images/kb/filter-delete.png)

次の図は、フィルターの設定例を示しています。**2018** 以降に執筆された **"entertainment"** ジャンルのドキュメントを全部と、ジャンルが **"cooking"** または **"sports"** で作成者が **"C"** で始まるドキュメントを返します。

![\[フィルターの設定例。\]](http://docs.aws.amazon.com/ja_jp/bedrock/latest/userguide/images/kb/filter-example.png)


------
#### [ API ]

[https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_Retrieve.html](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_Retrieve.html) または [https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrieveAndGenerate.html](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrieveAndGenerate.html) リクエストを行うときに、`retrievalConfiguration` フィールドを含め、[KnowledgeBaseRetrievalConfiguration](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_KnowledgeBaseRetrievalConfiguration.html) オブジェクトを指定してください。このフィールドの位置を確認するには、API リファレンスで [https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_Retrieve.html](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_Retrieve.html) リクエストと [https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrieveAndGenerate.html](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrieveAndGenerate.html) リクエストの本文を参照してください。

次の JSON オブジェクトは、さまざまなユースケースに応じたフィルターを設定するために、[KnowledgeBaseRetrievalConfiguration](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_KnowledgeBaseRetrievalConfiguration.html) オブジェクトに最低限必要なフィールドを示しています。

1. フィルタリング演算子を 1 つ使用します (上記の「**フィルタリング演算子**」の表を参照)。

   ```
   "retrievalConfiguration": {
       "vectorSearchConfiguration": {
           "filter": {
               "<filter-type>": {
                   "key": "string",
                   "value": "string" | number | boolean | ["string", "string", ...]
               }
           }
       }
   }
   ```

1. 論理演算子 (上記の「**論理演算子**」の表を参照) を使用して、最大 5 つまで組み合わせます。

   ```
   "retrievalConfiguration": {
       "vectorSearchConfiguration": {
           "filter": {
               "andAll | orAll": [
                   "<filter-type>": {
                       "key": "string",
                       "value": "string" | number | boolean | ["string", "string", ...]
                   },
                   "<filter-type>": {
                       "key": "string",
                       "value": "string" | number | boolean | ["string", "string", ...]
                   },
                   ...
               ]
           }
       }
   }
   ```

1. 論理演算子を使用して最大 5 つのフィルタリング演算子を 1 つのフィルターグループに結合し、2 番目の論理演算子を使用してそのフィルターグループを別のフィルタリング演算子と結合します。

   ```
   "retrievalConfiguration": {
       "vectorSearchConfiguration": {
           "filter": {
               "andAll | orAll": [
                   "andAll | orAll": [
                       "<filter-type>": {
                           "key": "string",
                           "value": "string" | number | boolean | ["string", "string", ...]
                       },
                       "<filter-type>": {
                           "key": "string",
                           "value": "string" | number | boolean | ["string", "string", ...]
                       },
                       ...
                   ],
                   "<filter-type>": {
                       "key": "string",
                       "value": "string" | number | boolean | ["string", "string", ...]
                   }
               ]
           }
       }
   }
   ```

1. 最大 5 つのフィルターグループを別の論理演算子に組み込むことで結合します。作成できる埋め込みのレベルは 1 つです。

   ```
   "retrievalConfiguration": {
       "vectorSearchConfiguration": {
           "filter": {
               "andAll | orAll": [
                   "andAll | orAll": [
                       "<filter-type>": {
                           "key": "string",
                           "value": "string" | number | boolean | ["string", "string", ...]
                       },
                       "<filter-type>": {
                           "key": "string",
                           "value": "string" | number | boolean | ["string", "string", ...]
                       },
                       ...
                   ],
                   "andAll | orAll": [
                       "<filter-type>": {
                           "key": "string",
                           "value": "string" | number | boolean | ["string", "string", ...]
                       },
                       "<filter-type>": {
                           "key": "string",
                           "value": "string" | number | boolean | ["string", "string", ...]
                       },
                       ...
                   ]
               ]
           }
       }
   }
   ```

次の表では、使用できるフィルタータイプを説明しています。


****  

| フィールド | サポートされているデータ型 | フィルタリング結果 | 
| --- | --- | --- | 
| equals | 文字列、数値、ブール値 | 属性が指定した値と一致する | 
| notEquals | 文字列、数値、ブール値 | 属性が指定した値と一致しない  | 
| greaterThan | 数値 | 属性が指定した値より大きい | 
| greaterThanOrEquals | 数値 | 属性が指定した値以上 | 
| lessThan | 数値 | 属性が指定した値より小さい  | 
| lessThanOrEquals | 数値 | 属性が指定した値以下 | 
| in | 文字列のリスト | 属性が指定したリストに内にある | 
| notIn | 文字列のリスト | 属性が指定したリスト内にない | 
| startsWith | string | 属性が指定した文字列で始まる (Amazon OpenSearch Serverless ベクトルストアでのみサポート) | 

フィルタータイプを組み合わせるには、次のいずれかの論理演算子を使用できます。


****  

| フィールド | マッピング対象 | フィルタリング結果 | 
| --- | --- | --- | 
| andAll | 最大 5 つのフィルタータイプのリスト | 結果がグループ内のすべてのフィルタリング式を満たす | 
| orAll | 最大 5 つのフィルタータイプのリスト | 結果がグループ内のフィルタリング式の少なくとも 1 つを満たす | 

例については、「[Send a query and include filters (Retrieve)](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_Retrieve.html#API_agent-runtime_Retrieve_Example_2)」および「[Send a query and include filters (RetrieveAndGenerate)](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrieveAndGenerate.html#API_agent-runtime_RetrieveAndGenerate_Example_2)」を参照してください。

------

## 暗黙的なメタデータフィルタリング
<a name="kb-test-config-implicit"></a>

Amazon Bedrock ナレッジベースでは、ユーザークエリとメタデータスキーマに基づいて取得フィルターが生成および適用されます。

**注記**  
この機能は現在のところ、Anthropic Claude 3.5 Sonnet でのみ機能します。

`implicitFilterConfiguration` は、[https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_Retrieve.html](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_Retrieve.html) リクエスト本文の `vectorSearchConfiguration` で指定されます。次のフィールドを含めます。
+ `metadataAttributes` – この配列では、モデルによってフィルターが生成されるメタデータ属性を記述するスキーマを指定します。
+ `modelArn` – 使用するモデルの ARN。

`metadataAttributes` の配列に追加できるメタデータスキーマの例を次に示します。

```
[
    {
        "key": "company",
        "type": "STRING",
        "description": "The full name of the company. E.g. `Amazon.com, Inc.`, `Alphabet Inc.`, etc"
    },
    {
        "key": "ticker",
        "type": "STRING",
        "description": "The ticker name of a company in the stock market, e.g. AMZN, AAPL"
    },
    {
        "key": "pe_ratio",
        "type": "NUMBER",
        "description": "The price to earning ratio of the company. This is a measure of valuation of a company. The lower the pe ratio, the company stock is considered chearper."
    },
    {
        "key": "is_us_company",
        "type": "BOOLEAN",
        "description": "Indicates whether the company is a US company."
    },
    {
        "key": "tags",
        "type": "STRING_LIST",
        "description": "Tags of the company, indicating its main business. E.g. `E-commerce`, `Search engine`, `Artificial intelligence`, `Cloud computing`, etc"
    }
]
```

## ガードレール
<a name="kb-test-config-guardrails"></a>

ユースケースと責任ある AI ポリシーに応じて、ナレッジベースに保護対策を実装できます。さまざまなユースケースに合わせた複数のガードレールを作成し、複数のリクエストやレスポンスの条件に適用することで、一貫したユーザーエクスペリエンスを提供し、ナレッジベース全体で安全性の統制を標準化できます。望ましくないトピックを禁じる拒否トピックや、モデルの入力とレスポンスで有害なコンテンツをブロックするコンテンツフィルターを設定できます。詳細については、「[Amazon Bedrock ガードレールを使用して有害なコンテンツを検出してフィルタリングする](guardrails.md)」を参照してください。

**注記**  
現時点では、Claude 3 Sonnet と Haiku では、ナレッジベースのコンテキストグラウンディングでガードレールを使用することはできません。

一般的なプロンプトエンジニアリングのガイドラインについては、「[プロンプトエンジニアリングの概念](prompt-engineering-guidelines.md)」を参照してください。

任意の方法のタブを選択し、その手順に従います。

------
#### [ Console ]

「[ナレッジベースのクエリを実行してデータを取得する](kb-test-retrieve.md)」または「[ナレッジベースをクエリし、取得したデータに基づいてレスポンスを生成する](kb-test-retrieve-generate.md)」のコンソールの手順に従ってください。テストウィンドウで、**[回答を生成]** をオンにします。次に、**[設定]** ペインで、**[ガードレール]** セクションを展開します。

1. **[ガードレール]** セクションで、ガードレールの **[名前]** と **[バージョン]** を選択します。選択したガードレールとバージョンの詳細を確認するには、**[表示]** を選択します。

   または、**[ガードレール]** リンクを選択して、新規作成することもできます。

1. 編集が終了したら、**[変更の保存]** を選択します。保存せずに終了するには、**[変更を破棄]** を選択します。

------
#### [ API ]

[https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrieveAndGenerate.html](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrieveAndGenerate.html) リクエストを行う際に、そのリクエストでガードレールを使用するには、`generationConfiguration` 内に `guardrailConfiguration` フィールドを含めます。このフィールドの位置を確認するには、API リファレンスで [https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrieveAndGenerate.html](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrieveAndGenerate.html) リクエストの本文を参照してください。

次の JSON オブジェクトは、`guardrailConfiguration` を設定するために、[GenerationConfiguration](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_GenerationConfiguration.html) に最低限必要なフィールドを示しています。

```
"generationConfiguration": {
    "guardrailConfiguration": {
        "guardrailId": "string",
        "guardrailVersion": "string"
    }
}
```

選択したガードレールの `guardrailId` と `guardrailVersion` を指定してください。

------

## 再ランク付け
<a name="kb-test-config-rerank"></a>

リランカーモデルを使用して、ナレッジベースクエリの結果を再ランク付けできます。「[ナレッジベースのクエリを実行してデータを取得する](kb-test-retrieve.md)」または「[ナレッジベースをクエリし、取得したデータに基づいてレスポンスを生成する](kb-test-retrieve-generate.md)」のコンソールの手順に従ってください。**[設定]** ペインを開いたら、**[再ランキング]** セクションを展開します。リランカーモデルを選択し、必要に応じてアクセス許可を更新して、追加のオプションを変更します。プロンプトを入力し、**[実行]** を選択して、再ランク付け後に結果をテストします。

## クエリ分解
<a name="kb-test-query-modifications"></a>

クエリ分解とは、複雑なクエリを管理しやすい細かいサブクエリに分解する手法です。このアプローチは、特に最初のクエリが多面的であるか、範囲が広すぎる場合に、より正確で関連性の高い情報を取得するのに役立ちます。このオプションを有効にすると、ナレッジベースに対して複数のクエリが実行され、最終レスポンスの精度が高まる可能性があります。

例えば、「*2022 FIFA ワールドカップでは、アルゼンチンとフランスのどちらがゴール数が多かったか*」のような質問に対して、Amazon Bedrock ナレッジベースは最終的な回答を生成する前に、まず次のようなサブクエリを生成できます。

1. *2022 FIFA ワールドカップ決勝のアルゼンチンのゴール数*

1. *2022 FIFA ワールドカップ決勝のフランスのゴール数*

------
#### [ Console ]

1. データソースを作成して同期するか、既存のナレッジベースを使用します。

1. テストウィンドウを表示し、設定パネルを開きます。

1. クエリ分解を有効にします。

------
#### [ API ]

```
POST /retrieveAndGenerate HTTP/1.1
Content-type: application/json
{
   "input": {
      "text": "string"
   },
   "retrieveAndGenerateConfiguration": {
      "knowledgeBaseConfiguration": {
         "orchestrationConfiguration": { // Query decomposition
           "queryTransformationConfiguration": {
                "type": "string" // enum of QUERY_DECOMPOSITION
           }
         },
...}
}
```

------

## 推論パラメータ
<a name="kb-test-model-params"></a>

情報の取得に基づいてレスポンスを生成する場合、[推論パラメータ](inference-parameters.md)を使用して、推論中のモデルの動作をより細かく制御し、モデルの出力に影響を与えることができます。

推論パラメータの変更方法については、使用する手段のタブを選択し、手順に従ってください。

------
#### [ Console ]

**ナレッジベースのクエリ時に推論パラメータを変更するには** – 「[ナレッジベースのクエリを実行してデータを取得する](kb-test-retrieve.md)」または「[ナレッジベースをクエリし、取得したデータに基づいてレスポンスを生成する](kb-test-retrieve-generate.md)」のコンソールの手順に従ってください。**[設定]** ペインを開くと、**[推論パラメータ]** セクションが表示されます。パラメータを適宜変更してください。

**ドキュメントチャット機能の使用時に推論パラメータを変更するには** – 「[ナレッジベースを設定せずにドキュメントとチャットする](knowledge-base-chatdoc.md)」の手順に従ってください。**[設定]** ペインで **[推論パラメータ]** セクションを展開し、パラメータを適宜変更します。

------
#### [ API ]

[https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrieveAndGenerate.html](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrieveAndGenerate.html) API の呼び出しでモデルパラメータを指定します。`knowledgeBaseConfiguration` (ナレッジベースをクエリする場合) または `externalSourcesConfiguration` ([ドキュメントチャット](knowledge-base-chatdoc.md)機能を使用する場合) の `inferenceConfig` フィールドに推論パラメータを指定することで、モデルをカスタマイズできます。

`inferenceConfig` フィールド内に `textInferenceConfig` フィールドがあり、次のパラメータを指定できます。
+ 温度
+ topP
+ maxTokenCount
+ stopSequences

`externalSourcesConfiguration` と `knowledgeBaseConfiguration` の両方の `inferenceConfig` フィールドで次のパラメータを使用して、モデルをカスタマイズできます。
+ 温度
+ topP
+ maxTokenCount
+ stopSequences

これらの各パラメータの機能の詳細については、「[推論パラメータでレスポンスの生成に影響を与える](inference-parameters.md)」を参照してください。

さらに、`textInferenceConfig` でサポートされていないカスタムパラメータを `additionalModelRequestFields` マップで指定することもできます。特定のモデルに固有のパラメータをこの引数で指定できます。固有のパラメータについては、「[Inference request parameters and response fields for foundation models](model-parameters.md)」を参照してください。

`textInferenceConfig` でパラメータを省略すると、デフォルトの値が使用されます。`textInferneceConfig` のパラメータが認識されない場合は無視され、`AdditionalModelRequestFields` のパラメータが認識されない場合は例外が発生します。

`additionalModelRequestFields` と `TextInferenceConfig` の両方に同じパラメータが指定されている場合は、検証例外がスローされます。

**RetrieveAndGenerate でモデルパラメータを使用する**

 以下は、`RetrieveAndGenerate` リクエスト本文の `generationConfiguration` の `inferenceConfig` と `additionalModelRequestFields` の構造例です。

```
"inferenceConfig": {
    "textInferenceConfig": {
        "temperature": 0.5,  
        "topP": 0.5,
        "maxTokens": 2048,
        "stopSequences": ["\nObservation"]
    }
},
"additionalModelRequestFields": {
    "top_k": 50
}
```

 上の例は、`temperature` を 0.5、`top_p` を 0.5、`maxTokens` を 2048 に設定し、生成されたレスポンスで文字列「\$1nObservation」が見つかると生成を停止します。また、`top_k` のカスタム値として 50 を渡しています。

------

## ナレッジベースのプロンプトテンプレート: オーケストレーションと生成
<a name="kb-test-config-prompt-template"></a>

ナレッジベースをクエリし、レスポンスの生成をリクエストすると、Amazon Bedrock は、指示とコンテキストをユーザーのクエリと組み合わせるプロンプトテンプレートを使用して、レスポンスの生成のためにモデルに送信される生成プロンプトを作成します。オーケストレーションプロンプトをカスタマイズすると、ユーザーのプロンプトが検索クエリに変わります。プロンプトテンプレートは、次のツールを使用して設計できます。
+ **プロンプトプレースホルダー** – Amazon Bedrock ナレッジベースの事前定義された変数。実行時のナレッジベースのクエリ中に、動的に値が入力されます。システムプロンプトでは、これらのプレースホルダーは `$` 記号で囲まれています。次のリストでは、使用できるプレースホルダーを説明しています。
**注記**  
`$output_format_instructions$` プレースホルダーは、レスポンスに表示される引用の必須フィールドです。  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/bedrock/latest/userguide/kb-test-config.html)
+ **XML タグ** – Anthropic モデルでは、プロンプトを構造化および記述するための XML タグの使用がサポートされています。最適な結果が得るためには、わかりやすいタグ名を使用します。例えば、デフォルトのシステムプロンプトには `<database>` タグがありますが、これは、以前に尋ねられた質問のデータベースを記述するために使用します。詳細については、「[Anthropic ユーザーガイド](https://docs.anthropic.com/en/docs/welcome)」の「[XML タグを使用する](https://docs.anthropic.com/claude/docs/use-xml-tags)」を参照してください。

一般的なプロンプトエンジニアリングのガイドラインについては、「[プロンプトエンジニアリングの概念](prompt-engineering-guidelines.md)」を参照してください。

任意の方法のタブを選択し、その手順に従います。

------
#### [ Console ]

「[ナレッジベースのクエリを実行してデータを取得する](kb-test-retrieve.md)」または「[ナレッジベースをクエリし、取得したデータに基づいてレスポンスを生成する](kb-test-retrieve-generate.md)」のコンソールの手順に従ってください。テストウィンドウで、**[回答を生成]** をオンにします。次に、**[設定]** ペインで、**[ナレッジベースプロンプトのテンプレート]** セクションを展開します。

1. **[編集]** を選択します。

1. プロンプトプレースホルダーや XML タグなど、テキストエディタでシステムプロンプトを適宜編集します。デフォルトのプロンプトテンプレートに戻すには、**[デフォルトにリセット]** を選択します。

1. 編集が終了したら、**[変更の保存]** を選択します。システムプロンプトを保存せずに終了するには、**[変更を破棄]** を選択します。

------
#### [ API ]

[https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrieveAndGenerate.html](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrieveAndGenerate.html) リクエストを行うときに、`generationConfiguration` フィールドを含め、[GenerationConfiguration](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_GenerationConfiguration.html) オブジェクトを指定してください。このフィールドの位置を確認するには、API リファレンスで [https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrieveAndGenerate.html](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrieveAndGenerate.html) リクエストの本文を参照してください。

次の JSON オブジェクトは、検索結果の最大数を設定するために、[GenerationConfiguration](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_GenerationConfiguration.html) オブジェクトに最低限必要なフィールドを示しています。

```
"generationConfiguration": {
    "promptTemplate": {
        "textPromptTemplate": "string"
    }
}
```

必要に応じて、プロンプトプレースホルダーや XML タグなど、カスタムプロンプトテンプレートを `textPromptTemplate` フィールドに入力します。システムプロンプトで使用できる文字数の上限については、「[GenerationConfiguration](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_GenerationConfiguration.html)」の `textPromptTemplate` フィールドを参照してください。

------

# ナレッジベースを使用して推論モデルのレスポンス生成を設定する
<a name="kb-test-configure-reasoning"></a>

特定の基盤モデルでは、モデル推論を実行でき、より大きく複雑なタスクが、より小さくシンプルなステップに分割されます。このプロセスは、多くの場合、思考の連鎖 (CoT) 推論と呼ばれ、モデルが応答する前に考える機会を与えることで、モデルの精度を高めることができます。モデル推論は、マルチステップ分析、数値問題、複雑な推論タスクなどにおいて最も有用です。詳細については、「[モデル推論を使用してモデルのレスポンスを強化する](inference-reasoning.md)」を参照してください。

**注記**  
このページでは、Amazon Bedrock ナレッジベース専用の推論設定を使用する方法について説明します。`InvokeModel` API を使用して直接モデル呼び出しの推論を設定する方法については、「[モデル推論を使用してモデルのレスポンスを強化する](inference-reasoning.md)」を参照してください。

モデル推論を有効にすると、精度が向上し、引用結果が改善されますが、レイテンシーが増加する可能性があります。以下は、データソースをクエリし、Amazon Bedrock ナレッジベースで推論モデルを使用してレスポンスを生成する際の考慮事項です。

**Topics**
+ [推論モデル](#kb-test-reasoning-models)
+ [Claude 3.7 Sonnet でモデル推論を使用する](#kb-test-reasoning-using)
+ [一般的な考慮事項](#kb-test-reasoning-general-considerations)
+ [API の取得と生成に関する考慮事項](#kb-test-reasoning-api-considerations)

## 推論モデル
<a name="kb-test-reasoning-models"></a>

モデル推論は、次のモデルで使用できます。


| 基盤モデル | モデル ID | トークンの数 | 推論設定 | 
| --- | --- | --- | --- | 
| Anthropic Claude Opus 4 | anthropic.claude-opus-4-20250514-v1:0 | このモデルには 32,768 個のトークンがあり、出力トークンと推論トークンの両方が含まれます。 | このモデルでは、設定可能なトークン予算を使用して、推論を有効または無効にすることができます。デフォルトでは、推論は無効になっています。 | 
| Anthropic Claude Sonnet 4 | anthropic.claude-sonnet-4-20250514-v1:0 | このモデルには 65,536 個のトークンがあり、出力トークンと推論トークンの両方が含まれます。 | このモデルでは、設定可能なトークン予算を使用して、推論を有効または無効にすることができます。デフォルトでは、推論は無効になっています。 | 
| Anthropic Claude 3.7 Sonnet | anthropic.claude-3-7-sonnet-20250219-v1:0 | このモデルには 65,536 個のトークンがあり、出力トークンと推論トークンの両方が含まれます。 | このモデルでは、設定可能なトークン予算を使用して、推論を有効または無効にすることができます。デフォルトでは、推論は無効になっています。 | 
| DeepSeek DeepSeek-R1 | deepseek.r1-v1:0 | このモデルには 8,192 個のトークンがあり、出力トークンと推論トークンの両方が含まれます。思考トークンの数は設定できません。出力トークンの最大数は 8192 以下にする必要があります。 | このモデルでは、推論は常に有効になっています。このモデルは、推論機能のオンとオフの切り替えをサポートしていません。 | 

## Claude 3.7 Sonnet でモデル推論を使用する
<a name="kb-test-reasoning-using"></a>

**注記**  
DeepSeek-R1 モデルでは、モデル推論は常に有効になっています。このモデルは、推論機能のオンとオフの切り替えをサポートしていません。

Claude 3.7 Sonnet モデルを使用する場合、[https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrieveAndGenerate.html](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrieveAndGenerate.html) API の `additionalModelRequestFields` パラメータを使用してモデルの推論を有効または無効にすることができます。このパラメータは、すべてのキーと値のペアを受け入れます。例えば、次に示すように、`reasoningConfig` フィールドを追加し、`type` キーを使用して推論を有効または無効にできます。

```
{
   "input": { 
      "text": "string",
      "retrieveAndGenerateConfiguration": { 
      "knowledgeBaseConfiguration": { 
         "generationConfiguration": { 
            "additionalModelRequestFields": {
                "reasoningConfig" : {
                    "type": "enabled",
                    "budget_tokens": INT_VAL, #required when enabled
                }
            }
         },
         "knowledgeBaseId": "string",
      },
      "type": "string"
   },
   "sessionId": "string"
}
```

## 一般的な考慮事項
<a name="kb-test-reasoning-general-considerations"></a>

ナレッジベースに推論モデルを使用する際の一般的な考慮事項を以下に示します。
+ 推論モデルがクエリに応答するまでに最大 5 分かかります。モデルがクエリに応答するまで 5 分以上かかった場合、タイムアウトが発生します。
+ 5 分間のタイムアウトを超えないよう、モデル推論は、クエリとレスポンスの生成を設定する生成ステップでのみ有効になります。オーケストレーションステップにモデルの推論を含めることはできません。
+ 推論モデルは、最大 8192 個のトークンを使用してクエリに応答できます。これには、出力トークンと思考トークンの両方が含まれます。この制限を超える出力トークンの最大数をリクエストするリクエストは、エラーになります。

## API の取得と生成に関する考慮事項
<a name="kb-test-reasoning-api-considerations"></a>

推論モデルに [https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrieveAndGenerate.html](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrieveAndGenerate.html) API を使用する場合の考慮事項を以下に示します。
+ デフォルトでは、Claude 3.7 Sonnet を含むすべてのモデルで推論が無効になっている場合、温度がゼロに設定されます。推論が有効になっている場合は、温度を 1 に設定する必要があります。

  ```
  "inferenceConfig": {
      "textInferenceConfig": {
          "maxTokens": 8192,
          "temperature": 1
      }
  }
  ```
+ Claude 3.7 Sonnet モデルで推論が有効になっている場合、パラメータトップ P を無効にする必要があります。トップ P は、生成時に選択するトークンのパーセンタイルを決定する追加のモデルリクエストフィールドです。デフォルトでは、他の Anthropic Claude モデルのトップ P 値は 1 です。Claude 3.7 Sonnet モデルの場合、この値はデフォルトで無効になります。
+ モデル推論を使用すると、レイテンシーが増加する可能性があります。この API オペレーションと [https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrieveAndGenerateStream.html](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrieveAndGenerateStream.html) API オペレーションを使用すると、API からのレスポンスの受信が遅れる可能性があります。