

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

# 変更をナレッジベースに直接取り込む
<a name="kb-direct-ingestion"></a>

Amazon Bedrock ナレッジベースを使用すると、データソースの変更と変更の同期を 1 ステップで行うことができます。この機能は、ナレッジベースが次のいずれかのタイプのデータソースに接続されている場合に利用できます。
+ Amazon S3
+ カスタム

直接取り込みを使用すると、ナレッジベースのファイルを 1 つのアクションで直接追加、更新、または削除でき、同期しなくてもナレッジベースはドキュメントにアクセスできます。直接取り込みでは、`KnowledgeBaseDocuments` API オペレーションを使用して、ナレッジベース用に設定されたベクトルストアに直接送信するドキュメントのインデックスを作成します。このオペレーションを使用して、ナレッジベース内のドキュメントを直接表示することもできます。ドキュメントを表示するために、接続されたデータソースに移動する必要はありません。

## データソースの同期との違い
<a name="kb-direct-ingestion-sync-diff"></a>

Amazon Bedrock ナレッジベースには、[データソースの同期](kb-data-source-sync-ingest.md)に関連する一連の `IngestionJob` API オペレーションも用意されています。[StartIngestionJob](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_StartIngestionJob.html) リクエストを使用してデータソースを同期すると、Amazon Bedrock ナレッジベースは接続されたデータソース内の各ドキュメントをスキャンし、ナレッジベース用に設定されたベクトルストアにドキュメントのインデックスが既に作成されているかどうかを確認します。まだ作成されていない場合は、ベクトルストアにインデックスが作成されます。

[IngestKnowledgeBaseDocuments](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_IngestKnowledgeBaseDocuments.html) リクエストでは、ベクトルストアに直接インデックスを作成するドキュメントの配列を送信します。したがって、データソースにドキュメントを追加するステップはスキップします。この 2 つの API オペレーションセットのユースケースについては、以下の段落を参照してください。

**カスタムデータソースを使用する場合**  
同期したり、`IngestionJob` オペレーションを使用したりする必要はありません。`KnowledgeBaseDocuments` オペレーションを使用して、または AWS マネジメントコンソールで追加、変更、削除したドキュメントは、カスタムデータソースとナレッジベースの両方の一部になります。

**Amazon S3 データソースを使用する場合**  
2 つのオペレーションセットは、さまざまなユースケースで使用します。
+ ナレッジベースを S3 データソースに初めて接続したら、AWS マネジメントコンソールで、または Amazon Bedrock API を介して [StartIngestionJob](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_StartIngestionJob.html) リクエストを送信することで、データソースを同期する必要があります。
+ 次の方法で、ナレッジベース用に設定されたベクトルストアにドキュメントのインデックスを作成するか、インデックスが作成されたドキュメントを削除します。

  1. S3 の場所にドキュメントを追加するか、そこからドキュメントを削除します。次に、AWS マネジメントコンソールでデータソースを同期するか、API で `StartIngestionJob` リクエストを送信します。同期と `StartIngestionJob` オペレーションの詳細については、「[Amazon Bedrock ナレッジベースとデータを同期する](kb-data-source-sync-ingest.md)」を参照してください。

  1. `IngestKnowledgeBaseDocuments` リクエストを使用して S3 ドキュメントをナレッジベースに直接取り込みます。ドキュメントを直接取り込む方法の詳細については、「[ドキュメントをナレッジベースに直接取り込む](kb-direct-ingestion-add.md)」を参照してください。
**警告**  
S3 データソースの場合、AWS マネジメントコンソールで、または `KnowledgeBaseDocuments` API オペレーションを使用してナレッジベースに直接インデックスを作成した変更は、S3 の場所に反映されません。これらの API オペレーションを使用すると、ナレッジベースに対する変更を 1 ステップですぐに反映することができます。ただし、フォローアップとして S3 の場所で同じ変更を行い、AWS マネジメントコンソールで、または `StartIngestionJob` を使用してデータソースを次回同期するときに上書きされないようにする必要があります。  
`IngestKnowledgeBaseDocuments` リクエストと `StartIngestionJob` リクエストを同時に送信しないでください。

トピックを選択し、データソース内のドキュメントの直接取り込みを実行する方法を確認してください。

