Memanggil prediksi

Halaman ini menjelaskan cara memanggil prediksi menggunakan fungsi dari namespace public dan google_ml. Ekstensi google_ml_integration mencakup fungsi prediksi untuk namespace ini.

Anda dapat menggunakan fungsi ml_predict_row() dalam skema public dengan model generik apa pun yang dihosting di Vertex AI tanpa mendaftarkan endpoint. Fungsi google_ml.predict_row() dalam skema google_ml dapat digunakan dengan model apa pun yang telah didaftarkan dengan pengelolaan endpoint Model.

Untuk memanggil prediksi, pilih salah satu skema berikut.

Sebelum memulai

Agar AlloyDB dapat memanggil prediksi, lakukan hal berikut:

Memanggil prediksi online

Gunakan 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 ada di Vertex AI Model Garden atau merupakan endpoint yang 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 google_ml.predict_row():

SELECT ml_predict_row('projects/PROJECT_ID/locations/REGION_ID/publishers/google/models/MODEL_ID', '{ CONTENTS }');

Ganti kode berikut:

  • PROJECT_ID: ID Google Cloud project Anda

  • REGION_ID: ID region Google Cloud tempat model berada—misalnya, us-central1 untuk gemini-pro

  • MODEL_ID: ID model ML yang akan digunakan—misalnya, gemini-pro

  • CONTENTS: input ke panggilan prediksi, dalam format JSON

Jika model ML disimpan dalam project dan region yang sama dengan cluster AlloyDB Anda, Anda dapat menyingkat argumen pertama fungsi ini:

SELECT ml_predict_row('publishers/google/models/MODEL_ID', '{ CONTENTS }');

Untuk mengetahui informasi tentang pesan respons JSON model, lihat Referensi model dasar AI generatif.

Untuk contoh, lihat Contoh pemanggilan.

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('projects/PROJECT_ID/locations/REGION_ID/endpoints/ENDPOINT_ID', '{ CONTENTS }');

Ganti kode berikut:

  • PROJECT_ID: ID Google Cloud project tempat model berada

  • REGION_ID: ID Google Cloud region tempat model berada—misalnya, us-central1

  • ENDPOINT_ID: ID endpoint model

  • CONTENTS: input ke panggilan prediksi, dalam format JSON

Jika endpoint berada dalam project dan region yang sama dengan cluster AlloyDB Anda, Anda dapat menyingkat argumen pertama fungsi ini:

SELECT ml_predict_row('endpoints/ENDPOINT_ID', '{ CONTENTS }');

Untuk mengetahui informasi tentang pesan respons JSON model, lihat PredictResponse.

Contoh pemanggilan

Contoh berikut menggunakan gemini-pro, 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('publishers/google/models/gemini-1.5-pro:streamGenerateContent',
      '{ "contents": [ { "role": "user", "parts": [ { "text": "For TPCH database schema as mentioned here https://www.tpc.org/TPC_Documents_Current_Versions/pdf/TPC-H_v3.0.1.pdf , generate a SQL query to find all supplier names which are located in the India nation."
} ] } ] }'))-> '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.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/gemini-1.5-pro:generateContent', json_build_object('contents', json_build_object('text', message))) from messages;

Objek JSON yang ditampilkan kini berisi satu entri dalam array predictions untuk setiap baris dalam tabel messages.

Karena responsnya adalah objek JSON, Anda dapat menarik kolom tertentu dari respons tersebut menggunakan operator panah PostgreSQL:

select ml_predict_row('projects/PROJECT_ID/locations/us-central1/publishers/google/models/gemini-1.5-pro:generateContent', json_build_object('contents', json_build_object('text', message)))->'predictions'->0->'content' FROM messages;

Untuk mengetahui contoh argumen lainnya untuk ml_predict_row(), lihat Panduan memulai menggunakan Vertex AI API.

Langkah berikutnya