在 Vertex AI Search 应用中搜索时,您可以应用相关性阈值,以便系统仅返回符合此阈值的文档。本页介绍了如何指定相关性阈值,以减少查询中返回的文档数量。
按文档级相关性过滤简介
搜索查询返回的每个文档都会获得一个相关性级别,该级别表示返回的文档与查询的相关性。通过 API 调用进行查询时,您可以设置相关性阈值。设置较高的相关性阈值可以减少查询返回的文档数量。
例如,如果您发现搜索功能返回的与用户不够相关的文档过多,可以将相关性阈值设为高,以便将结果范围缩小到仅包含最相关的少数文档。如果“高”设置过于严格,请尝试使用“中”设置。
文档级相关性过滤条件支持的数据类型和应用
文档级相关性过滤器可应用于包含以下类型数据的数据存储区:
- 启用高级网站索引编制功能时的网站数据
- 通用非结构化数据
- 通用结构化数据
文档级相关性过滤器不适用于包含基本网站索引、媒体数据或医疗保健数据的数据存储区。
此外,文档级相关性过滤条件无法与混合搜索应用搭配使用。混合搜索应用是指与多个数据存储区关联的应用。
其他类型的过滤器
文档级相关性过滤条件并非过滤查询返回的数据的唯一方式。您还可以使用过滤表达式根据元数据(在启用了元数据数据存储区的高级网站索引和非结构化数据中)和字段值(在结构化数据存储区中)过滤结果。
如需了解详情,请参阅以下主题:
如果您同时使用过滤表达式和文档级相关性过滤条件,系统会先对结果应用过滤表达式,然后再应用文档级相关性过滤条件。
准备工作
确保您已创建应用和数据存储区,并已将数据提取到数据存储区。如需了解详情,请参阅创建搜索应用。另请参阅支持文档级相关性过滤器的数据类型和应用。
按文档级相关性搜索和过滤结果
如需按相关性过滤,请按以下步骤操作:
找到您的应用 ID。如果您已经有应用 ID,请跳至下一步。
在 Google Cloud 控制台中,前往 Agent Builder 页面。
在应用页面上,找到应用的名称,然后从 ID 列中获取应用的 ID。
如需按文档级相关性过滤搜索结果,请将
relevanceThreshold
字段与engines.servingConfigs.search
方法搭配使用。curl -X POST -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type: application/json" \ "https://discoveryengine.googleapis.com/v1alpha/projects/
PROJECT_ID /locations/global/collections/default_collection/engines/APP_ID /servingConfigs/default_search:search" \ -d '{ "servingConfig": "projects/PROJECT_ID /locations/global/collections/default_collection/engines/APP_ID /servingConfigs/default_search", "query": "QUERY ", "relevanceThreshold": "RELEVANCE_THRESHOLD " }'替换以下内容:
PROJECT_ID
:您的 Google Cloud 项目的 ID。APP_ID
:您要查询的 Vertex AI Search 应用的 ID。QUERY
:要搜索的查询文本。RELEVANCE_THRESHOLD
:以下各项之一:HIGH
、MEDIUM
、LOW
、LOWEST
。
命令和结果示例
curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" \ "https://discoveryengine.googleapis.com/v1alpha/projects/my-project-123/locations/global/collections/default_collection/engines/my-search-app/servingConfigs/default_search:search" \ -d '{ "servingConfig": "projects/my-project-123/locations/global/collections/default_collection/engines/my-search-app/servingConfigs/default_search", "query": "What is the check grounding API", "relevanceThreshold": "HIGH" }'
{ "results": [ { "id": "a082e70352c073a4443502477255bd2a", "document": { "name": "projects/123456/locations/global/collections/default_collection/dataStores/my-data-store/branches/0/documents/a082e70352c073a4443502477255bd2a", "id": "a082e70352c073a4443502477255bd2a", "derivedStructData": { "displayLink": "cloud.google.com", "link": "https://cloud.google.com/generative-ai-app-builder/docs/check-grounding", "htmlTitle": "Check grounding | Vertex AI Agent Builder | Google Cloud", "title": "Check grounding | Vertex AI Agent Builder | Google Cloud" } } } ], "totalSize": 1, "attributionToken": "f_B-CgwIidzwswYQyue15gESJDY2N2M1NmJkLTAwMDAtMjk3Ni1iMGI4LTg4M2QyNGZmNTZhOCIHR0VORVJJQypAjr6dFavEii3b7Ygt3o-aIoCymiLC8J4Vo4CXIra3jC3Usp0V24-aIt7tiC3n7YgtrsSKLeTtiC2DspoixsvzFw", "guidedSearchResult": {}, "summary": {} }在这里,相关性阈值设为高,因此系统只会返回相关性最高的结果。在此示例中,系统仅确定了一篇文档与问题高度相关。
使用不同的阈值测试多个查询,以确定适合您的数据和应用的最佳阈值设置。