Verwenden von Aurora PostgreSQL als Wissensdatenbank für Amazon Bedrock - Amazon Aurora

Verwenden von Aurora PostgreSQL als Wissensdatenbank für Amazon Bedrock

Sie können einen DB-Cluster von Aurora PostgreSQL als Wissensdatenbank für Amazon Bedrock verwenden. Weitere Informationen finden Sie unter Erstellen eines Vektorspeichers in Amazon Aurora. Eine Wissensdatenbank nimmt automatisch unstrukturierte Textdaten, die in einem Amazon-S3-Bucket gespeichert sind, konvertiert sie in Textblöcke und Vektoren und speichert sie in einer PostgreSQL-Datenbank. Mit den Anwendungen mit generativer KI können Sie Agenten für Amazon Bedrock verwenden, um die in der Wissensdatenbank gespeicherten Daten abzufragen und die Ergebnisse dieser Abfragen zu verwenden, um die Antworten zu erweitern, die von grundlegenden Modellen bereitgestellt werden. Dieser Workflow wird Retrieval Augmented Generation (RAG) genannt. Weitere Informationen zu RAG finden Sie unter Retrieval Augmented Generation (RAG).

Ausführliche Informationen zur Verwendung von Aurora PostgreSQL zum Erstellen von Anwendungen mit generativer KI mithilfe von RAG finden Sie in diesem Blogbeitrag.

Voraussetzungen

Machen Sie sich mit den folgenden Voraussetzungen vertraut, um den Aurora-PostgreSQL-Cluster als Wissensdatenbank für Amazon Bedrock zu verwenden. Auf oberster Ebene müssen Sie die folgenden Services für die Verwendung mit Bedrock konfigurieren:

  • Der DB-Cluster von Amazon Aurora PostgreSQL wurde in einer der folgenden Versionen erstellt:

    • 16.1 und alle höheren Versionen

    • 15.4 und höhere Versionen

    • 14.9 und höhere Versionen

    • 13.12 und höhere Versionen

    • 12.16 und höhere Versionen

    Anmerkung

    Sie müssen die pgvector-Erweiterung in Ihrer Zieldatenbank aktivieren und Version 0.5.0 oder höher verwenden. Weitere Informationen finden Sie unter pgvector v0.5.0 mit HNSW-Indizierung.

  • RDS-Daten-API

  • Ein in AWS Secrets Manager verwalteter Benutzer. Weitere Informationen finden Sie unter Passwortverwaltung mit Amazon Aurora und AWS Secrets Manager.

Vorbereiten von Aurora PostgreSQL zur Verwendung als Wissensdatenbank für Amazon Bedrock

Folgen Sie den Schritten in den folgenden Abschnitten, um Aurora PostgreSQL für die Verwendung als Wissensdatenbank für Amazon Bedrock vorzubereiten.

Erstellen und Konfigurieren von Aurora PostgreSQL

Zur Konfiguration von Amazon Bedrock mit einem DB-Cluster von Aurora PostgreSQL müssen Sie zunächst einen DB-Cluster von Aurora PostgreSQL erstellen und sich die wichtigen Felder für dessen Konfiguration mit Amazon Bedrock notieren. Weitere Informationen zum Erstellen eines DB-Clusters von Aurora PostgreSQL finden Sie unter Erstellen eines DB-Clusters von Aurora PostgreSQL und Herstellen einer Verbindung.

  • Aktivieren Sie die Daten-API, während Sie den DB-Cluster von Aurora PostgreSQL erstellen. Weitere Informationen zu den unterstützten Versionen finden Sie unter Verwenden der Daten-API von Amazon RDS.

  • Notieren Sie sich unbedingt den Amazon-Ressourcennamen (ARN) Ihres DB-Clusters von Aurora PostgreSQL. Sie benötigen ihn, um den DB-Cluster für die Verwendung mit Amazon Bedrock zu konfigurieren. Weitere Informationen finden Sie unter Amazon-Ressourcennamen (ARNs).

Verbinden mit einer Datenbank und Installieren von pgvector