**Topics**
+ [データソースの同期との違い](#kb-direct-ingestion-sync-diff)
+ [直接取り込みの前提条件](kb-direct-ingestion-prereq.md)
+ [ドキュメントをナレッジベースに直接取り込む](kb-direct-ingestion-add.md)
+ [データソース内のドキュメントに関する情報を表示する](kb-direct-ingestion-view.md)
+ [ナレッジベースからドキュメントを直接削除する](kb-direct-ingestion-delete.md)

# 直接取り込みの前提条件
<a name="kb-direct-ingestion-prereq"></a>

直接取り込みを使用するには、IAM ロールに `KnowledgeBaseDocs` API オペレーションを使用するためのアクセス許可が必要です。IAM ロールに [AmazonBedrockFullAccess](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonBedrockFullAccess)AWS 管理ポリシーがアタッチされている場合は、このセクションをスキップできます。

以下のポリシーを IAM ロールにアタッチすることで、`Resource` フィールドで指定したナレッジベースへの直接取り込みを実行できるようになります。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "DirectIngestion",
            "Effect": "Allow",
            "Action": [
                "bedrock:StartIngestionJob",
                "bedrock:IngestKnowledgeBaseDocuments",
                "bedrock:GetKnowledgeBaseDocuments",
                "bedrock:ListKnowledgeBaseDocuments",
                "bedrock:DeleteKnowledgeBaseDocuments"
            ],
            "Resource": [
                "arn:aws:bedrock:us-east-1:123456789012:knowledge-base/${KnowledgeBaseId}"
            ]
        }
    ]
}
```

------

アクセス許可をさらに制限するには、アクションを省略するか、アクセス許可をフィルタリングするためのリソースや条件キーを指定できます。アクション、リソース、条件キーの詳細については、「*サービス認可リファレンス*」の以下のトピックを参照してください。
+ [Amazon Bedrock で定義されるアクション](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonbedrock.html#amazonbedrock-actions-as-permissions) – アクション、`Resource` フィールドで範囲を定義できるリソースタイプ、`Condition` フィールドでアクセス許可をフィルタリングできる条件キーについて説明しています。
+ [Amazon Bedrock で定義されるリソースタイプ](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonbedrock.html#amazonbedrock-resources-for-iam-policies) – Amazon Bedrock のリソースタイプについて説明しています。
+ [Amazon Bedrock の条件キー](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonbedrock.html#amazonbedrock-policy-keys) – Amazon Bedrock の条件キーについて説明しています。

# ドキュメントをナレッジベースに直接取り込む
<a name="kb-direct-ingestion-add"></a>

このトピックでは、ドキュメントをナレッジベースに直接取り込む方法について説明します。データソースによって直接取り込めるドキュメントのタイプに制限が適用されます。取り込むドキュメントの指定に使用できる方法の制限については、次の表を参照してください。


****  

| データソースタイプ | インラインで定義されたドキュメント | Amazon S3 の場所のドキュメント | 
| --- | --- | --- | 
| Amazon S3 | ![\[Red circular icon with an X symbol, indicating cancellation or denial.\]](http://docs.aws.amazon.com/ja_jp/bedrock/latest/userguide/images/icons/icon-no.png)なし | ![\[Green circular icon with a white checkmark symbol inside.\]](http://docs.aws.amazon.com/ja_jp/bedrock/latest/userguide/images/icons/icon-yes.png) あり | 
| カスタム | ![\[Green circular icon with a white checkmark symbol inside.\]](http://docs.aws.amazon.com/ja_jp/bedrock/latest/userguide/images/icons/icon-yes.png) あり | ![\[Green circular icon with a white checkmark symbol inside.\]](http://docs.aws.amazon.com/ja_jp/bedrock/latest/userguide/images/icons/icon-yes.png) あり | 

ユースケースに対応するセクションを展開します。

**注記**  
コンソールを使用すると、最大 10 個のドキュメントをナレッジベースに直接取り込むことができます。代わりに `IngestKnowledgeBaseDocuments` API を使用する場合は、最大 25 のドキュメントをナレッジベースに取り込むことができます。このクォータの詳細については、「*AWS 全般のリファレンス*」ガイドの「[Amazon Bedrock の サービスクォータ](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#limits_bedrock)」を参照してください。

## コンソールを使用する
<a name="kb-direct-ingestion-add-console"></a>

でドキュメントを直接追加または変更するには AWS マネジメントコンソール、次の手順を実行します。

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

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

1. **[ナレッジベース]** セクションで、ドキュメントを取り込むナレッジベースを選択します。

1. **[データソース]** セクションで、ドキュメントを追加、変更、または削除するデータソースを選択します。

1. **[ドキュメント]** セクションで、**[ドキュメントを追加]** を選択します。次に、以下のいずれかを行います。
   + ドキュメントを直接追加または変更するには、**[ドキュメントを直接追加]** を選択します。次に、以下の操作を実行します。

     1. **[ドキュメント識別子]** フィールドで、ドキュメントの一意の名前を指定します。データソースに既に存在する名前を指定すると、ドキュメントが置き換えられます。

     1. ドキュメントをアップロードするには、**[アップロード]** を選択します。ドキュメントをインラインで定義するには、**[ドキュメントをインラインで追加]** を選択し、形式を選択して、ドキュメントのテキストをボックスに入力します。

     1. (オプション) メタデータをドキュメントに関連付けるには、**[メタデータを追加]** を選択し、キー、タイプ、値を入力します。
   + S3 の場所を指定してドキュメントを追加または変更するには、**[S3 ドキュメントを追加]** を選択します。次に、以下の操作を実行します。

     1. **[ドキュメント識別子]** フィールドで、ドキュメントの一意の名前を指定します。データソースに既に存在する名前を指定すると、ドキュメントが置き換えられます。

     1. ドキュメントの **S3 の場所**が現在のアカウントにあるか、別の AWS アカウントにあるかを指定します。次に、ドキュメントの S3 URI を指定します。

     1. (オプション) メタデータをドキュメントに関連付けるには、**[メタデータソース]** を選択します。メタデータの S3 URI を指定するか、**[メタデータを追加]** を選択してキー、タイプ、値を入力します。

1. ドキュメントと関連するメタデータを取り込むには、**[追加]** を選択します。

## API を使用する
<a name="kb-direct-ingestion-add-api"></a>

Amazon Bedrock API を使用してナレッジベースに直接ドキュメントを取り込むには、[Amazon Bedrock エージェントのビルドタイムエンドポイント](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#bra-bt)を使用して [IngestKnowledgeBaseDocuments](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_IngestKnowledgeBaseDocuments.html) リクエストを送信し、ナレッジベース ID および接続されているデータソースの ID を指定します。

**注記**  
ナレッジベースに既に存在するドキュメント識別子または S3 の場所を指定すると、ドキュメントは新しいコンテンツで上書きされます。

リクエスト本文には、[KnowledgeBaseDocument](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_KnowledgeBaseDocument.html) オブジェクトの配列にマッピングされる 1 つのフィールド `documents` が含まれています。各オブジェクトは、データソースに追加してナレッジベースに取り込むドキュメントのコンテンツとオプションのメタデータを表します。[KnowledgeBaseDocument](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_KnowledgeBaseDocument.html) オブジェクトには、次のフィールドが含まれます。
+ content – 追加するドキュメントのコンテンツに関する情報を含む [DocumentContent](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_DocumentContent.html) オブジェクトにマッピングします。
+ metadata – (オプション) 追加するドキュメントのメタデータに関する情報を含む [DocumentMetadata](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_DocumentMetadata.html) オブジェクトにマッピングします。取得時にメタデータを使用する方法の詳細については、「[クエリとレスポンスの生成を設定してカスタマイズする](kb-test-config.md)」 の「**メタデータとフィルタリング**」セクションを参照してください。

トピックを選択すると、さまざまなデータソースタイプのドキュメントを取り込む方法や例を確認できます。

**Topics**
+ [カスタムデータソースに接続されたナレッジベースにドキュメントを取り込む](#kb-direct-ingestion-add-custom)
+ [Amazon S3 データソースに接続されたナレッジベースにドキュメントを取り込む](#kb-direct-ingestion-add-s3)
+ [リクエスト本文の例](#w2aac28c10c23c19c17c11b3c19)

### カスタムデータソースに接続されたナレッジベースにドキュメントを取り込む
<a name="kb-direct-ingestion-add-custom"></a>

指定した `dataSourceId` がカスタムデータソースに属している場合は、`documents` 配列内の各 [KnowledgeBaseDocument](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_KnowledgeBaseDocument.html) オブジェクトにコンテンツとメタデータを追加できます。

カスタムデータソースに追加されたドキュメントのコンテンツは、次の方法で定義できます。

#### ドキュメントをインラインで定義する
<a name="kb-direct-ingestion-add-custom-inline"></a>

次のタイプのドキュメントをインラインで定義できます。

------
#### [ Text ]

ドキュメントがテキストの場合、[DocumentContent](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_DocumentContent.html) オブジェクトは次の形式になります。

```
{ 
    "custom": { 
        "customDocumentIdentifier": { 
            "id": "string"
        },
        "inlineContent": { 
            "textContent": { 
                "data": "string"
            },
            "type": "TEXT"
        },
        "sourceType": "IN_LINE"
    },
    "dataSourceType": "CUSTOM"
}
```

`id` フィールドにドキュメントの ID を、`data` フィールドにドキュメントのテキストを含めます。

------
#### [ Bytes ]

ドキュメントにテキスト以外の内容が含まれている場合は、Base64 文字列に変換します。[DocumentContent](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_DocumentContent.html) オブジェクトは次の形式になります。

```
{ 
    "custom": { 
        "customDocumentIdentifier": { 
            "id": "string"
        },
        "inlineContent": { 
            "byteContent": { 
                "data": blob,
                "mimeType": "string"
            },
            "type": "BYTE"
        },
        "sourceType": "IN_LINE"
    },
    "dataSourceType": "CUSTOM"
}
```

`id` フィールドにドキュメントの ID、`data`フィールドに Base64 でエンコードされたドキュメント、`mimeType` フィールドに MIME タイプを含めます。

------

#### S3 からドキュメントを取り込む
<a name="w2aac28c10c23c19c17c11b3c15b7b3"></a>

S3 の場所からドキュメントを取り込む場合、`content` フィールドの [DocumentContent](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_DocumentContent.html) オブジェクトは次の形式になります。

```
{ 
    "custom": { 
        "customDocumentIdentifier": { 
            "id": "string"
        },
        "s3Location": { 
            "bucketOwnerAccountId": "string",
            "uri": "string"
        },
        "sourceType": "S3"
    },
    "dataSourceType": "CUSTOM"
}
```

`id` フィールドにドキュメントの ID、`bucketOwnerAccountId` フィールドにドキュメントを含む S3 バケットの所有者、`uri` フィールドにドキュメントの S3 URI を含めます。

ドキュメントのメタデータは、次の方法で定義できます。

#### メタデータをインラインで定義する
<a name="w2aac28c10c23c19c17c11b3c15c11b1"></a>

メタデータをインラインで定義する場合、`metadata` フィールドの [DocumentMetadata](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_DocumentMetadata.html) オブジェクトは次の形式になります。

```
{ 
    "inlineAttributes": [ 
        { 
            "key": "string",
            "value": { 
                "stringValue": "string",
                "booleanValue": boolean,
                "numberValue": number,
                "stringListValue": [ "string" ],
                "type": "STRING" | "BOOLEAN" | "NUMBER" | "STRING_LIST"
            }
        }
    ],
    "type": "IN_LINE_ATTRIBUTE"
}
```

追加する属性ごとに、`key` フィールドでキーを定義します。`type` フィールドに値のデータ型を指定し、データ型に対応するフィールドを含めます。例えば、文字列を含めると、属性は次の形式になります。

```
{ 
    "key": "string",
    "value": { 
        "stringValue": "string",
        "type": "STRING"
    }
}
```

#### S3 からメタデータを取り込む
<a name="w2aac28c10c23c19c17c11b3c15c11b3"></a>

S3 の場所の拡張子 `.metadata.json` を持つファイルからメタデータを取り込むこともできます。メタデータファイルの形式の詳細については、「[ナレッジベースに対応する Amazon S3 に接続する](s3-data-source-connector.md)」の「**ドキュメントメタデータフィールド**」セクションを参照してください。

メタデータが S3 ファイルからのものである場合、`metadata` フィールドの [DocumentMetadata](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_DocumentMetadata.html) オブジェクトは次の形式になります。

```
{
    "s3Location": { 
        "bucketOwnerAccountId": "string",
        "uri": "string"
    },
        "type": "S3_LOCATION"
    }
 }
