本页面介绍了如何安装 AlloyDB Omni 并在其中集成 AlloyDB AI。
AlloyDB AI 是 AlloyDB Omni 中包含的一套功能,可让您构建企业生成式 AI 应用。如需详细了解 AlloyDB 的机器学习功能,请参阅构建生成式 AI 应用。
借助具有 AlloyDB AI 的 AlloyDB Omni,您可以查询远程机器学习模型,以使用从机器学习模型生成的在线预测和文本嵌入。具有 AlloyDB AI 的 AlloyDB Omni 还可以处理来自其他内容(例如图片)的向量嵌入,例如,如果您使用 google_ml.predict_row
接口并自行在查询中进行转换。
根据您要在其中安装具有 AlloyDB AI 的 AlloyDB Omni 的位置,选择以下选项之一:
配置 AlloyDB Omni 实例以查询远程模型
如需将 AlloyDB Omni 配置为查询远程模型,请按照以下步骤操作:
使用 Google Cloud创建服务账号。
采用 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
。
安装具有 AlloyDB AI 的 AlloyDB Omni
如需安装 AlloyDB Omni 并集成 AlloyDB AI,请按照以下步骤操作:
确保您已完成配置 AlloyDB Omni 以查询云端模型中列出的所有步骤。
创建默认 AlloyDB Omni 配置文件的本地副本:
docker run -i --rm google/alloydbomni:15.5.4 cat /usr/share/postgresql/postgresql.conf.sample > my-postgres.conf
修改配置文件副本,以添加 AlloyDB AI 集成指令:
echo "omni_enable_ml_agent_process = 'on'" >> my-postgres.conf
echo "omni_google_cloud_private_key_file_path = '/etc/postgresql/private-key.json'" >> my-postgres.conf
调整密钥文件和配置文件的文件系统权限:
sudo chmod +r my-postgres.conf
sudo chmod +r KEY_PATH
将
KEY_PATH
替换为主机文件系统上的服务账号私钥文件的路径。 这是您在此过程的先前步骤中创建并下载的密钥。安装装载到容器上的密钥和配置文件:
docker run --name CONTAINER_NAME -e POSTGRES_PASSWORD=NEW_PASSWORD -p HOST_PORT:5432 -v "$PWD/my-postgres.conf":/etc/postgresql/postgresql.conf -v "FULL_KEY_PATH":/etc/postgresql/private-key.json -d google/alloydbomni:15.5.4 -c 'config_file=/etc/postgresql/postgresql.conf'
替换以下内容:
CONTAINER_NAME
:用于在宿主机的容器注册表中分配这一新简化版 AlloyDB Omni 安装方法容器的名称,例如my-omni-1
。NEW_PASSWORD
:在创建后向新容器的postgres
用户分配的密码。HOST_PORT
:宿主机上的 TCP 端口,容器应将自己的端口 5432 发布到该端口。如需在宿主机上使用 PostgreSQL 默认端口,请指定5432
。FULL_KEY_PATH
:主机系统上服务账号私钥文件的完整文件系统路径。
验证具有 AlloyDB AI 的 AlloyDB Omni 安装
如需验证安装是否成功并使用模型预测,请输入以下内容:
CREATE EXTENSION google_ml_integration CASCADE;
SELECT array_dims(embedding( 'textembedding-gecko@001', 'AlloyDB AI')::real[]);
array_dims
输出类似于以下内容:
[1:768]
(1 row)
在上一个查询中,embedding()
调用会为输入文本 AlloyDB AI
生成嵌入。
array_dims
会返回由 embedding()
返回的数组的维度。
由于预注册的 textembedding-gecko
模型返回具有 768 个维度的输出,因此输出为 [768]
。