AlloyDB AI 是 AlloyDB Omni 中包含的一套功能,可让您构建企业生成式 AI 应用。如需详细了解 AlloyDB 的 AI/机器学习功能,请参阅 构建生成式 AI 应用。
借助具有 AlloyDB AI 的 AlloyDB Omni,您可以使用 google_ml_integration 扩展程序查询远程机器学习模型,以使用从机器学习模型生成的在线预测和文本嵌入。具有 AlloyDB AI 的 AlloyDB Omni 还可以处理来自其他内容(例如图片)的向量嵌入,例如,如果您使用 google_ml.predict_row 接口并自行在查询中进行转换。
设置以查询远程模型 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]。