Menggunakan Aurora PostgreSQL sebagai Basis Pengetahuan untuk Amazon Bedrock - Amazon Aurora

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Menggunakan Aurora PostgreSQL sebagai Basis Pengetahuan untuk Amazon Bedrock

Anda dapat menggunakan cluster Aurora PostgreSQL DB sebagai Basis Pengetahuan untuk Amazon Bedrock. Untuk informasi selengkapnya, lihat Membuat penyimpanan vektor di Amazon Aurora. Basis Pengetahuan secara otomatis mengambil data teks tidak terstruktur yang disimpan dalam bucket Amazon S3, mengubahnya menjadi potongan teks dan vektor, dan menyimpannya dalam database PostgreSQL. Dengan aplikasi AI generatif, Anda dapat menggunakan Agen untuk Amazon Bedrock untuk menanyakan data yang disimpan di Pangkalan Pengetahuan dan menggunakan hasil kueri tersebut untuk menambah jawaban yang disediakan oleh model dasar. Alur kerja ini disebut Retrieval Augmented Generation (RAG). Untuk informasi lebih lanjut tentang RAG, lihat Retrieval Augmented Generation (RAG).

Untuk informasi rinci tentang penggunaan Aurora PostgreSQL untuk membangun aplikasi AI generatif menggunakan RAG, lihat posting blog ini.

Prasyarat

Biasakan diri Anda dengan prasyarat berikut untuk menggunakan klaster Aurora PostgreSQL sebagai Basis Pengetahuan untuk Amazon Bedrock. Pada tingkat tinggi, Anda perlu mengkonfigurasi layanan berikut untuk digunakan dengan Bedrock:

  • Amazon Aurora PostgreSQL DB cluster dibuat dalam salah satu versi berikut:

    • 16.1 dan semua versi yang lebih tinggi

    • 15.4 dan versi yang lebih tinggi

    • 14.9 dan versi yang lebih tinggi

    • 13.12 dan versi yang lebih tinggi

    • 12.16 dan versi yang lebih tinggi

    catatan

    Anda harus mengaktifkan pgvector ekstensi di database target Anda dan menggunakan versi 0.5.0 atau lebih tinggi. Untuk informasi lebih lanjut, lihat pgvector v0.5.0 dengan pengindeksan HNSW.

  • API Data RDS

  • Seorang pengguna dikelola di AWS Secrets Manager. Untuk informasi selengkapnya, lihat Manajemen kata sandi dengan dan AWS Secrets Manager.

Mempersiapkan Aurora PostgreSQL untuk digunakan sebagai Basis Pengetahuan untuk Amazon Bedrock

Ikuti langkah-langkah yang dijelaskan di bagian di bawah ini untuk mempersiapkan Aurora PostgreSQL untuk digunakan sebagai Basis Pengetahuan untuk Amazon Bedrock.

Membuat dan mengkonfigurasi Aurora PostgreSQL

Untuk mengonfigurasi Amazon Bedrock dengan cluster DB PostgreSQL Aurora, Anda harus terlebih dahulu membuat klaster DB PostgreSQL Aurora dan mencatat bidang penting untuk mengonfigurasinya dengan Amazon Bedrock. Untuk informasi selengkapnya tentang membuat klaster Aurora PostgreSQL DB, lihat. Membuat dan terhubung ke klaster DB Aurora PostgreSQL

  • Aktifkan API Data saat membuat cluster Aurora PostgreSQL DB. Untuk informasi selengkapnya tentang versi yang didukung, lihatMenggunakan Amazon RDS Data API.

  • Pastikan untuk mencatat Nama Sumber Daya Amazon (ARN) dari cluster Aurora PostgreSQL DB Anda. Anda akan memerlukannya untuk mengonfigurasi cluster DB untuk digunakan dengan Amazon Bedrock. Untuk informasi selengkapnya, lihat Nama Sumber Daya Amazon (ARNs).

