View a markdown version of this page

Inclusione dei metadati in un’origine dati per migliorare la query della knowledge base - Amazon Bedrock

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Inclusione dei metadati in un’origine dati per migliorare la query della knowledge base

Quando si importano file CSV (valori separati da virgola), è possibile configurare la knowledge base in modo che tratti determinate colonne come campi di contenuto anziché campi di metadati. Invece di avere potenzialmente centinaia o migliaia di coppie di content/metadata file, ora puoi avere un singolo file CSV e un file metadata.json corrispondente, che fornisce alla knowledge base suggerimenti su come trattare ogni colonna all'interno del tuo CSV.

Esistono dei limiti per i metadati dei documenti per blocco. fields/attributes Consulta Quote per le knowledge base.

Prima di importare un file CSV, assicurati che:

  • Il file CSV è in formato RFC4180 ed è codificato. UTF-8

  • La prima riga del file CSV includa informazioni sull’intestazione.

  • I campi di metadati forniti in metadata.json siano presenti come colonne nel file CSV.

  • Fornisci un file con il seguente Name.csv.metadata.json formato:

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

Il file CSV venga analizzato una riga alla volta e la strategia di chunking e l’embedding vettoriale vengano applicati al campo di contenuto. Knowledge Base per Amazon Bedrock attualmente supporta un campo di contenuto. Il campo di contenuto è suddiviso in chunk e i campi di metadati (colonne) associati a ciascun chunk vengono trattati come valori di stringa.

Ad esempio, supponiamo che ci sia un file CSV con una colonna «Descrizione» e una colonna «Creation_Date». Il campo descrizione è il campo del contenuto e la data di creazione è un campo di metadati associato. Il testo delle descrizione viene suddiviso in chunk e convertito in embedding vettoriali per ogni riga del file CSV. Il valore della data di creazione è trattato come una rappresentazione stringa della data ed è associato a ciascun chunk della descrizione.

Se non viene fornito alcun inclusion/exclusion campo, tutte le colonne vengono trattate come colonne di metadati, ad eccezione della colonna del contenuto. Se vengono forniti solo campi di inclusione, solo le colonne fornite vengono trattate come metadati. Se vengono forniti solo campi di esclusione, tutte le colonne, tranne quelle di esclusione, vengono trattate come metadati. Se fornisci lo stesso fieldName in entrambi fieldsToInclude e fieldsToExclude, Amazon Bedrock genera un’eccezione di convalida. Se è presente un conflitto tra inclusione ed esclusione, si verificherà un errore.

Le righe vuote trovate all’interno di un CSV vengono ignorate o saltate.

Esempio: Multi-row CSV con metadati

L'esempio seguente mostra un file CSV completo e il file JSON di metadati corrispondente.

File CSV di esempio () 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

File di metadati corrispondente () 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" } ] } } } }

In questo esempio:

  • contentFields— specifica una colonna (description) come contenuto da suddividere in blocchi e incorporare. È supportato solo un campo di contenuto.

  • fieldsToInclude— Speciifica quali colonne (cityeprice) trattare come metadati filtrabili. La bedrooms colonna è esclusa perché non è elencata.

  • metadataAttributes— Speciifica i metadati a livello di documento applicati a ogni blocco di questo file CSV. In questo esempio, source è un attributo statico applicato a tutte le righe.

Ogni riga produce un blocco. Per la prima riga, il blocco di testo è la descrizione e i metadati sonocity: "Seattle", price: "450000" e. source: "property_listings_2024" Tutti i valori dei metadati delle colonne CSV vengono archiviati come stringhe.

Tipi di dati di metadati supportati

I seguenti tipi di dati sono supportati per gli attributi dei metadati:

  • STRING— Un valore di testo.

  • NUMBER— Un valore numerico. Quando si utilizza la configurazione CSV-based dei metadati descritta in questa pagina, i valori numerici vengono memorizzati come stringhe.

  • BOOLEAN— Un valore vero o falso.

  • STRING_LIST— Un elenco di valori di stringa.

Per lo schema completo degli attributi dei metadati utilizzato nelle query di filtraggio, consulta l'API MetadataAttributeSchemaReference.

Oltre alla configurazione dei CSV-based metadati descritta in questa pagina, puoi anche configurare i metadati utilizzando un .metadata.json file collaterale per qualsiasi tipo di documento in un'origine dati Amazon S3. Questo metodo supporta il set completo di tipi di dati e l'opzione. includeForEmbedding Per ulteriori informazioni, consulta Campi di metadati dei documenti.

Per informazioni su come filtrare i risultati delle query utilizzando i metadati, consulta la sezione Modelli di prompt della Knowledge Base in. Configurare e personalizzare la generazione di query e risposte