Halaman ini menunjukkan cara memanggil prediksi online dari Cloud SQL untuk PostgreSQL di instance Compute Engine.
Dengan Cloud SQL, Anda dapat memperoleh prediksi online
kode SQL Anda dengan memanggil fungsi ml_predict_row()
. Untuk mengetahui informasi selengkapnya, lihat Membangun AI generatif
aplikasi yang menggunakan Cloud SQL.
Sebelum memulai
Sebelum Anda dapat memanggil prediksi online dari instance Cloud SQL, Anda harus menyiapkan database dan memilih model ML yang sesuai.
Menyiapkan database
Untuk menyiapkan database Anda, selesaikan langkah-langkah berikut:
Berikan izin bagi pengguna database untuk menggunakan
ml_predict_row()
fungsi untuk menjalankan prediksi:Hubungkan klien
psql
ke instance utama, sebagai dijelaskan dalam Menghubungkan menggunakan klien psql.Di command prompt
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 tempat Anda memberikan izin
USER_NAME: nama pengguna yang Anda berikan izin
Pilih model ML
Saat memanggil fungsi ml_predict_row()
, Anda harus menentukan lokasi model ML.
Model yang Anda tetapkan dapat berupa salah satu dari berikut:
Model yang berjalan di Vertex AI Model Garden.
Fungsi
ml_predict_row()
hanya mendukung pemanggilan prediksi di model tabulasi atau kustom.Model Vertex AI dengan endpoint aktif yang izin Identity and Access Management (IAM) Anda miliki.
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 Anda ada di Vertex AI Model Garden atau merupakan endpoint berjalan di project Google Cloud.
Menggunakan model di Model Garden Vertex AI
Untuk memanggil prediksi online menggunakan model ML yang berjalan di Vertex AI
Model Garden, gunakan sintaksis berikut untuk fungsi SQL ml_predict_row()
:
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,
text-bison
untuk PaLM 2 untuk Teks)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 }');
Untuk mengetahui informasi tentang pesan respons JSON model, baca Referensi model dasar AI Generatif. Untuk contoh, lihat Contoh panggilan.
Menggunakan endpoint model Vertex AI
Untuk memanggil prediksi online menggunakan endpoint model Vertex AI, gunakan sintaksis berikut untuk fungsi SQL ml_predict_row()
:
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.
Contoh pemanggilan
Contoh berikut menggunakan PaLM 2 untuk Teks, yang tersedia di Model Garden, untuk membuat teks berdasarkan prompt singkat yang diberikan sebagai argumen literal
ke ml_predict_row()
:
select ML_PREDICT_ROW('projects/PROJECT_ID/locations/us-central1/publishers/google/models/text-bison', '{"instances":[{"prompt": "What are three advantages of using Cloud SQL as my SQL database server?"}], "parameters":{"maxOutputTokens":1024, "topK": 40, "topP":0.8, "temperature":0.2}}');
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.message
database 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/text-bison', json_build_object('instances', json_build_object('prompt', message), 'parameters', json_build_object('maxOutputTokens', 1024,'topK', 40,'topP', 0.8,'temperature', 0.2))) from messages;
Untuk setiap baris dalam tabel messages
, objek JSON yang ditampilkan sekarang berisi satu entri dalam array predictions
.
Karena responsnya adalah objek JSON, Anda dapat menarik kolom tertentu darinya menggunakan operator panah PostgreSQL:
SELECT ML_PREDICT_ROW('projects/PROJECT_ID/locations/us-central1/publishers/google/models/text-bison',json_build_object('instances', json_build_object('prompt',message), 'parameters', json_build_object('maxOutputTokens', 1024,'topK', 40,'topP', 0.8,'temperature', 0.2)))->'predictions'->0->'content' FROM messages;
Untuk contoh argumen selengkapnya ke ml_predict_row()
, lihat Coba Vertex AI Gemini
API.