Mendaftarkan dan memanggil model AI jarak jauh di ringkasan Cloud SQL

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 Membuat dan mengelola embedding 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. Anda dapat menggunakan model ini untuk membuat penyematan vektor atau memanggil prediksi.

Anda dapat mendaftarkan jenis model berikut menggunakan pengelolaan endpoint model:

  • Model embedding teks Vertex AI.
  • Model penyematan teks yang dihosting kustom yang dihosting di jaringan dalam Trusted Cloud by S3NS.
  • Model generik dengan API berbasis JSON. Contoh model ini meliputi:

    • Model gemini-flash dari Vertex AI Model Garden
    • Model open_ai untuk model OpenAI
    • Model yang dihosting di jaringan dalam Trusted Cloud by S3NS

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:

  • Membuat embedding untuk menerjemahkan perintah teks ke vektor numerik. Anda dapat menyimpan embedding yang dihasilkan sebagai data vektor saat mengaktifkan dukungan embedding vektor di instance Anda. Untuk mengetahui informasi selengkapnya, lihat Mengaktifkan dan menonaktifkan penyematan vektor di instance Anda.

  • Panggil prediksi untuk memanggil model menggunakan SQL dalam transaksi.

Untuk mendaftarkan dan memanggil model AI jarak jauh dengan instance Cloud SQL, instance Anda harus diinstal dengan versi pemeliharaan MYSQL_VERSION.R20250531.01_14 atau yang lebih baru. Jika instance Anda menjalankan versi pemeliharaan yang lebih lama dari MYSQL_VERSION.R20250531.01_14, maka Anda hanya dapat menggunakan fungsi berikut seperti yang didokumentasikan dengan integrasi Cloud SQL dan Vertex AI.

Untuk mengupgrade instance Anda ke versi pemeliharaan MYSQL_VERSION.R20250531.01_14 atau yang lebih baru, lihat Pemeliharaan mandiri. Setelah mengupgrade instance, Anda dapat menggunakan fungsi berikut:

Selain itu, Anda dapat menggunakan fungsi berikut dengan penyedia model terdaftar Anda:

Hak istimewa pengguna database yang diperlukan

Untuk mendaftarkan dan memanggil model AI jarak jauh, Anda harus login sebagai pengguna database MySQL yang telah diberi hak istimewa SELECT dan EXECUTE pada mysql.*.

Secara default, setiap pengguna dengan peran cloudsqlsuperuser memiliki hak istimewa ini atau dapat membuat pengguna dan memberikan hak istimewa yang diperlukan.

Untuk mengetahui informasi selengkapnya tentang peran cloudsqlsuperuser di Cloud SQL, lihat Hak istimewa pengguna MySQL 8.0 dan Hak istimewa pengguna MySQL 8.4.

Konsep utama

Sebelum mulai menggunakan pengelolaan endpoint model, pahami konsep yang diperlukan untuk terhubung ke 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 (mencakup Gemini) google
Anthropic anthropic
Hugging Face hugging_face
OpenAI open_ai
Model lain yang dihosting di luar Vertex AI,
Anthropic, Hugging Face, dan OpenAI
custom

Penyedia model default 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.

Jika menggunakan Vertex AI sebagai penyedia model, Anda tidak perlu mendaftarkan endpoint model karena endpoint didukung secara otomatis. Secara default, dengan Vertex AI, Anda menggunakan model text-embedding-005.

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 mysql.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 tersebut dalam format JSON, dan Anda mengurai output JSON untuk mendapatkan output akhir.
Jenis model untuk model ini adalah generic. Karena generic adalah jenis model default, jika Anda mendaftarkan endpoint model untuk jenis ini, maka setelan jenis model bersifat opsional.
Dengan Vertex AI, pengelolaan endpoint model mencakup dukungan yang telah didaftarkan sebelumnya untuk model gemini-2.5-flash.

Metode autentikasi

Anda dapat mengaktifkan dukungan untuk penyematan vektor di instance Cloud SQL untuk MySQL, lalu menentukan metode autentikasi yang berbeda 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 lainnya, kunci API atau token pembawa yang disimpan sebagai rahasia di Secret Manager dapat digunakan dengan fungsi SQL mysql.ml_create_sm_secret_registration().

Tabel berikut menunjukkan metode autentikasi yang dapat Anda tetapkan:

Metode autentikasi Tetapkan dalam fungsi sebagai… Penyedia model
Agen layanan Cloud SQL auth_type_cloudsql_service_agent_iam Penyedia Vertex AI
Secret Manager auth_type_secret_manager Model yang dihosting di luar Vertex AI

Fungsi prediksi

mysql.ml_embedding()
Memanggil endpoint model embedding teks terdaftar untuk membuat embedding. Alat ini mencakup dukungan bawaan untuk semua model embedding oleh Vertex AI.
Untuk model penyematan teks tanpa dukungan bawaan, parameter input dan output unik untuk suatu model dan perlu diubah 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.
mysql.ml_predict_row()
Memanggil endpoint model generik terdaftar, jika endpoint 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 oleh fungsi prediksi. Fungsi transform 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 menunjukkan tanda tangan untuk fungsi prediksi untuk model penyematan teks:

// define custom model specific input/output transform functions.
CREATE FUNCTION IF NOT EXISTS input_transform_function(model_id VARCHAR(100), input_text TEXT) RETURNS JSON DETERMINISTIC;

// the returned BLOB should be of type VECTOR
CREATE FUNCTION IF NOT EXISTS output_transform_function(model_id VARCHAR(100), response_json JSON) RETURNS BLOB DETERMINISTIC;

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 mysql.ml_embedding():

CREATE FUNCTION IF NOT EXISTS generate_headers(model_id VARCHAR(100), input TEXT) RETURNS JSON DETERMINISTIC;

Untuk fungsi prediksi mysql.ml_predict_row(), tanda tangannya adalah sebagai berikut:

CREATE FUNCTION IF NOT EXISTS generate_headers(model_id VARCHAR(100), input JSON) RETURNS JSON DETERMINISTIC;

Untuk mengetahui informasi selengkapnya tentang cara membuat fungsi pembuatan header, lihat Contoh fungsi pembuatan header.

Batasan

  • Saat menjalankan fungsi pendaftaran model atau pengelolaan rahasia, Anda secara implisit melakukan transaksi terbuka apa pun dalam sesi. Fungsi prediksi tidak secara implisit melakukan transaksi.

  • Jika Anda mengekspor atau mengimpor database dengan mysqldump, maka katalog endpoint model tidak akan diekspor.

  • Database pengguna yang berisi fungsi transformasi tidak boleh memiliki karakter titik ('.') dalam namanya. Misalnya, database yang disebut my.sql tidak didukung.

  • Pengelolaan endpoint model hanya tersedia untuk Cloud SQL untuk MySQL versi 8.0.36 dan yang lebih baru.

Langkah berikutnya