```

`bucketOwnerAccountId` フィールドにメタデータファイルを含む S3 バケットの所有者を含め、`uri` フィールドにメタデータファイルの S3 URI を含めます。

**警告**  
コンテンツをインラインで定義した場合は、メタデータをインラインで定義する必要があります。

### Amazon S3 データソースに接続されたナレッジベースにドキュメントを取り込む
<a name="kb-direct-ingestion-add-s3"></a>

指定した `dataSourceId` が S3 データソースに属している場合は、`documents` 配列内の各 [KnowledgeBaseDocument](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_KnowledgeBaseDocument.html) オブジェクトにコンテンツとメタデータを追加できます。

**注記**  
S3 データソースの場合、コンテンツとメタデータは S3 の場所からのみ追加できます。

S3 に追加する S3 ドキュメントのコンテンツは、次の形式で [DocumentContent](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_DocumentContent.html) オブジェクトに追加する必要があります。

```
{ 
    "dataSourceType": "string",
    "s3": { 
        "s3Location": { 
            "uri": "string"
        }
    }
}
```

`bucketOwnerAccountId` フィールドにドキュメントを含む S3 バケットの所有者を含め、`uri` フィールドにドキュメントの S3 URI を含めます。

カスタムデータソースに追加されたドキュメントのメタデータは、次の形式で定義できます。

```
{
    "s3Location": { 
        "bucketOwnerAccountId": "string",
        "uri": "string"
    },
        "type": "S3_LOCATION"
    }
 }
