Menginstal AlloyDB AI di AlloyDB Omni

Pilih versi dokumentasi:

Halaman ini menunjukkan cara menginstal AlloyDB Omni dan mengintegrasikan AlloyDB AI.

AlloyDB AI adalah serangkaian fitur yang disertakan dengan AlloyDB Omni yang memungkinkan Anda membangun aplikasi AI generatif perusahaan. Untuk mengetahui informasi selengkapnya tentang fungsi AI/ML AlloyDB, lihat Membangun aplikasi AI generatif.

AlloyDB Omni dengan AlloyDB AI memungkinkan Anda membuat kueri model ML jarak jauh untuk bekerja dengan prediksi online dan penyematan teks yang dihasilkan dari model ML. AlloyDB Omni dengan AlloyDB AI juga dapat memproses penyematan vektor dari konten lain seperti gambar, misalnya, jika Anda menggunakan antarmuka google_ml.predict_row dan melakukan terjemahan sendiri dalam kueri.

Mengonfigurasi instance AlloyDB Omni untuk membuat kueri model jarak jauh

AlloyDB Omni dapat membuat kueri model ML jarak jauh menggunakan ekstensi google_ml_integration.

Jika ingin membuat kueri model Vertex AI, Anda harus mengonfigurasi akun layanan AlloyDB Omni dengan Vertex AI sebelum menginstal AlloyDB Omni.

Untuk mengonfigurasi AlloyDB Omni agar dapat membuat kueri model jarak jauh, ikuti langkah-langkah berikut:

  1. Buat akun layanan dengan Google Cloud.

  2. Buat kunci akun layanan dalam format JSON, lalu download. Catat kunci akun layanan karena Anda akan menggunakannya nanti dalam prosedur ini.

  3. Salin kunci akun layanan yang Anda buat ke KEY_PATH. Jalur kunci harus berupa jalur di host Anda yang dapat diakses dan dimiliki oleh pengguna yang akan menjalankan penampung AlloyDB Omni Anda.

  4. Aktifkan Vertex AI API di Google Cloud project Anda.

    gcloud services enable aiplatform.googleapis.com
    
  5. Tambahkan izin Identity and Access Management (IAM) Vertex AI ke project dan akun layanan yang sesuai.

    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member="serviceAccount:SERVICE_ACCOUNT_ID" \
        --role="roles/aiplatform.user"
    

    Ganti kode berikut:

    • PROJECT_ID: ID Google Cloud project Anda.

    • SERVICE_ACCOUNT_ID: ID akun layanan yang Anda buat di langkah pertama. Hal ini mencakup sufiks @PROJECT_ID. lengkap. Contohnya, my-service@my-project..

Mengonfigurasi AlloyDB AI untuk AlloyDB Omni

