📢 转载信息
原文链接:https://www.kdnuggets.com/building-vertex-ai-search-applications-a-comprehensive-guide
原文作者:Rachel Kuznetsov
Image by Editor
# 引言
Vertex AI Search,即以前的 Google Cloud 企业搜索服务,标志着组织在其应用程序中实现智能搜索功能的方式有了重大演变。这一强大工具将传统搜索功能与先进的机器学习能力相结合,以提供语义理解和自然语言处理(NLP)。对于在 Google Cloud AI 生态系统中工作的数据科学家和机器学习工程师而言,了解如何利用 Vertex AI Search 为构建复杂的信息检索系统开辟了新的可能性。
本指南将探讨使用 Vertex AI Search 和 AI Applications 构建生产级搜索应用所需的核心组件、实施策略和最佳实践。
# 理解 Vertex AI Search
Vertex AI Search 使开发人员能够创建超越关键词匹配的搜索体验。该平台利用机器学习模型来理解用户意图、提供上下文相关的结果,并从索引内容中生成总结性答案。与主要依赖关键词匹配和基本相关性评分的传统搜索引擎不同,Vertex AI Search 采用语义理解来解释自然语言查询并返回更有意义的结果。
该平台服务于各行业的多种用例。企业知识库可以受益于从庞大文档库中检索相关信息的能力。客户支持团队可以实施智能搜索,帮助座席快速找到解决方案。电子商务平台可以通过自然语言查询增强产品发现。基于文档的问答系统可以从技术手册、法律文件或研究论文中提取精确信息。
# 核心架构与组件
构建 Vertex AI Search 应用需要理解共同协作以提供搜索功能的几个关键组件。
// 数据摄取和源
任何搜索应用的基础都始于数据摄取。Vertex AI Search 支持多种数据源,包括 Google Cloud Storage 存储桶、BigQuery 表、公共网站以及各种非结构化文档格式,如 PDF、Word 文档和 HTML 文件。该平台可以处理具有定义模式的结构化数据以及非结构化内容,如文本文档和网页。
在摄取数据时,开发人员必须考虑内容的格式和结构。结构化数据通常包括具有价格、描述和类别的产品目录等字段。非结构化数据则包括文档、文章和网页内容,其中信息嵌入在文本中,而不是组织到预定义字段中。
// 数据存储和搜索引擎
Vertex AI Search 的核心是数据存储,它充当索引内容的存储库。开发人员通过指定源位置并配置内容的应如何处理来创建数据存储。该平台提供了针对不同内容类型和用例进行了优化的不同数据存储类型。
构建在数据存储之上的搜索引擎定义了查询的处理方式和结果的返回方式。开发人员可以配置搜索引擎的多个方面,包括相关性调整、过滤能力和结果排序算法。配置决定了系统如何解释查询、将其与索引内容匹配以及对结果进行排序。
// 与生成式 AI 的集成
Vertex AI Search 最强大的方面之一是它与生成式 AI 能力的集成。该平台可以利用搜索结果来为大型语言模型(LLM)的响应提供基础(Grounding),从而实现检索增强生成(RAG)模式。这种方法将搜索的信息检索优势与 LLM 的自然语言生成能力相结合,使应用程序能够根据特定的文档集合提供准确、上下文相关的答案。
# 实施步骤
构建 Vertex AI Search 应用涉及几个顺序步骤,每一步都需要对细节和配置进行仔细关注。
// 项目设置和先决条件
在开始实施之前,开发人员需要建立适当的 Google Cloud 环境。这包括创建或选择一个 Google Cloud 项目、启用 Vertex AI Search API,并配置适当的身份验证凭据。必须创建具有必要权限的服务帐户,以允许应用程序与 Vertex AI 服务进行交互。
开发环境应包括 Google Cloud SDK 和相关的 Python 库。google-cloud-discoveryengine 库提供了通过编程方式处理 Vertex AI Search 的主要接口。
// 创建和配置数据存储
第一个技术步骤涉及创建一个用于保存可搜索内容的数据存储。开发人员指定数据源位置,无论是包含文档的 Cloud Storage 存储桶还是包含结构化数据的 BigQuery 表。配置过程包括设置内容应如何被解析、索引和可搜索的参数。
对于非结构化文档,平台会自动提取文本内容和元数据。开发人员可以通过提供附加的元数据字段或指定自定义提取规则来增强此过程。结构化数据需要定义将数据库字段映射到可搜索属性的模式。
// 索引策略
有效的索引对于搜索性能和相关性至关重要。索引过程涉及几个需要考虑的方面,包括内容应多久刷新一次、哪些字段应该是可搜索的还是可过滤的,以及如何处理多语言内容。
开发人员可以配置提升因子(Boost Factors)来强调搜索结果中的某些字段或内容类型。例如,在产品搜索应用中,新上架或评分高的产品可能会获得相关性提升。该平台支持即时索引以实现实时更新,也支持批量索引以处理大型内容集合。
// 查询构建和 API 使用
实施搜索功能需要了解如何构建查询和处理结果。Vertex AI Search API 接受自然语言查询并返回带有相关性得分的排序结果。开发人员可以通过基于日期范围、类别或自定义元数据字段等特定条件来过滤结果,从而增强查询。
from google.cloud import discoveryengine_v1 as discoveryengine # 初始化客户端 client = discoveryengine.SearchServiceClient() # 配置服务路径 serving_config = client.serving_config_path( project='project-id', location='global', data_store='data-store-id', serving_config='default_config' ) # 构造搜索请求 request = discoveryengine.SearchRequest( serving_config=serving_config, query='how to optimize machine learning models', page_size=10 ) # 执行搜索 response = client.search(request) # 处理结果 (假设是结构化数据格式) for result in response.results: document = result.document # 安全访问结构化数据字段 if 'title' in document.struct_data: print(f"Title: {document.struct_data['title']}") if 'content' in document.struct_data: print(f"Content: {document.struct_data['content']}")
// 实施高级功能
除了基本搜索之外,Vertex AI Search 还提供增强用户体验的高级功能。提取式答案允许系统识别并返回直接回答问题的特定片段,而不是仅仅返回整个文档。此功能对于问答应用尤其有价值,用户希望获得精确信息。
搜索摘要利用生成式 AI 从多个搜索结果中综合信息,形成连贯的摘要。此功能将搜索体验从文档列表转变为对话界面,系统中会提供基于来源引用的直接答案。
分面搜索(Faceted Search)使用户能够通过交互式过滤器来细化结果。对于产品目录,分面可能包括价格范围、品牌或客户评分。实施分面需要在数据摄取阶段识别相关属性,并在搜索引擎中将其配置为分面字段。
# 构建对话式界面
现代搜索应用越来越多地融入了允许用户通过后续问题来完善查询的对话元素。Vertex AI Search 支持多轮对话,其中先前查询的上下文会影响后续搜索。
实施对话式搜索需要维护会话状态以跟踪对话历史记录。该平台利用此上下文来消除查询歧义并提供更相关的结果。例如,如果用户首先搜索“机器学习算法”,然后问“哪种最适合图像分类”,系统会理解“哪种”指的是机器学习算法。
与 Vertex AI Agent Builder 的集成使开发人员能够创建复杂的聊天机器人界面,这些界面结合了搜索功能和自然语言理解。这些智能体可以处理复杂查询、提出澄清问题,并引导用户完成多步骤的信息发现过程。
# 相关性调整和优化
实现高质量的搜索结果需要持续的调整和优化。该平台提供了多种改进相关性的机制,包括查询扩展、同义词管理和自定义排序模型。
查询扩展技术会自动扩大搜索范围以包含相关术语。对于技术文档搜索,将“ML”扩展到包括“machine learning”可以确保结果的全面性。开发人员可以定义特定于其领域的同义词集以改善专业内容的匹配。
来自用户行为的相关性信号为优化提供了宝贵反馈。跟踪用户点击了哪些结果、他们在文档上花费的时间以及哪些查询带来了成功结果,有助于识别需要改进的领域。该平台支持导入这些信号来训练与用户偏好更好地对齐的自定义排序模型。
# 性能考量
搜索性能同时影响用户体验和运营成本。影响性能的因素包括索引大小、查询复杂性和结果处理要求。
对于大型内容集合,开发人员应考虑优化索引大小的策略。这可能包括总结长文档、删除重复内容或归档过时信息。按内容类型或时间段对数据存储进行分区也可以提高查询性能。
查询优化侧重于在保持结果质量的同时最大限度地减少延迟。技术包括限制结果集大小、使用适当的过滤器来缩小搜索范围以及缓存经常请求的查询。该平台提供监控工具来跟踪查询性能并识别瓶颈。
成本优化需要平衡搜索质量与资源消耗。影响成本的因素包括索引内容的数量、查询量以及对生成式摘要等高级功能的使用。开发人员应监控使用模式并调整配置,以优化成本与价值比。
# 安全和访问控制
企业搜索应用必须实施强大的安全措施来保护敏感信息。Vertex AI Search 与 Google Cloud 的身份和访问管理(IAM)系统集成,以控制谁可以访问搜索功能以及他们可以检索哪些内容。
文档级别安全确保搜索结果尊重现有的访问控制。当从具有权限模型的源(如 Google Drive 或 SharePoint)索引内容时,平台可以在搜索结果中维护这些权限。用户只能看到他们被授权访问的文档。
实施安全需要配置身份验证流程、定义访问控制列表,以及根据用户角色筛选结果。对于服务外部用户的应用,额外的考虑因素包括速率限制以防止滥用,以及监控可疑的查询模式。
# 监控和评估
成功的搜索应用需要持续监控和评估,以确保它们满足用户需求。关键指标包括查询量、结果相关性、用户参与度和系统性能。
查询分析揭示了用户正在搜索的内容以及他们是否找到了令人满意的结果。跟踪零结果查询有助于识别索引内容的差距或改进查询理解的机会。查看搜索结果后较高的放弃率可能表明相关性存在问题。
该平台提供内置的分析仪表板,可可视化随时间变化的搜索指标。开发人员可以导出这些数据以进行更深入的分析或与其他监控系统集成。A/B 测试不同的配置有助于量化优化工作的影响。
# 常见挑战与解决方案
实施 Vertex AI Search 的开发人员通常会遇到几个常见挑战。了解这些问题及其解决方案可以加速开发并提高应用质量。
文档处理有时无法正确地从复杂格式(如扫描的 PDF 或具有不规则布局的文档)中提取文本。解决方案包括对文档进行预处理以改善文本提取、提供明确的元数据,或对扫描内容使用光学字符识别(OCR)。
针对特定领域术语的相关性调整需要仔细的配置。技术领域通常使用一般语言模型可能无法很好处理的行话或缩写。构建自定义同义词集并提供领域特定的训练示例可以改善专业内容的搜索结果。
处理多语言内容时,用户可能使用一种语言进行搜索,但相关的文档存在于其他语言中。该平台支持多语言搜索,但最佳配置取决于特定的语言组合和内容分布。
# 集成模式
Vertex AI Search 通过各种模式集成到应用中,具体取决于用例和架构。Web 应用通常通过发出 API 调用的前端组件实现搜索。这些服务处理身份验证、查询构建和结果处理,然后将格式化的响应返回给客户端。
移动应用面临额外的考虑因素,包括离线能力和带宽优化。实施客户端缓存和结果预取可以改善移动设备上的用户体验。
将搜索集成到现有应用中可能涉及创建中间件层,该层在应用特定的数据模型和搜索 API 之间进行转换。这种抽象层简化了更新,并在需要时允许交换搜索实现。
# 最佳实践
成功的 Vertex AI Search 实施中出现了一些最佳实践。从定义明确的内容策略开始,确保索引的文档相关、结构良好且定期更新。无论技术优化如何,源内容的质量低劣都必然会导致搜索结果不佳。
实施全面的错误处理和回退机制确保了可靠性。搜索服务可能会偶尔出现延迟高峰或临时不可用。应用程序应优雅地处理这些情况,并向用户提供有意义的反馈。
定期评估和迭代可提高搜索质量。建立将用户行为反馈纳入优化的反馈循环,可以创造一个持续改进的良性循环。将时间分配给定期审查分析和用户反馈应成为开发路线图的一部分。
# 结论
Vertex AI Search 提供了一个强大的平台,用于构建利用机器学习和自然语言处理最新进展的智能搜索应用。通过理解核心组件、遵循实施最佳实践,并根据用户反馈持续优化,开发人员可以创建显著增强信息发现和用户满意度的搜索体验。
该平台与 Google Cloud 整体 AI 生态系统的集成,支持复杂的应用,这些应用将搜索与生成式 AI 相结合,创建感觉自然且直观的对话界面。随着组织越来越认识到使信息易于发现和可操作的价值,像 Vertex AI Search 这样的工具正成为现代应用堆栈的关键组成部分。
Vertex AI Search 的成功需要技术熟练程度和以用户为中心的设计与优化方法。对构建强大的搜索能力进行投资,可以通过提高用户生产力、基于可访问信息做出更好的决策,以及增强跨应用的整体用户体验来获得回报。
Rachel Kuznetsov 拥有商业分析硕士学位,热衷于解决复杂的数据难题并寻找新的挑战。她致力于使复杂的数据科学概念更易于理解,并探索 AI 影响我们生活的各种方式。在她持续学习和成长的过程中,她记录下自己的旅程,以便他人可以与她一起学习。您可以在 LinkedIn 上找到她。
🚀 想要体验更好更全面的AI调用?
欢迎使用青云聚合API,约为官网价格的十分之一,支持300+全球最新模型,以及全球各种生图生视频模型,无需翻墙高速稳定,文档丰富,小白也可以简单操作。
评论区