

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 在資料來源中包含中繼資料，以改善知識庫查詢
<a name="kb-metadata"></a>

擷取 CSV (逗號分隔值) 檔案時，您可以讓知識庫將特定資料欄視為內容欄位與中繼資料欄位。您現在可以擁有單一 CSV 檔案和對應的 metadata.json 檔案，提供知識庫如何處理 CSV 內每個資料欄的提示，而不是擁有數百或數千個內容/中繼資料檔案對。

每個區塊的文件中繼資料欄位/屬性具有限制。請參閱[知識庫的配額](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 檔案會一次剖析一列，並將分塊策略和向量嵌入套用至內容欄位。Amazon Bedrock 知識庫目前支援一個內容欄位。內容欄位會分割為區塊，而與每個區塊相關聯的中繼資料欄位 (資料欄) 會視為字串值。

例如，假設 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` – 將一欄 (`description`) 指定為要區塊化和內嵌的內容。僅支援一個內容欄位。
+ `fieldsToInclude` – 指定要視為可篩選中繼資料的資料欄 (`city` 和 `price`)。資料`bedrooms`欄未列出，因此會予以排除。
+ `metadataAttributes` – 指定套用至此 CSV 中每個區塊的文件層級中繼資料。在此範例中， `source` 是套用至所有資料列的靜態屬性。

每一列都會產生一個區塊。對於第一列，區塊文字是描述，中繼資料是 `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)。