Untuk menginstal AlloyDB Omni dan mengintegrasikan AlloyDB AI, selesaikan langkah-langkah berikut sebagai pengguna root:

  1. Selesaikan semua langkah yang tercantum di Mengonfigurasi AlloyDB Omni untuk membuat kueri model berbasis cloud.

  2. Jika ada container yang sudah ada dengan nama yang sama, hentikan dan hapus container tersebut.

    Docker

    docker stop CONTAINER_NAME
    docker rm CONTAINER_NAME

    Docker

    docker stop CONTAINER_NAME
    docker rm CONTAINER_NAME

    Podman

    podman stop CONTAINER_NAME
    podman rm CONTAINER_NAME

    Podman

    podman stop CONTAINER_NAME
    podman rm CONTAINER_NAME

    Ganti kode berikut:

    • CONTAINER_NAME: Nama untuk menetapkan container AlloyDB Omni di registry container mesin host Anda. Contoh, my-omni-1.
  3. Mulai container AlloyDB Omni baru yang memasang kunci ke dalam container.

    Docker

    docker run -d --name CONTAINER_NAME \
    -e POSTGRES_PASSWORD=NEW_PASSWORD \
    -v DATA_DIR:/var/lib/postgresql/data \
    -v "KEY_PATH":/etc/postgresql/private-key.json \
    -p HOST_PORT:5432 \
    --restart=always \
    google/alloydbomni:latest
    

    Docker

    docker run -d --name CONTAINER_NAME \
    -e POSTGRES_PASSWORD=NEW_PASSWORD \
    -v DATA_DIR:/var/lib/postgresql/data \
    -v "KEY_PATH":/etc/postgresql/private-key.json \
    -p HOST_PORT:5432 \
    --restart=always \
    google/alloydbomni:latest
    

    Podman

    podman run -d --name CONTAINER_NAME \
    -e POSTGRES_PASSWORD=NEW_PASSWORD \
    -v DATA_DIR:/var/lib/postgresql/data \
    -v "KEY_PATH":/etc/postgresql/private-key.json \
    -p HOST_PORT:5432 \
    --restart=always \
    docker.io/google/alloydbomni:latest
    

    Podman

    podman run -d --name CONTAINER_NAME \
    -e POSTGRES_PASSWORD=NEW_PASSWORD \
    -v DATA_DIR:/var/lib/postgresql/data \
    -v "KEY_PATH":/etc/postgresql/private-key.json \
    -p HOST_PORT:5432 \
    --restart=always \
    docker.io/google/alloydbomni:latest
    

    Ganti variabel berikut:

    • CONTAINER_NAME: Nama untuk menetapkan container AlloyDB Omni di registry container mesin host Anda. Contoh, my-omni-1.
    • NEW_PASSWORD: Sandi yang ditetapkan untuk pengguna postgres penampung baru setelah pembuatannya. Perhatikan bahwa NEW_PASSWORD hanya akan menyetel sandi baru jika DATA_DIR adalah lokasi baru.
    • DATA_DIR: Jalur direktori host tempat data Anda disimpan.
    • KEY_PATH: Jalur untuk file kunci akun layanan Anda.
    • HOST_PORT: Port TCP di mesin host yang harus digunakan container untuk memublikasikan portnya sendiri 5432. Untuk menggunakan port default PostgreSQL di mesin host juga, tentukan 5432.
  4. Buat file kunci dapat dibaca oleh pengguna postgres di dalam penampung AlloyDB Omni.

    Docker

    docker exec CONTAINER_NAME chown postgres /etc/postgresql/private-key.json
    docker exec CONTAINER_NAME chmod 600 /etc/postgresql/private-key.json

    Docker

    docker exec CONTAINER_NAME chown postgres /etc/postgresql/private-key.json
    docker exec CONTAINER_NAME chmod 600 /etc/postgresql/private-key.json

    Podman

    podman exec CONTAINER_NAME chown postgres /etc/postgresql/private-key.json
    podman exec CONTAINER_NAME chmod 600 /etc/postgresql/private-key.json

    Podman

    podman exec CONTAINER_NAME chown postgres /etc/postgresql/private-key.json
    podman exec CONTAINER_NAME chmod 600 /etc/postgresql/private-key.json

    Ganti variabel berikut:

    • CONTAINER_NAME: Nama untuk menetapkan container AlloyDB Omni di registry container mesin host Anda. Contoh, my-omni-1.
    • KEY_PATH: Jalur host untuk file kunci akun layanan Anda.
  5. Perbarui AlloyDB Omni dengan menambahkan opsi konfigurasi berikut.

    Docker

    docker exec CONTAINER_NAME sh -c "cat << EOF >> /var/lib/postgresql/data/postgresql.conf
    omni_enable_ml_agent_process = 'on'
    omni_google_cloud_private_key_file_path = '/etc/postgresql/private-key.json'
    EOF"
    

    Docker

    docker exec CONTAINER_NAME sh -c "cat << EOF >> /var/lib/postgresql/data/postgresql.conf
    omni_enable_ml_agent_process = 'on'
    omni_google_cloud_private_key_file_path = '/etc/postgresql/private-key.json'
    EOF"
    

    Podman

    podman exec CONTAINER_NAME sh -c "cat << EOF >> /var/lib/postgresql/data/postgresql.conf
    omni_enable_ml_agent_process = 'on'
    omni_google_cloud_private_key_file_path = '/etc/postgresql/private-key.json'
    EOF"
    

    Podman

    podman exec CONTAINER_NAME sh -c "cat << EOF >> /var/lib/postgresql/data/postgresql.conf
    omni_enable_ml_agent_process = 'on'
    omni_google_cloud_private_key_file_path = '/etc/postgresql/private-key.json'
    EOF"
    

    Ganti variabel berikut:

    • CONTAINER_NAME: Nama untuk menetapkan container AlloyDB Omni di registry container mesin host Anda. Contoh, my-omni-1.
  6. Mulai ulang container AlloyDB Omni.

    Docker

    docker restart CONTAINER_NAME
    

    Docker

    docker restart CONTAINER_NAME
    

    Podman

    podman restart CONTAINER_NAME
    

    Podman

    podman restart CONTAINER_NAME
    

    Ganti variabel berikut:

    • CONTAINER_NAME: Nama untuk menetapkan container AlloyDB Omni di registry container mesin host Anda. Contoh, my-omni-1.

Menghubungkan menggunakan psql yang di-container

Untuk terhubung ke server database AlloyDB Omni menggunakan salinan psql yang di-container-kan, jalankan perintah berikut:

Docker

docker exec -it CONTAINER_NAME psql -U postgres

Docker

docker exec -it CONTAINER_NAME psql -U postgres

Podman

podman exec -it CONTAINER_NAME psql -U postgres

Podman

podman exec -it CONTAINER_NAME psql -U postgres

Ganti variabel berikut:

  • CONTAINER_NAME: Nama untuk menetapkan container AlloyDB Omni di registry container mesin host Anda. Contoh, my-omni-1.

Memverifikasi penginstalan AlloyDB Omni dengan AlloyDB AI

Untuk memverifikasi bahwa penginstalan Anda berhasil dan menggunakan prediksi model, masukkan perintah berikut:

CREATE EXTENSION IF NOT EXISTS google_ml_integration CASCADE;

SELECT array_dims(embedding('text-embedding-005', 'AlloyDB AI')::real[]);

Outputnya terlihat mirip dengan yang berikut ini:

array_dims
------------
[1:768]
(1 row) 

Dalam kueri sebelumnya, panggilan embedding() menghasilkan embedding untuk teks input AlloyDB AI. array_dims menampilkan dimensi array yang ditampilkan oleh embedding(). Karena model text-embedding-005 menampilkan output dengan 768 dimensi, outputnya adalah [768].

Langkah berikutnya