本页介绍了如何安装 AlloyDB Omni 并在其中集成 AlloyDB AI。
AlloyDB AI 是 AlloyDB Omni 附带的一套功能,可让您构建企业生成式 AI 应用。如需详细了解 AlloyDB 的 ML 功能,请参阅构建生成式 AI 应用。
借助 AlloyDB Omni 和 AlloyDB AI,您可以查询远程机器学习模型,以使用机器学习模型生成的在线预测和文本嵌入。内置 AlloyDB AI 的 AlloyDB Omni 还可以处理其他内容(例如图片)中的向量嵌入,例如,如果您使用 google_ml.predict_row
接口并在查询中自行进行转换。
根据您要将 AlloyDB Omni with AlloyDB AI 安装在何处,选择以下选项之一:
配置 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 Omni with AlloyDB AI
如需安装 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
:容器应将自己的端口 5432 发布到的宿主机上的 TCP 端口。如需在主机上也使用 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]
。