取得即時項目建議 - Amazon Personalize

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

取得即時項目建議

您可以透過 Amazon Personalize 主控台 AWS Command Line Interface (AWS CLI) 或 ,從 Amazon Personalize 推薦工具或自訂行銷活動取得即時項目建議 AWS SDKs。

取得項目建議 (主控台)

若要取得 Amazon Personalize 主控台的建議,您可以在推薦程式 (網域資料集群組) 或自訂行銷活動的詳細資訊頁面上提供請求資訊。

取得建議
  1. https://console.aws.amazon.com/personalize/在家開啟 Amazon Personalize 主控台並登入您的帳戶。

  2. 選擇包含您正在使用行銷活動或推薦程式的資料集群組。

  3. 在導覽窗格中,選擇 CampaignsRecommenders

  4. 選擇目標行銷活動或推薦者。

  5. 對於行銷活動,在測試行銷活動結果 下,根據您使用的配方輸入您的建議請求詳細資訊。對於推薦人,請選擇測試推薦人,並根據您的使用案例輸入您的建議請求詳細資訊。

    如果您在使用者登入 (匿名使用者) 之前為他們記錄事件,您可以從sessionId這些事件提供 以取得建議,就像是他們的 一樣userId。如需記錄匿名使用者事件的詳細資訊,請參閱 記錄匿名使用者的事件

  6. 選擇性地選擇篩選條件。如需詳細資訊,請參閱篩選建議和使用者區段

  7. 如果您使用內容中繼資料,請提供每個內容的資料。針對每個內容,針對金鑰輸入中繼資料欄位。針對輸入內容資料。如需詳細資訊,請參閱增加與內容中繼資料的建議關聯性

  8. 如果您在行銷活動或建議程式的建議中啟用中繼資料,請在項目資料集資料欄 中,選擇要包含在建議結果中的中繼資料資料欄。如需啟用行銷活動中繼資料的資訊,請參閱 建議中的項目中繼資料。如需為推薦者啟用中繼資料的資訊,請參閱 在建議中為 Amazon Personalize 網域推薦人啟用中繼資料

  9. 如果您想要提升項目子集,請選擇性地完成提升欄位。如需詳細資訊,請參閱 在即時建議中提升項目

  10. 選擇 Get recommendations (取得建議)。顯示包含使用者前 25 個建議項目的資料表。如果您使用 User-Personalization-v2,則每個建議項目都會包含該項目包含在建議中的原因清單。如需詳細資訊,請參閱具有 User-Personalization-v2 的建議原因

取得項目建議 (AWS CLI)

使用下列程式碼從行銷活動取得建議。若要從建議程式取得建議,請將 campaign-arn 參數取代為 recommender-arn

指定您要取得建議的使用者 ID,以及行銷活動或推薦者的 Amazon Resource Name (ARN)。使用者前 10 個建議項目的清單隨即顯示。如果您使用 User-Personalization-v2,則每個建議項目都會包含該項目包含在建議中的原因清單。如需詳細資訊,請參閱具有 User-Personalization-v2 的建議原因

若要變更建議項目的數量,請變更 的值numResults。預設值為 25 個項目。上限為 500 個項目。如果您使用 RELATED_ITEMS 配方來訓練支援行銷活動的解決方案版本,請將 user-id 參數取代為 ,item-id並指定項目 ID。

如果您在使用者登入 (匿名使用者) 之前為他們記錄事件,您可以從sessionId這些事件提供 以取得建議,就像是他們的 一樣userId。如需記錄匿名使用者事件的詳細資訊,請參閱 記錄匿名使用者的事件

aws personalize-runtime get-recommendations \ --campaign-arn campaign arn \ --user-id User ID \ --num-results 10

取得項目建議 (AWS SDKs)

下列程式碼顯示如何透過 取得 行銷活動的 Amazon Personalize 建議 AWS SDKs。若要從建議程式取得建議,請將 campaignArn 參數取代為 recommenderArn

指定您要取得建議的使用者 ID,以及行銷活動或推薦者的 Amazon Resource Name (ARN)。使用者前 10 個建議項目的清單隨即顯示。如果您使用 User-Personalization-v2,則每個建議項目都會包含該項目包含在建議中的原因清單。如需詳細資訊,請參閱具有 User-Personalization-v2 的建議原因

若要變更建議項目的數量,請變更 的值numResults。預設值為 25 個項目。上限為 500 個項目。如果您使用 RELATED_ITEMS 配方來訓練支援行銷活動的解決方案版本,請將 userId 參數取代為 ,itemId並指定項目 ID。

如果您在行銷活動或建議程式的建議中啟用中繼資料,您可以指定要包含在回應中的項目資料集中繼資料欄。如需程式碼範例,請參閱 包含具有建議的項目中繼資料 (AWS SDKs)。如需有關啟用中繼資料的資訊,請參閱 建議中的項目中繼資料

如果您在使用者登入 (匿名使用者) 之前為他們記錄事件,您可以從這些事件提供 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();