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 Gemini Enterprise Agent Platform tanpa mendaftarkan endpoint. Anda dapat menggunakan fungsi google_ml.predict_row() dalam skema google_ml dengan model apa pun yang terdaftar di 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 untuk PostgreSQL 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 dapat digunakan dengan Agent Platform. Untuk mengetahui informasi selengkapnya, lihat Mengintegrasikan database Anda dengan Agent Platform.
- Anda harus memiliki model Agent Platform aktif dengan endpoint aktif yang memiliki izin Identity and Access Management (IAM) untuk diakses. AlloyDB tidak mendukung endpoint pribadi untuk mendapatkan prediksi online.
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 tempat izin harus diberikan
USER_NAME: nama pengguna yang akan diberikan 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 a Google Cloud project.
Menggunakan model di Model Garden
Untuk memanggil prediksi online menggunakan model ML yang berjalan di 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 project Anda Google CloudREGION_ID: ID Google Cloud region tempat model berada—misalnya,us-central1untuk gemini-proMODEL_ID: ID model ML yang akan digunakan—misalnya, gemini-proCONTENTS: 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 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 tempat model berada Google CloudREGION_ID: ID Google Cloud region 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, 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 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()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 mengambil kolom tertentu darinya 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 ke ml_predict_row(), lihat Panduan memulai menggunakan Agent Platform API
API.
Langkah berikutnya
- Pelajari cara membuat asisten belanja cerdas dengan AlloyDB, pgvector, dan pengelolaan endpoint model.
- Pelajari tentang referensi pengelolaan endpoint model.