View a markdown version of this page

Creazione di un indice vettoriale in un bucket vettoriale - Amazon Simple Storage Service

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à.

Creazione di un indice vettoriale in un bucket vettoriale

Nota

Scegli con attenzione i parametri di configurazione dell’indice vettoriale. Dopo aver creato un indice vettoriale, non è possibile aggiornare il nome dell’indice vettoriale, la dimensione, la metrica della distanza o le chiavi di metadati non filtrabili. Per modificare uno di questi valori, occorre creare un nuovo indice vettoriale.

Un indice vettoriale è una risorsa all’interno di un bucket vettoriale che archivia e organizza i dati vettoriali per eseguire ricerche per similarità efficienti. Quando si crea un indice vettoriale, si definiscono le caratteristiche che tutti i vettori di tale indice devono condividere, ad esempio la dimensione, la metrica della distanza utilizzata per i calcoli della similarità e, facoltativamente, le chiavi di metadati non filtrabili. È inoltre possibile configurare impostazioni e tag di crittografia dedicati per l'indice vettoriale al momento della creazione dell'indice. Per ulteriori informazioni sui requisiti di denominazione degli indici vettoriali, sui requisiti delle dimensioni, sulle opzioni di metrica della distanza e sulle chiavi di metadati non filtrabili, consulta Limitazioni e restrizioni. Per ulteriori informazioni sull'impostazione della configurazione della crittografia per gli indici vettoriali, vedere. Protezione e crittografia dei dati in S3 Vectors Per ulteriori informazioni sull'impostazione dei tag, vedere. Utilizzo di tag con bucket vettoriali S3

Gli indici vettoriali devono essere creati all’interno di un bucket vettoriale esistente e richiedono parametri di configurazione specifici che non possono essere modificati dopo la creazione.

Come creare un indice vettoriale

  1. Apri la console Amazon S3 all'indirizzo https://console.aws.amazon.com/s3/.

  2. Nel riquadro di navigazione, scegli Bucket di vettori.

  3. Nell’elenco dei bucket vettoriali, seleziona il nome del bucket in cui desideri creare un indice vettoriale.

  4. Scegli Crea indice di vettore.

  5. Per Nome dell’indice di vettore, inserisci un nome per l’indice vettoriale.

    I nomi degli indici vettoriali devono essere univoci all’interno del bucket vettoriale. Il nome dell’indice deve essere composto da un numero di caratteri compreso tra 3 e 63. I caratteri validi sono lettere minuscole (a-z), numeri (0-9), trattini (-) e punti (.). Per ulteriori informazioni sui requisiti di denominazione dell’indice vettoriale, consulta Limitazioni e restrizioni.

  6. Per Dimensione, inserisci il numero di valori in ogni vettore.

    Nota
    • Il valore per Dimensione determina quanti valori numerici conterrà ogni vettore.

    • Tutti i vettori aggiunti a questo indice devono avere esattamente questo numero di valori.

    • La dimensione deve essere compresa tra 1 e 4096.

    • Una dimensione più grande richiede più spazio di archiviazione.

    • Scegli in base alle dimensioni di output del modello di embedding.

    Per ulteriori informazioni sui requisiti di dimensione, consulta Limitazioni e restrizioni.

  7. Per Metrica della distanza, scegli una delle seguenti opzioni:

    • Coseno: misura il coseno dell’angolo tra i vettori. Ideale per vettori normalizzati e quando la direzione è più importante della grandezza

    • Euclideo: misura la distanza in linea retta tra i vettori. Ideale quando sia la direzione sia la grandezza sono importanti.

  8. (Facoltativo) Nella sezione Non-filterable metadati, configura le chiavi di metadati che verranno archiviate ma non utilizzate per il filtraggio:

    Per aggiungere chiavi di metadati non filtrabili:

    1. Scegliere Add key (Aggiungi chiave).

    2. Inserisci un nome per la chiave (da 1 a 63 caratteri e univoco all’interno dell’indice vettoriale).

    3. Ripeti l’operazione per aggiungere altre chiavi (al massimo 10 chiavi).

    Nota

    È possibile collegare a ciascun vettore i metadati filtrabili come coppie chiave-valore quando si inseriscono dati vettoriali dopo aver creato l’indice vettoriale. Per impostazione predefinita, tutte le chiavi di metadati collegate ai vettori sono filtrabili e possono essere utilizzate come filtri in una query di somiglianza. Solo le chiavi di metadati specificate come non filtrabili durante la creazione dell’indice vettoriale non possono essere utilizzate come filtro. Per ulteriori informazioni sui limiti di dimensione dei metadati per vettore, inclusi i vincoli dei metadati filtrabili e totali, consulta Limitazioni e restrizioni.

  9. Esamina attentamente la configurazione.

    Nota

    Queste impostazioni non possono essere modificate dopo la creazione.

  10. In Crittografia scegli Specifica il tipo di crittografia. È possibile utilizzare le impostazioni del bucket per la crittografia o sovrascrivere le impostazioni di crittografia per l'indice vettoriale. Se sostituisci le impostazioni a livello di bucket, hai la possibilità di specificare il tipo di crittografia per l'indice vettoriale come Server-side crittografia con AWS chiavi di Key Management Service (SSE-KMS) o Server-side crittografia con chiavi gestite da Amazon S3 (). SSE-S3 Per ulteriori informazioni sull'impostazione della configurazione della crittografia per gli indici vettoriali, consulta. Protezione e crittografia dei dati in S3 Vectors

  11. In Tag (facoltativo), puoi aggiungere tag come coppie chiave-valore per aiutare a tracciare e organizzare i costi degli indici vettoriali utilizzando la AWS fatturazione e la gestione dei costi. Immettere una chiave e un valore. Per aggiungere un altro tag, scegliere Add Tag (Aggiungi tag). Puoi inserire fino a 50 tag per un indice vettoriale. Per ulteriori informazioni, consulta Utilizzo di tag con bucket vettoriali S3.

  12. Scegli Crea indice di vettore.

