Memanggil prediksi online dari instance Cloud SQL

Halaman ini menunjukkan cara memanggil prediksi online dari instance Cloud SQL untuk PostgreSQL.

Dengan Cloud SQL, Anda dapat memperoleh 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, selesaikan langkah-langkah berikut:

  1. Siapkan integrasi antara Cloud SQL dan Vertex AI.

  2. Berikan izin kepada pengguna database untuk menggunakan fungsi ml_predict_row() guna menjalankan prediksi:

    1. Hubungkan klien psql ke instance utama, seperti yang dijelaskan dalam Menghubungkan menggunakan klien psql.

    2. 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 yang Anda beri izin

      • USER_NAME: nama pengguna yang Anda beri izin

Pilih model ML

Saat memanggil fungsi ml_predict_row(), Anda harus menentukan lokasi model ML. Model yang Anda tetapkan bisa berupa salah satu dari berikut ini:

  • Model yang berjalan di Model Garden Vertex AI.

    Fungsi ml_predict_row() mendukung pemanggilan prediksi hanya pada model tabel atau kustom.

  • Model Vertex AI dengan endpoint aktif yang izin Identity and Access Management (IAM) Anda 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 project Google Cloud.

Menggunakan model di Model Garden di 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 Text)

  • 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. Sebagai 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 panggilan

Contoh berikut menggunakan PaLM 2 untuk Teks, yang tersedia di Model Garden, untuk menghasilkan teks berdasarkan prompt singkat yang disediakan 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 memodifikasi 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 lainnya untuk ml_predict_row(), lihat Mencoba Vertex AI Gemini API.

Langkah selanjutnya