Menghubungkan ke database dan menginstal pgvector

Anda dapat terhubung ke Aurora PostgreSQL menggunakan salah satu utilitas koneksi. Untuk informasi lebih rinci tentang utilitas ini, lihatMenghubungkan ke cluster DB Amazon Aurora Postgre SQL. Atau, Anda dapat menggunakan editor kueri konsol RDS untuk menjalankan kueri. Anda memerlukan cluster Aurora DB dengan API Data RDS diaktifkan untuk menggunakan editor kueri.

  1. Masuk ke database dengan pengguna master Anda dan atur pgvector. Gunakan perintah berikut jika ekstensi tidak diinstal:

    CREATE EXTENSION IF NOT EXISTS vector;

    Gunakan pgvector 0.5.0 dan versi yang lebih tinggi yang mendukung pengindeksan HNSW. Untuk informasi lebih lanjut, lihat pgvector v0.5.0 dengan pengindeksan HNSW.

  2. Gunakan perintah berikut untuk memeriksa versi yang pg_vector diinstal:

    SELECT extversion FROM pg_extension WHERE extname='vector';

Menyiapkan objek database dan hak istimewa

  1. Buat skema tertentu yang dapat digunakan Bedrock untuk menanyakan data. Gunakan perintah berikut untuk membuat skema:

    CREATE SCHEMA bedrock_integration;
  2. Buat peran baru yang dapat digunakan Bedrock untuk menanyakan database. Gunakan perintah berikut untuk membuat peran baru:

    CREATE ROLE bedrock_user WITH PASSWORD 'password' LOGIN;
    catatan

    Catat kata sandi ini karena Anda akan memerlukannya nanti untuk membuat kata sandi Secrets Manager.

    Jika Anda menggunakan psql klien, maka gunakan perintah berikut untuk membuat peran baru:

    CREATE ROLE bedrock_user LOGIN; \PASSWORD password;
  3. Berikan bedrock_user izin untuk mengelola bedrock_integration skema. Ini akan memberikan kemampuan untuk membuat tabel atau indeks dalam skema.

    GRANT ALL ON SCHEMA bedrock_integration to bedrock_user;
  4. Login sebagai bedrock_user dan membuat tabel dibedrock_integration schema.

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

    Perintah ini akan membuat bedrock_kb tabel dalam bedrock_integration skema dengan embeddings Titan.

    Ganti n dalam tipe vector(n) data dengan dimensi yang sesuai untuk model embedding yang Anda gunakan. Gunakan rekomendasi di bawah ini untuk membantu memilih dimensi Anda:

    • Untuk model Titan v2, gunakanvector(1024), atauvector(512), atauvector (256). Untuk mempelajari lebih lanjut, lihat Amazon Titan Embeddings Text.

    • Untuk model Titan v1.2, gunakan. vector(1536) Untuk mempelajari lebih lanjut, lihat Amazon Titan Multimodal Embeddings G1.

    • Untuk model Cohere Embed, gunakan. vector(1024) Untuk mempelajari lebih lanjut, lihat Cohere Embed models.

    • Untuk Cohere Embed Multilingual v3, gunakan. vector(1024)

    Empat kolom pertama adalah wajib. Untuk penanganan metadata, Bedrock menulis data dari file metadata Anda ke kolom. custom_metadata Sebaiknya buat kolom ini jika Anda berencana menggunakan metadata dan pemfilteran. Jika Anda tidak membuat custom_metadata kolom, tambahkan kolom individual untuk setiap atribut metadata dalam tabel Anda sebelum Anda mulai menelan. Untuk informasi selengkapnya, lihat Mengonfigurasi dan menyesuaikan kueri serta pembuatan respons.

  5. Ikuti langkah-langkah berikut untuk membuat indeks yang diperlukan yang digunakan Bedrock untuk menanyakan data Anda:

    • Buat indeks dengan operator kosinus yang dapat digunakan batuan dasar untuk menanyakan data.

      CREATE INDEX ON bedrock_integration.bedrock_kb USING hnsw (embedding vector_cosine_ops);
    • Kami menyarankan Anda untuk menetapkan nilai 256 ef_construction untuk pgvector 0.6.0 dan versi yang lebih tinggi yang menggunakan bangunan indeks paralel.

      CREATE INDEX ON bedrock_integration.bedrock_kb USING hnsw (embedding vector_cosine_ops) WITH (ef_construction=256);
    • Buat indeks yang dapat digunakan oleh Bedrock untuk dapat digunakan untuk menanyakan data teks.

      CREATE INDEX ON bedrock_integration.bedrock_kb USING gin (to_tsvector('simple', chunks));
    • Jika Anda membuat kolom untuk metadata kustom, buat indeks yang dapat digunakan oleh Bedrock untuk menanyakan metadata.

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

