Mendaftarkan dan memanggil model AI jarak jauh di ringkasan AlloyDB Omni

Pilih versi dokumentasi:

Halaman ini menjelaskan pratinjau yang memungkinkan Anda bereksperimen dengan mendaftarkan endpoint model AI dan memanggil prediksi dengan Pengelolaan endpoint model di AlloyDB Omni. Untuk menggunakan model AI di lingkungan produksi, lihat Membangun aplikasi AI generatif menggunakan AlloyDB AI dan Bekerja dengan penyematan vektor.

Untuk mendaftarkan endpoint model jarak jauh dengan AlloyDB, lihat Mendaftarkan dan memanggil model AI jarak jauh di AlloyDB.

Ringkasan

Pratinjau Pengelolaan endpoint model memungkinkan Anda mendaftarkan endpoint model, mengelola metadata endpoint model di cluster database, lalu berinteraksi dengan model menggunakan kueri SQL. Library ini menyediakan ekstensi google_ml_integration yang mencakup fungsi untuk menambahkan dan mendaftarkan metadata endpoint model yang terkait dengan model, lalu menggunakan model untuk membuat penyematan vektor atau memanggil prediksi.

Berikut beberapa jenis model contoh yang dapat Anda daftarkan menggunakan pengelolaan endpoint model:

  • Model embedding teks Vertex AI
  • Model sematan yang disediakan oleh penyedia pihak ketiga, seperti Anthropic, Hugging Face, atau OpenAI.
  • Model embedding teks yang dihosting kustom
  • Model generik dengan API berbasis JSON—misalnya, model facebook/bart-large-mnli yang dihosting di Hugging Face atau model gemini-pro dari Vertex AI Model Garden

Cara kerjanya

Anda dapat menggunakan pengelolaan endpoint model untuk mendaftarkan endpoint model yang mematuhi hal berikut:

  • Input dan output model mendukung format JSON.
  • Model dapat dipanggil menggunakan protokol REST.

Saat Anda mendaftarkan endpoint model dengan pengelolaan endpoint model, setiap endpoint akan didaftarkan dengan ID model unik yang Anda berikan sebagai referensi ke model. Anda dapat menggunakan ID model ini untuk membuat kueri model:

  • Membuat embedding untuk menerjemahkan perintah teks ke vektor numerik. Anda dapat menyimpan embedding yang dihasilkan sebagai data vektor saat ekstensi pgvector diaktifkan dalam database.

  • Panggil prediksi untuk memanggil model menggunakan SQL dalam transaksi.

Aplikasi Anda dapat mengakses pengelolaan endpoint model menggunakan ekstensi google_ml_integration. Ekstensi ini menyediakan fungsi berikut:

  • Fungsi SQL google_ml.create_model(), yang digunakan untuk mendaftarkan endpoint model yang digunakan dalam fungsi prediksi atau penyematan.
  • Fungsi SQL google_ml.create_sm_secret(), yang menggunakan secret di Google Cloud Secret Manager, tempat kunci API disimpan.
  • Fungsi SQL google_ml.embedding(), yang merupakan fungsi prediksi yang menghasilkan embedding teks.
  • Fungsi SQL google_ml.predict_row() yang menghasilkan prediksi saat Anda memanggil model generik yang mendukung format input dan output JSON.
  • Fungsi bantuan lainnya yang menangani pembuatan URL kustom, pembuatan header HTTP, atau meneruskan fungsi transformasi untuk model generik Anda.
  • Fungsi untuk mengelola endpoint dan secret model terdaftar.

Konsep utama

Sebelum Anda mulai menggunakan pengelolaan endpoint model, pahami konsep yang diperlukan untuk terhubung ke dan menggunakan model.

Penyedia model {: #model-provider}̦

Penyedia model menunjukkan 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 google
Model Hugging Face custom
Model Anthropic custom
Model lainnya custom
OpenAI open_ai

Penyedia model default adalah custom.

Berdasarkan jenis penyedia, metode autentikasi yang didukung berbeda. Model Vertex AI menggunakan akun layanan AlloyDB untuk melakukan autentikasi, sementara penyedia lain dapat menggunakan Secret Manager untuk melakukan autentikasi.

Jenis model

Jenis model menunjukkan jenis model AI. Ekstensi ini mendukung penyematan teks serta jenis model generik apa pun. Jenis model yang didukung yang dapat Anda tetapkan saat mendaftarkan endpoint model adalah text-embedding dan generic. Menetapkan jenis model bersifat opsional saat mendaftarkan endpoint model generik karena generic adalah jenis model default.

Model embedding teks dengan dukungan bawaan
Pengelolaan endpoint model memberikan dukungan bawaan untuk semua versi model textembedding-gecko oleh Vertex AI dan model text-embedding-ada-002 oleh OpenAI. Untuk mendaftarkan endpoint model ini, gunakan fungsi google_ml.create_model(). AlloyDB secara otomatis menyiapkan fungsi transformasi default untuk model ini.
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 tersebut dalam format JSON, dan Anda mengurai output JSON untuk mendapatkan output akhir.
Jenis model untuk model ini adalah generic.

Autentikasi

Jenis autentikasi menunjukkan jenis autentikasi yang dapat Anda gunakan untuk terhubung ke pengelolaan endpoint model menggunakan ekstensi google_ml_integration. Menetapkan autentikasi bersifat opsional dan hanya diperlukan jika Anda perlu melakukan autentikasi untuk mengakses model Anda.

Untuk model Vertex AI, akun layanan AlloyDB digunakan untuk autentikasi. Untuk model lainnya, 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 jenis autentikasi yang dapat Anda tetapkan:

Metode autentikasi Tetapkan dalam fungsi sebagai… Penyedia model
Agen layanan AlloyDB alloydb_service_agent_iam Penyedia Vertex AI
Secret Manager secret_manager penyedia pihak ketiga, seperti Anthropic, Hugging Face, atau OpenAI

Fungsi prediksi

Ekstensi google_ml_integration mencakup fungsi prediksi berikut:

google_ml.embedding()
Digunakan untuk memanggil endpoint model embedding teks terdaftar untuk membuat embedding. Alat ini mencakup dukungan bawaan untuk model textembedding-gecko oleh Vertex AI dan model text-embedding-ada-002 oleh OpenAI.
Untuk model penyematan teks tanpa dukungan bawaan, parameter input dan output bersifat unik untuk 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.
google_ml.predict_row()
Digunakan untuk memanggil endpoint model generik terdaftar, selama 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 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 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 Fungsi pembuatan header HTTP.

Langkah berikutnya