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

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Verwendung von Aurora PostgreSQL als Wissensdatenbank für Amazon Bedrock

Sie können einen Aurora PostgreSQL-DB-Cluster als Wissensdatenbank für Amazon Bedrock verwenden. Weitere Informationen finden Sie unter Erstellen eines Vektorspeichers in Amazon Aurora. Eine Knowledge Base nimmt automatisch unstrukturierte Textdaten, die in einem Amazon S3 S3-Bucket gespeichert sind, konvertiert sie in Textblöcke und Vektoren und speichert sie in einer PostgreSQL-Datenbank. Mit den generativen KI-Anwendungen können Sie Agents for Amazon Bedrock verwenden, um die in der Knowledge Base 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 zur Erstellung generativer KI-Anwendungen mit 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 Dienste für die Verwendung mit Bedrock konfigurieren:

  • Der Amazon Aurora PostgreSQL-DB-Cluster 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 Benutzer hat es verwaltet in AWS Secrets Manager. Weitere Informationen finden Sie unter Passwortverwaltung mit , Amazon Aurora und AWS Secrets Manager.

Vorbereitung von Aurora PostgreSQL für die Verwendung als Wissensdatenbank für Amazon Bedrock

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

Aurora PostgreSQL erstellen und konfigurieren

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

  • Aktivieren Sie die Daten-API bei der Erstellung des Aurora PostgreSQL-DB-Clusters. Weitere Informationen zu den unterstützten Versionen finden Sie unter. Verwenden der Amazon RDS-Daten-API

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

Verbindung zu einer Datenbank herstellen und pgvector installieren

Sie können mit jedem der Verbindungsdienstprogramme eine Verbindung zu Aurora PostgreSQL herstellen. Ausführlichere Informationen zu diesen Dienstprogrammen finden Sie unter. Verbindung zu einem Amazon Aurora SQL Postgre-DB-Cluster herstellen Alternativ können Sie den Abfrageeditor der RDS-Konsole verwenden, um die Abfragen auszuführen. 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 Masterbenutzer 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 eine höhere Version, die die HNSW-Indizierung unterstützt. Weitere Informationen finden Sie unter pgvector v0.5.0 mit HNSW-Indizierung.

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

    SELECT extversion FROM pg_extension WHERE extname='vector';

Datenbankobjekte und -berechtigungen einrichten

  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 benötigen, um ein Secrets Manager Manager-Passwort zu erstellen.

    Wenn Sie den psql Client verwenden, 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 bedrock_integration Schemas. 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 an bedrock_user und erstellen Sie eine Tabelle in derbedrock_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 bedrock_kb Tabelle im bedrock_integration Schema mit Titan-Einbettungen.

    Ersetzen Sie n im vector(n) Datentyp 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 v2vector(1024), odervector(512), odervector (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 für das Cohere Embed Multilingual v3. vector(1024)

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

  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 Kosinusoperator, den das Grundgestein 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 auf 256 für Versionen der Version pgvector 0.6.0 und höher ef_construction zu setzen, die parallel Indexerstellung verwenden.

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

      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, mit dem Bedrock die Metadaten abfragen kann.

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

Erstellen Sie ein Geheimnis 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 Aurora PostgreSQL-DB-Clusters nicht die Option AWS Secrets Manager ausgewählt haben, können Sie jetzt ein Secret erstellen. Weitere Informationen zum Erstellen eines geheimen AWS Secrets Manager Datenbankgeheimnisses finden Sie unter AWS Secrets Manager-Datenbankgeheimnis.

Eine Wissensdatenbank in der Bedrock-Konsole erstellen

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

  • Amazon Aurora DB-Cluster ARN — Der ARN Ihres DB-Clusters.

  • Geheimer ARN — Der ARN des AWS Secrets Manager Manager-Schlüssels für Ihren DB-Cluster.

  • Datenbankname — Der Name Ihrer Datenbank. Sie können beispielsweise die Standarddatenbank verwendenpostgres.

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

    Mit diesem Befehl wird die bedrock_kb Tabelle im bedrock_integration Schema erstellt.

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

    Brocken 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 Datenaufnahme 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 einer Knowledge Base-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 Importieren Sie Ihre Datenquellen in die Knowledge Base.