Utilizzo di Aurora PostgreSQL come Knowledge Base per Amazon Bedrock - Amazon Aurora

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Utilizzo di Aurora PostgreSQL come Knowledge Base per Amazon Bedrock

È possibile utilizzare un cluster di database Aurora PostgreSQL come Knowledge Base per Amazon Bedrock. Per ulteriori informazioni, consulta Creazione di un archivio vettoriale in Amazon Aurora. Una Knowledge Base acquisisce automaticamente dati di testo non strutturati memorizzati in un bucket Amazon S3, li converte in blocchi di testo e vettori, quindi li archivia in un database PostgreSQL. Con le applicazioni di IA generativa, è possibile utilizzare Agent per Amazon Bedrock per eseguire query sui dati memorizzati nella Knowledge Base e utilizzarne i risultati per aumentare le risposte fornite dai modelli di fondazione. Questo flusso di lavoro si chiama generazione potenziata da recupero dati (RAG). Per ulteriori informazioni sulla RAG, consulta Retrieval Augmented Generation (RAG).

Per informazioni dettagliate sull’utilizzo di Aurora PostgreSQL per creare applicazioni di IA generativa utilizzando RAG, consulta questo post di blog.

Prerequisiti

È necessario acquisire familiarità con i seguenti prerequisiti per utilizzare il cluster Aurora PostgreSQL come Knowledge Base per Amazon Bedrock. A un livello elevato, si devono configurare i seguenti servizi da utilizzare con Bedrock:

  • Cluster di database Amazon Aurora PostgreSQL creato in una delle seguenti versioni:

    • 16.1 e tutte le versioni successive

    • 15.4 e versioni successive

    • 14.9 e versioni successive

    • 13.12 e versioni successive

    • 12.16 e versioni successive

    Nota

    È necessario abilitare l’estensione pgvector nel database di destinazione e utilizzare la versione 0.5.0 o successiva. Per ulteriori informazioni, consulta pgvector v0.5.0 with HNSW indexing.

  • API dati RDS

  • Un utente gestito in Gestione dei segreti AWS. Per ulteriori informazioni, consulta Gestione delle password con Amazon Aurora e Gestione dei segreti AWS.

Preparazione di Aurora PostgreSQL per l’utilizzo come Knowledge Base per Amazon Bedrock

I passaggi descritti nelle sezioni seguenti consentono di preparare Aurora PostgreSQL per l’utilizzo come Knowledge Base per Amazon Bedrock.

Creazione e configurazione di Aurora PostgreSQL

Per configurare Amazon Bedrock con un cluster di database Aurora PostgreSQL, è necessario prima creare un cluster di database Aurora PostgreSQL e prendere nota dei campi importanti per configurarlo con Amazon Bedrock. Per ulteriori informazioni sulla creazione di un cluster di database Aurora PostgreSQL, consulta Creazione e connessione di un cluster di database Aurora PostgreSQL.

  • Abilitare l’API dati durante la creazione del cluster di database Aurora PostgreSQL. Per ulteriori informazioni sulle versioni supportate, consulta Utilizzo dell’API dati di Amazon RDS.

  • Assicurarsi di prendere nota del nome della risorsa Amazon (ARN) del cluster di database Aurora PostgreSQL. Servirà per configurare il cluster di database da utilizzare con Amazon Bedrock. Per ulteriori informazioni, consulta Amazon Resource Names (ARNs).

Connessione a un database e installazione di pgvector

È possibile connettersi ad Aurora PostgreSQL utilizzando un’utilità di connessione. Per informazioni più dettagliate su queste utilità, consulta Connessione a un cluster di database Amazon Aurora PostgreSQL. In alternativa, è possibile utilizzare l’editor di query della console RDS per eseguire le query. Per utilizzare l’editor di query è necessario un cluster di database Aurora con l’API dati RDS abilitata.

  1. Accedere al database con l’utente principale e configurare pgvector. Utilizzare il comando seguente se l’estensione non è installata:

    CREATE EXTENSION IF NOT EXISTS vector;

    Utilizzare pgvector 0.5.0 e le versioni successive che supportano l’indicizzazione HNSW. Per ulteriori informazioni, consulta pgvector v0.5.0 with HNSW indexing.

  2. Utilizzare il comando seguente per verificare la versione di pg_vector installata:

    SELECT extversion FROM pg_extension WHERE extname='vector';

