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
Temas
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.
-
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
pgvector
0.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. -
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
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;
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
;Otorgue los permisos
bedrock_user
para administrar el esquema debedrock_integration
. Esto permitirá crear tablas o índices dentro del esquema.GRANT ALL ON SCHEMA bedrock_integration to bedrock_user;
Inicie sesión como
bedrock_user
y cree una tabla enbedrock_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 esquemabedrock_integration
con integraciones de Titan V2.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);
Le recomendamos que establezca el valor de
ef_construction
en 256 para la versión 0.6.0 o superior depgvector
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 esquemabedrock_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.