0

Can someone help with getting starting using the AWS Java SDK for Personalize? I used to the console to build a Campaign. Now I want to query for recommendations using Java.

Amazon has many examples in Python, but I need Java. Starting with the client builder is especially useful.

Thanks.

John Rotenstein
  • 241,921
  • 22
  • 380
  • 470
BSP
  • 11
  • 2

1 Answers1

1

To query for recommendations by using Java V2, you use the PersonalizeRuntimeClient object.

Here is an example that uses Java V2. We will have the full examples posted in Java V2 Github very soon.

**

package com.example.personalize;
//snippet-start:[personalize.java2.get_recommendations.import]
import software.amazon.awssdk.awscore.exception.AwsServiceException;
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.personalizeruntime.PersonalizeRuntimeClient;
import software.amazon.awssdk.services.personalizeruntime.model.GetRecommendationsRequest;
import software.amazon.awssdk.services.personalizeruntime.model.GetRecommendationsResponse;
import software.amazon.awssdk.services.personalizeruntime.model.PredictedItem;
import java.util.List;
//snippet-end:[personalize.java2.get_recommendations.import]
public class GetRecommendations {
    public static void main(String[] args) {
        final String USAGE = "\n" +
                "Usage:\n" +
                "    GetRecommendations <campaignArn> <userId>\n\n" +
                "Where:\n" +
                "    campaignArn - The ARN of the campaign.\n\n" +
                "    userId - The user ID to provide recommendations for\n\n";
        if (args.length < 2) {
            System.out.println(USAGE);
            System.exit(1);
        }
        /* Read the name from command args */
        String campaignArn = args[0];
        String userId = args[1];
        Region region = Region.US_EAST_1;
        PersonalizeRuntimeClient personalizeRuntimeClient = PersonalizeRuntimeClient.builder()
                .region(region)
                .build();
        getRecs(personalizeRuntimeClient, campaignArn, userId);
    }
    //snippet-start:[personalize.java2.get_recommendations.main]
    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);
        }
    }
    //snippet-end:[personalize.java2.get_recommendations.main]
}

**

smac2020
  • 9,637
  • 4
  • 24
  • 38
  • Github examples are located here - https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javav2/example_code/personalize – smac2020 Sep 08 '20 at 16:11