本页介绍 Vertex AI Search 的基本自动补全功能。 自动补全功能会根据前几个字符生成查询建议 为查询输入的 ID。
自动补全功能生成的建议因搜索应用使用的不同数据类型而异:
结构化和非结构化数据。默认情况下,自动补全功能会根据数据存储区中文档的内容生成建议。默认情况下,在导入文档后,自动补全功能不会开始生成建议,除非有足够质量的数据(通常需要几天时间)。如果您通过 API 发出自动补全请求,自动补全功能可以根据搜索记录或用户事件生成建议。
网站数据。默认情况下,自动补全功能会根据搜索记录生成建议。自动补全需要实际的搜索流量。更新后 搜索流量开始,自动补全功能需要一到两天时间才能生成 建议。建议可以基于从公开的网站抓取的数据生成 实验性高级文档数据模型的网站。
医疗保健数据。默认情况下,系统会使用规范医疗数据源为医疗保健数据存储区生成自动补全建议。对于医疗保健搜索,自动补全功能是一项预览版功能。
自动补全数据模型决定了自动补全功能会使用哪种类型的数据 生成建议。自动补全模型有四种:
Document。文档模型会根据用户导入的文档生成建议。此模型不适用于网站数据或 医疗保健数据。
可补全字段。“可补全字段”模型会建议已获取的文本 结构化数据字段。只有带有
completable
注解的字段才会用于自动补全建议。此模型仅适用于结构化数据。搜索记录。搜索记录模型会根据
SearchService.search
API 调用的历史记录。不使用 该模型可能servingConfigs.search
方法。此模型不是 可用于医疗保健数据。用户事件。用户事件模型根据 用户导入的搜索事件。此模型不适用于医疗保健数据。
使用
dataStores.completeQuery
方法。
下表显示了适用于每种数据类型的自动补全模型类型。
自动填充 数据模型 |
数据 来源 |
网站数据 |
结构化 数据 |
非结构化数据 |
---|---|---|---|---|
文档 | 已导入 按用户 | ✔*(默认) | ✔(默认) | |
可补全字段 | 已导入 按用户 | ✔ | ||
搜索记录 | 自动 已收集 | ✔(默认) | ✔ | ✔ |
用户事件 | 由用户导入或由微件自动收集 | ✔ | ✔ | ✔ |
网页抓取 内容 | 抓取来源 内容来自 公开 网站 指定者 用户 | ✔† |
*:文档架构必须包含 title
或 description
字段,或者必须有字段已指定为 title
或 description
键属性。请参阅更新结构化数据的架构。
† 网页抓取内容只有在满足以下条件时才能用作数据源 用于自动补全的实验性高级文档数据模型已启用。请参阅高级文档数据模型。
如果您不想为您的数据类型使用默认模型,可以
指定其他模型。系统使用 dataStores.completeQuery
方法发送自动补全请求。如需了解详情,请参阅 API 说明:发送自动补全请求以选择其他模型。
自动补全功能
Vertex AI Search 支持以下自动补全功能来显示 搜索时最有用的联想查询:
特征 | 说明 | 示例或更多信息 |
---|---|---|
移除特殊字符 | 从建议数据和输入的查询中移除非标准字符。短划线 - 是唯一
都保存在建议数据和输入的查询中
|
Mt. Everest & Mt. Kilimanjaro → Mt Everest Mt Kilimanjaro 。 |
更正拼写错误 | 纠正拼写错误的字词。 | Milc → Milk 。
|
移除不安全字词 |
|
冒犯性文字,例如色情、露骨、粗俗、暴力内容。 |
拒绝名单 |
|
如需了解详情,请参阅使用自动补全拒绝名单。 |
删除重复的字词 |
|
Shoes for Women 、Womens Shoes 和 Womans Shoes 会被删除重复项,系统只会建议最受欢迎的字符串。 |
尾部匹配建议 |
|
如需了解详情,请参阅 Tail 匹配建议。 |
尾部匹配建议
尾部匹配建议是使用与最后一个条目完全匹配的前缀匹配 输入字词。
例如,说出查询内容“与他一起的歌曲”。 启用尾部匹配后,自动补全功能可能会发现完整前缀“songs with he”没有任何匹配项。不过,查询中的最后一个字词“he”与“hello world”和“hello kitty”完全匹配前缀。在该部分中, 返回的建议就是“songs with hello world”以及“ 你好,猫咪”因为没有完全匹配建议。
您可以使用此功能减少空白建议结果并提高建议多样性,这在数据源(用户事件数、搜索记录和文档主题覆盖率)有限的情况下尤为有用。不过,启用尾部匹配建议可能会降低建议的整体质量。由于尾部匹配仅匹配前缀的尾随字词,因此系统返回的一些建议可能没有意义。例如,如果用户输入“songs with he”这样的查询,则可能会收到“songs with helpers guides”这样的尾部匹配建议。
只有在满足以下条件时,系统才会返回尾部匹配建议:
在
include_tail_suggestions
true
dataStores.completeQuery
请求。没有针对查询的完整前缀匹配建议。
为微件开启或关闭自动补全功能
如需为 widget 开启或关闭自动补全功能,请按以下步骤操作:
控制台
在 Google Cloud 控制台中,前往 Agent Builder 页面。
点击要修改的应用的名称。
点击配置。
点击界面标签页。
切换显示自动补全建议选项即可启用自动补全功能 。启用自动补全功能后 系统可能需要过一两天才会提供建议。医疗保健用 自动补全是一项预览版功能。
更新自动补全设置
若要配置自动补全设置,请按以下步骤操作:
控制台
在 Google Cloud 控制台中,前往 Agent Builder 页面。
点击要修改的应用的名称。
点击配置。
点击自动补全标签页。
为要更新的自动补全设置输入或选择新值:
- 建议数量上限:系统可为查询提供的自动补全建议数量上限。
- 触发条件的最短长度:在系统提供自动补全建议之前,您可以输入的最短字符数。
- 匹配顺序:自动补全功能可以从查询字符串中的哪个位置开始匹配建议。
- 自动补全模型:用于生成检索到的建议的自动补全数据模型。您可在
使用
queryModel
的dataStores.completeQuery
参数。 启用自动补全功能:默认情况下,自动补全功能需要收集足够质量的数据(通常需要几天时间)才能开始提供建议。如果您希望覆盖此默认值 选择现在即可更快地自动补全建议。
即使您选择立即,系统也可能需要一天的时间才能生成建议,而且在获得足够好的数据之前,系统仍会缺少一些自动补全建议或提供的建议质量较差。
点击保存并发布。更改会在几分钟内生效, 和搜索引擎。
更新架构中的可补全字段注解
如需为结构化数据架构中的字段开启自动补全功能,请按以下步骤操作:
控制台
在 Google Cloud 控制台中,前往 Agent Builder 页面。
点击要修改的应用的名称。它必须使用结构化数据。
点击数据。
点击架构标签页。
点击修改,选择要标记为
completable
的架构字段。点击保存以保存更新后的字段配置。这些建议大约需要一天时间才能生成并返回。
发送自动补全请求
以下示例展示了如何发送自动补全请求。
REST
如需使用 API 发送自动补全请求,请按以下步骤操作:
查找数据存储区 ID。如果您已经有数据存储区 ID,请跳至下一步。
在 Google Cloud 控制台中,前往 Agent Builder 页面,然后在导航菜单中点击数据存储区。
点击您的数据存储区的名称。
在数据存储区的数据页面上,获取数据存储区 ID。
调用
dataStores.completeQuery
方法。curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/collections/default_collection/dataStores/DATA_STORE_ID:completeQuery?query=QUERY_STRING"
PROJECT_ID:您的 Google Cloud 项目。
LOCATION:数据存储区的位置:
us
、eu
或global
。DATA_STORE_ID:与您的应用关联的数据存储区的 ID。
QUERY_STRING:用于提取建议的预测性输入。
向其他模型发送自动补全请求
如需发送使用其他自动补全数据模型的自动补全请求,请按以下步骤操作:
查找数据存储区 ID。如果您已有数据存储区 ID,请跳至下一步。
在 Google Cloud 控制台中,前往 Agent Builder 页面,然后 在导航菜单中,点击 Data Stores。
点击您的数据存储区的名称。
在数据存储区的数据页面上,获取数据存储区 ID。
调用
dataStores.completeQuery
方法。curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/collections/default_collection/dataStores/DATA_STORE_ID:completeQuery?query=QUERY_STRING&query_model=AUTOCOMPLETE_MODEL"
- PROJECT_ID:您的 Google Cloud 项目的项目编号或 ID。
- LOCATION:您的数据存储区的位置:
us
、eu
或global
。 - DATA_STORE_ID:与您的应用关联的数据存储区的唯一 ID。
- QUERY_STRING:预先输入的输入,用于 获取建议。
- AUTOCOMPLETE_MODEL:自动补全数据
请求使用的模型:
document
、document-completable
、search-history
或user-event
。对于医疗保健数据,请使用healthcare-default
。
C#
如需了解详情,请参阅 Vertex AI Agent Builder C# API 参考文档。
如需向 Vertex AI Agent Builder 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Go
有关详情,请参阅 Vertex AI Agent Builder Go API 参考文档。
如需向 Vertex AI Agent Builder 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Java
有关详情,请参阅 Vertex AI Agent Builder Java API 参考文档。
如需向 Vertex AI Agent Builder 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Node.js
如需了解详情,请参阅 Vertex AI Agent Builder Node.js API 参考文档。
如需向 Vertex AI Agent Builder 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Python
有关详情,请参阅 Vertex AI Agent Builder Python API 参考文档。
如需向 Vertex AI Agent Builder 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Ruby
有关详情,请参阅 Vertex AI Agent Builder Ruby API 参考文档。
如需向 Vertex AI Agent Builder 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
使用自动补全拒绝名单
您可以使用拒绝名单来防止特定字词显示为自动补全建议。
例如,制药公司。如果某种药物已不再获得 FDA 批准,但在其数据存储区中的文档中提及,他们可能希望阻止该药物显示为建议查询。公司 可以将这种药物的名称列入拒绝名单,以防 建议。
适用的限制如下:
- 每个数据存储区一个拒绝名单
- 上传拒绝名单会覆盖该数据存储区的任何现有拒绝名单
- 每个拒绝名单最多包含 1,000 个字词
- 字词不区分大小写
- 导入拒绝名单后,需要 1-2 天的时间才能生效
拒绝名单中的每个条目都包含 blockPhrase
和 matchOperator
:
blockPhrase
:输入字符串作为拒绝名单字词。字词不区分大小写。matchOperator
:接受以下值:EXACT_MATCH
:阻止拒绝名单中字词的完全匹配项显示为建议的查询。CONTAINS
:防止任何包含拒绝名单字词的建议 。
以下是包含四个条目的拒绝名单示例:
{ "entries": [ {"blockPhrase":"Oranges","matchOperator":"CONTAINS"}, {"blockPhrase":"bAd apples","matchOperator":"EXACT_MATCH"}, {"blockPhrase":"Cool as A Cucumber","matchOperator":"EXACT_MATCH"}, {"blockPhrase":"cherry pick","matchOperator":"CONTAINS"} ] }
在导入拒绝名单之前,请验证必要的访问权限控制 已设置为 Discovery Engine 编辑者访问权限。
拒绝名单可以从本地 JSON 数据导入,也可以 Cloud Storage 中的数据。如需从数据存储区中移除拒绝名单,请清除拒绝名单。
从本地 JSON 数据导入拒绝名单
如需从包含拒绝名单的本地 JSON 文件中导入拒绝名单,请执行以下操作:
在本地 JSON 文件中使用以下格式创建拒绝名单。确保每个拒绝名单条目都在新行中,且不含换行符。
{ "inlineSource": { "entries": [ { "blockPhrase":"TERM_1","matchOperator":"MATCH_OPERATOR_1" }, { "blockPhrase":"TERM_2","matchOperator":"MATCH_OPERATOR_2" } ] } }
向
suggestionDenyListEntries:import
方法发出 POST 请求,提供 JSON 文件的名称。curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ --data @DENYLIST_FILE \ "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/dataStores/DATA_STORE_ID/suggestionDenyListEntries:import"
- DENYLIST_FILE:JSON 文件的本地路径 包含拒绝名单字词。
- PROJECT_ID:您的 Google Cloud 项目。
- LOCATION:您的数据存储区的位置:
us
、eu
或global
。 - DATA_STORE_ID:与您的应用关联的数据存储空间的 ID。
导入拒绝名单后,系统需要 1-2 天的时间才能开始过滤建议。
从 Cloud Storage 导入拒绝名单
如需从 Cloud Storage 中的 JSON 文件导入拒绝名单,请执行以下操作:
在 JSON 文件中创建拒绝名单,格式如下,然后导入到 Cloud Storage 存储桶确保拒绝名单中的每个条目都各占一行 且无需换行。
{ "blockPhrase":"TERM_1","matchOperator":"MATCH_OPERATOR_1" } { "blockPhrase":"TERM_2","matchOperator":"MATCH_OPERATOR_2" }
创建一个包含
gcsSource
对象的本地 JSON 文件。使用此属性指向 Cloud Storage 存储桶中的拒绝名单文件的位置。{ "gcsSource": { "inputUris": [ "DENYLIST_STORAGE_LOCATION" ] } }
- DENYLIST_STORAGE_LOCATION:拒绝名单在哪个国家/地区
Cloud Storage您只能输入一个 URI。必须采用以下格式输入 URI:
gs://BUCKET/FILE_PATH
。
- DENYLIST_STORAGE_LOCATION:拒绝名单在哪个国家/地区
Cloud Storage您只能输入一个 URI。必须采用以下格式输入 URI:
向
suggestionDenyListEntries:import
方法,包括gcsSource
对象。curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ --data @GCS_SOURCE_FILE \ "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/dataStores/DATA_STORE_ID/suggestionDenyListEntries:import"
- GCS_SOURCE_FILE:包含指向拒绝名单的
gcsSource
对象的文件的本地路径。 - PROJECT_ID:您的 Google Cloud 项目的项目编号或 ID。
- LOCATION:您的数据存储区的位置:
us
、eu
或global
。 - DATA_STORE_ID:与您的应用关联的数据存储空间的 ID。
- GCS_SOURCE_FILE:包含指向拒绝名单的
导入拒绝名单后,系统需要 1-2 天的时间才能开始过滤建议。
完全清除拒绝名单
如需从数据存储区中清除拒绝名单,请执行以下操作:
向
suggestionDenyListEntries:purge
方法发出 POST 请求。curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/dataStores/DATA_STORE_ID/suggestionDenyListEntries:purge"
- PROJECT_ID:您的 Google Cloud 项目。
- LOCATION:您的数据存储区的位置:
us
、eu
或global
。 - DATA_STORE_ID:与您的应用关联的数据存储空间的 ID。
高级文档数据模型
Vertex AI Agent Builder 提供了用于自动补全的高级数据模型。此数据模型会利用 Google 大语言模型 (LLM),根据您导入的文档生成高质量的自动补全建议。
此功能尚处于实验阶段。如果您有兴趣使用此功能,请与您的 Google Cloud 客户支持团队联系,请求将您添加到许可名单。
此功能不适用于医疗保健搜索,也不适用于美国和欧盟多区域。