Aurora PostgreSQL을 Amazon Bedrock의 지식 기반으로 사용 - Amazon Aurora

Aurora PostgreSQL을 Amazon Bedrock의 지식 기반으로 사용

Aurora PostgreSQL DB 클러스터를 Amazon Bedrock의 지식 기반으로 사용할 수 있습니다. 자세한 내용은 Amazon Aurora에서 벡터 저장소 생성을 참조하세요. 지식 기반은 Amazon S3 버킷에 저장된 비정형 텍스트 데이터를 자동으로 가져와 텍스트 청크 및 벡터로 변환하고 PostgreSQL 데이터베이스에 저장합니다. 생성형 AI 애플리케이션을 사용하면 Amazon Bedrock용 에이전트를 사용하여 지식 기반에 저장된 데이터를 쿼리하고 이러한 쿼리의 결과를 사용하여 기본 모델에서 제공하는 답변을 보강할 수 있습니다. 이 워크플로를 검색 증강 생성(RAG)이라고 합니다. RAG에 대한 자세한 내용은 검색 증강 생성(RAG)을 참조하세요.

Aurora PostgreSQL을 사용하여 RAG를 통한 생성형 AI 애플리케이션을 구축하는 방법에 대한 자세한 내용은 이 블로그 게시물을 참조하세요.

사전 조건

Aurora PostgreSQL 클러스터를 Amazon Bedrock용 지식 기반으로 사용하려면 다음 사전 조건을 숙지하세요. 개괄적인 수준에서 Bedrock과 함께 사용할 수 있도록 다음 서비스를 구성해야 합니다.

  • Amazon Aurora PostgreSQL DB 클러스터는 다음 버전 중 하나로 생성됩니다.

    • 16.1 이상의 모든 버전

    • 15.4 이상 버전

    • 14.9 이상 버전

    • 13.12 이상 버전

    • 12.16 이상 버전

    참고

    대상 데이터베이스에서 pgvector 확장을 활성화하고 버전 0.5.0 이상을 사용해야 합니다. 자세한 내용은 HNSW 인덱싱이 포함된 pgvector v0.5.0을 참조하세요.

  • RDS Data API

  • AWS Secrets Manager에서 사용자가 관리합니다. 자세한 내용은 Amazon Aurora 및 AWS Secrets Manager를 통한 암호 관리 단원을 참조하십시오.

Aurora PostgreSQL을 Amazon Bedrock의 지식 기반으로 사용하도록 준비

아래 섹션에 설명된 단계에 따라 Amazon Bedrock의 지식 기반으로 사용할 Aurora PostgreSQL을 준비하세요.

Aurora PostgreSQL 생성 및 구성

Aurora PostgreSQL DB 클러스터를 사용하여 Amazon Bedrock을 구성하려면 먼저 Aurora PostgreSQL DB 클러스터를 생성하고 Amazon Bedrock으로 구성하는 데 필요한 중요 필드를 기록해 두어야 합니다. Aurora PostgreSQL DB 클러스터 생성에 대한 자세한 정보는 Aurora PostgreSQL DB 클러스터 생성 및 연결 섹션을 참조하세요.

  • Aurora PostgreSQL DB 클러스터를 생성하는 동안 Data API를 활성화합니다. 지원되는 버전에 대한 자세한 내용은 RDS 데이터 API 사용 섹션을 참조하세요.

  • Aurora PostgreSQL DB 클러스터의 Amazon 리소스 이름(ARN)을 기록해 둡니다. Amazon Bedrock과 함께 사용할 DB 클러스터를 구성하는 데 필요합니다. 자세한 내용은 Amazon 리소스 이름(ARN)을 참조하세요.

데이터베이스에 연결 및 pgvector 설치

모든 연결 유틸리티를 사용하여 Aurora PostgreSQL에 연결할 수 있습니다. 이러한 유틸리티에 대한 자세한 내용은 Amazon Aurora PostgreSQL DB 클러스터에 연결 섹션을 참조하세요. 또는 RDS 콘솔 쿼리 편집기를 사용하여 쿼리를 실행할 수 있습니다. 쿼리 편집기를 사용하려면 RDS Data API가 활성화된 Aurora DB 클러스터가 필요합니다.

  1. 마스터 사용자로 데이터베이스에 로그인하고 pgvector를 설정합니다. 확장이 설치되지 않은 경우 다음 명령을 사용하세요.

    CREATE EXTENSION IF NOT EXISTS vector;

    HNSW 인덱싱을 지원하는 pgvector 0.5.0 이상 버전을 사용하세요. 자세한 내용은 HNSW 인덱싱이 포함된 pgvector v0.5.0을 참조하세요.

  2. 다음 명령을 사용하여 현재 설치된 pg_vector 버전을 확인합니다.

    SELECT extversion FROM pg_extension WHERE extname='vector';