```

**警告**  
S3 データソースに接続されたナレッジベースに直接取り込むドキュメントは、S3 バケット自体には追加されません。これらのドキュメントを S3 データソースに追加して、データソースを同期しても削除または上書きされないようにすることをお勧めします。

### リクエスト本文の例
<a name="w2aac28c10c23c19c17c11b3c19"></a>

以下のセクションで、`IngestKnowledgeBaseDocuments` を使用したさまざまなユースケースのリクエスト本文について説明します。

#### カスタムテキストドキュメントをカスタムデータソースに追加して取り込む
<a name="w2aac28c10c23c19c17c11b3c19b5b1"></a>

次の例は、カスタムデータソースに 1 つのテキストドキュメントを追加する方法を示しています。

```
PUT /knowledgebases/KB12345678/datasources/DS12345678/documents HTTP/1.1
Content-type: application/json

{
   "documents": [ 
      { 
         "content": { 
            "dataSourceType": "CUSTOM",
            "custom": { 
               "customDocumentIdentifier": { 
                  "id": "MyDocument"
               },
               "inlineContent": { 
                  "textContent": { 
                     "data": "Hello world!"
                  },
                  "type": "TEXT"
               },
               "sourceType": "IN_LINE"
            }
         }
     }
   ]
}
```

#### Base64 でエンコードされたドキュメントをカスタムデータソースに追加して取り込む
<a name="w2aac28c10c23c19c17c11b3c19b5b3"></a>

次の例は、カスタムデータソースに PDF ドキュメントを追加する方法を示しています。

```
PUT /knowledgebases/KB12345678/datasources/DS12345678/documents HTTP/1.1
Content-type: application/json

