Method: projects.locations.collections.engines.servingConfigs.recommend

进行推荐,这需要一个上下文用户事件。

HTTP 请求

POST https://discoveryengine.googleapis.com/v1alpha/{servingConfig=projects/*/locations/*/collections/*/engines/*/servingConfigs/*}:recommend

网址采用 gRPC 转码语法。

路径参数

参数
servingConfig

string

必需。ServingConfig 的完整资源名称:projects/*/locations/global/collections/*/engines/*/servingConfigs/*projects/*/locations/global/collections/*/dataStores/*/servingConfigs/*

您的推荐引擎在创建时,会一并创建一个默认服务配置。引擎 ID 用作默认服务配置的 ID。例如,对于引擎 projects/*/locations/global/collections/*/engines/my-engine,您可以将 projects/*/locations/global/collections/*/engines/my-engine/servingConfigs/my-engine 用于 RecommendationService.Recommend 请求。

请求正文

请求正文中包含结构如下的数据:

JSON 表示法
{
  "userEvent": {
    object (UserEvent)
  },
  "pageSize": integer,
  "filter": string,
  "validateOnly": boolean,
  "params": {
    string: value,
    ...
  },
  "userLabels": {
    string: string,
    ...
  }
}
字段
userEvent

object (UserEvent)

必需。有关用户的背景信息、用户正在查看的内容以及用户触发 servingConfigs.recommend 请求所执行的操作。请注意,此用户事件详细信息不会被注入到 userEvent 日志中。因此,需要单独的 userEvent 写入请求用于事件日志记录。

请勿针对不同的用户将 UserEvent.user_pseudo_idUserEvent.user_info.user_id 设置为相同的固定 ID。如果您尝试接收非个性化推荐(不建议这样做;这可能会对模型性能产生负面影响),请将 UserEvent.user_pseudo_id 设置为随机唯一 ID,并使 UserEvent.user_info.user_id 保持未设置状态。

pageSize

integer

页面中结果的数量上限。将此属性设置为所需的推荐结果数量。如果为零,则服务会选择一个合理的默认值。允许的最大值为 100。大于 100 的值会设置为 100。

filter

string

用于限制推荐结果的过滤条件,长度限制为 5,000 个字符。目前,仅支持针对 filterTags 属性的过滤条件表达式。

示例:

  • (filterTags: ANY("Red", "Blue") OR filterTags: ANY("Hot", "Cold"))
  • (filterTags: ANY("Red", "Blue")) AND NOT (filterTags: ANY("Green"))

如果 params 字段下的 attributeFilteringSyntax 设置为 true,则系统预计会使用基于属性的表达式,而不是上述基于标记的语法。示例:

  • (language: ANY("en", "es")) AND NOT (categories: ANY("Movie"))
  • (available: true) AND (language: ANY("en", "es")) OR (categories: ANY("Movie"))

如果您的过滤条件屏蔽了所有结果,则 API 会返回通用的(未过滤)热门文档。如果您只希望获得与过滤条件严格匹配的结果,请在 RecommendRequest.params 中将 strictFiltering 设置为 true 以接收空结果。

请注意,无论过滤条件如何选择,API 都不会返回 storageStatusEXPIREDDELETEDDocument

validateOnly

boolean

针对相应推荐查询使用仅验证模式。如果设置为 true,则系统会使用虚构模型以返回任意文档 ID。请注意,仅验证模式应仅用于测试 API,或在模型未就绪时使用。

params

map (key: string, value: value (Value format))

推荐的其他网域专用参数。

允许的值:

  • returnDocument:布尔值。如果设置为 true,则系统会在 RecommendResponse.RecommendationResult.document 中返回关联的文档对象。
  • returnScore:布尔值。如果设置为 true,则系统会在 RecommendResponse.RecommendationResult.metadata 中设置与每个返回的文档对应的推荐得分。给定的得分表示在给定用户背景信息和历史记录的情况下,文档转化的概率。
  • strictFiltering:布尔值。默认情况下为 true。 如果设置为 false,则当过滤条件屏蔽所有推荐结果时,服务会返回通用的(未过滤)热门文档,而不是返回空结果。
  • diversityLevel:字符串。默认值:空。如果设置为非空,则需要是以下值之一:
    • no-diversity
    • low-diversity
    • medium-diversity
    • high-diversity
    • auto-diversity:这可实现请求级控制,并根据文档类别调整推荐结果。
  • attributeFilteringSyntax:布尔值。默认值为 false。如果设置为 true,则系统会根据新的基于属性的语法来解读 filter 字段。
userLabels

map (key: string, value: string)

应用于资源的用户标签必须符合以下要求:

  • 每项资源可以有多个标签,但不能超过 64 个。
  • 每个标签都必须采用键值对形式。
  • 键的长度下限为 1 个字符,长度上限为 63 个字符,且不能为空。值可以为空,且长度上限为 63 个字符。
  • 键和值只能包含小写字母、数字字符、下划线和短划线。所有字符必须使用 UTF-8 编码,允许使用国际字符。
  • 标签的键部分必须是唯一的。不过,您可以将同一个键用于多个资源。
  • 键必须以小写字母或国际字符开头。

如需了解详情,请参阅标签要求

响应正文

如果成功,则响应正文包含一个 RecommendResponse 实例。

授权范围

需要以下 OAuth 范围之一:

  • https://www.googleapis.com/auth/cloud-platform
  • https://www.googleapis.com/auth/discoveryengine.readwrite

如需了解详情,请参阅 Authentication Overview

IAM 权限

需要拥有 servingConfig 资源的以下 IAM 权限:

  • discoveryengine.servingConfigs.recommend

如需了解详情,请参阅 IAM 文档