

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# リアルタイムのアイテムレコメンデーションの取得
<a name="getting-real-time-item-recommendations"></a>

 Amazon Personalize のリアルタイムのアイテムレコメンデーションは、Amazon Personalize のレコメンダーまたは Amazon Personalize コンソール、AWS Command Line Interface (AWS CLI)、または AWS SDK を使用してカスタムキャンペーンから取得できます。

**Topics**
+ [アイテムレコメンデーションの取得 (コンソール)](#get-real-time-recommendations-console)
+ [アイテムレコメンデーションの取得 (AWS CLI)](#get-item-rec-cli)
+ [アイテムレコメンデーションの取得 (AWS)](#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.  **[キャンペーンの結果をテスト]**で、使用したレシピに基づいたレコメンデーションのリクエストの詳細を入力します。レコメンダーの場合は、**[テストレコメンダー]** を選択し、ユースケースに基づいてレコメンデーションリクエストの詳細を入力します。

    ユーザーがログインする前にユーザーのイベントを記録した場合 (匿名ユーザー)、`userId` の代わりにそれらのイベントから `sessionId` を指定することにより、このユーザー向けのレコメンデーションを取得できます。匿名ユーザーのイベントの記録の詳細については、「[匿名ユーザー向けのイベントの記録](recording-events.md#recording-anonymous-user-events)」を参照してください。

1. オプションでフィルターを選択します。詳細については、「[レコメンデーションとユーザーセグメントのフィルタリング](filter.md)」を参照してください。

1. コンテキストメタデータを使用する場合は、コンテキストごとにデータを提供してください。コンテキストごとに、「**キー**」にメタデータフィールドを入力します。**値** にはコンテキストデータを入力します。詳細については、「[コンテキストメタデータを使用したレコメンデーションの関連性の向上](contextual-metadata.md)」を参照してください。

1. キャンペーンまたはレコメンダーのレコメンデーションでメタデータを有効にした場合、**[Items データセット列]**、レコメンデーション結果に含めるメタデータ列を選択します。キャンペーンのメタデータの有効化については、「[レコメンデーションのアイテムメタデータ](campaigns.md#create-campaign-return-metadata)」を参照してください。レコメンダーのメタデータの有効化については、「[Amazon Personalize のドメインレコメンダーでレコメンデーションのメタデータを有効にする](create-recommender-return-metadata.md)」を参照してください。

1.  一部の商品をプロモーションする場合は、オプションで **[プロモーション]** フィールドに入力します。詳細については、「[リアルタイムレコメンデーション内のアイテムのプロモーション](promoting-items.md)」を参照してください。

1. **[レコメンデーションの取得]** を選択します。ユーザーの上位 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 リソースネーム (ARN) を指定します。ユーザーに推奨される上位 10 個のアイテムのリストが表示されます。User-Personalization-v2 を使用する場合、各レコメンデーションアイテムには、アイテムがレコメンデーションに含まれていた理由のリストが含まれます。詳細については、「[User-Personalization-v2 のレコメンデーションの理由](recommendations.md#recommendation-reasons)」を参照してください。

推奨アイテムの数を変更するには、`numResults` の値を変更します。デフォルトのアイテム数は 25 です。アイテムの最大数は 500 です。RELATED\$1ITEMS レシピを使用して、キャンペーンをサポートするソリューションバージョンをトレーニングした場合は、`user-id` パラメータを `item-id` に置き換えて、アイテム ID を指定します。

 ユーザーがログインする前にユーザーのイベントを記録した場合 (匿名ユーザー)、`userId` の代わりにそれらのイベントから `sessionId` を指定することにより、このユーザー向けのレコメンデーションを取得できます。匿名ユーザーのイベントの記録の詳細については、「[匿名ユーザー向けのイベントの記録](recording-events.md#recording-anonymous-user-events)」を参照してください。

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

## アイテムレコメンデーションの取得 (AWS)
<a name="get-item-rec-sdk"></a>

次のコードは、AWS SDK を使用して、キャンペーンからユーザー向けの Amazon Personalize のレコメンデーションを取得する方法を示しています。レコメンダーからレコメンデーションを取得するには、`campaignArn` パラメータを `recommenderArn` に置き換えます。

レコメンデーションを取得するユーザーの ID、およびキャンペーンまたはレコメンダーの Amazon リソースネーム (ARN) を指定します。ユーザーに推奨される上位 10 個のアイテムのリストが表示されます。User-Personalization-v2 を使用する場合、各レコメンデーションアイテムには、アイテムがレコメンデーションに含まれていた理由のリストが含まれます。詳細については、「[User-Personalization-v2 のレコメンデーションの理由](recommendations.md#recommendation-reasons)」を参照してください。

推奨アイテムの数を変更するには、`numResults` の値を変更します。デフォルトのアイテム数は 25 です。アイテムの最大数は 500 です。RELATED\$1ITEMS レシピを使用して、キャンペーンをサポートするソリューションバージョンをトレーニングした場合は、`userId` パラメータを `itemId` に置き換えて、アイテム ID を指定します。

キャンペーンまたはレコメンダーのレコメンデーションでメタデータを有効にした場合、レスポンスに含めるアイテムデータセットのメタデータ列を指定できます。コードサンプルについては、「[レコメンデーションへのアイテムメタデータの組み込み (AWS SDK)](getting-recommendations-with-metadata.md#getting-recommendations-with-metadata-sdk)」を参照してください。メタデータの有効化については、「[レコメンデーションのアイテムメタデータ](campaigns.md#create-campaign-return-metadata)」を参照してください。

 ユーザーがログインする前にユーザーのイベントを記録した場合 (匿名ユーザー)、`userId` の代わりにそれらのイベントから `sessionId` を指定することにより、このユーザー向けのレコメンデーションを取得できます。匿名ユーザーのイベントの記録の詳細については、「[匿名ユーザー向けのイベントの記録](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();
```

------