

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

# 取得即時項目建議
<a name="getting-real-time-item-recommendations"></a>

 您可以使用 Amazon Personalize 主控台、 AWS Command Line Interface (AWS CLI) 或 AWS SDKs，從 Amazon Personalize 推薦者或自訂行銷活動取得即時項目建議。

**Topics**
+ [取得項目建議 （主控台）](#get-real-time-recommendations-console)
+ [取得項目建議 (AWS CLI)](#get-item-rec-cli)
+ [取得項目建議AWS SDKs)](#get-item-rec-sdk)

## 取得項目建議 （主控台）
<a name="get-real-time-recommendations-console"></a>

 若要取得 Amazon Personalize 主控台的建議，請在建議者 （網域資料集群組） 或自訂行銷活動的詳細資訊頁面上提供請求資訊。

**取得建議**

1. 在 [https://console.aws.amazon.com/personalize/home](https://console.aws.amazon.com/personalize/home)：// 開啟 Amazon Personalize 主控台並登入您的帳戶。

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

1. 在導覽窗格中，選擇**行銷活動**或**建議者**。

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

1.  對於行銷活動，在**測試行銷活動結果**下，根據您使用的配方輸入您的建議請求詳細資訊。針對建議者，選擇**測試建議者**，然後根據您的使用案例輸入您的建議請求詳細資訊。

    如果您在使用者登入之前為他們記錄事件 （匿名使用者），您可以從這些事件提供 `sessionId` 來取得此使用者的建議，就好像是他們的 一樣`userId`。如需記錄匿名使用者事件的詳細資訊，請參閱 [記錄匿名使用者的事件](recording-events.md#recording-anonymous-user-events)。

1. 選擇性地選擇篩選條件。如需詳細資訊，請參閱[篩選建議和使用者客群](filter.md)。

1. 如果您使用內容中繼資料，請提供每個內容的資料。針對每個內容，針對**金鑰**輸入中繼資料欄位。針對**值**輸入內容資料。如需詳細資訊，請參閱[提高與內容中繼資料的建議相關性](contextual-metadata.md)。

1. 如果您在行銷活動或建議者的建議中啟用中繼資料，請在**項目資料集資料欄**選擇您要包含在建議結果中的中繼資料資料欄。如需啟用行銷活動中繼資料的詳細資訊，請參閱 [建議中的項目中繼資料](campaigns.md#create-campaign-return-metadata)。如需啟用建議者中繼資料的詳細資訊，請參閱 [在 Amazon Personalize 中的網域建議程式建議中啟用中繼資料](create-recommender-return-metadata.md)。

1.  如果您想要提升項目子集，請選擇性地完成**提升**欄位。如需更多資訊，請參閱[在即時建議中提升項目](promoting-items.md)。

1. 選擇 **Get recommendations (取得建議)**。顯示包含使用者前 25 個建議項目的資料表。如果您使用 User-Personalization-v2，則每個建議項目都會包含項目包含在建議中的原因清單。如需詳細資訊，請參閱[User-Personalization-v2 的建議原因](recommendations.md#recommendation-reasons)。

## 取得項目建議 (AWS CLI)
<a name="get-item-rec-cli"></a>

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

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

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

 如果您在使用者登入之前為他們記錄事件 （匿名使用者），您可以從這些事件提供 `sessionId` 來取得此使用者的建議，就好像是他們的 一樣`userId`。如需記錄匿名使用者事件的詳細資訊，請參閱 [記錄匿名使用者的事件](recording-events.md#recording-anonymous-user-events)。

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

## 取得項目建議AWS SDKs)
<a name="get-item-rec-sdk"></a>

下列程式碼說明如何從具有 AWS SDKs行銷活動取得使用者的 Amazon Personalize 建議。若要從推薦者取得建議，請將 `campaignArn` 參數取代為 `recommenderArn`。

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

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

如果您在行銷活動或建議者的建議中啟用中繼資料，您可以指定要包含在回應中的項目資料集中繼資料欄。如需程式碼範例，請參閱 [包含項目中繼資料與建議AWS SDKs)](getting-recommendations-with-metadata.md#getting-recommendations-with-metadata-sdk)。如需啟用中繼資料的詳細資訊，請參閱 [建議中的項目中繼資料](campaigns.md#create-campaign-return-metadata)。

 如果您在使用者登入之前為他們記錄事件 （匿名使用者），您可以從這些事件提供 `sessionId` 來取得該使用者的建議，就好像是他們的 一樣`userId`。如需記錄匿名使用者事件的詳細資訊，請參閱 [記錄匿名使用者的事件](recording-events.md#recording-anonymous-user-events)。

------
#### [ 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();
```

------