本頁說明如何安裝 AlloyDB Omni,以及整合 AlloyDB AI。
AlloyDB AI 是 AlloyDB Omni 內含的一系列功能,可讓您建構企業生成式 AI 應用程式。如要進一步瞭解 AlloyDB 的 AI/ML 功能,請參閱「建構生成式 AI 應用程式」。
AlloyDB Omni 搭配 AlloyDB AI 可讓您查詢遠端 ML 模型,並使用 ML 模型產生的線上預測和文字嵌入。如果您使用 google_ml.predict_row
介面,並在查詢中自行翻譯,AlloyDB Omni 搭配 AlloyDB AI 也能處理其他內容 (例如圖片) 的向量嵌入。
根據您要安裝 AlloyDB Omni 和 AlloyDB AI 的位置,選取下列其中一個選項:
設定 AlloyDB Omni 執行個體,查詢遠端模型
您可以在資料庫叢集資訊清單中啟用 googleMLExtension
,透過模型端點管理服務查詢遠端模型。
如要查詢 Vertex AI 模型,您必須設定 AlloyDB 服務帳戶與 Vertex AI,使用金鑰建立 Kubernetes 密鑰,並在資料庫叢集資訊清單中設定 Kubernetes 密鑰。
為 AlloyDB 服務帳戶新增 Vertex AI 權限
如要設定 AlloyDB Omni 查詢遠端 Vertex AI 模型,請按照下列步驟操作:
建立服務帳戶金鑰,並以 JSON 格式儲存至
private-key.json
檔案,然後下載。將金鑰儲存在檔案系統的永久位置。在 AlloyDB Omni 伺服器的生命週期內,這個檔案都會位於這個位置。
記下檔案在檔案系統中的位置,後續步驟會用到。
為適當的專案和服務帳戶新增 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
。
使用服務帳戶金鑰建立 Kubernetes 密鑰
如要根據先前步驟下載的服務帳戶金鑰建立 Kubernetes 密鑰,請執行下列指令:
kubectl create secret generic SECRET_NAME \ --from-file=PATH_TO_SERVICE_ACCOUNT_KEY/private-key.json \ -n NAMESPACE
更改下列內容:
:建立
DBCluster
資訊清單時使用的密鑰名稱,可讓 AlloyDB Omni 存取 AlloyDB AI 功能。SECRET_NAME
例如:vertex-ai-key-alloydb
。PATH_TO_SERVICE_ACCOUNT_KEY
:您下載private-key.json
服務帳戶金鑰的路徑。NAMESPACE
:資料庫叢集的命名空間。
安裝 AlloyDB Omni 運算子
按照「安裝 AlloyDB Omni 運算子」一文中的步驟,安裝 AlloyDB Omni 運算子。
使用 AlloyDB AI 建立資料庫叢集
使用 AlloyDB AI 建立資料庫叢集。
在
googleMLExtension
欄位下將enabled
設為true
,即可查詢遠端模型。如要查詢 Vertex AI 模型,請將vertexAIKeyRef
設為 Kubernetes 密鑰。apiVersion: v1 kind: Secret metadata: name: db-pw-DB_CLUSTER_NAME type: Opaque data: DB_CLUSTER_NAME: "ENCODED_PASSWORD" --- apiVersion: alloydbomni.dbadmin.goog/v1 kind: DBCluster metadata: name: DB_CLUSTER_NAME spec: databaseVersion: "16.8.0" primarySpec: adminUser: passwordRef: name: db-pw-DB_CLUSTER_NAME features: googleMLExtension: enabled: true config: vertexAIKeyRef: VERTEX_AI_SECRET_NAME vertexAIRegion: VERTEX_AI_REGION resources: cpu: CPU_COUNT memory: MEMORY_SIZE disks: - name: DataDisk size: DISK_SIZE storageClass: standard
更改下列內容:
DB_CLUSTER_NAME
:這個資料庫叢集的名稱,例如my-db-cluster
。VERTEX_AI_SECRET_NAME
(選用):您在先前步驟中建立的 Vertex AI 密碼。如要呼叫 Vertex AI 模型,請務必設定這個選項。VERTEX_AI_REGION
(選用):要將要求傳送至的 Vertex AI 區域端點,例如us-west4
。預設值為us-central1
。ENCODED_PASSWORD
:預設postgres
使用者角色的資料庫登入密碼,以 Base64 字串編碼,例如ChangeMe123
的Q2hhbmdlTWUxMjM=
。CPU_COUNT
:這個資料庫叢集中每個資料庫執行個體可用的 CPU 數量。MEMORY_SIZE
:這個資料庫叢集的每個資料庫執行個體記憶體量。建議您將每個 CPU 的記憶體設為 8 GB。舉例來說,如果您先前在這個資訊清單中將cpu
設為2
,建議將memory
設為16Gi
。DISK_SIZE
:每個資料庫執行個體的磁碟大小,例如10Gi
。
套用資訊清單。
kubectl apply -f DB_CLUSTER_YAML
更改下列內容:
DB_CLUSTER_YAML
:這個資料庫叢集資訊清單檔案的名稱,例如alloydb-omni-db-cluster.yaml
。
使用預先安裝的 psql 連線
您可以使用已安裝在執行資料庫的 Pod 上的 psql
用戶端,建立測試連線。
如要這麼做,請執行下列指令:
export DBPOD=`kubectl get pod --selector=alloydbomni.internal.dbadmin.goog/dbcluster=DB_CLUSTER_NAME,alloydbomni.internal.dbadmin.goog/task-type=database -o jsonpath='{.items[0].metadata.name}'`
kubectl exec -ti $DBPOD -c database -- psql -h localhost -U postgres
將 DB_CLUSTER_NAME
替換為資料庫叢集的名稱。也就是您建立資料庫叢集時宣告的名稱。
輸入指令後,資料庫伺服器會提示您輸入密碼。輸入您在建立資料庫叢集時,以 Kubernetes Secret 形式提供的 Base64 編碼密碼。舉例來說,如果您使用 Q2hhbmdlTWUxMjM=
密碼建立資料庫叢集,則這裡使用的登入密碼為 ChangeMe123
。
驗證 AlloyDB Omni 和 AlloyDB AI 安裝作業
如要確認安裝是否成功並使用模型預測,請輸入下列內容:
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]
。