Ekstensi google_ml_integration di AlloyDB untuk PostgreSQL memungkinkan Anda memanggil prediksi online dari model machine learning langsung di kueri SQL.
Anda dapat memanggil fungsi ml_predict_row() dalam skema public untuk model generik yang dihosting di Gemini Enterprise Agent Platform tanpa mendaftarkan endpoint, atau memanggil fungsi google_ml.predict_row() dalam skema google_ml untuk model yang terdaftar dengan Pengelolaan endpoint model.
Untuk memanggil prediksi, pilih salah satu skema berikut.
Sebelum memulai
Agar AlloyDB dapat memanggil prediksi, lakukan hal berikut:
- Anda dapat memanggil prediksi di region tempat AI generatif di Agent Platform tersedia. Untuk mengetahui daftar region, lihat Deployment dan endpoint.
- Hubungkan ke database Anda menggunakan
psqlatau AlloyDB Studio. - Pastikan ekstensi
google_ml_integrationtelah diinstal. - Pastikan flag
google_ml_integration.enable_model_supportditetapkan keon. - Sebelum dapat memanggil prediksi dari database AlloyDB, Anda harus mengonfigurasi AlloyDB agar berfungsi dengan Agent Platform. Untuk mengetahui informasi selengkapnya, lihat Mengintegrasikan database dengan Agent Platform.
- Anda harus memiliki model Agent Platform aktif dengan endpoint aktif yang izin Identity and Access Management (IAM)-nya Anda miliki untuk mengaksesnya. Alamat IP pribadi direkomendasikan untuk instance AlloyDB.
Berikan izin kepada pengguna database untuk menjalankan fungsi prediksi guna memanggil prediksi:
\c DB_NAME GRANT EXECUTE ON FUNCTION ml_predict_row TO USER_NAME;Ganti kode berikut:
DB_NAME: nama database yang akan diberi izinUSER_NAME: nama pengguna yang akan diberi izin
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 berada di Model Garden atau merupakan endpoint yang berjalan di project Google Cloud .
Menggunakan model di Model Garden
Untuk memanggil prediksi online menggunakan model ML yang berjalan di
Model Garden, gunakan sintaksis berikut untuk fungsi SQL 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 project Google Cloud AndaREGION_ID: ID region atau lokasi endpoint Google Cloud tempat model berada—misalnya,globaluntukgemini-3.5-flash-lite, atau wilayah yang didukung sepertius-central1MODEL_ID: ID model ML yang akan digunakan, termasuk akhiran metode (:generateContentatau:streamGenerateContent) untuk model Gemini—misalnya,gemini-3.5-flash-lite:generateContentataugemini-3.5-flash-lite:streamGenerateContentCONTENTS: input ke panggilan prediksi, dalam format JSON—misalnya,"contents": [{"role": "user", "parts": [{"text": "..."}]}]untuk model Gemini, atau"instances": [...]untuk model Agent Platform lainnya
Jika model ML disimpan dalam project dan region yang sama dengan cluster AlloyDB, 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 Agent Platform
Untuk memanggil prediksi online menggunakan endpoint model Agent Platform, 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 project Google Cloud tempat model beradaREGION_ID: ID region Google Cloud tempat model berada, misalnya,us-central1ENDPOINT_ID: ID endpoint modelCONTENTS: input ke panggilan prediksi, dalam format JSON
Jika endpoint berada dalam project dan region yang sama dengan cluster AlloyDB, 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-3.5-flash-lite, yang tersedia di Model Garden, untuk membuat teks yang dihasilkan berdasarkan perintah singkat yang diberikan sebagai argumen literal ke ml_predict_row():
SELECT
json_array_elements(ml_predict_row('publishers/google/models/gemini-3.5-flash-lite: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 informasi selengkapnya tentang format objek, lihat Isi respons.
Contoh berikut 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()danjson_build_array()sebagai bantuan untuk memformat parameter fungsi.
Pertama, buat tabel messages contoh jika Anda belum memilikinya:
CREATE TABLE IF NOT EXISTS messages (message TEXT);
INSERT INTO messages (message) VALUES ('Why is the sky blue?');
Kemudian, panggil ml_predict_row() terhadap tabel messages:
SELECT
ml_predict_row(
'projects/PROJECT_ID/locations/global/publishers/google/models/gemini-3.5-flash-lite:generateContent',
json_build_object(
'contents',
json_build_array(
json_build_object(
'role', 'user',
'parts', json_build_array(
json_build_object('text', message)
)
)
)
)
)
FROM messages;
Objek JSON yang ditampilkan berisi array candidates untuk setiap baris dalam tabel messages.
Karena responsnya adalah objek JSON, Anda dapat menarik kolom tertentu darinya menggunakan operator panah PostgreSQL:
SELECT
ml_predict_row(
'projects/PROJECT_ID/locations/global/publishers/google/models/gemini-3.5-flash-lite: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 contoh argumen lainnya ke ml_predict_row(), lihat Panduan memulai menggunakan Agent Platform API.