데이터베이스 객체 및 권한 설정

  1. Bedrock이 데이터를 쿼리하는 데 사용할 수 있는 특정 스키마를 만듭니다. 다음 명령을 실행해 스키마를 생성합니다.

    CREATE SCHEMA bedrock_integration;
  2. Bedrock이 데이터를 쿼리하는 데 사용할 수 있는 새 역할을 생성합니다. 다음 명령을 실행해 새 역할을 생성합니다.

    CREATE ROLE bedrock_user WITH PASSWORD 'password' LOGIN;
    참고

    추후 Secrets Manager 암호를 생성할 때 필요하므로, 이 암호를 기록해 두세요.

    psql 클라이언트를 사용하는 경우 다음 명령을 사용하여 새 역할을 생성합니다.

    CREATE ROLE bedrock_user LOGIN; \PASSWORD password;
  3. bedrock_integration 스키마를 관리할 bedrock_user 권한을 부여하세요. 이렇게 하면 스키마 내에 표나 인덱스를 생성할 수 있습니다.

    GRANT ALL ON SCHEMA bedrock_integration to bedrock_user;
  4. bedrock_user로 로그인하고 에서 bedrock_integration schema에 테이블을 생성합니다.

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

    이 명령은 Titan V2 임베딩을 사용하여 bedrock_integration 스키마에 bedrock_kb 표를 생성합니다.

  5. Bedrock이 데이터를 쿼리하는 데 사용할 수 있는 코사인 연산자를 사용하여 인덱스를 생성하는 것이 좋습니다.

    CREATE INDEX ON bedrock_integration.bedrock_kb USING hnsw (embedding vector_cosine_ops);
  6. 병렬 인덱스 구축을 사용하는 pgvector 0.6.0 이상 버전의 경우 ef_construction 값을 256으로 설정하는 것이 좋습니다.

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

Secrets Manager에서 보안 암호 생성

Secrets Manager를 사용하면 Aurora 자격 증명을 저장하여 애플리케이션으로 안전하게 전송할 수 있습니다. Aurora PostgreSQL DB 클러스터를 생성할 때 AWS Secrets Manager 옵션을 선택하지 않았다면, 지금 암호를 생성할 수 있습니다. AWS Secrets Manager 데이터베이스 암호 생성에 대한 자세한 내용은 AWS Secrets Manager 데이터베이스 암호를 참조하세요.

Bedrock 콘솔에서 지식 기반 생성

지식 기반의 벡터 저장소로 사용할 Aurora PostgreSQL을 준비하는 동안 Amazon Bedrock 콘솔에 제공해야 하는 다음과 같은 세부 정보를 수집해야 합니다.

  • Amazon Aurora DB 클러스터 ARN – DB 클러스터의 ARN입니다.

  • 암호 ARN - DB 클러스터용 AWS Secrets Manager 키의 ARN입니다.

  • 데이터베이스 이름 - 데이터베이스의 이름입니다. 예를 들어, 기본 데이터베이스 postgres를 사용할 수 있습니다.

  • 표 이름 – 다음과 유사한 명령을 사용하여 표를 생성할 때 스키마에 적합한 이름을 제공하는 것이 좋습니다.

    CREATE TABLE bedrock_integration.bedrock_kb;

    이 명령은 bedrock_integration 스키마에 bedrock_kb 표를 만듭니다.

  • 표를 생성할 때는 지정된 열과 데이터 유형으로 구성해야 합니다. 표에 나열된 이름 대신 원하는 열 이름을 사용할 수 있습니다. 지식 기반을 설정하는 동안 참조용으로 선택한 이름을 기록해 두세요.

    열 명칭 데이터 유형 설명
    id UUID 프라이머리 키

    각 레코드의 고유 식별자를 포함합니다.

    청크 텍스트

    데이터 소스의 원시 텍스트 청크를 포함합니다.

    임베딩 벡터

    데이터 소스의 벡터 임베딩을 포함합니다.

    metadata JSON

    소스 속성을 가져오고 데이터 모으기 및 쿼리를 지원하는 데 필요한 메타데이터를 포함합니다.

이러한 세부 정보를 사용하여 이제 Bedrock 콘솔에서 지식 기반을 생성할 수 있습니다. 벡터 인덱스 설정 및 지식 기반 정보 생성에 대한 자세한 내용은 Amazon Aurora에 벡터 스토어 생성Amazon Aurora에 벡터 스토어 생성을 참조하세요.

Aurora를 지식 기반으로 추가한 후에는 이제 검색 및 쿼리를 위해 데이터 소스를 수집할 수 있습니다. 자세한 내용은 지식 기반에 데이터 소스 통합을 참조하세요.