Impostazione degli oggetti e dei privilegi del database

  1. Creare uno schema specifico che Bedrock può utilizzare per eseguire query sui dati. Utilizzare il comando seguente per creare uno schema:

    CREATE SCHEMA bedrock_integration;
  2. Creare un nuovo ruolo che Bedrock può utilizzare per eseguire query sul database. Utilizzare il comando seguente per creare un nuovo ruolo:

    CREATE ROLE bedrock_user WITH PASSWORD 'password' LOGIN;
    Nota

    Prendere nota di questa password, poiché sarà necessaria in seguito per creare una password di Secrets Manager.

    Se si utilizza il client psql, utilizzare i comandi seguenti per creare un nuovo ruolo:

    CREATE ROLE bedrock_user LOGIN; \PASSWORD password;
  3. Fornire le autorizzazioni bedrock_user per gestire lo schema bedrock_integration. Questa operazione consente di creare tabelle o indici all’interno dello schema.

    GRANT ALL ON SCHEMA bedrock_integration to bedrock_user;
  4. Effettuare l’accesso come bedrock_user e creare una tabella in bedrock_integration schema.

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

    Questo comando crea la tabella bedrock_kb nello schema bedrock_integration con gli embedding Titan.

    Sostituire n nel tipo di dati vector(n) con la dimensione appropriata per il modello di embedding in uso. I consigli riportati di seguito aiutano a selezionare le dimensioni:

    • Per il modello Titan v2, utilizzare vector(1024), vector(512) o vector (256). Per ulteriori informazioni, consulta Amazon Titan Embeddings Text.

    • Per il modello Titan v1.2, utilizzare vector(1536). Per ulteriori informazioni, consulta Amazon Titan Multimodal Embeddings G1.

    • Per il modello Cohere Embed, utilizzare vector(1024). Per ulteriori informazioni, consulta Modelli Cohere Embed.

    • Per Cohere Embed Multilingual v3, utilizzare vector(1024).

    Le prime quattro colonne sono obbligatorie. Per la gestione dei metadati, Bedrock scrive i dati dei file di metadati nella colonna custom_metadata. È consigliabile creare questa colonna se si intendono utilizzare metadati e filtri. Se non si crea una colonna custom_metadata, aggiungere singole colonne per ogni attributo di metadati nella tabella prima di iniziare l’importazione. Per ulteriori informazioni, consulta Configure and customize queries and response generation.

  5. I seguenti passaggi consentono di creare gli indici richiesti che Bedrock utilizza per eseguire query sui dati:

    • Creare un indice con l’operatore coseno che Bedrock può utilizzare per eseguire query sui dati.

      CREATE INDEX ON bedrock_integration.bedrock_kb USING hnsw (embedding vector_cosine_ops);
    • È consigliabile impostare il valore ef_construction su 256 per pgvector 0.6.0 e versioni successive che utilizzano la creazione di indici paralleli.

      CREATE INDEX ON bedrock_integration.bedrock_kb USING hnsw (embedding vector_cosine_ops) WITH (ef_construction=256);
    • Creare un indice che Bedrock può utilizzare per eseguire query sui dati di testo.

      CREATE INDEX ON bedrock_integration.bedrock_kb USING gin (to_tsvector('simple', chunks));
    • Se è stata creata una colonna per i metadati personalizzati, creare un indice che Bedrock può utilizzare per eseguire query sui metadati.

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

Creazione di un segreto in Secrets Manager

Secrets Manager consente di archiviare le credenziali Aurora per poterle trasmettere in modo sicuro alle applicazioni. Se non è stata scelta l’opzione di gestione dei segreti AWS durante la creazione del cluster di database Aurora PostgreSQL, è possibile creare un segreto ora. Per ulteriori informazioni sulla creazione di un segreto di database Gestione dei segreti AWS, consulta AWS Secrets Manager database secret.

Creazione di una Knowledge Base nella console Bedrock

Durante la preparazione di Aurora PostgreSQL per l’utilizzo come archivio vettoriale per una Knowledge Base, è necessario raccogliere i seguenti dettagli da fornire alla console Amazon Bedrock.

  • ARN del cluster di database Amazon Aurora: l’ARN del cluster di database.

  • ARN segreto: l’ARN della chiave AWS Secrets Manager per il cluster di database.

  • Nome del database: il nome del database. Ad esempio, è possibile utilizzare il database predefinito postgres.

  • Nome della tabella: è consigliabile fornire il nome completo dello schema durante la creazione della tabella utilizzando un comando simile al seguente:

    CREATE TABLE bedrock_integration.bedrock_kb;

    Questo comando creerà la tabella bedrock_kb nello schema bedrock_integration.

  • Quando si crea la tabella, è necessario configurarla con le colonne e i tipi di dati specificati. È possibile utilizzare nomi di colonna preferiti anziché quelli elencati nella tabella. Occorre prendere nota dei nomi scelti per utilizzarli come riferimento durante la configurazione della Knowledge Base.

    Nome colonna Tipo di dati Descrizione
    id UUID (chiave primaria)

    Contiene identificatori univoci per ogni record.

    blocchi Testo

    Contiene i blocchi di testo non elaborato provenienti dalle origini dati.

    incorporamento Vettore

    Contiene gli incorporamenti vettoriali delle origini dati.

    metadata JSON

    Contiene i metadati necessari per eseguire l’attribuzione dell’origine e per consentire l’importazione dei dati e l’esecuzione di query.

    metadati_personalizzati JSONB

    (Facoltativo) Definisce la colonna di destinazione in cui Amazon Bedrock scrive i dettagli dei metadati dalle origini dati.

Con questi dettagli, ora è possibile creare una Knowledge Base nella console Bedrock. Per informazioni più dettagliate sulla configurazione di un indice vettoriale e sulla creazione di informazioni della Knowledge Base, consulta Creazione di un archivio vettoriale in Amazon Aurora e Creazione di un archivio vettoriale in Amazon Aurora.

Dopo aver aggiunto Aurora come Knowledge Base, è possibile importare le origini dati per eseguire ricerche e query. Per ulteriori informazioni, consulta Inserisci le tue origini dati nella knowledge base.