Uso de Aurora PostgreSQL como base de conocimientos para Amazon Bedrock - Amazon Aurora

Uso de Aurora PostgreSQL como base de conocimientos para Amazon Bedrock

Puede usar un clúster de base de datos de Aurora PostgreSQL como base de conocimientos para Amazon Bedrock. Para obtener más información, consulte Creación de un almacén vectorial en Amazon Aurora. Una base de conocimientos toma automáticamente los datos de texto no estructurados almacenados en un bucket de Amazon S3, los convierte en fragmentos de texto y vectores y los almacena en una base de datos PostgreSQL. Con las aplicaciones de IA generativa, puede utilizar agentes para Amazon Bedrock a fin de consultar los datos almacenados en la base de conocimientos, y utilizar los resultados de esas consultas para aumentar las respuestas que proporcionan los modelos fundacionales. Este flujo de trabajo se denomina generación aumentada de recuperación (RAG). Para obtener más información sobre la RAG, consulte Generación aumentada de recuperación (RAG).

Para obtener información detallada sobre el uso de Aurora PostgreSQL para crear aplicaciones de IA generativa mediante RAG, consulte esta entrada de blog.

Requisitos previos

Familiarícese con los siguientes requisitos previos para utilizar el clúster de Aurora PostgreSQL como base de conocimientos para Amazon Bedrock. A un nivel superior, debe configurar los siguientes servicios para utilizarlos con Bedrock:

  • Clúster de base de datos de Amazon Aurora PostgreSQL creado en cualquiera de las siguientes versiones:

    • Versión 16.1 y todas las versiones posteriores

    • Versión 15.4 y posteriores

    • Versión 14.9 y posteriores

    • Versión 13.12 y posteriores

    • Versión 12.16 y posteriores

    nota

    Debe habilitar la extensión pgvector en la base de datos de destino y usar la versión 0.5.0 o superior. Para obtener más información, consulte pgvector v0.5.0 con indexación HNSW.

  • API de datos de RDS

  • Un usuario administrado en AWS Secrets Manager. Para obtener más información, consulte Administración de contraseñas con Amazon Aurora y AWS Secrets Manager.

Preparación de Aurora PostgreSQL como base de conocimientos para Amazon Bedrock

Siga los pasos que se explican en las secciones siguientes a fin de preparar Aurora PostgreSQL para el uso como base de conocimientos para Amazon Bedrock.

Creación y configuración de Aurora PostgreSQL

Para configurar Amazon Bedrock con un clúster de base de datos de Aurora PostgreSQL, primero debe crear un clúster de base de datos de Aurora PostgreSQL y tomar nota de los campos importantes para la configuración con Amazon Bedrock. Para obtener más información sobre la creación de un clúster de base de datos de Aurora PostgreSQL, consulte Creación de un clúster de base de datos de Aurora PostgreSQL y conexión a él.

  • Habilite la API de datos al crear el clúster de base de datos de Aurora PostgreSQL. Para obtener más información acerca de las versiones admitidas, consulte Uso de la API de datos de RDS.

  • Anote los nombres de recurso de Amazon (ARN) del clúster de base de datos de Aurora PostgreSQL. Los necesitará para configurar el clúster de base de datos para el uso con Amazon Bedrock. Para obtener más información, consulte Nombres de recurso de Amazon (ARN).

Conexión a una base de datos e instalación de pgvector

Puede conectarse a Aurora PostgreSQL mediante cualquiera de las utilidades de conexión. Para obtener información más detallada sobre estas utilidades, consulte Conexión a un clúster de base de datos Amazon Aurora PostgreSQL. También puede usar el editor de consultas de la consola de RDS para ejecutar las consultas. Para utilizar el editor de consultas, necesita un clúster de base de datos de Aurora con la API de datos de RDS habilitada.

  1. Inicie sesión en la base de datos con su usuario maestro y configure pgvector. Use el siguiente comando si la extensión no está instalada:

    CREATE EXTENSION IF NOT EXISTS vector;

    Utilice la pgvector0.5.0 y versiones superiores que admitan la indexación HNSW. Para obtener más información, consulte pgvector v0.5.0 con indexación HNSW.

  2. Utilice el siguiente comando para comprobar qué versión de pg_vector está instalada:

    SELECT extversion FROM pg_extension WHERE extname='vector';