Buat rahasia di Secrets Manager

Secrets Manager memungkinkan Anda menyimpan kredensil Aurora Anda sehingga mereka dapat dikirim dengan aman ke aplikasi. Jika Anda tidak memilih opsi manajer AWS rahasia saat membuat cluster Aurora PostgreSQL DB, Anda dapat membuat rahasia sekarang. Untuk informasi selengkapnya tentang membuat rahasia AWS Secrets Manager database, lihat AWS Secrets Manager rahasia database.

Membuat Basis Pengetahuan di konsol Bedrock

Saat menyiapkan Aurora PostgreSQL untuk digunakan sebagai penyimpanan vektor untuk Pangkalan Pengetahuan, Anda harus mengumpulkan detail berikut yang perlu Anda berikan ke konsol Amazon Bedrock.

  • Amazon Aurora DB cluster ARN — ARN cluster DB Anda.

  • Rahasia ARN — ARN kunci Secrets Manager untuk AWS cluster DB Anda.

  • Nama Database — Nama database Anda. Misalnya, Anda dapat menggunakan database defaultpostgres.

  • Nama tabel - Kami menyarankan Anda untuk memberikan nama skema yang memenuhi syarat saat membuat tabel menggunakan perintah yang mirip dengan berikut ini:

    CREATE TABLE bedrock_integration.bedrock_kb;

    Perintah ini akan membuat bedrock_kb tabel dalam bedrock_integration skema.

  • Saat membuat tabel, pastikan untuk mengkonfigurasinya dengan kolom dan tipe data yang ditentukan. Anda dapat menggunakan nama kolom pilihan Anda alih-alih yang tercantum dalam tabel. Ingatlah untuk mencatat nama-nama yang Anda pilih untuk referensi selama pengaturan Pangkalan Pengetahuan.

    Nama kolom Jenis data Deskripsi
    id Kunci utama UUID

    Berisi pengidentifikasi unik untuk setiap catatan.

    potongan Teks

    Berisi potongan teks mentah dari sumber data Anda.

    menyematkan vektor

    Berisi embeddings vektor dari sumber data.

    Metadata JSON

    Berisi metadata yang diperlukan untuk melakukan atribusi sumber dan untuk mengaktifkan konsumsi dan kueri data.

    custom_metadata JSONB

    (Opsional) Mendefinisikan kolom target tempat Amazon Bedrock menulis detail metadata dari sumber data Anda.

Dengan detail ini, Anda sekarang dapat membuat Basis Pengetahuan di konsol Bedrock. Untuk informasi lebih rinci tentang menyiapkan indeks vektor dan membuat informasi Pangkalan Pengetahuan, lihat Membuat penyimpanan vektor di Amazon Aurora dan Membuat penyimpanan vektor di Amazon Aurora.

Setelah menambahkan Aurora sebagai Basis Pengetahuan Anda, Anda sekarang dapat menelan sumber data Anda untuk pencarian dan kueri. Untuk informasi selengkapnya, lihat Menyerap sumber data Anda ke dalam Pangkalan Pengetahuan.