Halaman ini menunjukkan cara memanggil prediksi online dari instance Cloud SQL.
Cloud SQL memungkinkan Anda mendapatkan prediksi online dalam kode SQL dengan memanggil fungsi ml_predict_row(). Untuk mengetahui informasi selengkapnya, lihat Membangun aplikasi AI generatif
menggunakan Cloud SQL.
Sebelum memulai
Sebelum dapat memanggil prediksi online dari instance Cloud SQL, Anda harus menyiapkan database dan memilih model ML yang sesuai.
Menyiapkan database
Untuk menyiapkan database, siapkan integrasi antara Cloud SQL dan Vertex AI.
Berikan izin kepada pengguna database untuk menggunakan fungsi
ml_predict_row()guna menjalankan prediksi:Hubungkan klien
psqlke instance utama, seperti yang dijelaskan dalam Menghubungkan menggunakan klien psql.Di perintah
psql, hubungkan ke database dan berikan izin:\c DB_NAME GRANT EXECUTE ON FUNCTION ml_predict_row TO USER_NAME;Ganti kode berikut:
DB_NAME: nama database yang izinnya Anda berikan
USER_NAME: nama pengguna yang izinnya Anda berikan
Memilih model ML
Saat memanggil fungsi ml_predict_row()
,
Anda harus menentukan lokasi model ML. Model yang Anda tentukan dapat berupa salah satu hal berikut:
Model yang berjalan di Vertex AI Model Garden.
Fungsi
ml_predict_row()hanya mendukung pemanggilan prediksi pada model tabel atau kustom.Model Vertex AI dengan endpoint aktif yang memiliki izin Identity and Access Management (IAM) untuk diakses.
Cloud SQL tidak mendukung endpoint pribadi untuk mendapatkan prediksi online.
Memanggil prediksi online
Anda dapat menggunakan fungsi SQL ml_predict_row()
untuk memanggil prediksi online terhadap data Anda.
Format argumen awal fungsi bergantung pada apakah model ML yang ingin Anda gunakan berada di Vertex AI Model Garden atau merupakan endpoint yang berjalan di Google Cloud project.
Menggunakan model di Vertex AI Model Garden
Untuk memanggil prediksi online menggunakan model ML yang berjalan di
Vertex AI Model Garden, gunakan sintaksis berikut untuk fungsi SQL
ml_predict_row():
sql
SELECT ML_PREDICT_ROW('publishers/google/models/MODEL_ID', '{ "instances": [ INSTANCES ], "parameters":
PARAMETERS }');
Lakukan penggantian berikut:
MODEL_ID: ID model ML yang akan digunakan (misalnya,
gemini-2.0)INSTANCES: input ke panggilan prediksi, dalam format JSON
PARAMETERS: parameter ke panggilan prediksi, dalam format JSON
SELECT ML_PREDICT_ROW('publishers/google/models/MODEL_ID', '{ "instances": [ INSTANCES ], "parameters":
PARAMETERS }');
Menggunakan endpoint model Vertex AI
Untuk memanggil prediksi online menggunakan endpoint model Vertex AI, gunakan sintaksis berikut untuk fungsi SQL ml_predict_row():
sql
SELECT ML_PREDICT_ROW('endpoints/ENDPOINT_ID', '{ "instances": [ INSTANCES ], "parameters":
PARAMETERS }');
Lakukan penggantian berikut:
ENDPOINT_ID: ID endpoint model
INSTANCES: input ke panggilan prediksi, dalam format JSON
PARAMETERS: parameter ke panggilan prediksi, dalam format JSON
Untuk mengetahui informasi tentang pesan respons JSON model, lihat PredictResponse.
Pemanggilan contoh
Contoh berikut menggunakan
Gemini 2.5 Flash, yang tersedia
di Model Garden, untuk membuat teks berdasarkan perintah singkat yang
diberikan sebagai argumen literal ke ml_predict_row()
:
SELECT
json_array_elements(ml_predict_row('projects/PROJECT_ID/locations/us-central1/publishers/google/models/gemini-2.5-flash:streamGenerateContent',
'{ "contents": [ { "role": "user", "parts": [ { "text": "CloudSQL" } ] } ] }'))-> 'candidates' -> 0 -> 'content' -> 'parts' -> 0 -> 'text';
Responsnya adalah objek JSON. Untuk mengetahui informasi selengkapnya tentang format objek, lihat Isi respons.
Contoh berikutnya mengubah contoh sebelumnya dengan cara berikut:
Contoh ini menggunakan konten kolom
messages.messagedatabase saat ini sebagai input.Contoh ini menunjukkan penggunaan fungsi
json_build_object()sebagai bantuan untuk memformat parameter fungsi.
select ml_predict_row('projects/PROJECT_ID/locations/us-central1/publishers/google/models/gemini-2.5-flash:generateContent', json_build_object('contents', json_build_array(json_build_object('role', 'user', 'parts', json_build_array(json_build_object('text', message)))))) from messages;
Untuk setiap baris dalam tabel messages, objek JSON yang ditampilkan kini berisi satu entri dalam array candidates.
Karena responsnya adalah objek JSON, Anda dapat mengambil kolom tertentu darinya:
select ml_predict_row('projects/PROJECT_ID/locations/us-central1/publishers/google/models/gemini-2.5-flash:generateContent', json_build_object('contents', json_build_array(json_build_object('role', 'user', 'parts', json_build_array(json_build_object('text', message)))))) -> 'candidates' -> 0 -> 'content' -> 'parts' -> 0 -> 'text' FROM messages;
Untuk mengetahui contoh argumen lainnya ke ml_predict_row(), lihat
Mencoba Vertex AI Gemini API.