Usar o Aurora PostgreSQL como base de conhecimento para o Amazon Bedrock
É possível usar um cluster de banco de dados do Aurora PostgreSQL como Base de Conhecimento para Amazon Bedrock. Para obter mais informações, consulte Create a vector store in Amazon Aurora. Uma Base de Conhecimento extrai automaticamente os dados de texto não estruturados armazenados em um bucket do Amazon S3, converte-os em blocos e vetores de texto e armazena-os em um banco de dados do PostgreSQL. Com as aplicações de IA generativa, é possível usar agentes do Amazon Bedrock para consultar os dados armazenados na base de conhecimento e usar os resultados dessas consultas para otimizar as respostas fornecidas pelos modelos de base. Esse fluxo de trabalho é chamado de Geração Aumentada de Recuperação (RAG). Para ter mais informações sobre a RAG, consulte Geração Aumentada de Recuperação (RAG).
Para ter informações detalhadas sobre como usar o Aurora PostgreSQL para criar aplicações de IA generativa usando RAG, consulte esta publicação de blog
Tópicos
Pré-requisitos
Familiarize-se com os pré-requisitos a seguir para usar o cluster do Aurora PostgreSQL como base de conhecimento para o Amazon Bedrock. Em geral, é necessário configurar os seguintes serviços para uso com o Bedrock:
-
Cluster de banco de dados do Amazon Aurora PostgreSQL criado em qualquer uma das seguintes versões:
-
16.1 e todas as versões posteriores
-
15.4 e versões posteriores
-
14.9 e versões posteriores
-
13.12 e versões posteriores
-
12.16 e versões posteriores
nota
É necessário habilitar a extensão
pgvector
no banco de dados de destino e usar a versão 0.5.0 ou posterior. Para ter mais informações, consulte pgvector v0.5.0 com indexação HNSW. -
-
API de dados do RDS
-
Um usuário gerenciado no AWS Secrets Manager. Para ter mais informações, consulte Gerenciamento de senhas com Amazon Aurora e AWS Secrets Manager.
Preparar o Aurora PostgreSQL para ser usado como base de conhecimento para o Amazon Bedrock
Siga as etapas explicadas nas seções abaixo para preparar o Aurora PostgreSQL para ser usado como Base de Conhecimento para Amazon Bedrock.
Criar e configurar o Aurora PostgreSQL
Para configurar o Amazon Bedrock com um cluster de banco de dados do Aurora PostgreSQL, é necessário primeiro criar um cluster de banco de dados do Aurora PostgreSQL e anotar os campos importantes para configurá-lo com o Amazon Bedrock. Para ter mais informações sobre como criar um cluster de banco de dados do Aurora PostgreSQL, consulte Criar um cluster de banco de dados do Aurora PostgreSQL e se conectar a ele.
-
Habilite a API de dados ao criar o cluster de banco de dados do Aurora PostgreSQL. Para ter mais informações sobre as versões compatíveis, consulte Usar a API de dados do Amazon RDS.
-
Anote os nomes dos recursos da Amazon (ARNs) do cluster de banco de dados do Aurora PostgreSQL. Você precisará deles para configurar o cluster de banco de dados para uso com o Amazon Bedrock. Para ter mais informações, consulte Nomes de recurso da Amazon (ARNs).
Conectar-se a um banco de dados e instalar o pgvector
É possível se conectar ao Aurora PostgreSQL usando qualquer um dos utilitários de conexão. Para ter informações mais detalhadas sobre esses utilitários, consulte Como conectar-se a um cluster de bancos de dados Amazon Aurora PostgreSQL. Como alternativa, é possível usar o editor de consultas do console do RDS para executar as consultas. Você precisa de um cluster de banco de dados do Aurora com a API de dados do RDS habilitada para usar o editor de consultas.
-
Faça login no banco de dados com o usuário principal e configure o pgvector. Use o comando a seguir se a extensão não estiver instalada:
CREATE EXTENSION IF NOT EXISTS vector;
Use a versão
pgvector
0.5.0 e posterior que aceita a indexação HNSW. Para ter mais informações, consulte pgvector v0.5.0 com indexação HNSW. -
Use o seguinte comando para conferir a versão do
pg_vector
instalado:SELECT extversion FROM pg_extension WHERE extname='vector';
Configurar objetos e privilégios de banco de dados
-
Crie um esquema específico que o Bedrock possa usar para consultar os dados. Use o seguinte comando para criar um esquema:
CREATE SCHEMA bedrock_integration;
-
Crie um perfil que o Bedrock possa usar para consultar o banco de dados. Use o seguinte comando para criar um perfil:
CREATE ROLE bedrock_user WITH PASSWORD '
password
' LOGIN;nota
Anote essa senha, pois você a usará posteriormente para criar uma senha do Secrets Manager.
Se você estiver usando o cliente
psql
, utilize os seguintes comandos para criar um perfil:CREATE ROLE bedrock_user LOGIN; \PASSWORD
password
; -
Conceda ao
bedrock_user
permissões para gerenciar o esquemabedrock_integration
. Isso oferecerá a capacidade de criar tabelas ou índices no esquema.GRANT ALL ON SCHEMA bedrock_integration to bedrock_user;
-
Faça login como
bedrock_user
e crie uma tabela nobedrock_integration schema
.CREATE TABLE bedrock_integration.bedrock_kb (id uuid PRIMARY KEY, embedding vector(
n
), chunks text, metadata json, custom_metadata jsonb);Esse comando criará a tabela
bedrock_kb
no esquemabedrock_integration
com incorporações do Titan.Substitua n no tipo de dados
vector(
pela dimensão apropriada para o modelo de incorporação que você está usando. Use as recomendações abaixo para ajudar a selecionar suas dimensões:n
)-
Para o modelo Titan v2, use
vector(1024)
,vector(512)
ouvector (256)
. Para saber mais, consulte Texto de incorporações do Amazon Titan. -
Para o modelo Titan v1.2, use
vector(1536)
. Para saber mais, consulte Amazon Titan Multimodal Embeddings G1. -
Para o modelo Cohere Embed, use
vector(1024)
. Para saber mais, consulte Modelos Cohere Embed. -
Para o Cohere Embed Multilingual v3, use
vector(1024)
.
As quatro primeiras colunas são obrigatórias. Para tratamento de metadados, o Bedrock grava dados de seus arquivos de metadados na coluna
custom_metadata
. Recomendamos criar essa coluna se você planeja usar metadados e filtragem. Se você não criar uma colunacustom_metadata
, adicione colunas individuais para cada atributo de metadados em sua tabela antes de iniciar a ingestão. Para ter mais informações, consulte Configure and customize queries and response generation. -
-
Siga estas etapas para criar os índices necessários que o Bedrock usa para consultar seus dados:
Crie um índice com um operador cosseno que o Bedrock possa usar para consultar os dados.
CREATE INDEX ON bedrock_integration.bedrock_kb USING hnsw (embedding vector_cosine_ops);
Recomendamos definir o valor de
ef_construction
como 256 para a versãopgvector
0.6.0 e posterior que usam a criação paralela de índices.CREATE INDEX ON bedrock_integration.bedrock_kb USING hnsw (embedding vector_cosine_ops) WITH (ef_construction=256);
-
Crie um índice que o Bedrock possa usar para consultar os dados de texto.
CREATE INDEX ON bedrock_integration.bedrock_kb USING gin (to_tsvector('simple', chunks));
-
Se você criou uma coluna para metadados personalizados, crie um índice que o Bedrock possa usar para consultar os metadados.
CREATE INDEX ON bedrock_integration.bedrock_kb USING gin (custom_metadata);
Criar um segredo no Secrets Manager
O Secrets Manager permite que você armazene suas credenciais do Aurora para que elas possam ser transmitidas com segurança às aplicações. Se você não escolheu a opção do AWS Secrets Manager ao criar o cluster de banco de dados do Aurora PostgreSQL, poderá criar um segredo agora. Para ter mais informações sobre como criar um segredo de banco de dados AWS Secrets Manager, consulte AWS Secrets Manager database secret.
Criação de uma Base de Conhecimento no console do Bedrock
Ao preparar o Aurora PostgreSQL para ser usado como armazenamento de vetores para uma Base de Conhecimento, reúna os detalhes a seguir que devem ser fornecidos ao console do Amazon Bedrock.
-
ARN do cluster de banco de dados do Amazon Aurora: o ARN do cluster de banco de dados.
-
ARN secreto: o ARN da chave do AWS Secrets Manager para o cluster de banco de dados.
-
Nome do banco de dados: o nome do banco de dados. Por exemplo, é possível usar o banco de dados padrão
postgres
. -
Nome da tabela: recomendamos que você forneça um nome qualificado para o esquema ao criar a tabela usando o comando semelhante ao seguinte:
CREATE TABLE bedrock_integration.bedrock_kb;
Esse comando criará a tabela
bedrock_kb
no esquemabedrock_integration
. -
Ao criar a tabela, configure-a com as colunas e os tipos de dados especificados. É possível usar os nomes de coluna de sua preferência em vez dos listados na tabela. Lembre-se de anotar os nomes que você escolheu para consulta durante a configuração da Base de Conhecimento.
Nome da coluna Tipo de dados Descrição id Chave primária de UUID Contém identificadores exclusivos para cada registro.
blocos Texto Contém os fragmentos de texto bruto das fontes de dados.
incorporação Vetor Contém as incorporações de vetores das fontes de dados.
metadados JSON Contém os metadados necessários para realizar a atribuição da fonte e permitir a ingestão e a consulta de dados.
custom_metadata JSONB (Opcional) Define a coluna de destino em que o Amazon Bedrock grava detalhes de metadados de suas fontes de dados.
Com esses detalhes, agora é possível criar uma Base de Conhecimento no console do Bedrock. Para ter informações mais detalhadas sobre a configuração de um índice vetorial e a criação de informações da Base de Conhecimento, consulte Create a vector store in Amazon Aurora e Create a vector store in Amazon Aurora.
Agora que você já adicionou o Aurora como Base de Conhecimento, é possível ingerir suas fontes de dados para pesquisar e consultar. Para ter mais informações, consulte Ingest your data sources into the Knowledge Base.