Sie können mit jedem der Verbindungsdienstprogramme eine Verbindung zu Aurora PostgreSQL herstellen. Weitere Informationen zu diesen Dienstprogrammen finden Sie unter Herstellen einer Verbindung mit einem Amazon-Aurora-PostgreSQL-DB-Cluster. Zur Ausführung der Abfragen können Sie auch den Abfrage-Editor der RDS-Konsole verwenden. Sie benötigen einen Aurora-DB-Cluster mit aktivierter RDS-Daten-API, um den Abfrage-Editor verwenden zu können.

  1. Melden Sie sich mit Ihrem Master-Benutzer bei der Datenbank an und richten Sie pgvector ein. Verwenden Sie den folgenden Befehl, wenn die Erweiterung nicht installiert ist:

    CREATE EXTENSION IF NOT EXISTS vector;

    Verwenden Sie pgvector 0.5.0 und höhere Versionen, die die HNSW-Indizierung unterstützen. Weitere Informationen finden Sie unter pgvector v0.5.0 mit HNSW-Indizierung.

  2. Verwenden Sie den folgenden Befehl, um die installierte Version des pg_vector zu überprüfen:

    SELECT extversion FROM pg_extension WHERE extname='vector';

Einrichten von Datenbankobjekten und -berechtigungen

  1. Erstellen Sie ein bestimmtes Schema, mit dem Bedrock die Daten abfragen kann. Verwenden Sie den folgenden Befehl, um ein Schema zu erstellen:

    CREATE SCHEMA bedrock_integration;
  2. Erstellen Sie eine neue Rolle, mit der Bedrock die Datenbank abfragen kann. Verwenden Sie den folgenden Befehl, um eine neue Rolle zu erstellen:

    CREATE ROLE bedrock_user WITH PASSWORD 'password' LOGIN;
    Anmerkung

    Notieren Sie sich dieses Passwort, da Sie es später brauchen, um ein Secrets-Manager-Passwort zu erstellen.

    Bei Nutzung des psql-Clients verwenden Sie die folgenden Befehle, um eine neue Rolle zu erstellen:

    CREATE ROLE bedrock_user LOGIN; \PASSWORD password;
  3. Erteilen Sie die bedrock_user-Berechtigungen zur Verwaltung des Schemas bedrock_integration. Dies bietet die Möglichkeit, Tabellen oder Indizes innerhalb des Schemas zu erstellen.

    GRANT ALL ON SCHEMA bedrock_integration to bedrock_user;
  4. Melden Sie sich als bedrock_user an und erstellen Sie eine Tabelle im bedrock_integration schema.

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

    Dieser Befehl erstellt die Tabelle bedrock_kb im Schema bedrock_integration mit Titan-Einbettungen.

    Ersetzen Sie n im Datentyp vector(n) durch die entsprechende Dimension für das von Ihnen verwendete Einbettungsmodell. Verwenden Sie die folgenden Empfehlungen, um Ihre Dimensionen auszuwählen:

    • Verwenden Sie für das Modell Titan v2 vector(1024), vector(512) oder vector (256). Weitere Informationen finden Sie unter Amazon Titan Embeddings Text.

    • Verwenden Sie für das Modell Titan v1.2 vector(1536). Weitere Informationen finden Sie unter Amazon Titan Multimodal Embeddings G1.

    • Verwenden Sie für das Cohere-Embed-Modell vector(1024). Weitere Informationen finden Sie unter Cohere-Embed-Modelle.

    • Verwenden Sie vector(1024) für das Cohere Embed Multilingual v3.

    Die ersten vier Spalten sind Pflichtfelder. Für die Bearbeitung von Metadaten schreibt Bedrock Daten aus Ihren Metadatendateien in die Spalte custom_metadata. Wir empfehlen, diese Spalte zu erstellen, wenn Sie Metadaten und Filterung verwenden möchten. Wenn Sie keine Spalte custom_metadata erstellen, fügen Sie einzelne Spalten für jedes Metadatenattribut in Ihrer Tabelle hinzu, bevor Sie mit der Erfassung beginnen. Weitere Informationen finden Sie unter Konfigurieren und Anpassen von Abfragen und Antwortgenerierung.

  5. Gehen Sie wie folgt vor, um die erforderlichen Indizes zu erstellen, die Bedrock zur Abfrage Ihrer Daten verwendet:

    • Erstellen Sie einen Index mit dem Kosinus-Operator, den Bedrock verwenden kann, um die Daten abzufragen.

      CREATE INDEX ON bedrock_integration.bedrock_kb USING hnsw (embedding vector_cosine_ops);
    • Wir empfehlen Ihnen, den Wert von ef_construction für pgvector 0.6.0 und höhere Versionen, die die parallele Indexerstellung verwenden, auf 256 zu setzen.

      CREATE INDEX ON bedrock_integration.bedrock_kb USING hnsw (embedding vector_cosine_ops) WITH (ef_construction=256);
    • Erstellen Sie einen Index, den Bedrock zur Abfrage der Textdaten verwenden kann.

      CREATE INDEX ON bedrock_integration.bedrock_kb USING gin (to_tsvector('simple', chunks));
    • Wenn Sie eine Spalte für benutzerdefinierte Metadaten erstellt haben, erstellen Sie einen Index, den Bedrock zur Abfrage der Metadaten verwenden kann.

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

