View a markdown version of this page

在資料來源中包含中繼資料,以改善知識庫查詢 - Amazon Bedrock

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

在資料來源中包含中繼資料,以改善知識庫查詢

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

每個區塊的文件中繼資料欄位/屬性具有限制。請參閱知識庫的配額

擷取 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 中每一列的向量嵌入。建立日期值會視為日期的字串表示,並與描述的每個區塊相關聯。

如果未提供包含/排除欄位,則所有資料欄都會視為中繼資料資料欄,但內容資料欄除外。如果只提供包含欄位,則只會將提供的資料欄視為中繼資料。如果只提供排除欄位,則排除資料欄以外的所有資料欄都會視為中繼資料。如果您在 fieldsToIncludefieldsToExclude 中提供相同的 fieldName,Amazon Bedrock 會擲回驗證例外狀況。如果包含和排除之間發生衝突,將導致失敗。

在 CSV 中找到的空白資料列會被忽略或略過。

範例:具有中繼資料的多列 CSV

下列範例顯示完整的 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 – 指定要視為可篩選中繼資料的資料欄 (cityprice)。資料bedrooms欄未列出,因此會予以排除。

  • metadataAttributes – 指定套用至此 CSV 中每個區塊的文件層級中繼資料。在此範例中, source 是套用至所有資料列的靜態屬性。

每一列都會產生一個區塊。對於第一列,區塊文字是描述,中繼資料是 city: "Seattle"price: "450000"source: "property_listings_2024"。CSV 資料欄的所有中繼資料值都會儲存為字串。

支援的中繼資料資料類型

中繼資料屬性支援下列資料類型:

  • STRING – 文字值。

  • NUMBER – 數值。使用此頁面所述的 CSV 型中繼資料組態時,數值會儲存為字串。

  • BOOLEAN – true 或 false 值。

  • STRING_LIST – 字串值的清單。

如需篩選查詢中使用的完整中繼資料屬性結構描述,請參閱 API 參考中的 MetadataAttributeSchema

除了此頁面所述的 CSV 型中繼資料組態之外,您也可以針對 Amazon S3 資料來源中的任何文件類型,使用附屬.metadata.json檔案來設定中繼資料。此方法支援完整的資料類型集和 includeForEmbedding選項。如需詳細資訊,請參閱文件中繼資料欄位

若要了解如何使用中繼資料篩選查詢結果,請參閱《》中的知識庫提示範本一節設定和自訂查詢和回應產生