AlloyDB AI 是 AlloyDB Omni 隨附的一系列功能,可協助您建構企業生成式 AI 應用程式。如要進一步瞭解 AlloyDB 的 AI/ML 功能,請參閱「建構生成式 AI 應用程式」。
AlloyDB Omni 搭配 AlloyDB AI 可讓您使用 google_ml_integration 擴充功能查詢遠端 ML 模型,並處理 ML 模型產生的線上預測和文字嵌入項目。如果您使用 google_ml.predict_row 介面,並在查詢中自行翻譯,AlloyDB Omni 搭配 AlloyDB AI 也能處理其他內容 (例如圖片) 的向量嵌入。
設定 Google Cloud 來查詢遠端模型
如要查詢 Vertex AI 模型,請務必先使用 Vertex AI 設定 AlloyDB Omni 服務帳戶,再安裝 AlloyDB Omni。
如要設定服務帳戶來查詢遠端模型,請按照下列步驟操作:
使用 建立服務帳戶。Google Cloud您會在後續步驟中授予這個服務帳戶存取 Vertex AI 的權限。
建立服務帳戶金鑰,以 JSON 格式儲存至
private-key.json檔案,然後下載。將您建立的服務帳戶金鑰複製到 KEY_PATH。金鑰路徑應為主機上可存取的路徑,且由將執行 AlloyDB Omni 的使用者擁有。
在 Google Cloud 專案中啟用 Vertex AI API。
gcloud services enable aiplatform.googleapis.com
為適當的專案和服務帳戶新增 Vertex AI Identity and Access Management (IAM) 權限。
gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:SERVICE_ACCOUNT_ID" \ --role="roles/aiplatform.user"更改下列內容:
PROJECT_ID: Google Cloud 專案的 ID。SERVICE_ACCOUNT_ID:您在步驟一中建立的服務帳戶 ID。包括完整的@PROJECT_ID.iam.gserviceaccount.com後置字串。例如:my-service@my-project.iam.gserviceaccount.com。
- 安裝 AlloyDB Omni RPM 套件。
為 AlloyDB Omni 設定 AlloyDB AI
安裝 AlloyDB Omni RPM 套件後,請完成下列步驟來整合 AlloyDB AI:
完成「設定 Google Cloud 查詢遠端模型」一文列出的所有步驟。
將服務帳戶金鑰移至 AlloyDB Omni 的資料目錄。
sudo mv KEY_PATH DATA_DIR/private-key.json請替換下列變數:
KEY_PATH:服務帳戶金鑰檔案的路徑。DATA_DIR:儲存資料的主機目錄路徑。
將服務帳戶金鑰的擁有者設為
postgres,權限設為600。sudo chown postgres:postgres DATA_DIR/private-key.json sudo chmod 600 DATA_DIR/private-key.json在
postgresql.conf檔案中新增下列選項,更新 AlloyDB Omni 設定:sudo tee -a DATA_DIR/postgresql.conf << EOF omni_enable_ml_agent_process = 'on' omni_google_cloud_private_key_file_path = 'DATA_DIR/private-key.json' EOF重新啟動 AlloyDB Omni 服務。
sudo systemctl restart alloydbomni18
使用 psql 連線
如要連線至 AlloyDB Omni 資料庫,請執行下列指令:
sudo -u postgres /usr/lib/postgresql/18/bin/psql -U postgres使用 AlloyDB AI 安裝作業驗證 AlloyDB Omni
如要確認安裝成功並使用模型預測,請輸入下列內容:
CREATE EXTENSION IF NOT EXISTS google_ml_integration CASCADE;
SELECT array_dims(embedding('text-embedding-005', 'AlloyDB AI')::real[]);
輸出看起來類似以下內容:
array_dims
------------
[1:768]
(1 row)
在先前的查詢中,embedding() 呼叫會為輸入文字 AlloyDB AI 生成嵌入。
array_dims 會傳回 embedding() 傳回的陣列維度。由於 text-embedding-005 模型會傳回包含 768 個維度的輸出內容,因此輸出內容為 [768]。