结构化数据搜索升级:BigQuery 与 Vertex AI Search 强强联合!
结构化数据是现代业务的命脉,但从其中挖掘出的洞察却常常让人觉得是不可能的。传统的搜索方法在这种情况下通常难以应对。这时,谷歌云的两大利器,即 BigQuery 和 Vertex AI Agent Builder,就能发挥其力量了。
这篇博客将探讨 BigQuery 和 Vertex AI Search 如何一起工作,以彻底改变你寻找所需信息的方式。准备好体验全新的搜索功能吧!
Google Colab链接(请申请访问!):Filtered_Blog_Vertex_AI_Search_AA.ipynb
谷歌云AI搜索技术(谷歌云AI引擎Vertex AI,大数据仓库BigQuery)
技术背景BigQuery 在分析海量数据方面很厉害,但如果需要进行智能搜索怎么办呢?这时候 Vertex AI Search 就能帮上忙了!这项 Google Cloud 服务用 AI 技术让你的 BigQuery 数据变得可搜索,比如,这种搜索方式既灵活又强大。
BigQuery: 结构化数据的基石
- 无所不能的BigQuery: BigQuery是一个无服务器的、PB级数据的数据仓库。它可以像使用 SQL 一样的查询快速地对大规模结构化数据进行处理。
- 结构化数据的避风港: BigQuery是表格数据的理想栖息地——客户记录、金融交易、产品目录,能够整齐地排列在行和列中的数据。
Vertex AI Agent Builder(搜索功能):基于 AI 的理解
- 搜索,更进一步: Vertex AI 搜索不仅通过关键词匹配,还利用自然语言理解(NLU)技术来理解用户查询的真正含义,即使这些查询表达得非常复杂。
- 数据灵活性:(或数据敏捷性) Vertex AI 搜索不仅处理文本,还处理与您的文档关联的结构化元数据,从而使搜索结果更加精准和相关,从而提高用户体验。
即用即搜的可搜索结构化数据:由 Gemini Advanced(Imagen 3)在 I/O ‘24 上发布的图像
主要优点:
- 简单地设置和可扩展的性能
- 自定义的搜索功能
- 直接的大规模查询索引
- 经济实惠的解决方案
示例用例包括:
- 支持自然语言搜索的知识库
- 电子商务中的产品搜索,具有高级筛选和推荐功能
- 从旅游数据集中筛选出相关的信息(本博客将重点关注这一点)。
按照下一节中提到的步骤操作,你就可以创建一个如下示例 GIF 所示工作的 Vertex AI 搜索应用程序。
在我们的旅游案例中,我们提出各种类型的问题:1)单个关键词(地点/城市);2)多个关键词(地点和省份),用英语、印地语或混合语言(比如英语和印地语的混合)。
步骤在 Vertex AI 搜索的上下文中,BigQuery 数据存储库是一种连接,它将您的 Vertex AI 搜索服务与特定的 BigQuery 表连接起来。当您创建数据存储库时,您实际上是在告诉 Vertex AI 搜索服务,哪张表包含了您希望搜索的数据。
在这里,我们以旅游相关的数据集为例,从中获取相关地点的列表。Vertex AI Search(Vertex AI搜索)会自动从我们的旅游相关的 BigQuery 表中抓取数据并进行索引,以便高效地进行搜索。
自说明的 架构示意图
作为前提条件,你需要上传存储在 Cloud Storage 存储桶中或本地文件夹里的 CSV 示例文件,以创建一个 BigQuery 表格,如这里所述。然后,按照以下步骤进行。
1. 创建 Vertex AI 搜索应用和 BigQuery 数据存储要创建一个 Vertex AI 搜索与对话中的搜索代理,请点击‘新建代理’.
点击“选择”按钮,在“搜索应用类型”下面。
- 在“配置”选项中,输入应用的相关信息,并点击“下一步”。
选择“BigQuery”作为数据源。
- 选择你想要搜索的特定 BigQuery 表。
- 点击“选择”。
- 可以将键定义为期望的‘问题’和‘答案’。
- 选择的 BigQuery 表看起来像这样
- 输入数据存储的名字,然后单击“新建”。
Vertex AI Search 开始这个过程,从 BigQuery 导入数据到数据存储。数据被索引,这意味着数据将以一种结构被组织,从而让 Vertex AI Search 能够高效地检索到相关结果。
- 以下是来自 9795 条记录中的一条示例 JSON 对象:{ “City”: “Bengaluru”, “Av_Rating”: 4.33, “Place”: “Right Lines Art Gallery” }。索引结果如下:
Av_Rating 被解释为 “平均评分”。
- 点击“应用列表”,然后选择你想要的应用。
现在你可以点击‘预览’来开始查询。
- (可选),点击“配置选项”设置“搜索类型”,“模型”,“摘要语言”,“数据展示选项”和“筛选条件设置”。
- 点击“整合”,以“小工具”或“API”的形式集成搜索应用程序。
- (可选)点击“分析”查看“搜索历史”和在给定的时间段内里的热门问题。
确定你想在搜索索引中包含的 BigQuery 表中的哪些字段(列)。说明每个字段应该如何使用(例如,作为可搜索文本或作为创建筛选条件的类别)。
- 通过点击“EDIT”,您可以指定哪些字段可以检索、索引或搜索。更多详情,请访问配置字段设置 | Vertex AI 搜索与对话 | Google Cloud。
现在点击活动来确认以下的更新任务。
3. BigQuery 数据仓库更新你可以刷新结构化数据存储中的数据,甚至只要你的模式和数据存储中的模式相同或向下兼容。例如,仅在现有模式中添加新字段是向下兼容的。
请注意: 在“定期刷新”(公共预览版)的情况下,您可以设置刷新频率,以确定数据存储多久刷新一次BigQuery数据集中的最新数据。
否则,在“一次性摄入(GA)”的情况下,插入到 BigQuery 表中的数据不会自动更新,需要执行以下步骤来进行手动更新:
- 点击 ‘+ 添加数据’。
在选择数据源的面板中,选择BigQuery选项。
- 在从 BigQuery 导入数据的面板中,点击 浏览… ,选择一个包含您最新数据的表,然后点击 选择。或者,直接在 BigQuery 路径 字段中输入表的位置。
- 在“数据导入选项”下,选择一个导入选项。选择 增量 选项以仅添加具有兼容模式的新行的表,选择 完整 选项以替换整个表,该表具有相同模式的完整和旧行。
注意:在“选择”与“SELECT”保持一致这一建议中,由于中文操作按钮通常不直接使用英文,所以保持“选择”更为合适。
- 点击 导入 按钮。
您可以使用Vertex AI Search API或支持多种编程语言的客户端库发送搜索查询。Vertex AI Search 会搜索其索引,将您的查询条件与索引中的数据匹配,并根据相关性并按照您配置的自定义排名逻辑返回结果。
Colab 地址(请申请访问权限!): 查看 Filtered_Blog_Vertex_AI_Search_AA.ipynb
结束语我们进入了谷歌云的动态二人组——强大的数据分析平台BigQuery和基于AI的搜索专家Vertex AI Search的世界。它们共同释放了您结构化数据的所有潜力,让搜索变得直观、智能且极其快速。
在接下来的博文中,我们将使用Webhook、Dialogflow CX以及各种NL2SQL技术处理分析型查询。
参考资料
-
整个VAIS-BQ实现所需的Colab(需要申请访问!):Filtered_Blog_Vertex_AI_Search_AA.ipynb
- 已处理的Kaggle数据集(CSV数据源)(需要申请访问!):
来源: https://docs.google.com/spreadsheets/d/1WXm2I0KWrfsKpI8xpyYQ7WeR-nA8xgrSExfpS045HQY/edit?gid=0#gid=0 (请申请访问权限!)。
咱们继续聊吧!在评论区里分享你的想法和疑问吧。
注: 如果您对这篇帖子或我的实现有任何疑问或需要澄清的地方,请随时通过我的LinkedIn与我联系!谢谢!