

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

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

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


****  

| データソースタイプ | インラインで定義されたドキュメント | Amazon S3 の場所のドキュメント | 
| --- | --- | --- | 
| Amazon S3 | ![](http://docs.aws.amazon.com/ja_jp/bedrock/latest/userguide/images/icons/icon-no.png)なし | ![](http://docs.aws.amazon.com/ja_jp/bedrock/latest/userguide/images/icons/icon-yes.png) あり | 
| カスタム | ![](http://docs.aws.amazon.com/ja_jp/bedrock/latest/userguide/images/icons/icon-yes.png) あり | ![](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)
+ [リクエスト本文の例](#w2aac32c12c23c19c17c11b3c19)

### カスタムデータソースに接続されたナレッジベースにドキュメントを取り込む
<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="w2aac32c12c23c19c17c11b3c15b7b3"></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="w2aac32c12c23c19c17c11b3c15c11b1"></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="w2aac32c12c23c19c17c11b3c15c11b3"></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="w2aac32c12c23c19c17c11b3c19"></a>

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

#### カスタムテキストドキュメントをカスタムデータソースに追加して取り込む
<a name="w2aac32c12c23c19c17c11b3c19b5b1"></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="w2aac32c12c23c19c17c11b3c19b5b3"></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="w2aac32c12c23c19c17c11b3c19b5b5"></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="w2aac32c12c23c19c17c11b3c19b5b7"></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="w2aac32c12c23c19c17c11b3c19b5b9"></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"
            }
        }
    ]
}
```