

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 실시간 항목 추천 받기
<a name="getting-real-time-item-recommendations"></a>

 Amazon Personalize 콘솔, AWS Command Line Interface(AWS CLI) 또는 AWS SDK를 사용하여 Amazon Personalize 추천자 또는 사용자 지정 캠페인으로부터 실시간으로 항목 추천을 받을 수 있습니다.

**Topics**
+ [항목 추천 받기(콘솔)](#get-real-time-recommendations-console)
+ [항목 추천 받기(AWS CLI)](#get-item-rec-cli)
+ [항목 추천 받기(AWS SDK)](#get-item-rec-sdk)

## 항목 추천 받기(콘솔)
<a name="get-real-time-recommendations-console"></a>

 Personalize 콘솔에서 추천을 받으려면 추천자(도메인 데이터세트 그룹) 또는 사용자 지정 캠페인의 세부 정보 페이지에서 요청 정보를 제공합니다.

**추천을 받으려면**

1. [https://console.aws.amazon.com/acm-pca/home](https://console.aws.amazon.com/personalize/home)에서 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. **추천 받기**를 선택합니다. 사용자의 상위 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와 캠페인 또는 추천자의 리소스 이름(ARN)을 지정합니다. 사용자에 대한 상위 10개 추천 항목의 목록이 표시됩니다. User-Personalization-v2를 사용하는 경우 각 추천 항목에는 항목이 추천 사항에 포함된 이유 목록이 포함됩니다. 자세한 내용은 [User-Personalization-v2를 사용한 추천 이유](recommendations.md#recommendation-reasons) 섹션을 참조하세요.

추천 항목 수를 변경하려면 `numResults`의 값을 변경합니다. 기본값은 25개 항목입니다. 최대 항목 수는 500개입니다. RELATED\$1ITEMS 레시피를 사용하여 캠페인을 지원하는 솔루션 버전을 학습시킨 경우 `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 SDK)
<a name="get-item-rec-sdk"></a>

다음 코드는 AWS SDK를 사용한 캠페인으로부터 사용자에 대한 Amazon Personalize 추천을 받는 방법을 보여줍니다. 추천자로부터 추천을 받으려면 `campaignArn` 파라미터를 `recommenderArn`으로 바꿉니다.

추천을 받을 사용자의 ID와 캠페인 또는 추천자의 리소스 이름(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) 섹션을 참조하세요.

 로그인하기 전에 사용자(익명 사용자)에 대한 이벤트를 기록한 경우, 해당 이벤트의 `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();
```

------