Configuración de objetos y privilegios de base de datos

  1. Cree un esquema específico que Bedrock pueda usar para consultar los datos. Utilice el siguiente comando para crear un esquema:

    CREATE SCHEMA bedrock_integration;
  2. Cree un nuevo rol que Bedrock pueda usar para consultar la base de datos. Utilice el siguiente comando para crear un nuevo rol:

    CREATE ROLE bedrock_user WITH PASSWORD 'password' LOGIN;
    nota

    Anote esta contraseña, ya que la usará más tarde para crear una contraseña de Secrets Manager.

    Si utiliza el cliente psql, use los siguientes comandos para crear un nuevo rol:

    CREATE ROLE bedrock_user LOGIN; \PASSWORD password;
  3. Otorgue los permisos bedrock_user para administrar el esquema de bedrock_integration. Esto permitirá crear tablas o índices dentro del esquema.

    GRANT ALL ON SCHEMA bedrock_integration to bedrock_user;
  4. Inicie sesión como bedrock_user y cree una tabla en bedrock_integration schema.

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

    Este comando creará la tabla bedrock_kb en el esquema bedrock_integration con integraciones de Titan V2.

  5. Le recomendamos que cree un índice con el operador de coseno que Bedrock pueda utilizar para consultar los datos.

    CREATE INDEX ON bedrock_integration.bedrock_kb USING hnsw (embedding vector_cosine_ops);
  6. Le recomendamos que establezca el valor de ef_construction en 256 para la versión 0.6.0 o superior de pgvector que utilice la creación de índices en paralelo.

    CREATE INDEX ON bedrock_integration.bedrock_kb USING hnsw (embedding vector_cosine_ops) WITH (ef_construction=256);

Crear un secreto en Secrets Manager

Secrets Manager le permite almacenar sus credenciales de Aurora para que se puedan transmitir de forma segura a las aplicaciones. Si no ha elegido la opción de administrador de AWS Secrets Manager al crear el clúster de base de datos de Aurora PostgreSQL, puede crear un secreto ahora. Para obtener más información sobre cómo crear un secreto de base de datos AWS Secrets Manager, consulte AWS Secrets Manager database secret.

Creación de una base de conocimientos en la consola de Bedrock

Mientras prepara Aurora PostgreSQL para su uso como almacén vectorial para una base de conocimientos, recopile los siguientes detalles que debe proporcionar a la consola de Amazon Bedrock.

  • ARN de clúster de base de datos de Amazon Aurora: el ARN del clúster de base de datos.

  • ARN secreto: el ARN de la clave de AWS Secrets Manager para su clúster de base de datos.

  • Nombre de base de datos: el nombre de la base de datos. Por ejemplo, puede usar el postgres de base de datos predeterminado.

  • Nombre de la tabla: le recomendamos que proporcione un nombre cualificado del esquema al crear la tabla mediante un comando similar al siguiente.

    CREATE TABLE bedrock_integration.bedrock_kb;

    Este comando creará la tabla bedrock_kb en el esquema bedrock_integration.

  • Cuando cree la tabla, configúrela con las columnas y los tipos de datos especificados. Puede usar los nombres de columna que prefiera en lugar de los que aparecen en la tabla. Recuerde que debe anotar los nombres que haya elegido, ya que tendrá que consultarlos durante la configuración de la base de conocimientos.

    Nombre de la columna Tipo de datos Descripción
    id UUID clave principal

    Contiene identificadores únicos para cada registro.

    fragmentos Texto

    Contiene los fragmentos de texto sin procesar de los orígenes de datos.

    Incrustación Vector

    Contiene las incrustaciones vectoriales de los orígenes de datos.

    metadatos JSON

    Contiene los metadatos necesarios para llevar a cabo la atribución del origen y para permitir la ingesta y consulta de datos.

Con estos detalles, ahora puede crear una base de conocimientos en la consola de Bedrock. Para obtener información más detallada sobre la configuración de un índice vectorial y la creación de una base de conocimientos, consulte Create a vector store in Amazon Aurora y Create a vector store in Amazon Aurora.

Tras añadir Aurora como base de conocimientos, ya puede incorporar sus orígenes de datos para realizar búsquedas y consultas. Para obtener más información, consulte Ingesta de sus orígenes de datos en la base de conocimientos.