您可以使用支持的 Vertex AI 多模态模型 multimodalembedding@001 在 AlloyDB Omni 中生成多模态嵌入。
您可以使用支持的模型中提及的 Vertex AI 多模态嵌入模型。
本页面假定您熟悉 AlloyDB Omni 和生成式 AI 概念。如需了解详情,请参阅什么是嵌入。
准备工作
在使用多模态嵌入之前,请执行以下操作:
- 配置用户对 Vertex AI 模型的访问权限。
- 验证是否已安装最新版本的
google_ml_integration。如需检查已安装的版本,请运行以下命令:
SELECT extversion FROM pg_extension WHERE extname = 'google_ml_integration'; extversion ------------ 1.5.2 (1 row)
如果未安装该扩展程序,或者安装的版本低于 1.5.2,请更新该扩展程序。
CREATE EXTENSION IF NOT EXISTS google_ml_integration; ALTER EXTENSION google_ml_integration UPDATE;
如果您在运行上述命令时遇到问题,或者在运行上述命令后扩展程序未更新到 1.5.2 版,请与 Google Cloud 支持团队联系。
如需使用 AlloyDB AI 查询引擎功能,请将
google_ml_integration.enable_ai_query_engine标志设置为on。- 使用文本编辑器在 AlloyDB Omni 安装的
postgresql.conf配置文件中设置以下标志:google_ml_integration.enable_ai_query_engine = on
- 保存
postgresql.conf文件后,重启 AlloyDB Omni 服务以使更改生效。sudo systemctl restart alloydbomni18
- 使用文本编辑器在 AlloyDB Omni 安装的
访问 Cloud Storage 中的数据以生成多模态嵌入
- 如需生成多模态嵌入,请使用
gs://URI 引用 Cloud Storage 中的内容。 - 通过当前项目的 Vertex AI 服务代理访问 Cloud Storage 内容。默认情况下,Vertex AI 服务代理已获得访问同一项目中的存储桶的权限。如需了解详情,请参阅 IAM 角色和权限索引。
如需访问其他 Google Cloud 项目的 Cloud Storage 存储桶中的数据,请运行以下 gcloud CLI 命令,以向Google Cloud 项目的 Vertex AI 服务代理授予 Storage Object Viewer 角色 (
roles/storage.objectViewer)。gcloud projects add-iam-policy-binding <ANOTHER_PROJECT_ID> \ --member="serviceAccount:service-<PROJECT_ID>@gcp-sa-aiplatform." \ --role="roles/storage.objectViewer"如需了解详情,请参阅为存储桶设置和管理 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 类型的完整列表,请参阅多模态嵌入 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] 这样的语法进行访问。如需了解详情,请参阅数组。