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 bersama Vertex AI, Anda dapat menerapkan daya semantik dan prediktif model machine learning (ML) ke data Anda. Integrasi ini memperluas sintaksis PostgreSQL dengan dua fungsi untuk membuat kueri model:
- Memanggil prediksi untuk memanggil model menggunakan SQL dalam transaksi.
- Membuat embeddings agar model embedding menerjemahkan perintah teks menjadi vektor numerik. Anda kemudian 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 secara real-time dan mendapatkan insight berharga langsung dari database, sehingga menyederhanakan alur kerja dan meningkatkan kemampuan pengambilan keputusan.
Untuk mengetahui informasi selengkapnya tentang Vertex AI, lihat Pengantar Vertex AI.
Sebelum memulai
- Login ke akun Google Cloud Anda. Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa produk kami dalam skenario dunia nyata. Pelanggan baru juga mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.
-
Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.
-
Pastikan penagihan telah diaktifkan untuk project Google Cloud Anda.
-
Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.
-
Pastikan penagihan telah diaktifkan untuk project Google Cloud Anda.
- Mengaktifkan Google Cloud API yang diperlukan.
Konsol
- Buka halaman API & Layanan.
- Dari daftar project, pilih project Anda.
- Jika Library API tidak terbuka, pilih Library dari menu navigasi.
Klik API yang ingin Anda aktifkan. Untuk prosedur ini, aktifkan Cloud SQL Admin API dan Vertex AI API.
- Setelah memilih setiap API, klik Enable.
gcloud
- Buka Cloud Shell, yang menyediakan akses command line ke resource Google Cloud 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
- Memberi akun layanan 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 update instance Cloud SQL sehingga 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 mengupdate 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 perlu dimulai 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 untuk panggilan ini, lihat instances:insert kami. Untuk mengetahui informasi tentang setelan instance, termasuk nilai yang valid untuk suatu 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 mesin (tier), sebagai:
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 untuk panggilan ini, lihat instances.patch kami.
Jika update ini mengubah nilai yang perlu dimulai 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 untuk panggilan ini, lihat instances:insert kami. Untuk mengetahui informasi tentang setelan instance, termasuk nilai yang valid untuk suatu 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 mesin (tier), sebagai:
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 untuk panggilan ini, lihat instances.patch kami.
Jika update ini mengubah nilai yang perlu dimulai 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 tempat Anda ingin menjalankan prediksi.- Hubungkan klien
psql
ke instance utama, sebagai 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 di tempat. |
Pesan error: Google ML Integration API is not supported on shared core instance. Please upsize your machine type. |
Jika memilih inti 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. |
Tanda database cloudsql.enable_google_ml_integration dinonaktifkan. Cloud SQL tidak dapat berintegrasi dengan Vertex AI.Untuk mengaktifkan tanda 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, baca 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. |