借助 Vertex AI Vector Search,用户可以使用向量嵌入来搜索语义相似项。您可以使用 Spanner To Vertex AI Vector Search 工作流 将 Spanner 数据库与 Vector Search 集成,以便对 Spanner 数据执行向量相似度搜索。
下图展示了相应的端到端应用工作流,以演示如何对 Spanner 数据启用和使用 Vector Search:

一般工作流程如下:
- 生成和存储向量嵌入。 - 您可以生成数据的向量嵌入,然后将它们与运营数据一起存储在 Spanner 中并进行管理。您可以使用 Spanner 的 - ML.PREDICTSQL 函数生成嵌入,以访问 Vertex AI 文本嵌入模型,也可以使用部署到 Vertex AI 的其他嵌入模型。
- 将嵌入同步到 Vector Search。 - 使用 Spanner To Vertex AI Vector Search 工作流(通过 Workflows 进行部署)将嵌入导出并上传到 Vector Search 索引中。您可以使用 Cloud Scheduler 定期安排此工作流,以确保 Vector Search 索引与 Spanner 中对嵌入的最新更改保持同步。 
- 使用 Vector Search 索引执行向量相似度搜索。 
用例示例
Vector Search 的一个示例应用场景是拥有成千上万件商品的线上零售商。在此场景中,您是某个线上零售商的开发者,希望在 Spanner 中对商品清单使用向量相似度搜索,以帮助客户根据其搜索查询找到相关商品。
按照常规工作流中的第 1 步和第 2 步,为商品清单生成向量嵌入,并将这些嵌入同步到 Vector Search。
现在,假设浏览您应用的客户执行一个搜索,例如“最适合我在水中穿着的速干运动短裤”。当应用收到此查询时,您需要使用 Spanner ML.PREDICT SQL 函数为此搜索请求生成请求嵌入。请务必使用为商品清单生成嵌入时所用的同一嵌入模型。
接下来,查询 Vector Search 索引,以查找对应嵌入与通过客户搜索请求生成的请求嵌入相似的商品 ID。搜索索引可能会为语义相似项(例如尾浪滑水短裤、冲浪服和泳裤)推荐商品 ID。
在 Vector Search 返回这些相似商品 ID 后,您可以向 Spanner 查询相应商品的说明、库存数量、价格和其他元数据,并向客户显示这些内容。
您还可以先使用生成式 AI 来处理从 Spanner 返回的结果,然后再向客户显示这些结果。例如,您可以使用 Google 的大型生成式 AI 模型来生成推荐商品的简明摘要。如需了解详情,请参阅此教程,了解如何使用生成式 AI 在电子商务应用中获取个性化推荐。
后续步骤
- 了解如何使用 Spanner 生成嵌入。
- 详细了解 AI 的多工具:向量嵌入
- 如需详细了解机器学习和嵌入,请参阅我们的嵌入速成课程。
- 如需详细了解 Spanner To Vertex AI Vector Search 工作流,请参阅 GitHub 仓库。
- 详细了解 spanner-analytics 开源软件包,该软件包可帮助您在 Python 中执行常见的数据分析操作,并包含与 Jupyter 笔记本的集成。