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

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

Vous pouvez utiliser un cluster de base 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, et les stocke dans une base de données PostgreSQL. Avec les applications d'IA générative, vous pouvez utiliser Agents for Amazon Bedrock pour interroger les données stockées dans la base de connaissances et utiliser les résultats de ces requêtes pour compléter les réponses fournies par les modèles fondamentaux. Ce flux de travail s'appelle Retrieval Augmented Generation (RAG). Pour plus d'informations sur RAG, voir Retrieval Augmented Generation (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 prérequis suivants pour utiliser le cluster Aurora PostgreSQL comme base de connaissances pour Amazon Bedrock. À un niveau supérieur, vous devez configurer les services suivants pour une utilisation avec Bedrock :

  • Cluster de base de données Amazon Aurora PostgreSQL créé dans l'une des versions suivantes :

    • 16.1 et toutes les versions supérieures

    • Version 15.4 et versions ultérieures

    • Version 14.9 et versions ultérieures

    • Versions 13.12 et supérieures

    • Versions 12.16 et supérieures

    Note

    Vous devez activer l'pgvectorextension dans votre base de données cible et utiliser la version 0.5.0 ou supérieure. Pour plus d'informations, consultez pgvector v0.5.0 avec indexation HNSW.

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

Préparation d'Aurora PostgreSQL en vue de son utilisation comme base de connaissances pour Amazon Bedrock

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

Création et configuration d'Aurora PostgreSQL

Pour configurer Amazon Bedrock avec un cluster de base de données Aurora PostgreSQL, vous devez d'abord créer un cluster de base de données Aurora PostgreSQL et prendre note des champs importants pour le configurer avec Amazon Bedrock. Pour plus d'informations sur la création d'un cluster de base 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 base de données Aurora PostgreSQL. Pour plus d'informations sur les versions prises en charge, consultezUtilisation de l'API de données Amazon RDS.

  • Assurez-vous de noter les Amazon Resource Names (ARN) de votre cluster de base de données Aurora PostgreSQL. Vous en aurez besoin pour configurer le cluster de base de données à utiliser avec Amazon Bedrock. Pour plus d'informations, consultez Amazon Resource Names (ARNs).

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, consultezConnexion à un cluster de SQL base de données Amazon Aurora Postgre. Vous pouvez également utiliser l'éditeur de requêtes de la console RDS pour exécuter les requêtes. Vous avez besoin d'un cluster de base de données Aurora avec l'API de données RDS activée pour utiliser l'éditeur de requêtes.

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

    CREATE EXTENSION IF NOT EXISTS vector;

    Utilisez la version pgvector 0.5.0 ou supérieure qui prend en charge l'indexation HNSW. Pour plus d'informations, consultez pgvector v0.5.0 avec indexation HNSW.

  2. Utilisez la commande suivante pour vérifier la version du système pg_vector installé :

    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 peut utiliser pour interroger les données. Utilisez la commande suivante pour créer un schéma :

    CREATE SCHEMA bedrock_integration;
  2. Créez un nouveau rôle que Bedrock pourra utiliser pour interroger la base de données. Utilisez la commande suivante pour créer un nouveau 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.

    Si vous utilisez un psql client, utilisez les commandes suivantes pour créer un nouveau rôle :

    CREATE ROLE bedrock_user LOGIN; \PASSWORD password;
  3. Accordez les bedrock_user autorisations nécessaires pour gérer le bedrock_integration schéma. 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 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éera la bedrock_kb table dans le bedrock_integration schéma avec les intégrations Titan.

    Remplacez n dans le type de vector(n) données par la dimension appropriée pour le modèle d'intégration que vous utilisez. Utilisez les recommandations ci-dessous pour vous aider à sélectionner vos dimensions :

    • Pour le modèle Titan v2vector(1024), utilisezvector(512), ouvector (256). Pour en savoir plus, consultez le texte d'intégration d'Amazon Titan.

    • Pour le modèle Titan v1.2, utilisezvector(1536). Pour en savoir plus, consultez Amazon Titan Multimodal Embeddings G1.

    • Pour le modèle Cohere Embed, utilisez. vector(1024) Pour en savoir plus, consultez la section Modèles Cohere Embed.

    • Pour 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 de vos fichiers de métadonnées dans la custom_metadata colonne. 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 custom_metadata colonne, ajoutez des colonnes individuelles pour chaque attribut de métadonnées de votre table avant de commencer l'ingestion. Pour plus d'informations, voir Configurer et personnaliser les requêtes et la génération de réponses.

  5. Suivez ces étapes pour créer les index requis que Bedrock utilise pour interroger vos données :

    • Créez un index avec l'opérateur cosinus que le socle rocheux peut 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 256 ef_construction pour les pgvector versions 0.6.0 et supé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 peut 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 peut 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 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.

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

Lors de la préparation d'Aurora PostgreSQL en vue de son utilisation comme magasin vectoriel pour une base de connaissances, vous devez recueillir les informations suivantes que vous devez fournir à la console Amazon Bedrock.

  • ARN du cluster de base de données Amazon Aurora : l'ARN de votre cluster de base de données.

  • Secret ARN — L'ARN de la clé AWS Secrets Manager pour votre cluster de bases de données.

  • Nom de la base de données : nom de votre base de données. Par exemple, vous pouvez utiliser la base de données par défautpostgres.

  • 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éera la bedrock_kb table dans le bedrock_integration schéma.

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

    morceaux Texte

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

    embedding Vector

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

    métadonnées 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.

    métadonnées_personnalisées 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éer un magasin de vecteurs dans Amazon Aurora et Créer un magasin de vecteurs 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, voir Ingérer vos sources de données dans la base de connaissances.