获取商品推荐 (Amazon SDK) - Amazon Personalize
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

获取商品推荐 (Amazon SDK)

以下代码示例显示了如何使用 Amazon 软件开发工具包获取商品推荐的不同变体。

获取物品建议

以下代码展示了如何从市场活动中为用户获取 Amazon Personalize 建议。要从推荐器中获得建议,请将 campaignArn 参数替换为 recommenderArn

指定要获取建议的用户的 ID 及市场活动或推荐器的 Amazon 资源名称 (ARN)。这时,将显示为用户推荐的前 10 个物品的列表。如果您使用 Userpersonalization-v2,则每件推荐的商品都包含一份将该商品包含在推荐中的原因列表。有关更多信息,请参阅 推荐理由(用户个性化-v2)

要更改推荐物品的数量,请更改 numResults 的值。默认值为 25 个物品。最大值为 500 个物品。如果您使用 RELATED_ITEMS 食谱来训练支持市场活动的解决方案版本,请将 userId 参数替换为 itemId 并指定物品 ID。

如果您在市场活动或推荐器的建议中启用了元数据,则可以指定要包含在响应中的物品数据集元数据列。有关代码示例,请参阅包括带有建议的物品元数据。有关启用元数据的信息,请参阅推荐中的商品元数据

如果您在用户登录(匿名用户)之前为其记录了事件,则可以通过提供来自这些事件的 sessionId(就像是其 userId),获取针对此用户的建议。有关为匿名用户记录事件的更多信息,请参阅为匿名用户记录事件

SDK for Python (Boto3)
import boto3 personalizeRt = boto3.client('personalize-runtime') response = personalizeRt.get_recommendations( campaignArn = 'Campaign ARN', userId = 'User ID', numResults = 10 ) print("Recommended items") for item in response['itemList']: print (item['itemId'])
SDK for Java 2.x
public static void getRecs(PersonalizeRuntimeClient personalizeRuntimeClient, String campaignArn, String userId) { try { GetRecommendationsRequest recommendationsRequest = GetRecommendationsRequest.builder() .campaignArn(campaignArn) .numResults(20) .userId(userId) .build(); GetRecommendationsResponse recommendationsResponse = personalizeRuntimeClient .getRecommendations(recommendationsRequest); List<PredictedItem> items = recommendationsResponse.itemList(); for (PredictedItem item : items) { System.out.println("Item Id is : " + item.itemId()); System.out.println("Item score is : " + item.score()); } } catch (AwsServiceException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } }
SDK for JavaScript v3
// Get service clients module and commands using ES6 syntax. import { GetRecommendationsCommand } from "@aws-sdk/client-personalize-runtime"; import { personalizeRuntimeClient } from "./libs/personalizeClients.js"; // Or, create the client here. // const personalizeRuntimeClient = new PersonalizeRuntimeClient({ region: "REGION"}); // Set the recommendation request parameters. export const getRecommendationsParam = { campaignArn: 'CAMPAIGN_ARN', /* required */ userId: 'USER_ID', /* required */ numResults: 15 /* optional */ } export const run = async () => { try { const response = await personalizeRuntimeClient.send(new GetRecommendationsCommand(getRecommendationsParam)); console.log("Success!", response); return response; // For unit tests. } catch (err) { console.log("Error", err); } }; run();

包括带有建议的物品元数据

如果您在市场活动或推荐器的建议中启用了元数据,则可以指定要包含在响应中的物品数据集元数据列。有关为市场活动启用元数据的信息,请参阅推荐中的商品元数据。有关为推荐器启用元数据的信息,请参阅在建议中启用元数据

以下代码示例显示了如何在请求建议时指定元数据列。

import boto3 personalizeRt = boto3.client('personalize-runtime') response = personalizeRt.get_recommendations( campaignArn = 'Campaign ARN', userId = 'User ID', numResults = 10 metadataColumns = { "ITEMS": ['columnNameA','columnNameB'] } ) print("Recommended items") for item in response['itemList']: print(item['itemId']) print(item['metadata'])