{
   "documents": [ 
      { 
         "content": { 
            "dataSourceType": "CUSTOM",
            "custom": { 
               "customDocumentIdentifier": { 
                  "id": "MyDocument"
               },
               "inlineContent": { 
                  "byteContent": { 
                     "data": "<Base64-encoded string>",
                     "mimeType": "application/pdf"
                  },
                  "type": "BYTE"
               },
               "sourceType": "IN_LINE"
            }
         }
     }
   ]
}
```

#### S3 の場所からカスタムデータソースに接続されたナレッジベースにドキュメントを追加して取り込む
<a name="w2aac28c10c23c19c17c11b3c19b5b5"></a>

次の例は、S3 の場所からカスタムデータソースに 1 つのテキストドキュメントを追加する方法を示しています。

```
PUT /knowledgebases/KB12345678/datasources/DS12345678/documents HTTP/1.1
Content-type: application/json

{
   "documents": [ 
      { 
         "content": { 
            "dataSourceType": "CUSTOM",
            "custom": { 
               "customDocumentIdentifier": { 
                  "id": "MyDocument"
               },
               "s3": {
                "s3Location": {
                    "uri": "amzn-s3-demo-bucket"
                }
               },
               "sourceType": "S3"
            }
         }
     }
   ]
}
```

#### カスタムデータソースに接続されたナレッジベースにインラインドキュメントを追加し、メタデータをインラインで含める
<a name="w2aac28c10c23c19c17c11b3c19b5b7"></a>

次の例は、2 つの属性を含むメタデータとともに、ドキュメントのカスタムデータソースにインラインを追加する方法を示しています。

```
PUT /knowledgebases/KB12345678/datasources/DS12345678/documents HTTP/1.1
Content-type: application/json

