

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Création d’un index vectoriel dans un compartiment de vecteur


**Note**  
Choisissez soigneusement les paramètres de configuration de votre index vectoriel. Après avoir créé un index vectoriel, vous ne pouvez pas mettre à jour le nom de l’index vectoriel, la dimension, la métrique de distance ou les clés de métadonnées non filtrables. Pour modifier l’une de ces valeurs, vous devez créer un nouvel index vectoriel.

Un index vectoriel est une ressource au sein d’un compartiment de vecteur qui stocke et organise les données vectorielles pour une recherche de similarité efficace. Lorsque vous créez un index vectoriel, vous définissez les caractéristiques que tous les vecteurs de cet index doivent partager, telles que la dimension, la métrique de distance utilisée pour les calculs de similarité et, éventuellement, les clés de métadonnées non filtrables. Vous pouvez également configurer éventuellement des paramètres de chiffrement et des balises dédiés pour l'index vectoriel au moment de la création de l'index. Pour plus d’informations sur les exigences de dénomination des index vectoriels, les exigences de dimension, les options de métrique de distance et les clés de métadonnées non filtrables, consultez [Limites et restrictions](s3-vectors-limitations.md). Pour plus d'informations sur la définition de la configuration de chiffrement pour les index vectoriels, consultez[Protection et chiffrement des données dans S3 Vectors](s3-vectors-data-encryption.md). Pour plus d'informations sur la définition des balises, consultez[Utilisation de balises avec des compartiments vectoriels S3](s3-vectors-tags.md).

 Les index vectoriels doivent être créés dans un compartiment de vecteur existant et nécessitent des paramètres de configuration spécifiques qui ne peuvent pas être modifiés après leur création. 

## Utilisation de la console S3


**Pour créer un index vectoriel**

1. Ouvrez la console Amazon S3 à l'adresse [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Dans le volet de navigation, choisissez **Compartiments de vecteur**.

1. Dans la liste de compartiments de vecteur, choisissez le nom du compartiment dans lequel vous souhaitez créer un index vectoriel.

1. Choisissez **Créer un index vectoriel**.

1. Dans **Nom de l’index vectoriel**, saisissez le nom de votre index vectoriel.

   Les noms d’index vectoriel doivent être uniques dans le compartiment de vecteur. Le nom d’index doit comporter entre 3 et 63 caractères. Les caractères valides sont les lettres minuscules (a-z), les chiffres (0-9), les tirets (-) et les points (.). Pour plus d’informations sur les exigences relatives à la dénomination des index vectoriels, consultez [Limites et restrictions](s3-vectors-limitations.md).

1. Pour **Dimension**, entrez le nombre de valeurs dans chaque vecteur.
**Note**  
La valeur de **Dimension** détermine le nombre de valeurs numériques que chaque vecteur contiendra.
Tous les vecteurs ajoutés à cet index doivent avoir exactement ce nombre de valeurs.
Une dimension doit être comprise entre 1 et 4 096.
Une plus grande dimension nécessite plus d’espace de stockage.
Choisissez en fonction des dimensions de sortie de votre modèle de vectorisation.

   Pour plus d’informations sur les exigences relatives aux dimensions, consultez [Limites et restrictions](s3-vectors-limitations.md).

1. Pour **Métrique de distance**, choisissez l’une des options suivantes :
   + **Cosinus** : mesure le cosinus de l’angle entre les vecteurs. Idéal pour les vecteurs normalisés et lorsque la direction compte plus que la magnitude
   + **Euclidien** : mesure la distance en ligne droite entre les vecteurs. Idéal lorsque la direction et la magnitude sont importantes.

1. (Facultatif) Sous **Métadonnées non filtrables**, configurez les clés de métadonnées qui seront stockées mais non utilisées pour le filtrage :

   Pour ajouter des clés de métadonnées non filtrables :

   1. Sélectionnez **Ajouter une clé**.

   1. Saisissez un nom de clé (1 à 63 caractères et unique dans cet index vectoriel).

   1. Répétez l’opération pour ajouter des clés supplémentaires (10 clés au maximum).
**Note**  
Vous pouvez attacher des métadonnées filtrables sous forme de paires clé-valeur à chaque vecteur lorsque vous insérez des données vectorielles après avoir créé un index vectoriel. Par défaut, toutes les clés de métadonnées attachées à des vecteurs sont filtrables et utilisables comme filtres dans une requête de similarité. Seules les clés de métadonnées spécifiées comme non filtrables lors de la création de l’index vectoriel sont exclues du filtrage. Pour plus d’informations sur les limites de taille des métadonnées par vecteur, y compris les contraintes de métadonnées totales et filtrables, consultez [Limites et restrictions](s3-vectors-limitations.md).

1. Vérifiez attentivement votre configuration.
**Note**  
Ces paramètres ne peuvent pas être modifiés après la création.

1. Sous **Chiffrement**, choisissez **Spécifier le type de chiffrement**. Vous avez la possibilité d'**utiliser les paramètres du bucket pour le chiffrement** ou de remplacer les paramètres de chiffrement de l'index vectoriel. Si vous remplacez les paramètres au niveau du compartiment, vous avez la possibilité de spécifier le type de chiffrement pour l'index vectoriel : chiffrement **côté serveur avec des clés du service de gestion des AWS clés (SSE-KMS) ou chiffrement côté serveur avec des clés gérées par **Amazon S3 (SSE-S3**)**. Pour plus d'informations sur la définition de la configuration de chiffrement pour les index vectoriels, consultez[Protection et chiffrement des données dans S3 Vectors](s3-vectors-data-encryption.md).

1. Sous **Tags (facultatif)**, vous pouvez ajouter des balises sous forme de paires clé-valeur afin de suivre et d'organiser les coûts des indices vectoriels à l'aide de AWS Billing and Cost Management. Saisissez une **Key (Clé)** et une **Value (Valeur)**. Choisissez **Add Tag (Ajouter une balise)** pour ajouter une autre balise. Vous pouvez saisir jusqu'à 50 balises pour un index vectoriel. Pour de plus amples informations, veuillez consulter [Utilisation de balises avec des compartiments vectoriels S3](s3-vectors-tags.md).

1. Choisissez **Créer un index vectoriel**.

## À l'aide du AWS CLI


Pour créer un index vectoriel dans un compartiment de vecteur, utilisez les exemples de commandes suivants et remplacez les `user input placeholders` par vos propres informations.

**Exemple 1 : création d’un index vectoriel avec des clés de métadonnées non filtrables**

```
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"]}'
```

**Exemple 2 : création d’un index vectoriel avec des clés de métadonnées non filtrables**

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

En outre, toutes les métadonnées (filtrables et non filtrables) sont récupérées de la même manière à l’aide des opérations de l’API `GetVectors`, `ListVectors` ou `QueryVectors`. La commande de l’interface de ligne de commande suivante montre comment récupérer des vecteurs avec des métadonnées (y compris des métadonnées non filtrables).

Exemple de demande :

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

Exemple de réponse : 

```
{
    "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 réponse inclura toutes les métadonnées associées au vecteur, qu’il ait été spécifié comme filtrable ou non filtrable lors de la création de l’index.

## À l'aide du AWS SDKs


------
#### [ 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"]}
)
```

------