Halaman ini menjelaskan cara mendaftarkan endpoint model AI dan memanggil prediksi dengan pengelolaan endpoint model di Cloud SQL. Untuk menggunakan model AI di lingkungan produksi, lihat Mem-build aplikasi AI generatif menggunakan Cloud SQL dan Menggunakan penyematan vektor.
Ringkasan
Pengelolaan endpoint model memungkinkan Anda mendaftarkan endpoint model, mengelola metadata endpoint model di instance Cloud SQL, lalu berinteraksi dengan model menggunakan kueri SQL. Cloud SQL menyediakan ekstensi google_ml_integration
yang
menyertakan fungsi untuk menambahkan dan mendaftarkan metadata endpoint model yang terkait dengan model. Anda dapat menggunakan model ini untuk membuat penyematan vektor atau memanggil prediksi.
Anda dapat mendaftarkan jenis model berikut menggunakan pengelolaan endpoint model:
- Model penyematan teks Vertex AI.
- Model penyematan teks yang dihosting secara kustom dan dihosting di jaringan dalam Google Cloud.
- Model generik dengan API berbasis JSON. Contoh model ini meliputi:
- Model
gemini-pro
dari Vertex AI Model Garden - Model
open_ai
untuk model OpenAI - Model yang dihosting di jaringan dalam Google Cloud
- Model
Cara kerjanya
Anda dapat menggunakan pengelolaan endpoint model untuk mendaftarkan endpoint model yang mematuhi hal berikut:
- Input dan output model mendukung format JSON.
- Anda dapat menggunakan protokol REST untuk memanggil model.
Saat Anda mendaftarkan endpoint model dengan pengelolaan endpoint model, pengelolaan endpoint model akan mendaftarkan setiap endpoint dengan ID model unik sebagai referensi ke model. Anda dapat menggunakan ID model ini untuk membuat kueri model, sebagai berikut:
Buat embedding untuk menerjemahkan perintah teks menjadi vektor numerik. Anda dapat menyimpan penyematan yang dihasilkan sebagai data vektor saat ekstensi
pgvector
diaktifkan di database. Untuk mengetahui informasi selengkapnya, lihat Mengkueri dan mengindeks penyematan dengan pgvector.Panggil prediksi untuk memanggil model menggunakan SQL dalam transaksi.
Aplikasi Anda dapat mengelola endpoint modelnya menggunakan ekstensi google_ml_integration
. Ekstensi ini menyediakan fungsi SQL berikut:
google_ml.create_model()
: mendaftarkan endpoint model yang digunakan dalam fungsi prediksi atau penyematangoogle_ml.create_sm_secret()
: menggunakan secret di Google Cloud Secret Manager, tempat kunci API disimpangoogle_ml.embedding()
: menghasilkan embedding teksgoogle_ml.predict_row()
: menghasilkan prediksi saat Anda memanggil model umum yang mendukung format input dan output JSON
Konsep utama
Sebelum mulai menggunakan pengelolaan endpoint model, pahami konsep yang diperlukan untuk terhubung dan menggunakan model.
Penyedia model
Penyedia model adalah penyedia hosting model yang didukung. Tabel berikut menunjukkan nilai penyedia model yang harus Anda tetapkan berdasarkan penyedia model yang Anda gunakan:
Penyedia model | Tetapkan dalam fungsi sebagai… |
---|---|
Vertex AI (termasuk Gemini) | google |
OpenAI | open_ai |
Model lain yang dihosting di luar Vertex AI | custom |
Penyedia model default-nya adalah custom
.
Jenis model
Jenis model adalah jenis model AI. Saat mendaftarkan endpoint model, Anda dapat menetapkan jenis model text-embedding
atau generic
untuk endpoint.
- Model penyematan teks dengan dukungan bawaan
- Pengelolaan endpoint model memberikan dukungan bawaan untuk semua versi
model
textembedding-gecko
. Untuk mendaftarkan endpoint model ini, gunakan fungsigoogle_ml.create_model()
. Cloud SQL menyiapkan fungsi transformasi default untuk model ini secara otomatis. - Jenis model untuk model ini adalah
text-embedding
. - Model embedding teks lainnya
- Untuk model penyematan teks lainnya, Anda perlu membuat fungsi transformasi untuk menangani format input dan output yang didukung model. Secara opsional, Anda dapat menggunakan fungsi pembuatan header HTTP yang membuat header kustom yang diperlukan oleh model Anda.
- Jenis model untuk model ini adalah
text-embedding
. - Model generik
- Pengelolaan endpoint model juga mendukung pendaftaran semua jenis model lainnya selain model penyematan teks. Untuk
memanggil prediksi untuk model generik, gunakan
fungsi
google_ml.predict_row()
. Anda dapat menetapkan metadata endpoint model, seperti endpoint permintaan dan header HTTP yang khusus untuk model Anda. - Anda tidak dapat meneruskan fungsi transformasi saat mendaftarkan endpoint model generik. Pastikan bahwa saat Anda memanggil prediksi, input ke fungsi dalam format JSON, dan Anda mengurai output JSON untuk mendapatkan output akhir.
- Jenis model untuk model ini adalah
generic
. Karenageneric
adalah jenis model default, jika Anda mendaftarkan endpoint model untuk jenis ini, menetapkan jenis model bersifat opsional.
Metode autentikasi
Anda dapat menggunakan ekstensi google_ml_integration
untuk menentukan berbagai metode autentikasi untuk mengakses model Anda. Menetapkan metode ini bersifat opsional dan hanya diperlukan jika Anda perlu mengautentikasi untuk mengakses model.
Untuk model Vertex AI, akun layanan Cloud SQL digunakan untuk autentikasi. Untuk model lain, kunci API atau token pembawa yang disimpan sebagai secret di
Secret Manager dapat digunakan dengan fungsi SQL
google_ml.create_sm_secret()
.
Tabel berikut menunjukkan metode autentikasi yang dapat Anda tetapkan:
Metode autentikasi | Tetapkan dalam fungsi sebagai… | Penyedia model |
---|---|---|
Agen layanan Cloud SQL | cloudsql_service_agent_iam |
Penyedia Vertex AI |
Secret Manager | secret_manager |
Model yang dihosting di luar Vertex AI |
Fungsi prediksi
Ekstensi google_ml_integration
mencakup fungsi prediksi berikut:
google_ml.embedding()
- Memanggil endpoint model penyematan teks terdaftar untuk
membuat penyematan. Alat ini mencakup dukungan bawaan untuk
model
textembedding-gecko
oleh Vertex AI. - Untuk model penyematan teks tanpa dukungan bawaan, parameter input dan output bersifat unik untuk model dan perlu ditransformasikan agar fungsi dapat memanggil model. Buat fungsi input transformasi untuk mengubah input fungsi prediksi menjadi input khusus model, dan fungsi output transformasi untuk mengubah output khusus model menjadi output fungsi prediksi.
google_ml.predict_row()
- Memanggil endpoint model generik terdaftar, jika endpoint tersebut mendukung API berbasis JSON untuk memanggil prediksi.
Fungsi transformasi
Fungsi transformasi mengubah input ke format yang dipahami model, dan
mengonversi respons model ke format yang diharapkan fungsi prediksi. Fungsi transformasi digunakan saat mendaftarkan endpoint model text-embedding
tanpa dukungan bawaan. Tanda tangan fungsi transformasi bergantung pada
fungsi prediksi untuk jenis model.
Anda tidak dapat menggunakan fungsi transformasi saat mendaftarkan endpoint model generic
.
Berikut ini menunjukkan tanda tangan untuk fungsi prediksi untuk model penyematan teks:
// define custom model specific input/output transform functions.
CREATE OR REPLACE FUNCTION input_transform_function(model_id VARCHAR(100), input_text TEXT) RETURNS JSON;
CREATE OR REPLACE FUNCTION output_transform_function(model_id VARCHAR(100), response_json JSON) RETURNS real[];
Untuk mengetahui informasi selengkapnya tentang cara membuat fungsi transformasi, lihat Contoh fungsi transformasi.
Fungsi pembuatan header HTTP
Fungsi pembuatan header HTTP menghasilkan output dalam key-value pair JSON yang digunakan sebagai header HTTP. Tanda tangan fungsi prediksi menentukan tanda tangan fungsi pembuatan header.
Contoh berikut menunjukkan tanda tangan untuk fungsi prediksi google_ml.embedding()
:
CREATE OR REPLACE FUNCTION generate_headers(model_id VARCHAR(100), input TEXT) RETURNS JSON;
Untuk fungsi prediksi google_ml.predict_row()
, tanda tangannya adalah sebagai berikut:
CREATE OR REPLACE FUNCTION generate_headers(model_id VARCHAR(100), input JSON) RETURNS JSON;
Untuk mengetahui informasi selengkapnya tentang cara membuat fungsi pembuatan header, lihat Contoh fungsi pembuatan header.
Batasan
- Untuk menggunakan model AI dengan instance Cloud SQL, versi pemeliharaan instance Anda harus
R20240910.01_02
atau yang lebih baru. Untuk mengupgrade instance ke versi ini, lihat Pemeliharaan mandiri.
Langkah selanjutnya
- Siapkan autentikasi untuk penyedia model.
- Mendaftarkan endpoint model dengan pengelolaan endpoint model.
- Pelajari referensi pengelolaan endpoint model.