Erstellen eines Secrets in Secrets Manager

Mit Secrets Manager können Sie Ihre Aurora-Anmeldeinformationen speichern, sodass sie sicher an Anwendungen übertragen werden können. Wenn Sie bei der Erstellung des DB-Clusters von Aurora PostgreSQL nicht die Option AWS Secrets Manager ausgewählt haben, können Sie jetzt ein Secret erstellen. Weitere Informationen zum Erstellen eines AWS Secrets Manager-Datenbank-Secrets finden Sie unter Datenbank-Secret von AWS Secrets Manager.

Erstellen einer Wissensdatenbank in der Bedrock-Konsole

Während Sie Aurora PostgreSQL für die Verwendung als Vektorspeicher für eine Wissensdatenbank vorbereiten, müssen Sie die folgenden Informationen sammeln, die Sie der Amazon-Bedrock-Konsole zur Verfügung stellen müssen.

  • ARN des DB-Clusters von Amazon Aurora – Der ARN Ihres DB-Clusters

  • Secret-ARN – Der ARN des Schlüssels von AWS Secrets Manager für Ihren DB-Cluster

  • Datenbankname – Der Name Ihrer Datenbank. Sie können beispielsweise die Standarddatenbank postgres verwenden.

  • Tabellenname – Wir empfehlen Ihnen, bei der Erstellung der Tabelle einen schemaqualifizierten Namen anzugeben. Verwenden Sie dazu einen Befehl, der dem folgenden ähnelt:

    CREATE TABLE bedrock_integration.bedrock_kb;

    Dieser Befehl erstellt die Tabelle bedrock_kb im Schema bedrock_integration.

  • Achten Sie beim Erstellen der Tabelle darauf, sie mit den angegebenen Spalten und Datentypen zu konfigurieren. Sie können Ihre bevorzugten Spaltennamen anstelle der in der Tabelle aufgeführten verwenden. Denken Sie daran, sich die Namen zu notieren, die Sie bei der Einrichtung der Wissensdatenbank als Referenz ausgewählt haben.

    Spaltenname Datentyp Beschreibung
    id UUID-Primärschlüssel

    Enthält eindeutige Bezeichner für jeden Datensatz.

    Blöcke Text

    Enthält die Rohtextblöcke aus Ihren Datenquellen.

    Einbettung Vektor

    Enthält die Vektoreinbettungen der Datenquellen.

    Metadaten JSON

    Enthält Metadaten, die für die Quellenzuweisung und die Datenerfassung und -abfrage erforderlich sind

    custom_metadata JSONB

    (Optional) Definiert die Zielspalte, in die Amazon Bedrock Metadatendetails aus Ihren Datenquellen schreibt

Mit diesen Details können Sie jetzt eine Wissensdatenbank in der Bedrock-Konsole erstellen. Ausführlichere Informationen zum Einrichten eines Vektorindex und zum Erstellen von Wissensdatenbank-Informationen finden Sie unter Erstellen eines Vektorspeichers in Amazon Aurora und Erstellen eines Vektorspeichers in Amazon Aurora.

Nachdem Sie Aurora als Ihre Wissensdatenbank hinzugefügt haben, können Sie jetzt Ihre Datenquellen für Suchen und Abfragen aufnehmen. Weitere Informationen finden Sie unter Aufnehmen Ihrer Datenquellen in die Wissensdatenbank.