

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
<a name="AuroraPostgreSQL.VectorDB"></a>

È 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](https://docs.aws.amazon.com/bedrock/latest/userguide/knowledge-base-setup.html). 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)](https://docs.aws.amazon.com/sagemaker/latest/dg/jumpstart-foundation-models-customize-rag.html).

Per informazioni dettagliate sull’utilizzo di Aurora PostgreSQL per creare applicazioni di IA generativa utilizzando RAG, consulta questo [post di blog](https://aws.amazon.com/blogs/database/build-generative-ai-applications-with-amazon-aurora-and-knowledge-bases-for-amazon-bedrock/).

**Topics**
+ [Prerequisiti](#AuroraPostgreSQL.VectorDB.Prereq)
+ [Preparazione di Aurora PostgreSQL per l’utilizzo come Knowledge Base per Amazon Bedrock](#AuroraPostgreSQL.VectorDB.PreparingKB)
+ [Creazione di una Knowledge Base nella console Bedrock](#AuroraPostgreSQL.VectorDB.CreatingKB)
+ [Creazione rapida di una Knowledge Base per Amazon Bedrock di Aurora PostgreSQL](AuroraPostgreSQL.quickcreatekb.md)

## Prerequisiti
<a name="AuroraPostgreSQL.VectorDB.Prereq"></a>

È 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](https://aws.amazon.com/about-aws/whats-new/2023/10/amazon-aurora-postgresql-pgvector-v0-5-0-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](rds-secrets-manager.md).

## Preparazione di Aurora PostgreSQL per l’utilizzo come Knowledge Base per Amazon Bedrock
<a name="AuroraPostgreSQL.VectorDB.PreparingKB"></a>

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
<a name="AuroraPostgreSQL.VectorDB.CreatingDBC"></a>

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](CHAP_GettingStartedAurora.CreatingConnecting.AuroraPostgreSQL.md).
+ 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](data-api.md).
+ 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)](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Tagging.ARN.html).

### Connessione a un database e installazione di pgvector
<a name="AuroraPostgreSQL.VectorDB.ConnectingDB"></a>

È 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](Aurora.Connecting.md#Aurora.Connecting.AuroraPostgreSQL). 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](https://aws.amazon.com/about-aws/whats-new/2023/10/amazon-aurora-postgresql-pgvector-v0-5-0-hnsw-indexing/).

1. 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
<a name="AuroraPostgreSQL.VectorDB.SetupDBObjects"></a>

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;
   ```

1. 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;
   ```

1. 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;
   ```

1. 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](https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters-titan-embed-text.html).
   + Per il modello Titan v1.2, utilizzare `vector(1536)`. Per ulteriori informazioni, consulta [Amazon Titan Multimodal Embeddings G1](https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters-titan-embed-mm.html).
   + Per il modello Cohere Embed, utilizzare `vector(1024)`. Per ulteriori informazioni, consulta [Modelli Cohere Embed](https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters-embed.html).
   + 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](https://docs.aws.amazon.com/bedrock/latest/userguide/kb-test-config.html).

1. 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
<a name="AuroraPostgreSQL.VectorDB.SecretManager"></a>

Secrets Manager consente di archiviare le credenziali Aurora per poterle trasmettere in modo sicuro alle applicazioni. Se non hai scelto l'opzione di gestione AWS dei segreti durante la creazione del cluster Aurora PostgreSQL DB, ora puoi creare un segreto. Per ulteriori informazioni sulla creazione di un segreto Gestione dei segreti AWS del database, vedere [AWS Secrets Manager database secret](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_database_secret.html).

## Creazione di una Knowledge Base nella console Bedrock
<a name="AuroraPostgreSQL.VectorDB.CreatingKB"></a>

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.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.VectorDB.html)

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](https://docs.aws.amazon.com/bedrock/latest/userguide/knowledge-base-setup-rds.html) e [Creazione di un archivio vettoriale in Amazon Aurora](https://docs.aws.amazon.com/bedrock/latest/userguide/knowledge-base-create.html).

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](https://docs.aws.amazon.com/bedrock/latest/userguide/knowledge-base-ingest.html).

# Creazione rapida di una Knowledge Base per Amazon Bedrock di Aurora PostgreSQL
<a name="AuroraPostgreSQL.quickcreatekb"></a>

 Il flusso di lavoro della generazione potenziata da recupero dati (RAG) di Amazon Bedrock si basa su dati vettoriali memorizzati in un database Aurora PostgreSQL per potenziare il recupero dei contenuti. In precedenza, la configurazione di Aurora PostgreSQL come archivio dati vettoriale per le Knowledge Base per Bedrock era un processo in più fasi, che richiedeva numerose azioni manuali su diverse interfacce utente. Ciò ha reso difficile per i data scientist e gli sviluppatori sfruttare Aurora per i progetti Bedrock. 

 Per migliorare l’esperienza utente, AWS ha creato una nuova opzione di creazione rapida basata su CloudFormation che semplifica il processo di configurazione. Con la creazione rapida di, ora è possibile effettuare il provisioning di un cluster di database Aurora PostgreSQL preconfigurato come archivio vettoriale per le Knowledge Base per Amazon Bedrock con un solo clic. 

**Topics**
+ [Regioni e versioni supportate di Aurora PostgreSQL](#AuroraPostgreSQL.quickcreatekb.avail)
+ [Informazioni sul processo di creazione rapida](#AuroraPostgreSQL.quickcreatekb.using)
+ [Vantaggi dell’utilizzo della creazione rapida Aurora](#AuroraPostgreSQL.quickcreatekb.adv)
+ [Limitazioni del processo di creazione rapida Aurora](#AuroraPostgreSQL.quickcreatekb.limit)

## Regioni e versioni supportate di Aurora PostgreSQL
<a name="AuroraPostgreSQL.quickcreatekb.avail"></a>

L’opzione di creazione rapida di Aurora è disponibile in tutte le Regioni AWS che supportano le Knowledge Base per Amazon Bedrock. Per impostazione predefinita, crea un cluster di database Aurora PostgreSQL con versione 15.7. Per ulteriori informazioni sulle Regioni supportate, consulta [Supported models and regions for Amazon Bedrock Knowledge Bases](https://docs.aws.amazon.com/bedrock/latest/userguide/knowledge-base-supported.html).

## Informazioni sul processo di creazione rapida
<a name="AuroraPostgreSQL.quickcreatekb.using"></a>

Il processo di creazione rapida effettua automaticamente il provisioning delle seguenti risorse per configurare un database Amazon Aurora PostgreSQL come archivio dati vettoriale per la Knowledge Base per Amazon Bedrock:

Un cluster di database Aurora PostgreSQL nel proprio account, configurato con impostazioni predefinite.
+ Le unità di capacità Aurora (ACU, Aurora Capacity Units) sono impostate da 0 a 16. Ciò consente di ridurre verticalmente fino a zero l’archivio vettoriale quando non è in uso, risparmiando sui costi di elaborazione. Le ACU possono essere modificate in un secondo momento nella console Amazon RDS.
+ Indice HNSW (Hierarchical Navigable Small World) che utilizza la distanza euclidea come misura di somiglianza per gli embedding vettoriali Bedrock memorizzati in Aurora.
+ L’istanza database è un’istanza serverless v2.
+ Il cluster è associato al VPC e alle sottoreti predefiniti e ha l’API dati RDS abilitata.
+ Le credenziali di amministratore del cluster sono gestite da AWS Secrets Manager.

Oltre alle impostazioni predefinite, vengono configurate automaticamente le seguenti impostazioni. Durante il processo, verranno visualizzate delle schermate che spiegano il flusso di lavoro.
+ L’inizializzazione del cluster Aurora con gli oggetti di database necessari:
  + Creare l’estensione pgvector, lo schema, il ruolo e le tabelle necessari per la Knowledge Base per Bedrock.
  + Registra un utente del database con privilegi limitati per consentire a Bedrock di interagire con il cluster.
+  Durante tutto il processo di provisioning delle risorse verrà visualizzato un banner di avanzamento, che consente di tenere traccia dello stato dei seguenti eventi secondari: 
  + Creazione dei cluster Aurora
  + Inizializzazione del cluster Aurora
  + Creazione della Knowledge Base

  Il banner rimane visibile fino alla creazione completa della knowledge base, anche se si esce dalla pagina e si torna indietro.
+ È possibile fare clic su `View details` nel banner di avanzamento per visualizzare lo stato di ogni passaggio. Per ulteriori informazioni sugli eventi durante la creazione della knowledge base, scegliere il link CloudFormation nella schermata di visualizzazione dei dettagli. Una volta completato il processo, la nuova Knowledge Base per Bedrock sarà pronta per l’uso.
+ Gli ID dello stack per tutte le risorse di creazione rapida sono disponibili nei tag della Knowledge Base per Bedrock, nel caso in cui fosse necessario farvi riferimento.

Viene creata una Knowledge Base per Bedrock, con la configurazione del cluster Aurora di cui è stato appena effettuato il provisioning come archivio vettoriale.

## Vantaggi dell’utilizzo della creazione rapida Aurora
<a name="AuroraPostgreSQL.quickcreatekb.adv"></a>
+ Il processo di creazione rapida basato su CloudFormation riduce significativamente il tempo e la complessità necessari per utilizzare Aurora come archivio vettoriale.
+ Aurora offre prestazioni eccellenti, scalabilità vettoriale e vantaggi in termini di costi con la possibilità di scalare fino a zero i costi di elaborazione quando non viene utilizzato.
+ Il processo di creazione rapida semplifica l’esperienza end-to-end, consentendo di creare e configurare facilmente le Knowledge Base per Bedrock utilizzando Aurora.
+ I clienti possono basarsi sul modello CloudFormation per personalizzare il provisioning con le proprie configurazioni. 

## Limitazioni del processo di creazione rapida Aurora
<a name="AuroraPostgreSQL.quickcreatekb.limit"></a>
+ Con l’opzione di creazione rapida Aurora, viene effettuato il provisioning del cluster di database con le configurazioni predefinite. Tuttavia, queste impostazioni predefinite potrebbero non soddisfare i requisiti specifici o il caso d’uso previsto. La creazione rapida non offre opzioni per modificare le configurazioni durante il processo di provisioning. Le configurazioni vengono impostate automaticamente per semplificare l’esperienza di implementazione. Se è necessario personalizzare la configurazione del cluster di database Aurora, è possibile farlo dopo l’implementazione iniziale tramite la creazione rapida nella console Amazon RDS.
+ Sebbene il flusso di creazione rapida semplifica il processo di configurazione, il tempo necessario per creare il cluster di database Aurora è ancora di circa 10 minuti, lo stesso di un’implementazione manuale. Ciò è dovuto al tempo necessario per effettuare il provisioning dell’infrastruttura Aurora.
+ L’opzione di creazione rapida è progettata per la sperimentazione e la configurazione rapida. Le risorse create tramite la creazione rapida potrebbero non essere adatte all’uso in produzione e non sarà possibile migrarle direttamente in un ambiente di produzione nel proprio VPC.