Utilisation d’Aurora PostgreSQL comme base de connaissances pour Amazon Bedrock - Amazon Aurora

Utilisation d’Aurora PostgreSQL comme base de connaissances pour Amazon Bedrock

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

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.

Prérequis

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.

  • API de données RDS

  • Utilisateur géré dans AWS Secrets Manager. Pour plus d’informations, consultez Gestion des mots de passe avec Amazon Aurora et AWS Secrets Manager.

Préparation d’Aurora PostgreSQL pour l’utiliser comme base de connaissances pour Amazon Bedrock

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

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.

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

  • 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 (ARN).

Connexion à une base de données et installation de pgvector

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

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

  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;
  2. 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;
  3. 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;
  4. 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 :

    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.

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

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 AWS Secrets Manager lors de la création du cluster de bases de données Aurora PostgreSQL, vous pouvez créer un secret maintenant. Pour plus d’informations sur la création d’un secret de base de données AWS Secrets Manager, consultez Secret de base de données AWS Secrets Manager.

Création d’une base de connaissances dans la console Bedrock

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.

    Nom de la colonne Type de données Description
    id Clé primaire UUID

    Contient des identifiants uniques pour chaque enregistrement.

    chunks Texte

    Contient les segments de texte brut provenant de vos sources de données.

    embedding Vecteur

    Contient les intégrations vectorielles des sources de données.

    metadata JSON

    Contient les métadonnées nécessaires pour effectuer l’attribution de la source et pour permettre l’ingestion et l’interrogation des données.

    custom_metadata JSONB

    (Facultatif) Définit la colonne cible dans laquelle Amazon Bedrock écrit les détails des métadonnées à partir de vos sources de données.

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 et Création d’une base de connaissances dans Amazon Aurora.

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.