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

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

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

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

データソースタイプ インラインで定義されたドキュメント Amazon S3 の場所のドキュメント
Amazon S3 Red circular icon with an X symbol, indicating cancellation or denial. なし Green circular icon with a white checkmark symbol inside. あり
カスタム Green circular icon with a white checkmark symbol inside. あり Green circular icon with a white checkmark symbol inside. あり

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

注記

コンソールを使用すると、最大 10 個のドキュメントをナレッジベースに直接取り込むことができます。代わりに IngestKnowledgeBaseDocuments API を使用する場合は、最大 25 のドキュメントをナレッジベースに取り込むことができます。このクォータの詳細については、「AWS 全般のリファレンス」ガイドの「Amazon Bedrock の サービスクォータ」を参照してください。

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

  1. Amazon Bedrock コンソールを使用するアクセス許可を持つ IAM ID AWS マネジメントコンソールを使用して にサインインします。Amazon Bedrock コンソール (https://console.aws.amazon.com/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 および接続されているデータソースの ID を指定します。

注記

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

リクエスト本文には、KnowledgeBaseDocument オブジェクトの配列にマッピングされる 1 つのフィールド documents が含まれています。各オブジェクトは、データソースに追加してナレッジベースに取り込むドキュメントのコンテンツとオプションのメタデータを表します。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 文字列に変換します。DocumentContent オブジェクトは次の形式になります。

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

id フィールドにドキュメントの ID、dataフィールドに Base64 でエンコードされたドキュメント、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" } }

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

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

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

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

警告

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

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

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

注記

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

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

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

bucketOwnerAccountId フィールドにドキュメントを含む S3 バケットの所有者を含め、uri フィールドにドキュメントの S3 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" } } ] }