生成多模態嵌入

AlloyDB for PostgreSQL 的多模態嵌入功能可讓您在共用向量空間中表示文字、圖片和影片,用於跨模態語意搜尋和檢索增強生成 (RAG)。您可以從 SQL 呼叫支援的 Gemini Enterprise Agent Platform 多模態模型 (例如 multimodalembedding@001 模型),為 Cloud Storage 中的文字、圖片或影片片段生成嵌入。如要查看可用模型清單,請參閱「支援的模型」。

如要瞭解 AlloyDB 的生成式 AI 概念和向量嵌入,請參閱「什麼是嵌入」。

事前準備

使用多模態嵌入功能前,請先完成下列步驟:

與 Agent Platform 整合並安裝擴充功能

  1. 設定 Agent Platform 模型的使用者存取權。
  2. 確認已安裝最新版本的 google_ml_integration。
    1. 如要檢查已安裝的版本,請執行下列指令:

      SELECT extversion FROM pg_extension WHERE extname = 'google_ml_integration';
      extversion 
      ------------
      1.5.2
      (1 row)
    2. 如果未安裝擴充功能,或安裝的版本低於 1.5.2,請更新擴充功能。

      CREATE EXTENSION IF NOT EXISTS google_ml_integration;
      ALTER EXTENSION google_ml_integration UPDATE;

      如果您在執行上述指令時遇到問題,或執行上述指令後,擴充功能未更新至 1.5.2 版,請與Google Cloud 支援團隊聯絡。

  3. 如要使用 AlloyDB AI 查詢引擎功能,請將 google_ml_integration.enable_ai_query_engine 旗標設為 on。

    SQL

    1. 為目前的工作階段啟用 AI 查詢引擎。
      SET google_ml_integration.enable_ai_query_engine = on;
    2. 為特定資料庫啟用跨工作階段功能。
      ALTER DATABASE DATABASE_NAME SET google_ml_integration.enable_ai_query_engine = 'on';
    3. 為特定使用者啟用 AI 查詢引擎,適用於所有工作階段和資料庫。
      ALTER ROLE postgres SET google_ml_integration.enable_ai_query_engine = 'on';

    控制台

    如要修改 google_ml_integration.enable_ai_query_engine 旗標的值,請按照「設定執行個體的資料庫旗標」一文中的步驟操作。

    gcloud

    如要使用 gcloud CLI,您可以安裝並初始化 Google Cloud CLI,或使用 Cloud Shell。

    您可以修改 google_ml_integration.enable_ai_query_engine 旗標的值。詳情請參閱「設定執行個體的資料庫旗標」。

    gcloud alloydb instances update INSTANCE_ID \
      --database-flags google_ml_integration.enable_ai_query_engine=on \
      --region=REGION_ID \
      --cluster=CLUSTER_ID \
      --project=PROJECT_ID

存取 Cloud Storage 中的資料,生成多模態嵌入

  • 如要生成多模態嵌入,請使用 gs:// URI 參照 Cloud Storage 中的內容。
  • 透過目前專案的 Agent Platform 服務代理存取 Cloud Storage 內容。根據預設,Agent Platform 服務代理已有權限存取相同專案中的 bucket。詳情請參閱「IAM 角色和權限索引」。
  • 如要存取其他 Google Cloud 專案中 Cloud Storage bucket 的資料,請執行下列 gcloud CLI 指令,將 Storage 物件檢視者角色 (roles/storage.objectViewer) 授予 AlloyDB 專案的 Agent Platform 服務代理。

    gcloud projects add-iam-policy-binding <ANOTHER_PROJECT_ID> \
    --member="serviceAccount:service-<PROJECT_ID>@gcp-sa-aiplatform.iam.gserviceaccount.com" \
    --role="roles/storage.objectViewer"

    詳情請參閱「設定及管理 bucket 的 IAM 政策」。

如要生成多模態嵌入,請選取下列任一結構定義。

生成多模態嵌入

如要為 multimodalembedding@001 模型端點生成文字嵌入,請執行下列陳述式:

SELECT
  ai.text_embedding(
    model_id => 'multimodalembedding@001',
    content => 'TEXT');

將 TEXT 替換為要生成嵌入的文字。

如要為已註冊的 multimodalembedding@001 模型端點生成圖片嵌入 (圖片 MIME 類型預設為 image/jpeg),請執行下列陳述式:

SELECT
  ai.image_embedding(
    model_id => 'multimodalembedding@001',
    image => 'IMAGE_PATH_OR_TEXT',
    mimetype => 'MIMETYPE');

更改下列內容:

  • IMAGE_PATH_OR_TEXT:圖片的 Cloud Storage URI (例如 gs://my-bucket/embeddings/flowers.jpeg) 或圖片的 Base64 字串。
  • MIMETYPE 替換為圖片的 MIME 類型,例如 image/jpeg。如需支援的完整 MIME 類型清單,請參閱 Multimodal embeddings API。

如要為已註冊的 multimodalembedding@001 模型端點生成影片嵌入,請執行下列陳述式:

SELECT
  ai.video_embedding(
    model_id => 'multimodalembedding@001',
    video => 'VIDEO_URI');

將 VIDEO_URI 替換為目標影片的 Cloud Storage URI (例如 gs://my-bucket/embeddings/supermarket-video.mp4),或影片的 Base64 字串。這些是可做為 my_array[0][5] 類語法存取的二維陣列。 詳情請參閱「陣列」。

後續步驟