Halaman ini mencantumkan parameter untuk berbagai fungsi yang disediakan oleh Cloud SQL untuk mendaftarkan dan mengelola endpoint model. Halaman ini juga mencantumkan secret yang dapat Anda kelola menggunakan pengelolaan endpoint model.
Model
Gunakan referensi ini untuk memahami parameter fungsi yang memungkinkan Anda mengelola endpoint model.
mysql.ml_create_model_registration()
Berikut cara menggunakan fungsi mysql.ml_create_model_registration()
untuk mendaftarkan metadata endpoint model:
CALL
mysql.ml_create_model_registration(
'MODEL_ID',
'REQUEST_URL',
'PROVIDER_ID',
'MODEL_TYPE',
'MODEL_QUALIFIED_NAME',
'AUTH_TYPE',
'AUTH_ID',
'GENERATE_HEADER_FUNCTION',
'INPUT_TRANSFORM_FUNCTION',
'OUTPUT_TRANSFORM_FUNCTION');
Parameter | Wajib | Deskripsi |
---|---|---|
MODEL_ID |
Wajib untuk semua endpoint model | ID unik untuk endpoint model yang Anda tentukan. |
REQUEST_URL |
Dapat berupa NULL untuk model Vertex AI | Endpoint khusus model saat menambahkan endpoint model generik dan penyematan teks lainnya. URL permintaan yang dibuat fungsi untuk endpoint model bawaan merujuk ke project dan wilayah atau lokasi cluster Anda. Jika Anda ingin merujuk ke project lain, pastikan Anda menentukan Untuk endpoint model yang dihosting kustom, pastikan endpoint model dapat diakses melalui internet. |
PROVIDER_ID |
Wajib untuk endpoint model embedding teks dengan dukungan bawaan | Penyedia endpoint model. Nilai defaultnya adalah custom . Untuk Cloud SQL, tetapkan penyedia ke google untuk endpoint model Vertex AI, open_ai untuk endpoint model OpenAI, anthropic untuk endpoint model Anthropic, hugging_face untuk endpoint model Hugging Face, atau custom untuk endpoint model yang dihosting kustom. |
MODEL_TYPE |
Dapat berupa NULL untuk endpoint model generik | Jenis model. Anda dapat menetapkan nilai ini ke text_embedding untuk endpoint model penyematan teks atau generic untuk semua endpoint model lainnya. |
MODEL_QUALIFIED_NAME |
Wajib diisi untuk endpoint model OpenAI; dapat berupa NULL untuk endpoint model lainnya | Nama yang sepenuhnya memenuhi syarat jika endpoint model memiliki beberapa versi atau jika endpoint model menentukannya—misalnya, textembedding-gecko@001 atau textembedding-gecko@002 . Karena model textembedding-gecko@001 telah didaftarkan sebelumnya dengan pengelolaan endpoint model, Anda dapat membuat embedding menggunakan textembedding-gecko@001 sebagai ID model. |
AUTH_TYPE |
Dapat berupa NULL kecuali jika endpoint model memiliki persyaratan autentikasi tertentu | Jenis autentikasi yang digunakan oleh endpoint model. Anda dapat menyetelnya ke auth_type_cloudsql_service_agent_iam untuk model Vertex AI atau auth_type_secret_manager untuk penyedia lain. |
AUTH_ID |
Teruskan sebagai NULL untuk endpoint Vertex AI; diperlukan untuk semua endpoint model lainnya yang menyimpan secret di Secret Manager | ID rahasia yang Anda tetapkan dan selanjutnya digunakan saat mendaftarkan endpoint model. |
GENERATE_HEADER_FUNCTION |
Dapat berupa NULL | Nama fungsi yang Anda tetapkan untuk membuat header kustom. Tanda tangan fungsi ini bergantung pada fungsi mysql.ml_predict_row() . Lihat Fungsi pembuatan Header HTTP. |
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. |
mysql.ml_alter_model_registration()
Berikut cara memanggil fungsi SQL mysql.ml_alter_model_registration()
yang digunakan untuk memperbarui metadata endpoint model:
CALL
mysql.ml_alter_model_registration(
'MODEL_ID',
'REQUEST_URL',
'PROVIDER_ID',
'MODEL_TYPE',
'MODEL_QUALIFIED_NAME',
'AUTH_TYPE',
'AUTH_ID',
'GENERATE_HEADER_FUNCTION',
'INPUT_TRANSFORM_FUNCTION',
'OUTPUT_TRANSFORM_FUNCTION');
mysql.ml_drop_model_registration()
Berikut cara memanggil fungsi SQL mysql.ml_drop_model_registration()
yang digunakan untuk menghapus endpoint model:
CALL mysql.ml_drop_model_registration('MODEL_ID');
Parameter | Deskripsi |
---|---|
MODEL_ID |
ID unik untuk endpoint model yang Anda tentukan. |
mysql.ml_list_registered_model()
Berikut ini menunjukkan cara memanggil fungsi SQL mysql.ml_list_registered_model()
yang digunakan
untuk mencantumkan informasi endpoint model:
SELECT mysql.ml_list_registered_model('MODEL_ID');
Parameter | Deskripsi |
---|---|
MODEL_ID |
ID unik untuk endpoint model yang Anda tentukan. |
mysql.cloudsql_ml_models
Berikut ini cara membuat kueri tabel mysql.cloudsql_ml_models
yang
digunakan untuk mencantumkan informasi endpoint model untuk semua endpoint model:
SELECT * FROM mysql.cloudsql_ml_models;
Rahasia
Gunakan referensi ini untuk memahami parameter fungsi yang memungkinkan Anda mengelola secret.
mysql.ml_create_sm_secret_registration()
Berikut cara memanggil fungsi SQL mysql.ml_create_sm_secret_registration()
yang digunakan untuk menambahkan secret yang dibuat di Secret Manager:
CALL
mysql.ml_create_sm_secret_registration(
'SECRET_ID',
'projects/PROJECT_ID/secrets/SECRET_MANAGER_SECRET_ID/versions/VERSION_NUMBER');
Parameter | Deskripsi |
---|---|
SECRET_ID |
ID rahasia yang Anda tetapkan dan selanjutnya digunakan saat mendaftarkan endpoint model. |
PROJECT_ID |
ID project Trusted Cloud by S3NS yang berisi rahasia. Project ini dapat berbeda dengan project yang berisi instance Cloud SQL Anda. |
SECRET_MANAGER_SECRET_ID |
ID secret yang ditetapkan di Secret Manager saat Anda membuat secret. |
VERSION_NUMBER |
Nomor versi ID rahasia. |
mysql.ml_alter_sm_secret_registration()
Berikut cara memanggil fungsi SQL mysql.ml_alter_sm_secret_registration()
yang digunakan untuk memperbarui informasi rahasia:
CALL
mysql.ml_alter_sm_secret_registration(
'SECRET_ID',
'projects/PROJECT_ID/secrets/SECRET_MANAGER_SECRET_ID/versions/VERSION_NUMBER');
Parameter | Deskripsi |
---|---|
SECRET_ID |
ID rahasia yang Anda tetapkan dan selanjutnya digunakan saat mendaftarkan endpoint model. |
PROJECT_ID |
ID project Trusted Cloud by S3NS yang berisi rahasia. Project ini dapat berbeda dengan project yang berisi instance Cloud SQL Anda. |
SECRET_MANAGER_SECRET_ID |
ID secret yang ditetapkan di Secret Manager saat Anda membuat secret. |
VERSION_NUMBER |
Nomor versi ID rahasia. |
mysql.ml_drop_sm_secret_registration()
Berikut cara memanggil fungsi SQL mysql.ml_drop_sm_secret_registration()
yang digunakan untuk menghapus rahasia:
CALL mysql.ml_drop_sm_secret_registration('SECRET_ID');
Parameter | Deskripsi |
---|---|
SECRET_ID |
ID rahasia yang Anda tetapkan dan selanjutnya digunakan saat mendaftarkan endpoint model. |
Fungsi prediksi
Gunakan referensi ini untuk memahami parameter fungsi yang memungkinkan Anda membuat sematan atau memanggil prediksi.
mysql.ml_embedding()
Berikut cara membuat sematan:
SELECT
mysql.ml_embedding(
'MODEL_ID',
'CONTENT');
Parameter | Deskripsi |
---|---|
MODEL_ID |
ID unik untuk endpoint model yang Anda tentukan. |
CONTENT |
teks yang akan diterjemahkan ke dalam embedding vektor. |
Untuk contoh kueri SQL guna menghasilkan embedding teks, lihat Contoh.
mysql.ml_predict_row()
Berikut cara memanggil prediksi:
SELECT
mysql.ml_predict_row(
'MODEL_ID',
'REQUEST_BODY');
Parameter | Deskripsi |
---|---|
MODEL_ID |
ID unik untuk endpoint model yang Anda tentukan. |
REQUEST_BODY |
parameter ke fungsi prediksi, dalam format JSON. |
Untuk contoh kueri SQL guna memanggil prediksi, lihat Contoh.
Fungsi transformasi
Gunakan referensi ini untuk memahami parameter fungsi transformasi input dan output.
Fungsi transformasi input
Berikut ini menunjukkan tanda tangan untuk fungsi prediksi untuk endpoint model penyematan teks:
CREATE FUNCTION IF NOT EXISTS
INPUT_TRANSFORM_FUNCTION(model_id VARCHAR(100), input_text TEXT) RETURNS JSON DETERMINISTIC;
Parameter | Deskripsi |
---|---|
INPUT_TRANSFORM_FUNCTION |
Fungsi untuk mengubah input fungsi prediksi yang sesuai menjadi input khusus endpoint model. |
Fungsi transformasi output
Berikut ini menunjukkan tanda tangan untuk fungsi prediksi untuk endpoint model penyematan teks:
CREATE FUNCTION IF NOT EXISTS
OUTPUT_TRANSFORM_FUNCTION(model_id VARCHAR(100), response_json JSON) RETURNS BLOB DETERMINISTIC;
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 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": ["Cloud SQL Embeddings"]}'
Contoh respons berikut 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, Anda dapat menyimpulkan hal berikut:
Model mengharapkan input JSON melalui kolom
prompt
. Kolom ini menerima array input. Karena fungsimysql.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 membangun array dengan satu elemen.Respons dari model adalah array embedding, satu untuk setiap input perintah ke model. Karena fungsi
mysql.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
DELIMITER $$
CREATE FUNCTION IF NOT EXISTS cymbal_text_input_transform(model_id VARCHAR(100), input_text TEXT)
RETURNS JSON
DETERMINISTIC
BEGIN
RETURN JSON_OBJECT('prompt', JSON_ARRAY(input_text));
END $$
fungsi transformasi output
CREATE FUNCTION IF NOT EXISTS cymbal_text_output_transform(model_id VARCHAR(100), response_json JSON)
RETURNS BLOB
DETERMINISTIC
BEGIN
RETURN STRING_TO_VECTOR(
JSON_EXTRACT(
content,
'$.predictions[0].embeddings.values'
)
);
END $$
DELIMITER ;
HTTP header generation function
The following shows signature for the header generation function that can be used with the `mysql.ml_embedding()` prediction function when registering other text embedding model endpoints.
CREATE FUNCTION IF NOT EXISTS GENERATE_HEADERS(model_id VARCHAR(100), input_text TEXT) RETURNS JSON DETERMINISTIC;
For the mysql.ml_predict_row()
prediction function, the signature is as
follows:
CREATE FUNCTION IF NOT EXISTS GENERATE_HEADERS(model_id TEXT, input JSON) RETURNS JSON DETERMINISTIC;
Parameter | Description |
---|---|
GENERATE_HEADERS |
The function to generate custom headers. You can also pass the authorization header generated by the header generation function while registering the model endpoint. |
Header generation function example
To better understand how to create a function that generates output in JSON key value pairs that are used as HTTP headers, consider a custom-hosted text embedding model endpoint.
The following example curl request passes the version
HTTP header, which is
used by the model endpoint:
curl -m 100 -X POST https://cymbal.com/models/text/embeddings/v1 \
-H "Content-Type: application/json" \
-H "version: 2024-01-01" \
-d '{"prompt": ["Cloud SQL Embeddings"]}'
The model expects text input through the version
field and returns the version
value in JSON format. The following example shows the header generation function
that is used for this text embedding model endpoint when it is registered with model
endpoint management:
DELIMITER $$
CREATE FUNCTION IF NOT EXISTS header_gen_fn(model_id VARCHAR(100), input_text TEXT)
RETURNS JSON
DETERMINISTIC
BEGIN
RETURN JSON_OBJECT('version', '2024-01-01');
END;
$$
DELIMITER ;