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:
- Anda dapat memanggil prediksi di wilayah tempat AI generatif di Vertex AI tersedia. Untuk mengetahui daftar region, lihat Lokasi AI Generatif di Vertex AI.
- Hubungkan ke database Anda menggunakan
psql
atau AlloyDB for PostgreSQL Studio. - Pastikan ekstensi
google_ml_integration
telah diinstal. - Verifikasi bahwa tanda
google_ml_integration.enable_model_support
ditetapkan keon
. - Sebelum dapat memanggil prediksi dari database AlloyDB, Anda harus mengonfigurasi AlloyDB agar dapat berfungsi dengan Vertex AI. Untuk mengetahui informasi selengkapnya, lihat Mengintegrasikan database Anda dengan Vertex AI.
- Anda harus memiliki model Vertex AI aktif dengan endpoint aktif yang izin Identity and Access Management (IAM) untuk mengaksesnya telah Anda miliki. AlloyDB tidak mendukung endpoint pribadi untuk mendapatkan prediksi online.
Berikan izin bagi 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 harus 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 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 AndaREGION_ID
: ID region Google Cloud tempat model berada—misalnya,us-central1
untuk 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 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 beradaREGION_ID
: ID Google Cloud region tempat model berada—misalnya,us-central1
ENDPOINT_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 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.