ナレッジベースに直接ドキュメントを取り込む - Amazon Bedrock

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

ナレッジベースに直接ドキュメントを取り込む

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

データソースタイプ インラインで定義されたドキュメント Amazon S3 ロケーションのドキュメント
Amazon S3 No なし Yes あり
カスタム Yes あり Yes あり

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

でドキュメントを直接追加または変更するには AWS Management Console、次の手順を実行します。

  1. Amazon Bedrock アクセス許可を持つ IAM ロール AWS Management Console を使用して にサインインし、https://console.aws.amazon.com/bedrock/ で Amazon Bedrock コンソールを開きます。

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

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

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

  5. ドキュメント セクションで、ドキュメントの追加 を選択します。次に、以下のいずれかを行います。

    • ドキュメントを直接追加または変更するには、ドキュメントを直接追加を選択します。次に、以下の操作を実行します。

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

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

      3. (オプション) メタデータをドキュメントに関連付けるには、メタデータを追加を選択し、キー、タイプ、値を入力します。

    • S3 の場所を指定してドキュメントを追加または変更するには、S3 ドキュメントの追加を選択します。次に、以下の操作を実行します。

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

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

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

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

Amazon Bedrock API を使用してナレッジベースに直接ドキュメントを取り込むには、Amazon Bedrock エージェントのビルドタイムエンドポイントを使用して IngestKnowledgeBaseDocuments リクエストを送信し、ナレッジベースと接続先のデータソースの ID を指定します。

注記

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

リクエストボディには、KnowledgeBaseDocument オブジェクトの配列にマッピングdocumentsされる 1 つのフィールド が含まれています。各フィールドは、データソースに追加してナレッジベースに取り込むドキュメントのコンテンツとオプションのメタデータを表します。KnowledgeBaseDocument オブジェクトには、次のフィールドが含まれます。

  • content – 追加するドキュメントのコンテンツに関する情報を含む DocumentContent オブジェクトにマッピングします。

  • metadata – (オプション) 追加するドキュメントのメタデータに関する情報を含む DocumentMetadata オブジェクトにマッピングします。取得時にメタデータを使用する方法の詳細については、「」の「メタデータとフィルタリング」セクションを参照してくださいクエリとレスポンスの生成を設定してカスタマイズする

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

カスタムデータソースに接続されたナレッジベースにドキュメントを取り込む

dataSourceId 指定した がカスタムデータソースに属している場合は、documents配列内の各 KnowledgeBaseDocument オブジェクトにコンテンツとメタデータを追加できます。

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

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

Text

ドキュメントがテキストの場合、DocumentContent オブジェクトは次の形式である必要があります。

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

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

Bytes

ドキュメントに を超えるテキストが含まれている場合は、Base64-string。その後、DocumentContent オブジェクトは次の形式になります。

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

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

S3 の場所からドキュメントを取り込む場合、 contentフィールドの DocumentContent オブジェクトは次の形式である必要があります。

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

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

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

メタデータをインラインで定義する場合、 metadataフィールドの DocumentMetadata オブジェクトは次の形式である必要があります。

{ "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" } }

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

メタデータが S3 ファイルからのものである場合、 metadataフィールドの DocumentMetadata オブジェクトは次の形式である必要があります。

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

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

警告

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

Amazon S3 データソースに接続されたナレッジベースにドキュメントを取り込む

dataSourceId 指定した が S3 データソースに属している場合は、documents配列内の各 KnowledgeBaseDocument オブジェクトにコンテンツとメタデータを追加できます。

注記

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

S3 に追加する S3 ドキュメントのコンテンツは、次の形式で DocumentContent オブジェクトに追加する必要があります。

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

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

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

{ "s3Location": { "bucketOwnerAccountId": "string", "uri": "string" }, "type": "S3_LOCATION" } }
警告

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

リクエスト本文の例

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

次の例は、カスタムデータソースに 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" } } } ] }

次の例は、カスタムデータソースへの 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 の場所からカスタムデータソースに 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" } } } ] }

次の例は、ドキュメントのカスタムデータソースへのインライン追加と、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 データソースに追加する方法を示しています。メタデータは 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" } } ] }