本頁說明如何註冊 AI 模型端點,以及如何使用 Cloud SQL 中的模型端點管理功能叫用預測。如要在正式環境中使用 AI 模型,請參閱「生成及管理向量嵌入」。
總覽
模型端點管理功能可讓您註冊模型端點、管理 Cloud SQL 執行個體中的模型端點中繼資料,然後使用 SQL 查詢與模型互動。您可以使用這些模型生成向量嵌入,或叫用預測。
您可以使用模型端點管理功能,註冊下列模型類型:
- Vertex AI 文字嵌入模型。
- 在 Google Cloud網路中代管的自訂代管文字嵌入模型。
提供 JSON 格式 API 的通用模型。這類模型包括:
- Vertex AI Model Garden 中的
gemini-flash
模型 - OpenAI 模型的
open_ai
模型 - Google Cloud內網路中代管的模型
- Vertex AI Model Garden 中的
運作方式
您可以透過模型端點管理服務,註冊符合下列條件的模型端點:
- 模型輸入和輸出內容支援 JSON 格式。
- 您可以使用 REST 通訊協定呼叫模型。
向模型端點管理服務註冊模型端點時,模型端點管理服務會為每個端點註冊專屬模型 ID,做為模型的參照。您可以使用這個模型 ID 查詢模型,如下所示:
生成嵌入項目,將文字提示轉換為數值向量。 在執行個體上啟用向量嵌入支援功能後,您就能將生成的嵌入項目儲存為向量資料。詳情請參閱「在執行個體上啟用及停用向量嵌入」。
在交易中,使用 SQL 呼叫模型來叫用預測。
如要使用 Cloud SQL 執行個體註冊及呼叫遠端 AI 模型,執行個體必須安裝維護版本 MYSQL_VERSION.R20250531.01_14
以上。如果執行個體執行的維護版本早於 MYSQL_VERSION.R20250531.01_14
,則只能使用整合 Cloud SQL 和 Vertex AI 時記錄的下列函式。
如要將執行個體升級至維護版本 MYSQL_VERSION.R20250531.01_14
以上,請參閱自助式維護。
升級執行個體後,您可以使用下列函式:
mysql.ml_create_model_registration()
:註冊預測或嵌入函式中使用的模型端點mysql.ml_create_sm_secret_registration()
:使用「Secret Manager」中的密鑰,其中儲存了 API 金鑰 Google Cloud
此外,您也可以搭配已註冊的模型供應商使用下列函式:
mysql.ml_embedding()
:生成文字嵌入mysql.ml_predict_row()
:在呼叫支援 JSON 輸入和輸出格式的通用模型時,生成預測結果
必要的資料庫使用者權限
如要註冊及呼叫遠端 AI 模型,您必須以 MySQL 資料庫使用者的身分登入,且該使用者已獲授 mysql.*
權限的 SELECT
和 EXECUTE
。
根據預設,具有 cloudsqlsuperuser
角色的使用者擁有這些權限,或可以建立使用者並授予必要權限。
如要進一步瞭解 Cloud SQL 中的 cloudsqlsuperuser
角色,請參閱「MySQL 8.0 使用者權限」和「MySQL 8.4 使用者權限」。
基本概念
開始使用模型端點管理服務前,請先瞭解連線及使用模型所需的概念。
模型提供者
模型供應商是支援的模型代管供應商。下表列出您必須根據使用的模型供應商設定的模型供應商值:
模型提供者 | 在函式中設定為… |
---|---|
Vertex AI (包括 Gemini) | google |
Anthropic | anthropic |
Hugging Face | hugging_face |
OpenAI | open_ai |
Vertex AI、 Anthropic、Hugging Face 和 OpenAI 以外的其他模型 |
custom |
預設模型供應商為 custom
。
模型類型
模型類型是指 AI 模型的類型。註冊模型端點時,您可以為端點設定 text_embedding
或 generic
模型類型。
如果您使用 Vertex AI 做為模型供應商,則不需要註冊模型端點,因為系統會自動支援端點。預設情況下,您會使用 Vertex AI 的 text-embedding-005
模型。
text_embedding
。mysql.ml_predict_row()
函式。您可以設定模型端點中繼資料,例如專屬模型的要求端點和 HTTP 標頭。generic
。由於 generic
是預設模型類型,因此如果您為這個類型註冊模型端點,則設定模型類型是選用步驟。gemini-2.5-flash
模型。驗證方法
您可以在 MySQL 適用的 Cloud SQL 執行個體中啟用向量嵌入支援功能,然後指定不同的驗證方法來存取模型。這些方法為選用設定,只有在需要驗證才能存取模型時才需要設定。如果是 Vertex AI 模型,則會使用 Cloud SQL 服務帳戶進行驗證。如果是其他模型,可以使用儲存在 Secret Manager 中的 API 金鑰或不記名權杖,搭配 mysql.ml_create_sm_secret_registration()
SQL 函式。
下表列出可設定的驗證方法:
驗證方式 | 在函式中設定為… | 模型提供者 |
---|---|---|
Cloud SQL 服務代理人 | auth_type_cloudsql_service_agent_iam |
Vertex AI 供應商 |
Secret Manager | auth_type_secret_manager |
Vertex AI 外部託管的模型 |
預測函式
mysql.ml_embedding()
- 呼叫已註冊的文字嵌入模型端點,產生嵌入內容。這項服務內建支援 Vertex AI 的所有嵌入模型。
- 對於沒有內建支援的文字嵌入模型,輸入和輸出參數是模型專屬的, 需要轉換,函式才能呼叫模型。 建立轉換輸入函式,將預測函式的輸入內容轉換為模型專屬輸入內容,並建立轉換輸出函式,將模型專屬輸出內容轉換為預測函式輸出內容。
mysql.ml_predict_row()
- 呼叫已註冊的通用模型端點 (如果端點支援以 JSON 為基礎的 API,可叫用預測功能)。
轉換函式
轉換函式會將輸入內容修改為模型可理解的格式,並將模型回應轉換為預測函式預期的格式。註冊沒有內建支援的 text-embedding
模型端點時,會使用轉換函式。轉換函式的簽章取決於模型類型的預測函式。
註冊 generic
模型端點時,無法使用轉換函式。
以下是文字嵌入模型預測函式的簽章:
// 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;
如要進一步瞭解如何建立轉換函式,請參閱轉換函式範例。
HTTP 標頭產生函式
HTTP 標頭產生函式會以 JSON 鍵值對的形式產生輸出內容,做為 HTTP 標頭。預測函式的簽章會定義標頭產生函式的簽章。
以下範例顯示 mysql.ml_embedding()
預測函式的簽章:
CREATE FUNCTION IF NOT EXISTS generate_headers(model_id VARCHAR(100), input TEXT) RETURNS JSON DETERMINISTIC;
mysql.ml_predict_row()
預測函式的簽章如下:
CREATE FUNCTION IF NOT EXISTS generate_headers(model_id VARCHAR(100), input JSON) RETURNS JSON DETERMINISTIC;
如要進一步瞭解如何建立標頭產生函式,請參閱標頭產生函式範例。
限制
執行任何模型註冊或密鑰管理函式時,系統會隱含地提交工作階段中所有開啟的交易。預測函式不會隱含地提交交易。
如果您使用
mysqldump
匯出或匯入資料庫,模型端點目錄就不會匯出。含有轉換函式的使用者資料庫名稱不得包含半形句號 (
'.'
)。舉例來說,系統不支援名為my.sql
的資料庫。模型端點管理功能僅適用於 MySQL 適用的 Cloud SQL 8.0.36 以上版本。
後續步驟
- 為模型供應商設定驗證。
- 使用模型端點管理服務註冊模型端點。
- 瞭解模型端點管理參考資料。