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
Rubriques
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
pgvectordans 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.
-
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
pgvector0.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. -
Pour vérifier la version de
pg_vectorinstallé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
-
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; -
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; \PASSWORDpassword; -
Accordez les autorisations
bedrock_usernécessaires pour gérer le schémabedrock_integration. Cela permettra de créer des tables ou des index dans le schéma.GRANT ALL ON SCHEMA bedrock_integration to bedrock_user; -
Connectez-vous en tant que
bedrock_useret créez une table dans lebedrock_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_kbdans le schémabedrock_integrationavec les vectorisations Titan.Remplacez n dans le type de données
vector(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 :n)-
Pour le modèle Titan v2, utilisez
vector(1024),vector(512)ouvector (256). Pour en savoir plus, consultez Texte des vectorisations Amazon Titan. -
Pour le modèle Titan v1.2, utilisez
vector(1536). Pour en savoir plus, consultez Plongement multimodal Amazon Titan G1. -
Pour le modèle Cohere Embed, utilisez
vector(1024). Pour en savoir plus, consultez Modèles Cohere Embed. -
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 colonnecustom_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. -
-
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_constructionsur 256 pourpgvector0.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_kbdans le schémabedrock_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.