

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

# データソースにメタデータを含めてナレッジベースのクエリを改善する
<a name="kb-metadata"></a>

CSV (カンマ区切り値) ファイルを取り込む場合、ナレッジベースで特定の列をコンテンツフィールドとメタデータフィールドとして扱うことができます。コンテンツ/メタデータファイルのペアは数百または数千にのぼる場合がありますが、その代わりに、単一の CSV ファイルと対応する metadata.json ファイルを用意し、CSV 内の各列をナレッジベースでどのように扱うべきかヒントを提供できるようになりました。

チャンクあたりのドキュメントメタデータフィールド/属性には制限があります。「[Quotas for knowledge bases](https://docs.aws.amazon.com/bedrock/latest/userguide/quotas.html)」を参照してください。

CSV ファイルを取り込む前に、次の点を確認してください。
+ CSV が RFC4180 形式であり、UTF-8 でエンコードされている。
+ CSV の最初の行に、ヘッダー情報が含まれている。
+ metadata.json に指定されているメタデータフィールドが、CSV に列として存在している。
+ 次の形式の fileName.csv.metadata.json ファイルを用意する。

  ```
  {
      "metadataAttributes": {
          "${attribute1}": "${value1}",
          "${attribute2}": "${value2}",
          ...
      },
      "documentStructureConfiguration": {
          "type": "RECORD_BASED_STRUCTURE_METADATA",
          "recordBasedStructureMetadata": {
              "contentFields": [
                  {
                      "fieldName": "string"
                  }
              ],
              "metadataFieldsSpecification": {
                  "fieldsToInclude": [
                      {
                          "fieldName": "string"
                      }
                  ],
                  "fieldsToExclude": [
                      {
                          "fieldName": "string"
                      }
                  ]
              }
          }
      }
  }
  ```

CSV ファイルは一度に 1 行ずつ解析され、チャンキング戦略とベクトル埋め込みがコンテンツフィールドに適用されます。Amazon Bedrock ナレッジベースは、現時点では 1 つのコンテンツフィールドに対応しています。コンテンツフィールドはチャンクに分割され、各チャンクに関連付けられているメタデータフィールド (列) は、文字列値として扱われます。

例えば、CSV に「Description (説明)」という列と「Creation\_Date (作成日)」という列があるとしましょう。説明フィールドがコンテンツフィールドで、作成日が関連するメタデータフィールドです。説明のテキストはチャンクに分割され、CSV の行ごとのベクトル埋め込みに変換されます。作成日の値は日付の文字列表現として扱われ、説明の各チャンクに関連付けられます。

包含/除外フィールドが指定されていない場合、コンテンツ列を除くすべての列がメタデータ列として扱われます。包含フィールドのみが指定されている場合は、指定されたその列のみがメタデータとして扱われます。除外フィールドのみが指定されている場合は、除外列を除くすべての列がメタデータとして扱われます。`fieldsToInclude` と `fieldsToExclude` の両方で同じ `fieldName` を指定した場合、Amazon Bedrock は検証例外をスローします。包含と除外の間で競合が発生した場合は、エラーになります。

CSV 内で空白の行が見つかった場合は無視またはスキップされます。

## 例: メタデータを含む複数行 CSV
<a name="kb-metadata-csv-example"></a>

次の例は、完全な CSV ファイルとそれに対応するメタデータ JSON ファイルを示しています。

**CSV ファイルの例 (`properties.csv`)**

```
description,city,price,bedrooms
"Spacious 3-bedroom home with updated kitchen and large backyard.",Seattle,450000,3
"Modern downtown condo with floor-to-ceiling windows and city views.",Portland,325000,2
"Charming craftsman bungalow with original hardwood floors.",Austin,275000,2
```

**対応するメタデータファイル (`properties.csv.metadata.json`)**

```
{
    "metadataAttributes": {
        "source": "property_listings_2024"
    },
    "documentStructureConfiguration": {
        "type": "RECORD_BASED_STRUCTURE_METADATA",
        "recordBasedStructureMetadata": {
            "contentFields": [
                {
                    "fieldName": "description"
                }
            ],
            "metadataFieldsSpecification": {
                "fieldsToInclude": [
                    {
                        "fieldName": "city"
                    },
                    {
                        "fieldName": "price"
                    }
                ]
            }
        }
    }
}
```

この例では、以下のようになっています：
+ `contentFields` – チャンク化して埋め込むコンテンツとして 1 つの列 (`description`) を指定します。1 つのコンテンツフィールドのみがサポートされています。
+ `fieldsToInclude` – フィルタリング可能なメタデータとして扱う列 (`city` および `price`) を指定します。`bedrooms` 列はリストされていないため、除外されます。
+ `metadataAttributes` – この CSV のすべてのチャンクに適用されるドキュメントレベルのメタデータを指定します。この例では、 `source`はすべての行に適用される静的属性です。

各行は 1 つのチャンクを生成します。最初の行では、チャンクテキストは説明で、メタデータは `city: "Seattle"`、`price: "450000"`、および です`source: "property_listings_2024"`。CSV 列のすべてのメタデータ値は文字列として保存されます。

## サポートされているメタデータデータ型
<a name="kb-metadata-data-types"></a>

メタデータ属性では、次のデータ型がサポートされています。
+ `STRING` – テキスト値。
+ `NUMBER` – 数値。このページで説明されている CSV ベースのメタデータ設定を使用する場合、数値は文字列として保存されます。
+ `BOOLEAN` – true または false の値。
+ `STRING_LIST` – 文字列値のリスト。

クエリのフィルタリングに使用される完全なメタデータ属性スキーマについては、 API リファレンスの[MetadataAttributeSchema](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_MetadataAttributeSchema.html)」を参照してください。

## 関連するメタデータ設定オプション
<a name="kb-metadata-related"></a>

このページで説明されている CSV ベースのメタデータ設定に加えて、Amazon S3 データソース内の任意のドキュメントタイプのサイドカー`.metadata.json`ファイルを使用してメタデータを設定することもできます。このメソッドは、すべてのデータ型と `includeForEmbedding`オプションをサポートします。詳細については、「[ドキュメントメタデータフィールド](s3-data-source-connector.md#ds-s3-metadata-fields)」を参照してください。

メタデータを使用してクエリ結果をフィルタリングする方法については、「」の**「ナレッジベースのプロンプトテンプレート**」セクションを参照してください[クエリとレスポンスの生成を設定してカスタマイズする](kb-test-config.md)。