Halaman ini mencantumkan parameter untuk berbagai fungsi yang disediakan oleh ekstensi google_ml_integration
untuk mendaftarkan dan mengelola endpoint model, serta secret dengan pengelolaan endpoint model.
Anda harus menetapkan
flag database google_ml_integration.enable_model_support
ke on
sebelum
dapat mulai menggunakan ekstensi.
Untuk informasi selengkapnya, lihat Menggunakan pengelolaan endpoint Model dengan AlloyDB Omni untuk model AI.
Model
Gunakan referensi ini untuk memahami parameter untuk fungsi yang memungkinkan Anda mengelola endpoint model.
google_ml.create_model()
fungsi
Berikut ini cara memanggil fungsi SQL google_ml.create_model()
yang digunakan untuk mendaftarkan metadata endpoint model:
CALL
google_ml.create_model(
model_id => 'MODEL_ID',
model_request_url => 'REQUEST_URL',
model_provider => 'PROVIDER_ID',
model_type => 'MODEL_TYPE',
model_qualified_name => 'MODEL_QUALIFIED_NAME',
model_auth_type => 'AUTH_TYPE',
model_auth_id => 'AUTH_ID',
generate_headers_fn => 'GENERATE_HEADER_FUNCTION',
model_in_transform_fn => 'INPUT_TRANSFORM_FUNCTION',
model_out_transform_fn => 'OUTPUT_TRANSFORM_FUNCTION');
Parameter | Wajib | Deskripsi |
---|---|---|
MODEL_ID |
wajib untuk semua endpoint model | ID unik untuk endpoint model yang Anda tentukan. |
REQUEST_URL |
opsional untuk endpoint model penyematan teks lainnya dengan dukungan bawaan | Endpoint khusus model saat menambahkan penyematan teks lain dan endpoint model generik. Untuk AlloyDB untuk PostgreSQL, berikan URL https .URL permintaan yang dihasilkan fungsi untuk endpoint model bawaan merujuk ke project dan region atau lokasi cluster Anda. Jika Anda ingin merujuk ke project lain, pastikan Anda menentukan model_request_url secara eksplisit.Untuk mengetahui daftar URL permintaan endpoint model Vertex AI, lihat URL permintaan endpoint model Vertex AI. Untuk endpoint model yang dihosting secara kustom, pastikan endpoint model dapat diakses dari jaringan tempat AlloyDB berada. |
PROVIDER_ID |
diperlukan untuk endpoint model embedding teks dengan dukungan bawaan | Penyedia endpoint model. Nilai defaultnya adalah custom .Tetapkan ke salah satu dari berikut:
|
MODEL_TYPE |
opsional untuk endpoint model generik | Jenis model. Tetapkan ke salah satu opsi berikut:
|
MODEL_QUALIFIED_NAME |
diperlukan untuk model penyematan teks dengan dukungan bawaan; opsional untuk endpoint model lainnya | Nama yang sepenuhnya memenuhi syarat untuk model penyematan teks dengan dukungan bawaan. Untuk nama yang memenuhi syarat Vertex AI yang harus Anda gunakan untuk model yang terdaftar sebelumnya, lihat Model Vertex AI yang terdaftar sebelumnya. Untuk nama yang memenuhi syarat yang harus Anda gunakan untuk model OpenAI dengan dukungan bawaan, lihat Model dengan dukungan bawaan |
AUTH_TYPE |
opsional kecuali jika endpoint model memiliki persyaratan autentikasi tertentu | Jenis autentikasi yang digunakan oleh endpoint model. Anda dapat menetapkannya ke alloydb_service_agent_iam untuk model Vertex AI atau secret_manager untuk penyedia lain, jika mereka menggunakan Secret Manager untuk autentikasi. Anda tidak perlu menetapkan nilai ini jika menggunakan header autentikasi. |
AUTH_ID |
jangan ditetapkan untuk endpoint model Vertex AI; diperlukan untuk semua endpoint model lainnya yang menyimpan secret di Secret Manager | ID secret yang Anda tetapkan dan kemudian digunakan saat mendaftarkan endpoint model. |
GENERATE_HEADER_FUNCTION |
opsional | Nama fungsi yang menghasilkan header kustom. Untuk model Anthropic, pengelolaan endpoint model menyediakan fungsi google_ml.anthropic_claude_header_gen_fn yang dapat Anda gunakan untuk versi default. Signature fungsi ini bergantung pada fungsi prediksi yang Anda gunakan. Lihat Fungsi pembuatan header. |
INPUT_TRANSFORM_FUNCTION |
opsional untuk endpoint model embedding teks dengan dukungan bawaan; jangan tetapkan untuk endpoint model generik | Fungsi untuk mengubah input fungsi prediksi yang sesuai menjadi input khusus model. Lihat Fungsi transformasi. |
OUTPUT_TRANSFORM_FUNCTION |
opsional untuk endpoint model embedding teks dengan dukungan bawaan; jangan tetapkan untuk endpoint model generik | Fungsi untuk mengubah output khusus model menjadi output fungsi prediksi. Lihat Fungsi transformasi. |
google_ml.alter_model()
Berikut ini cara memanggil fungsi SQL google_ml.alter_model()
yang digunakan untuk mengupdate metadata endpoint model:
CALL
google_ml.alter_model(
model_id => 'MODEL_ID',
model_request_url => 'REQUEST_URL',
model_provider => 'PROVIDER_ID',
model_type => 'MODEL_TYPE',
model_qualified_name => 'MODEL_QUALIFIED_NAME',
model_auth_type => 'AUTH_TYPE',
model_auth_id => 'AUTH_ID',
generate_headers_fn => 'GENERATE_HEADER_FUNCTION',
model_in_transform_fn => 'INPUT_TRANSFORM_FUNCTION',
model_out_transform_fn => 'OUTPUT_TRANSFORM_FUNCTION');
Untuk informasi tentang nilai yang harus Anda tetapkan untuk setiap parameter, lihat Membuat model.
google_ml.drop_model()
fungsi
Berikut ini menunjukkan cara memanggil fungsi SQL google_ml.drop_model()
yang digunakan untuk menghapus endpoint model:
CALL google_ml.drop_model('MODEL_ID');
Parameter | Deskripsi |
---|---|
MODEL_ID |
ID unik untuk endpoint model yang Anda tentukan. |
google_ml.list_model()
fungsi
Berikut ini menunjukkan cara memanggil fungsi SQL google_ml.list_model()
yang digunakan untuk mencantumkan informasi endpoint model:
SELECT google_ml.list_model('MODEL_ID');
Parameter | Deskripsi |
---|---|
MODEL_ID |
ID unik untuk endpoint model yang Anda tentukan. |
Tampilan google_ml.model_info_view
Berikut ini menunjukkan cara memanggil tampilan google_ml.model_info_view
yang
digunakan untuk mencantumkan informasi endpoint model untuk semua endpoint model:
SELECT * FROM google_ml.model_info_view;
Rahasia
Gunakan referensi ini untuk memahami parameter untuk fungsi yang memungkinkan Anda mengelola secret.
google_ml.create_sm_secret()
fungsi
Berikut ini cara memanggil fungsi SQL google_ml.create_sm_secret()
yang digunakan untuk menambahkan secret yang dibuat di Secret Manager:
CALL
google_ml.create_sm_secret(
secret_id => 'SECRET_ID',
secret_path => 'projects/project-id/secrets/SECRET_MANAGER_SECRET_ID/versions/VERSION_NUMBER');
Parameter | Deskripsi |
---|---|
SECRET_ID |
ID secret yang Anda tetapkan dan kemudian digunakan saat mendaftarkan endpoint model. |
PROJECT_ID |
ID project Google Cloud yang berisi secret. |
SECRET_MANAGER_SECRET_ID |
ID secret yang ditetapkan di Secret Manager saat Anda membuat secret. |
VERSION_NUMBER |
Nomor versi ID rahasia. |
google_ml.alter_sm_secret()
fungsi
Berikut ini cara memanggil fungsi SQL google_ml.alter_sm_secret()
yang digunakan untuk memperbarui informasi rahasia:
CALL
google_ml.alter_sm_secret(
secret_id => 'SECRET_ID',
secret_path => 'projects/project-id/secrets/SECRET_MANAGER_SECRET_ID/versions/VERSION_NUMBER');
Untuk mengetahui informasi tentang nilai yang harus Anda tetapkan untuk setiap parameter, lihat Membuat secret.
google_ml.drop_sm_secret()
fungsi
Berikut ini cara memanggil fungsi SQL google_ml.drop_sm_secret()
yang digunakan untuk menghapus secret:
CALL google_ml.drop_sm_secret('SECRET_ID');
Parameter | Deskripsi |
---|---|
SECRET_ID |
ID secret yang Anda tetapkan dan kemudian digunakan saat mendaftarkan endpoint model. |
Fungsi prediksi
Gunakan referensi ini untuk memahami parameter untuk fungsi yang memungkinkan Anda membuat penyematan atau memanggil prediksi.
google_ml.embedding()
fungsi
Berikut ini cara membuat penyematan:
SELECT
google_ml.embedding(
model_id => 'MODEL_ID',
contents => 'CONTENT');
Parameter | Deskripsi |
---|---|
MODEL_ID |
ID unik untuk endpoint model yang Anda tentukan. |
CONTENT |
Teks yang akan diterjemahkan menjadi penyematan vektor. |
Misalnya, kueri SQL untuk membuat penyematan teks, lihat Contoh fungsi transformasi untuk AlloyDB Omni.
google_ml.predict_row()
fungsi
Berikut ini cara memanggil prediksi:
SELECT
google_ml.predict_row(
model_id => 'MODEL_ID',
request_body => 'REQUEST_BODY');
Parameter | Deskripsi |
---|---|
MODEL_ID |
ID unik untuk endpoint model yang Anda tentukan. |
REQUEST_BODY |
Parameter untuk fungsi prediksi, dalam format JSON. |
Misalnya, kueri SQL untuk memanggil prediksi, lihat Contoh untuk AlloyDB Omni.
Fungsi transformasi
Gunakan referensi ini untuk memahami parameter untuk fungsi transformasi input dan output.
Fungsi transformasi input
Berikut ini menunjukkan tanda tangan untuk fungsi prediksi untuk endpoint model penyematan teks:
CREATE OR REPLACE FUNCTION INPUT_TRANSFORM_FUNCTION(model_id VARCHAR(100), input_text TEXT) RETURNS JSON;
Parameter | Deskripsi |
---|---|
INPUT_TRANSFORM_FUNCTION |
Fungsi untuk mengubah input fungsi prediksi yang sesuai ke input khusus endpoint model. |
Fungsi transformasi output
Berikut ini menunjukkan tanda tangan untuk fungsi prediksi untuk endpoint model penyematan teks:
CREATE OR REPLACE FUNCTION OUTPUT_TRANSFORM_FUNCTION(model_id VARCHAR(100), response_json JSON) RETURNS real[];
Parameter | Deskripsi |
---|---|
OUTPUT_TRANSFORM_FUNCTION |
Fungsi untuk mengubah output khusus endpoint model menjadi output fungsi prediksi. |
Contoh fungsi transformasi
Untuk lebih memahami cara membuat fungsi transformasi untuk endpoint model Anda, pertimbangkan endpoint model penyematan teks yang dihosting secara kustom yang memerlukan input dan output JSON.
Contoh permintaan cURL berikut membuat penyematan berdasarkan perintah dan endpoint model:
curl -m 100 -X POST https://cymbal.com/models/text/embeddings/v1 \
-H "Content-Type: application/json"
-d '{"prompt": ["AlloyDB Embeddings"]}'
Contoh respons berikut akan ditampilkan:
[[ 0.3522231 -0.35932037 0.10156056 0.17734447 -0.11606089 -0.17266059
0.02509351 0.20305622 -0.09787305 -0.12154685 -0.17313677 -0.08075467
0.06821183 -0.06896557 0.1171584 -0.00931572 0.11875633 -0.00077482
0.25604948 0.0519384 0.2034983 -0.09952664 0.10347155 -0.11935943
-0.17872004 -0.08706985 -0.07056875 -0.05929353 0.4177883 -0.14381726
0.07934926 0.31368294 0.12543282 0.10758053 -0.30210832 -0.02951015
0.3908268 -0.03091059 0.05302926 -0.00114946 -0.16233777 0.1117468
-0.1315904 0.13947351 -0.29569918 -0.12330773 -0.04354299 -0.18068913
0.14445548 0.19481727]]
Berdasarkan input dan respons ini, kita dapat menyimpulkan hal berikut:
Model mengharapkan input JSON melalui kolom
prompt
. Kolom ini menerima array input. Karena fungsigoogle_ml.embedding()
adalah fungsi tingkat baris, fungsi ini mengharapkan satu input teks dalam satu waktu. Oleh karena itu,Anda perlu membuat fungsi transformasi input yang membuat array dengan elemen tunggal.Respons dari model adalah array penyematan, satu untuk setiap input perintah ke model. Karena fungsi
google_ml.embedding()
adalah fungsi tingkat baris, fungsi ini menampilkan satu input dalam satu waktu. Oleh karena itu, Anda perlu membuat fungsi transformasi output yang dapat digunakan untuk mengekstrak penyematan dari array.
Contoh berikut menunjukkan fungsi transformasi input dan output yang digunakan untuk endpoint model ini saat didaftarkan dengan pengelolaan endpoint model:
fungsi transformasi input
CREATE OR REPLACE FUNCTION cymbal_text_input_transform(model_id VARCHAR(100), input_text TEXT)
RETURNS JSON
LANGUAGE plpgsql
AS $$
DECLARE
transformed_input JSON;
model_qualified_name TEXT;
BEGIN
SELECT json_build_object('prompt', json_build_array(input_text))::JSON INTO transformed_input;
RETURN transformed_input;
END;
$$;
fungsi transformasi output
CREATE OR REPLACE FUNCTION cymbal_text_output_transform(model_id VARCHAR(100), response_json JSON)
RETURNS REAL[]
LANGUAGE plpgsql
AS $$
DECLARE
transformed_output REAL[];
BEGIN
SELECT ARRAY(SELECT json_array_elements_text(response_json->0)) INTO transformed_output;
RETURN transformed_output;
END;
$$;
Fungsi pembuatan header HTTP
Berikut ini menunjukkan tanda tangan untuk fungsi pembuatan header yang dapat
digunakan dengan fungsi prediksi google_ml.embedding()
saat mendaftarkan endpoint
model penyematan teks lainnya.
CREATE OR REPLACE FUNCTION GENERATE_HEADERS(model_id VARCHAR(100), input_text TEXT) RETURNS JSON;
Untuk fungsi prediksi google_ml.predict_row()
, tanda tangannya adalah sebagai
berikut:
CREATE OR REPLACE FUNCTION GENERATE_HEADERS(model_id TEXT, input JSON) RETURNS JSON;
Parameter | Deskripsi |
---|---|
GENERATE_HEADERS |
Fungsi untuk membuat header kustom. Anda juga dapat meneruskan header otorisasi yang dihasilkan oleh fungsi pembuatan header saat mendaftarkan endpoint model. |
Contoh fungsi pembuatan header
Untuk lebih memahami cara membuat fungsi yang menghasilkan output dalam key-value pair JSON yang digunakan sebagai header HTTP, pertimbangkan endpoint model penyematan teks yang dihosting secara kustom.
Contoh permintaan cURL berikut meneruskan header HTTP version
yang digunakan oleh endpoint model:
curl -m 100 -X POST https://cymbal.com/models/text/embeddings/v1 \
-H "Content-Type: application/json" \
-H "version: 2024-01-01" \
-d '{"prompt": ["AlloyDB Embeddings"]}'
Model mengharapkan input teks melalui kolom version
dan menampilkan nilai versi dalam format JSON. Contoh berikut menunjukkan fungsi pembuatan header
yang digunakan untuk endpoint model penyematan teks ini saat didaftarkan dengan pengelolaan
endpoint model:
CREATE OR REPLACE FUNCTION header_gen_fn(model_id VARCHAR(100), input_text TEXT)
RETURNS JSON
LANGUAGE plpgsql
AS $$
BEGIN
RETURN json_build_object('version', '2024-01-01')::JSON;
END;
$$;
Fungsi pembuatan header menggunakan Kunci API
Contoh berikut menunjukkan cara menyiapkan autentikasi menggunakan kunci API.
model penyematan
CREATE OR REPLACE FUNCTION header_gen_func(
model_id VARCHAR(100),
input_text TEXT
)
RETURNS JSON
LANGUAGE plpgsql
AS $$
#variable_conflict use_variable
BEGIN
RETURN json_build_object('Authorization', 'API_KEY')::JSON;
END;
$$;
Ganti API_KEY
dengan kunci API penyedia model.
model generik
CREATE OR REPLACE FUNCTION header_gen_func(
model_id VARCHAR(100),
response_json JSON
)
RETURNS JSON
LANGUAGE plpgsql
AS $$
#variable_conflict use_variable
DECLARE
transformed_output REAL[];
BEGIN
-- code to add Auth token to API request
RETURN json_build_object('x-api-key', 'API_KEY', 'anthropic-version', '2023-06-01')::JSON;
END;
$$;
Ganti API_KEY
dengan kunci API penyedia model.
Membuat URL permintaan
Gunakan fungsi pembuatan URL permintaan untuk menyimpulkan URL permintaan untuk endpoint model dengan dukungan bawaan. Berikut ini menunjukkan tanda tangan untuk fungsi ini:
CREATE OR REPLACE FUNCTION GENERATE_REQUEST_URL(provider google_ml.model_provider, model_type google_ml.MODEL_TYPE, model_qualified_name VARCHAR(100), model_region VARCHAR(100) DEFAULT NULL)
Parameter | Deskripsi |
---|---|
GENERATE_REQUEST_URL |
Fungsi untuk membuat URL permintaan yang dihasilkan oleh ekstensi untuk endpoint model dengan dukungan bawaan. |
Model yang didukung
Anda dapat menggunakan pengelolaan endpoint model untuk mendaftarkan penyematan teks atau endpoint model generik. Pengelolaan endpoint model juga mencakup model Vertex AI yang terdaftar sebelumnya dan model dengan dukungan bawaan. Untuk mengetahui informasi selengkapnya tentang berbagai jenis model, lihat Jenis model.
Model Vertex AI yang terdaftar sebelumnya
Jenis model | ID Model | Versi ekstensi |
---|---|---|
generic |
|
versi 1.4.2 dan yang lebih baru |
text_embedding |
|
versi 1.3 dan yang lebih baru |
Model dengan dukungan bawaan
Vertex AI
Nama model yang memenuhi syarat | Jenis model |
---|---|
text-embedding-gecko@001 |
text-embedding |
text-embedding-gecko@003 |
text-embedding |
text-embedding-004 |
text-embedding |
text-embedding-005 |
text-embedding |
text-embedding-preview-0815 |
text-embedding |
text-multilingual-embedding-002 |
text-embedding |
OpenAI
Nama model yang memenuhi syarat | Jenis model |
---|---|
text-embedding-ada-002 |
text-embedding |
text-embedding-3-small |
text-embedding |
text-embedding-3-large |
text-embedding |
Anthropic
Nama model yang memenuhi syarat | Jenis model |
---|---|
claude-3-opus-20240229 |
generic |
claude-3-sonnet-20240229 |
generic |
claude-3-haiku-20240307 |
generic |