本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在資料來源中包含中繼資料,以改善知識庫查詢
擷取 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 中每一列的向量嵌入。建立日期值會視為日期的字串表示,並與描述的每個區塊相關聯。
如果未提供包含/排除欄位,則所有資料欄都會視為中繼資料資料欄,但內容資料欄除外。如果只提供包含欄位,則只會將提供的資料欄視為中繼資料。如果只提供排除欄位,則排除資料欄以外的所有資料欄都會視為中繼資料。如果您在 fieldsToInclude 和 fieldsToExclude 中提供相同的 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– 指定要視為可篩選中繼資料的資料欄 (city和price)。資料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選項。如需詳細資訊,請參閱文件中繼資料欄位。
若要了解如何使用中繼資料篩選查詢結果,請參閱《》中的知識庫提示範本一節設定和自訂查詢和回應產生。