{
   "documents": [ 
      { 
         "content": { 
            "dataSourceType": "CUSTOM",
            "custom": { 
               "customDocumentIdentifier": { 
                  "id": "MyDocument"
               },
               "inlineContent": { 
                  "textContent": { 
                     "data": "Hello world!"
                  },
                  "type": "TEXT"
               },
               "sourceType": "IN_LINE"
            }
         },
         "metadata": {
            "inlineAttributes": [ 
               { 
                  "key": "genre",
                  "value": {
                     "stringValue": "pop",
                     "type": "STRING"
                  }
               },
               { 
                  "key": "year",
                  "value": { 
                     "numberValue": 1988,
                     "type": "NUMBER"
                  }
               }
            ],
            "type": "IN_LINE_ATTRIBUTE"
         }
     }
   ]
}
```

#### S3 データソースに接続されたナレッジベースにドキュメントを追加し、そのメタデータを含める
<a name="w2aac28c10c23c19c17c11b3c19b5b9"></a>

次の例は、メタデータとともにドキュメントを S3 データソースに追加する方法を示しています。メタデータは S3 を介してのみ含めることができます。

```
PUT /knowledgebases/KB12345678/datasources/DS12345678/documents HTTP/1.1
Content-type: application/json

{
    "documents": [ 
        { 
            "content": { 
                "dataSourceType": "S3",
                "s3": { 
                "s3Location": {
                    "uri": "amzn-s3-demo-bucket"
                }
            }
        },
        "metadata": {
            "s3Location": {
                "bucketOwnerId": "111122223333",
                "uri": "amzn-s3-demo-bucket"
            },
                "type": "S3_LOCATION"
            }
        }
    ]
}
```

# データソース内のドキュメントに関する情報を表示する
<a name="kb-direct-ingestion-view"></a>

以下のトピックでは、データソース内のドキュメントを表示する方法について説明します。ナレッジベースが Amazon S3 データソースに接続されている場合は、接続された S3 バケット内のドキュメントを表示できます。

**注記**  
S3 データソースに接続して新しいナレッジベースを作成した場合は、これらの API オペレーションをデータソースで使用する前に、まずデータソースを同期する必要があります。

自分のユースケースに対応する方法を展開してください。

## コンソールを使用する
<a name="kb-direct-ingestion-view-console"></a>

AWS マネジメントコンソールに取り込まれたデータソース内のドキュメントを表示するには、次の手順を実行します。

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

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

1. **[ナレッジベース]** セクションで、表示するドキュメントが含まれているナレッジベースを選択します。

1. **[データソース]** セクションで、表示するドキュメントが含まれているデータソースを選択します。

1. **[ドキュメント]** セクションに、データソース内のドキュメントが一覧表示されます。これらのドキュメントはナレッジベースにも取り込まれています。

## API を使用する
<a name="kb-direct-ingestion-view-api"></a>

Amazon Bedrock API を使用すると、ナレッジベースに取り込まれたデータソース内のドキュメントのサブセットまたはすべてを表示できます。自分のユースケースに関連するトピックを選択してください。

**Topics**
+ [ナレッジベース内のドキュメントのサブセットに関する情報を表示する](#kb-direct-ingestion-get)
+ [ナレッジベース内のすべてのドキュメントに関する情報を表示する](#kb-direct-ingestion-list)

### ナレッジベース内のドキュメントのサブセットに関する情報を表示する
<a name="kb-direct-ingestion-get"></a>

データソース内の特定のドキュメントに関する情報を表示するには、[Amazon Bedrock エージェントのビルドタイムエンドポイント](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#bra-bt)を使用して [GetKnowledgeBaseDocuments](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_GetKnowledgeBaseDocuments.html) リクエストを送信し、データソースとそのデータソースが接続されているナレッジベースの ID を指定します。

情報を取得するドキュメントごとに、次のいずれかの形式で `documentIdentifiers` 配列に [DocumentIdentifier](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_DocumentIdentifier.html) 項目を追加します。
+ データソースがカスタムデータソースの場合は、`id` フィールドでドキュメントの ID を指定します。

  ```
  { 
      "custom": { 
          "id": "string"
      },
      "dataSourceType": "CUSTOM"
  }
  ```
+ データソースが Amazon S3 の場合は、`uri` フィールドでドキュメントの S3 URI を指定します。

  ```
  {
      "dataSourceType": "S3",
      "s3": { 
          "uri": "string"
      }
  }
  ```

レスポンスは項目の配列を返します。各項目には、リクエストしたドキュメントに関する情報が含まれています。

### ナレッジベース内のすべてのドキュメントに関する情報を表示する
<a name="kb-direct-ingestion-list"></a>

データソース内のすべてのドキュメントに関する情報を表示するには、[Amazon Bedrock エージェントのビルドタイムエンドポイント](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#bra-bt)を使用して [ListKnowledgeBaseDocuments](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_ListKnowledgeBaseDocuments.html) リクエストを送信し、データソースとそのデータソースが接続されているナレッジベースの ID を指定します。次のオプションもあります。
+ `maxResults` を指定して、返される結果の数を制限します。
+ 結果がレスポンスに収まらない場合、レスポンスの `nextToken` フィールドで値が返されます。この値を後続のリクエストの `nextToken` フィールドで使用して、結果の次のバッチを取得できます。

# ナレッジベースからドキュメントを直接削除する
<a name="kb-direct-ingestion-delete"></a>

ナレッジベースでドキュメントが不要になった場合は、直接削除できます。データソースとナレッジベースからドキュメントを削除する方法を確認するには、該当ユースケースに対応するセクションを展開します。

## コンソールを使用する
<a name="kb-direct-ingestion-delete-console"></a>

AWS マネジメントコンソール を使用してデータソースとナレッジベースからドキュメントを直接削除するには、次の手順を実行します。

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

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

1. **[ナレッジベース]** セクションで、ドキュメントを削除するナレッジベースを選択します。

1. **[データソース]** セクションで、ドキュメントを削除するデータソースを選択します。

1. **[ドキュメント]** セクションで、削除するドキュメントを選択します。**[ドキュメントを削除]** をクリックします。メッセージを確認して、確定します。

## API を使用する
<a name="kb-direct-ingestion-delete-api"></a>

Amazon Bedrock API を介してデータソースから特定のドキュメントを削除するには、[Amazon Bedrock エージェントのビルドタイムエンドポイント](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#bra-bt)を使用して、[DeleteKnowledgeBaseDocuments](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_DeleteKnowledgeBaseDocuments.html) リクエストを送信し、データソースの ID とそのデータソースが接続されているナレッジベースの ID を指定します。

削除するドキュメントごとに、`documentIdentifiers` 配列で [DocumentIdentifier](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_DocumentIdentifier.html) 項目を以下のいずれかの形式で追加します。
+ データソースがカスタムデータソースの場合は、`id` フィールドでドキュメントの ID を指定します。

  ```
  { 
      "custom": { 
          "id": "string"
      },
      "dataSourceType": "CUSTOM"
  }
  ```
+ データソースが Amazon S3 の場合は、`uri` フィールドでドキュメントの S3 URI を指定します。

  ```
  {
      "dataSourceType": "S3",
      "s3": { 
          "uri": "string"
      }
  }
  ```

**警告**  
S3 データソースに接続されたナレッジベースから直接削除したドキュメントは、S3 バケット自体からは削除されません。これらのドキュメントを S3 バケットから削除して、データソースを同期しても再導入されないようにすることをお勧めします。