在 Cloud SQL 總覽中註冊及呼叫遠端 AI 模型

本頁說明如何註冊 AI 模型端點,以及如何使用 Cloud SQL 中的模型端點管理功能叫用預測。如要在正式環境中使用 AI 模型,請參閱「生成及管理向量嵌入」。

總覽

模型端點管理功能可讓您註冊模型端點、管理 Cloud SQL 執行個體中的模型端點中繼資料,然後使用 SQL 查詢與模型互動。您可以使用這些模型生成向量嵌入,或叫用預測。

您可以使用模型端點管理功能,註冊下列模型類型:

  • Vertex AI 文字嵌入模型。
  • 在 Google Cloud網路中代管的自訂代管文字嵌入模型。
  • 提供 JSON 格式 API 的通用模型。這類模型包括:

    • Vertex AI Model Garden 中的 gemini-flash 模型
    • OpenAI 模型的 open_ai 模型
    • Google Cloud內網路中代管的模型

運作方式

您可以透過模型端點管理服務,註冊符合下列條件的模型端點:

  • 模型輸入和輸出內容支援 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 以上,請參閱自助式維護。 升級執行個體後,您可以使用下列函式:

此外,您也可以搭配已註冊的模型供應商使用下列函式:

必要的資料庫使用者權限

如要註冊及呼叫遠端 AI 模型,您必須以 MySQL 資料庫使用者的身分登入,且該使用者已獲授 mysql.* 權限的 SELECTEXECUTE

根據預設,具有 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_embeddinggeneric 模型類型。

如果您使用 Vertex AI 做為模型供應商,則不需要註冊模型端點,因為系統會自動支援端點。預設情況下,您會使用 Vertex AI 的 text-embedding-005 模型。

其他文字嵌入模型
如果是其他文字嵌入模型,您需要建立轉換函式,處理模型支援的輸入和輸出格式。您可以視需要使用 HTTP 標頭產生函式,產生模型所需的自訂標頭。

這些模型的模型類型為 text_embedding

通用模型
模型端點管理服務也支援註冊文字嵌入模型以外的所有其他模型類型。如要叫用一般模型的預測功能,請使用 mysql.ml_predict_row() 函式。您可以設定模型端點中繼資料,例如專屬模型的要求端點和 HTTP 標頭。
註冊泛型模型端點時,您無法傳遞轉換函式。請確保在叫用預測時,函式的輸入內容為 JSON 格式,並剖析 JSON 輸出內容,以衍生最終輸出內容。
這些模型的模型類型為 generic。由於 generic 是預設模型類型,因此如果您為這個類型註冊模型端點,則設定模型類型是選用步驟。
使用 Vertex AI 時,模型端點管理功能會預先註冊支援 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 以上版本。

後續步驟