Halaman ini menjelaskan cara mengintegrasikan Cloud SQL dengan Vertex AI. Integrasi ini memungkinkan Anda menerapkan model bahasa besar (LLM), yang dihosting di Vertex AI, ke database Cloud SQL untuk PostgreSQL, versi 12 dan yang lebih baru.
Dengan mengintegrasikan Cloud SQL dengan Vertex AI, Anda dapat menerapkan kemampuan semantik dan prediktif model machine learning (ML) ke data Anda. Integrasi ini memperluas sintaksis PostgreSQL dengan dua fungsi untuk membuat kueri model:
- Mengaktifkan prediksi untuk memanggil model menggunakan SQL dalam transaksi.
- Buat embedding agar model embedding menerjemahkan perintah teks menjadi vektor numerik. Selanjutnya, Anda dapat menerapkan embedding vektor ini sebagai input ke fungsi
pgvector
. Hal ini mencakup metode untuk membandingkan dan mengurutkan contoh teks sesuai dengan jarak semantik relatifnya.
Hasilnya, Anda dapat membuat prediksi real-time dan mendapatkan insight berharga langsung dalam database, sehingga menyederhanakan alur kerja dan meningkatkan kemampuan pengambilan keputusan.
Untuk mengetahui informasi selengkapnya tentang Vertex AI, lihat Pengantar Vertex AI.
Sebelum memulai
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
- Mengaktifkan Google Cloud API yang diperlukan.
Konsol
- Buka halaman API & Layanan.
- Dari daftar project, pilih project Anda.
- Jika API Library tidak terbuka, dari menu navigasi, pilih Library.
Klik API yang ingin Anda aktifkan. Untuk prosedur ini, aktifkan Cloud SQL Admin API dan Vertex AI API.
- Setelah memilih setiap API, klik Aktifkan.
gcloud
- Buka Cloud Shell, yang menyediakan akses command line ke resource Google Cloud Anda langsung dari browser.
- Untuk mengaktifkan API yang diperlukan, gunakan perintah
gcloud services enable
:gcloud services enable sqladmin.googleapis.com \ enable aiplatform.googleapis.com
Perintah ini mengaktifkan API berikut:
- Cloud SQL Admin API
- Vertex AI API
- Berikan izin Identity and Access Management (IAM) akun layanan Cloud SQL untuk mengakses Vertex AI.
gcloud
Untuk menambahkan izin Vertex AI ke akun layanan Cloud SQL untuk project tempat instance Cloud SQL berada, gunakan perintahgcloud projects add-iam-policy-binding
: Lakukan penggantian berikut:gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:SERVICE_ACCOUNT_EMAIL" \ --role="roles/aiplatform.user"
- PROJECT_ID: ID project yang memiliki endpoint Vertex AI. Cloud SQL menggunakan endpoint ini untuk mengakses LLM yang dihosting di Vertex AI.
SERVICE_ACCOUNT_EMAIL: alamat email akun layanan Cloud SQL.
Untuk menemukan alamat email ini, gunakan perintah
gcloud sql instances describe INSTANCE_NAME
dan ganti INSTANCE_NAME dengan nama instance Cloud SQL. Nilai yang muncul di samping parameterserviceAccountEmailAddress
adalah alamat email.
Mengaktifkan integrasi database dengan Vertex AI
Untuk mengaktifkan integrasi database dengan Vertex AI, selesaikan langkah-langkah berikut:
- Buat atau perbarui instance Cloud SQL agar instance dapat berintegrasi dengan Vertex AI.
gcloud
Buat instance
Untuk membuat instance Cloud SQL, gunakan perintah
gcloud sql instances create
.gcloud sql instances create INSTANCE_NAME \ --database-version=DATABASE_VERSION \ --tier=MACHINE_TYPE \ --region=REGION_NAME \ --enable-google-ml-integration \ --database-flags cloudsql.enable_google_ml_integration=on
Lakukan penggantian berikut:
- INSTANCE_NAME: nama instance
- DATABASE_VERSION: versi database untuk instance (misalnya,
POSTGRES_13
) - MACHINE_TYPE: jenis mesin untuk instance
- REGION_NAME: nama region untuk instance
Mengupdate instance
Untuk memperbarui instance, gunakan perintah
gcloud sql instances patch
.gcloud sql instances patch INSTANCE_NAME \ --enable-google-ml-integration \ --database-flags cloudsql.enable_google_ml_integration=on
Jika update ini mengubah nilai yang memerlukan proses mulai ulang, Anda akan melihat perintah untuk melanjutkan perubahan atau membatalkan.
REST v1
Buat instance
Gunakan contoh ini untuk membuat instance. Untuk mengetahui daftar lengkap parameter panggilan ini, lihat halaman instances:insert. Untuk mengetahui informasi tentang setelan instance, termasuk nilai yang valid untuk region, lihat Setelan instance.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: ID atau nomor project project Google Cloud yang berisi instance
- INSTANCE_NAME: nama instance
- REGION_NAME: nama region untuk instance
- DATABASE_VERSION: string enum versi database (misalnya:
POSTGRES_13
) - PASSWORD: sandi untuk pengguna
root
- MACHINE_TYPE: string enum jenis (tingkat) mesin, seperti:
db-custom-[CPUS]-[MEMORY_MBS]
- EDITION_TYPE: edisi Cloud SQL Anda
Anda juga harus menyertakan objek enableGoogleMlIntegration dalam permintaan. Tetapkan parameter berikut, jika diperlukan:
enableGoogleMlIntegration
: jika parameter ini ditetapkan ketrue
, instance Cloud SQL dapat terhubung ke Vertex AI untuk meneruskan permintaan prediksi real-time dan insight ke AIcloudsql.enable_google_ml_integration
: jika parameter ini ditetapkan keon
, Cloud SQL dapat berintegrasi dengan Vertex AI
Metode HTTP dan URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances
Meminta isi JSON:
{ "name": "INSTANCE_NAME", "region": "REGION_NAME", "databaseVersion": "DATABASE_VERSION", "rootPassword": "PASSWORD", "settings": { "tier": "MACHINE_TYPE", "edition": "EDITION_TYPE", "enableGoogleMlIntegration": "true" | "false" "databaseFlags": { "name": "cloudsql.enable_google_ml_integration", "value": "on" | "off" } } }
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan melihat respons JSON seperti berikut:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID", "status": "PENDING", "user": "user@example.com", "insertTime": "2019-09-25T22:19:33.735Z", "operationType": "CREATE", "name": "OPERATION_ID", "targetId": "INSTANCE_ID", "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID", "targetProject": "PROJECT_ID" }
Mengupdate instance
Gunakan contoh ini untuk mengupdate instance. Untuk mengetahui daftar lengkap parameter panggilan ini, lihat halaman instances.patch.
Jika update ini mengubah nilai yang memerlukan proses mulai ulang, Anda akan melihat perintah untuk melanjutkan perubahan atau membatalkan.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: ID atau nomor project project Google Cloud yang berisi instance
- INSTANCE_NAME: nama instance
Metode HTTP dan URL:
PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME
Meminta isi JSON:
{ "settings": { "enableGoogleMlIntegration": true, "databaseFlags": { "name": "cloudsql.enable_google_ml_integration", "value": "on" } } }
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan melihat respons JSON seperti berikut:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-16T02:32:12.281Z", "operationType": "UPDATE", "name": "OPERATION_ID", "targetId": "INSTANCE_NAME", "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID", "targetProject": "PROJECT_ID" }
REST v1beta4
Buat instance
Gunakan contoh ini untuk membuat instance. Untuk mengetahui daftar lengkap parameter panggilan ini, lihat halaman instances:insert. Untuk mengetahui informasi tentang setelan instance, termasuk nilai yang valid untuk region, lihat Setelan instance.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: ID atau nomor project project Google Cloud yang berisi instance
- INSTANCE_NAME: nama instance
- REGION_NAME: nama region untuk instance
- DATABASE_VERSION: string enum versi database (misalnya:
POSTGRES_13
) - PASSWORD: sandi untuk pengguna
root
- MACHINE_TYPE: string enum jenis (tingkat) mesin, seperti:
db-custom-[CPUS]-[MEMORY_MBS]
- EDITION_TYPE: edisi Cloud SQL Anda
Anda juga harus menyertakan objek enableGoogleMlIntegration dalam permintaan. Tetapkan parameter berikut, jika diperlukan:
enableGoogleMlIntegration
: jika parameter ini ditetapkan ketrue
, instance Cloud SQL dapat terhubung ke Vertex AI untuk meneruskan permintaan prediksi real-time dan insight ke AIcloudsql.enable_google_ml_integration
: jika parameter ini ditetapkan keon
, Cloud SQL dapat berintegrasi dengan Vertex AI
Metode HTTP dan URL:
POST https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances
Meminta isi JSON:
{ "name": "INSTANCE_NAME", "region": "REGION_NAME", "databaseVersion": "DATABASE_VERSION", "rootPassword": "PASSWORD", "settings": { "tier": "MACHINE_TYPE", "edition": "EDITION_TYPE", "enableGoogleMlIntegration": "true" | "false" "databaseFlags": { "name": "cloudsql.enable_google_ml_integration", "value": "on" | "off" } } }
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan melihat respons JSON seperti berikut:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID", "status": "PENDING", "user": "user@example.com", "insertTime": "2019-09-25T22:19:33.735Z", "operationType": "CREATE", "name": "OPERATION_ID", "targetId": "INSTANCE_ID", "selfLink": "https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID", "targetProject": "PROJECT_ID" }
Mengupdate instance
Gunakan contoh ini untuk mengupdate instance. Untuk mengetahui daftar lengkap parameter panggilan ini, lihat halaman instances.patch.
Jika update ini mengubah nilai yang memerlukan proses mulai ulang, Anda akan melihat perintah untuk melanjutkan perubahan atau membatalkan.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: ID atau nomor project project Google Cloud yang berisi instance
- INSTANCE_NAME: nama instance
Metode HTTP dan URL:
PATCH https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances/INSTANCE_NAME
Meminta isi JSON:
{ "settings": { "enableGoogleMlIntegration": true, "databaseFlags": { "name": "cloudsql.enable_google_ml_integration", "value": "on" } } }
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan melihat respons JSON seperti berikut:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances/INSTANCE_NAME", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-16T02:32:12.281Z", "operationType": "UPDATE", "name": "OPERATION_ID", "targetId": "INSTANCE_NAME", "selfLink": "https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID", "targetProject": "PROJECT_ID" }
- Instal ekstensi
google_ml_integration
di database instance Cloud SQL utama. Database ini berisi data yang ingin Anda gunakan untuk menjalankan prediksi.- Hubungkan klien
psql
ke instance utama, seperti yang dijelaskan dalam Menghubungkan menggunakan klien psql. - Di command prompt
psql
, hubungkan ke database:\c DB_NAME
Ganti
DB_NAME
dengan nama database tempat Anda ingin menginstal ekstensi. - Instal ekstensi:
CREATE EXTENSION IF NOT EXISTS google_ml_integration CASCADE;
- Hubungkan klien
Memecahkan masalah
Bagian ini berisi informasi tentang masalah yang terkait dengan integrasi Cloud SQL dengan Vertex AI beserta langkah-langkah untuk memecahkan masalah tersebut.
Masalah | Pemecahan masalah |
---|---|
Pesan error: Google ML integration API is supported only on Postgres version 12 or above. |
Untuk mengaktifkan integrasi Vertex AI di Cloud SQL, Anda harus memiliki database Cloud SQL untuk PostgreSQL, versi 12 atau yang lebih baru. Untuk mengupgrade database ke versi ini, lihat Mengupgrade versi utama database yang diterapkan. |
Pesan error: Google ML Integration API is not supported on shared core instance. Please upsize your machine type. |
Jika memilih core bersama untuk jenis mesin instance, Anda tidak dapat mengaktifkan integrasi Vertex AI di Cloud SQL. Upgrade jenis mesin Anda ke core khusus. Untuk mengetahui informasi selengkapnya, lihat Jenis Mesin. |
Pesan error: Google ML Integration is unsupported for this maintenance version. Please follow https://cloud.google.com/sql/docs/postgres/self-service-maintenance to update the maintenance version of the instance. |
Untuk mengaktifkan integrasi Vertex AI di Cloud SQL, versi pemeliharaan instance Anda harus R20240130 atau yang lebih baru. Untuk mengupgrade instance ke versi ini, lihat Pemeliharaan mandiri. |
Pesan error: Cannot invoke ml_predict_row if 'cloudsql.enable_google_ml_integration' is off. |
Flag database cloudsql.enable_google_ml_integration dinonaktifkan. Cloud SQL tidak dapat berintegrasi dengan Vertex AI.Untuk mengaktifkan flag ini, gunakan perintah gcloud sql instances patch :gcloud sql instances patch INSTANCE_NAME --database-flags cloudsql.enable_google_ml_integration=on Ganti INSTANCE_NAME dengan nama instance Cloud SQL utama. |
Pesan error: Failed to connect to remote host: Connection refused. |
Integrasi antara Cloud SQL dan Vertex AI tidak diaktifkan. Untuk mengaktifkan integrasi ini, gunakan perintah gcloud sql instances patch :gcloud sql instances patch INSTANCE_NAME Ganti INSTANCE_NAME dengan nama instance Cloud SQL utama. |
Pesan error: Vertex AI API has not been used in project PROJECT_ID before or it is disabled. Enable it by visiting /apis/api/aiplatform.googleapis.com/overview?project=PROJECT_ID then retry. |
Vertex AI API tidak diaktifkan. Untuk mengetahui informasi selengkapnya tentang cara mengaktifkan API ini, lihat Mengaktifkan integrasi database dengan Vertex AI. |
Pesan error: Permission 'aiplatform.endpoints.predict' denied on resource. |
Izin Vertex AI tidak ditambahkan ke akun layanan Cloud SQL untuk project tempat instance Cloud SQL berada. Untuk mengetahui informasi selengkapnya tentang cara menambahkan izin ini ke akun layanan, lihat Mengaktifkan integrasi database dengan Vertex AI. |
Pesan error: Publisher Model `projects/PROJECT_ID/locations/REGION_NAME/publishers/google/models/MODEL_NAME` not found. |
Model machine learning atau LLM tidak ada di Vertex AI. |
Pesan error: Resource exhausted: grpc: received message larger than max. |
Ukuran permintaan yang diteruskan Cloud SQL ke Vertex AI melebihi batas gRPC sebesar 4 MB per permintaan. |
Pesan error: Cloud SQL attempts to send a request to Vertex AI. However, the instance is in the %s region, but the Vertex AI endpoint is in the %s region. Make sure the instance and endpoint are in the same region. |
Cloud SQL mencoba mengirim permintaan ke Vertex AI. Namun, instance berada di satu region, tetapi endpoint Vertex AI berada di region yang berbeda. Untuk mengatasi masalah ini, instance dan endpoint harus berada di region yang sama. |
Pesan error: The Vertex AI endpoint isn't formatted properly. |
Endpoint Vertex AI tidak diformat dengan benar. Untuk mengetahui informasi selengkapnya, lihat Menggunakan endpoint pribadi untuk prediksi online. |
Pesan error: Quota exceeded for aiplatform.googleapis.com/online_prediction_requests_per_base_model with base model: textembedding-gecko. |
Jumlah permintaan yang diteruskan Cloud SQL ke Vertex AI melebihi batas 1.500 permintaan per menit per region per model per project. |