Per creare un indice vettoriale in un bucket vettoriale, utilizza i seguenti comandi di esempio e sostituisci user input placeholders con le informazioni appropriate.

Esempio 1: creazione di un indice vettoriale con chiavi di metadati non filtrabili

aws s3vectors create-index \ --vector-bucket-name "amzn-s3-demo-vector-bucket" \ --index-name "idx" \ --data-type "float32" \ --dimension 1 \ --distance-metric "cosine" \ --metadata-configuration '{"nonFilterableMetadataKeys":["nonFilterableKey1"]}'

Esempio 2: creazione di un indice vettoriale senza chiavi di metadati non filtrabili

aws s3vectors create-index \ --vector-bucket-name "amzn-s3-demo-vector-bucket" \ --index-name "idx2" \ --data-type "float32" \ --dimension 4096 \ --distance-metric "euclidean"

Inoltre, tutti i metadati (filtrabili e non filtrabili) vengono recuperati allo stesso modo utilizzando le operazioni API GetVectors, ListVectors o QueryVectors. Il seguente comando della CLI mostra come recuperare i vettori con metadati (inclusi i metadati non filtrabili).

Richiesta di esempio:

aws s3vectors get-vectors \ --vector-bucket-name "amzn-s3-demo-vector-bucket" \ --index-name "idx" \ --keys '["vec1", "vec3"]' \ --return-data \ --return-metadata \

Risposta di esempio:

{ "vectors": [ { "key": "vec1", "data": { "float32": [ 0.10000000149011612, 0.20000000298023224, 0.30000001192092896, 0.4000000059604645, 0.5 ] }, "metadata": { "category": "test", "text": "First vector" } }, { "key": "vec3", "data": { "float32": [ 0.6000000238418579, 0.699999988079071, 0.800000011920929, 0.8999999761581421, 1.0 ] }, "metadata": { "text": "Third vector", "category": "test" } } ] }

La risposta includerà tutti i metadati associati al vettore, indipendentemente dal fatto che siano stati specificati come filtrabili o non filtrabili durante la creazione dell’indice.

SDK for Python
import boto3 # Create a S3 Vectors client in the AWS Region of your choice. s3vectors = boto3.client("s3vectors", region_name="us-west-2") #Create a vector index "movies" in the vector bucket "media-embeddings" without non-filterable metadata keys s3vectors.create_index( vectorBucketName="media-embeddings", indexName="movies", dimension=3, distanceMetric="cosine", dataType = "float32" ) #Create a vector index "movies" in the vector bucket "media-embeddings" with non-filterable metadata keys s3vectors.create_index( vectorBucketName="media-embeddings", indexName="movies", dimension=3, distanceMetric="cosine", dataType = "float32", metadataConfiguration= {"nonFilterableMetadataKeys": ["nonFilterableMetadataKey1"]} )