

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.

# Utilisation d’Aurora PostgreSQL comme base de connaissances pour Amazon Bedrock
<a name="AuroraPostgreSQL.VectorDB"></a>

Vous pouvez utiliser un cluster de bases de données Aurora PostgreSQL comme base de connaissances pour Amazon Bedrock. Pour plus d’informations, consultez [Création d’un stockage vectoriel dans Amazon Aurora](https://docs.aws.amazon.com/bedrock/latest/userguide/knowledge-base-setup.html). Une base de connaissances prend automatiquement les données de texte non structurées stockées dans un compartiment Amazon S3, les convertit en fragments de texte et en vecteurs, puis les stocke dans une base de données PostgreSQL. Avec les applications d’IA générative, vous pouvez utiliser des agents Amazon Bedrock pour interroger les données stockées dans la base de connaissances et exploiter les résultats de ces requêtes pour enrichir les réponses fournies par les modèles fondamentaux. Ce flux de travail s’appelle « génération à enrichissement contextuel (RAG) ». Pour plus d’informations, consultez [Génération à enrichissement contextuel (RAG)](https://docs.aws.amazon.com/sagemaker/latest/dg/jumpstart-foundation-models-customize-rag.html).

Pour obtenir des informations détaillées sur l’utilisation d’Aurora PostgreSQL pour créer des applications d’IA génératives à l’aide de RAG, consultez ce [billet de blog](https://aws.amazon.com/blogs/database/build-generative-ai-applications-with-amazon-aurora-and-knowledge-bases-for-amazon-bedrock/).

**Topics**
+ [Conditions préalables](#AuroraPostgreSQL.VectorDB.Prereq)
+ [Préparation d’Aurora PostgreSQL pour l’utiliser comme base de connaissances pour Amazon Bedrock](#AuroraPostgreSQL.VectorDB.PreparingKB)
+ [Création d’une base de connaissances dans la console Bedrock](#AuroraPostgreSQL.VectorDB.CreatingKB)
+ [Création rapide d’une base de connaissances Aurora PostgreSQL pour Amazon Bedrock](AuroraPostgreSQL.quickcreatekb.md)

## Conditions préalables
<a name="AuroraPostgreSQL.VectorDB.Prereq"></a>

Familiarisez-vous avec les conditions préalables suivantes pour utiliser le cluster Aurora PostgreSQL comme base de connaissances pour Amazon Bedrock. Globalement, vous devez configurer les services suivants pour une utilisation avec Bedrock :
+ Cluster de bases de données Amazon Aurora PostgreSQL créé dans l’une des versions suivantes :
  + 16.1 et toutes les versions ultérieures
  + 15.4 et versions ultérieures
  + 14.9 et versions ultérieures
  + 13.12 et versions ultérieures
  + 12.16 et versions ultérieures
**Note**  
Vous devez activer l’extension `pgvector` dans votre base de données cible et utiliser la version 0.5.0 ou une version ultérieure. Pour plus d’informations, consultez [pgvector v0.5.0 avec indexation HNSW](https://aws.amazon.com/about-aws/whats-new/2023/10/amazon-aurora-postgresql-pgvector-v0-5-0-hnsw-indexing/). 
+ API de données RDS
+ Un utilisateur géré dans AWS Secrets Manager. Pour de plus amples informations, veuillez consulter [Gestion des mots de passe avec Amazon Aurora et AWS Secrets Manager](rds-secrets-manager.md).

## Préparation d’Aurora PostgreSQL pour l’utiliser comme base de connaissances pour Amazon Bedrock
<a name="AuroraPostgreSQL.VectorDB.PreparingKB"></a>

Suivez les étapes décrites dans les sections ci-dessous afin de préparer Aurora PostgreSQL pour l’utiliser comme base de connaissances pour Amazon Bedrock.

### Création et configuration d’Aurora PostgreSQL
<a name="AuroraPostgreSQL.VectorDB.CreatingDBC"></a>

Pour configurer Amazon Bedrock avec un cluster de bases de données Aurora PostgreSQL, vous devez d’abord créer un cluster de bases de données Aurora PostgreSQL et prendre note des champs importants pour pouvoir le configurer avec Amazon Bedrock. Pour plus d’informations sur la création d’un cluster de bases de données Aurora PostgreSQL, consultez [Création et connexion à un cluster de bases de données Aurora PostgreSQL](CHAP_GettingStartedAurora.CreatingConnecting.AuroraPostgreSQL.md).
+ Activez l’API de données lors de la création du cluster de bases de données Aurora PostgreSQL. Pour plus d’informations sur les versions prises en charge, consultez [Utilisation de l’API de données Amazon RDS](data-api.md).
+ Assurez-vous de noter les Amazon Resource Names (ARN) de votre cluster de bases de données Aurora PostgreSQL. Vous en aurez besoin pour configurer le cluster de bases de données à utiliser avec Amazon Bedrock. Pour plus d'informations, consultez [Amazon Resource Names (ARNs)](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Tagging.ARN.html).

### Connexion à une base de données et installation de pgvector
<a name="AuroraPostgreSQL.VectorDB.ConnectingDB"></a>

Vous pouvez vous connecter à Aurora PostgreSQL à l’aide de n’importe quel utilitaire de connexion. Pour des informations plus détaillées sur ces utilitaires, consultez [Connexion à un cluster de bases de données Amazon Aurora PostgreSQL](Aurora.Connecting.md#Aurora.Connecting.AuroraPostgreSQL). Vous pouvez également utiliser l’éditeur de requêtes de la console RDS pour exécuter les requêtes. Pour pouvoir utiliser cet éditeur, vous avez besoin d’un cluster de bases de données Aurora au niveau duquel l’API de données RDS est activée.

1. Connectez-vous à la base de données avec votre compte d’utilisateur principal et configurez pgvector. Utilisez la commande suivante si l’extension n’est pas installée :

   ```
   CREATE EXTENSION IF NOT EXISTS vector;
   ```

   Utilisez `pgvector` 0.5.0, qui prend en charge l’indexation HNSW, ou une version ultérieure. Pour plus d’informations, consultez [pgvector v0.5.0 avec indexation HNSW](https://aws.amazon.com/about-aws/whats-new/2023/10/amazon-aurora-postgresql-pgvector-v0-5-0-hnsw-indexing/).

1. Pour vérifier la version de `pg_vector` installée, exécutez la commande suivante :

   ```
   SELECT extversion FROM pg_extension WHERE extname='vector';
   ```

### Configuration des objets et des privilèges de base de données
<a name="AuroraPostgreSQL.VectorDB.SetupDBObjects"></a>

1. Créez un schéma spécifique que Bedrock pourra utiliser pour interroger les données. Utilisez la commande suivante pour créer un schéma :

   ```
   CREATE SCHEMA bedrock_integration;
   ```

1. Créez un rôle que Bedrock pourra utiliser pour interroger la base de données. Utilisez la commande suivante pour créer un rôle :

   ```
   CREATE ROLE bedrock_user WITH PASSWORD 'password' LOGIN;
   ```
**Note**  
Prenez note de ce mot de passe, car vous en aurez besoin ultérieurement pour créer un mot de passe Secrets Manager.

   Sur un client `psql`, utilisez les commandes suivantes pour créer un rôle :

   ```
   CREATE ROLE bedrock_user LOGIN;
   \PASSWORD password;
   ```

1. Accordez les autorisations `bedrock_user` nécessaires pour gérer le schéma `bedrock_integration`. Cela permettra de créer des tables ou des index dans le schéma.

   ```
   GRANT ALL ON SCHEMA bedrock_integration to bedrock_user;
   ```

1. Connectez-vous en tant que `bedrock_user` et créez une table dans le `bedrock_integration schema`.

   ```
   CREATE TABLE bedrock_integration.bedrock_kb (id uuid PRIMARY KEY, embedding vector(n), chunks text, metadata json, custom_metadata jsonb);
   ```

   Cette commande crée la table `bedrock_kb` dans le schéma `bedrock_integration` avec les vectorisations Titan.

   Remplacez n dans le type de données `vector(n)` par la dimension appropriée pour le modèle de vectorisation que vous utilisez. Reportez-vous aux recommandations ci-dessous pour sélectionner les dimensions appropriées :
   + Pour le modèle Titan v2, utilisez `vector(1024)`, `vector(512)` ou `vector (256)`. Pour en savoir plus, consultez [Texte des vectorisations Amazon Titan](https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters-titan-embed-text.html).
   + Pour le modèle Titan v1.2, utilisez `vector(1536)`. Pour en savoir plus, consultez [Plongement multimodal Amazon Titan G1](https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters-titan-embed-mm.html).
   + Pour le modèle Cohere Embed, utilisez `vector(1024)`. Pour en savoir plus, consultez [Modèles Cohere Embed](https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters-embed.html).
   + Pour le modèle Cohere Embed Multilingual v3, utilisez `vector(1024)`.

   Les quatre premières colonnes sont obligatoires. Pour le traitement des métadonnées, Bedrock écrit les données tirées de vos fichiers de métadonnées dans la colonne `custom_metadata`. Nous vous recommandons de créer cette colonne si vous prévoyez d’utiliser les métadonnées et le filtrage. Si vous ne créez pas de colonne `custom_metadata`, ajoutez des colonnes individuelles pour chaque attribut de métadonnées de votre table avant de commencer l’ingestion. Pour plus d’informations, consultez [Configuration et personnalisation des requêtes et de la génération des réponses](https://docs.aws.amazon.com/bedrock/latest/userguide/kb-test-config.html).

1. Suivez ces étapes pour créer les index requis que Bedrock utilisera pour interroger vos données :
   + Créez un index avec l’opérateur cosinus que Bedrock pourra utiliser pour interroger les données.

     ```
     CREATE INDEX ON bedrock_integration.bedrock_kb USING hnsw (embedding vector_cosine_ops);
     ```
   + Nous vous recommandons de définir la valeur d’`ef_construction` sur 256 pour `pgvector` 0.6.0 et les versions ultérieures qui utilisent la création d’index en parallèle.

     ```
     CREATE INDEX ON bedrock_integration.bedrock_kb USING hnsw (embedding vector_cosine_ops) WITH (ef_construction=256);
     ```
   + Créez un index que Bedrock pourra utiliser pour interroger les données textuelles.

     ```
     CREATE INDEX ON bedrock_integration.bedrock_kb USING gin (to_tsvector('simple', chunks));
     ```
   + Si vous avez créé une colonne pour les métadonnées personnalisées, créez un index que Bedrock pourra utiliser pour interroger les métadonnées.

     ```
     CREATE INDEX ON bedrock_integration.bedrock_kb USING gin (custom_metadata);
     ```

### Création d’un secret dans Secrets Manager
<a name="AuroraPostgreSQL.VectorDB.SecretManager"></a>

Secrets Manager vous permet de stocker vos informations d’identification Aurora afin qu’elles puissent être transmises en toute sécurité aux applications. Si vous n'avez pas choisi l'option du gestionnaire de AWS secrets lors de la création du cluster de base de données Aurora PostgreSQL, vous pouvez créer un secret dès maintenant. Pour plus d'informations sur la création d'un secret AWS Secrets Manager de base de données, consultez la section [Secret de base de données AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_database_secret.html).

## Création d’une base de connaissances dans la console Bedrock
<a name="AuroraPostgreSQL.VectorDB.CreatingKB"></a>

Lors de la préparation d’Aurora PostgreSQL afin de pouvoir l’utiliser comme stockage vectoriel pour une base de connaissances, recueillez les informations suivantes que vous devrez fournir à la console Amazon Bedrock.
+ **ARN du cluster de bases de données Amazon Aurora** : ARN de votre cluster de bases de données.
+ **ARN du secret** : ARN de la clé AWS Secrets Manager correspondant à votre cluster de bases de données.
+ **Nom de base de données** : nom de votre base de données. Par exemple, vous pouvez utiliser la base de données par défaut*postgres*.
+ **Nom de la table** : nous vous recommandons de fournir un nom qualifié de schéma lors de la création de la table à l’aide d’une commande similaire à la suivante :

  ```
  CREATE TABLE bedrock_integration.bedrock_kb;
  ```

  Cette commande crée la table `bedrock_kb` dans le schéma `bedrock_integration`.
+ Lorsque vous créez la table, assurez-vous de la configurer avec les colonnes et les types de données spécifiés. Vous pouvez utiliser des noms de colonne de votre choix au lieu de ceux répertoriés dans le tableau. N’oubliez pas de prendre note des noms que vous avez choisis pour référence lors de la configuration de la base de connaissances.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.VectorDB.html)

Avec ces informations, vous pouvez désormais créer une base de connaissances dans la console Bedrock. Pour des informations plus détaillées sur la configuration d’un index vectoriel et la création d’une base de connaissances, consultez [Création d’un stockage vectoriel dans Amazon Aurora](https://docs.aws.amazon.com/bedrock/latest/userguide/knowledge-base-setup-rds.html) et [Création d’une base de connaissances dans Amazon Aurora](https://docs.aws.amazon.com/bedrock/latest/userguide/knowledge-base-create.html).

Après avoir ajouté Aurora comme base de connaissances, vous pouvez désormais ingérer vos sources de données pour effectuer des recherches et des requêtes. Pour plus d’informations, consultez [Ingestion de vos sources de données dans la base de connaissances](https://docs.aws.amazon.com/bedrock/latest/userguide/knowledge-base-ingest.html).