public async Task <MostPopularItems> GetMostPopularItems(string userId) { MostPopularItems results = null; try { //USER_PERSONALIZATION -- userid required var request = new GetRecommendationsRequest { CampaignArn = AwsParameterStoreClient.GetSimsMostPopularArn(), //sims-most-popular UserId = userId, NumResults = 10 }; var response = await AmazonPersonalizeRuntimeClient.GetRecommendationsAsync(request); var recommendedItems = response.ItemList; var json = JsonConvert.SerializeObject(recommendedItems); Logger.LogInformation("GetMostPopularItems for userid:" + userId + ": " + json); results = new MostPopularItems(); List <string> itemIds = recommendedItems.Select(s => s.ItemId).ToList(); results.Movies = await _storageService.GetMovieData(itemIds.ToArray()); return(results); } catch (Exception ex) { throw; } }
public PersonalizedRecommendationsService(ILogger logger) { AmazonPersonalizeClient = new AmazonPersonalizeClient(RegionEndpoint.USEast1); AmazonPersonalizeRuntimeClient = new AmazonPersonalizeRuntimeClient(RegionEndpoint.USEast1); Logger = logger; }
protected IAmazonPersonalizeRuntime CreateClient(AWSCredentials credentials, RegionEndpoint region) { var config = new AmazonPersonalizeRuntimeConfig { RegionEndpoint = region }; Amazon.PowerShell.Utils.Common.PopulateConfig(this, config); this.CustomizeClientConfig(config); var client = new AmazonPersonalizeRuntimeClient(credentials, config); client.BeforeRequestEvent += RequestEventHandler; client.AfterResponseEvent += ResponseEventHandler; return(client); }
public async Task <PersonalizeViewModel> GetRecommendations(string userId) { PersonalizeViewModel results = null; try { //USER_PERSONALIZATION -- userid required var request = new GetRecommendationsRequest { CampaignArn = AwsParameterStoreClient.GetPersonalRecommendationsArn(), //personal-recommendations-metadata UserId = userId, NumResults = 10 }; var response = await AmazonPersonalizeRuntimeClient.GetRecommendationsAsync(request); var recommendedItems = response.ItemList; var json = JsonConvert.SerializeObject(recommendedItems); Logger.LogInformation("GetRecommendations:" + userId + ": " + json); results = new PersonalizeViewModel { User = new User() { User_Id = userId } }; //get movie thumbnail from imdb IList <RecommendedItems> recItems = new List <RecommendedItems>(); List <string> itemIds = recommendedItems.Select(s => s.ItemId).ToList(); results.RecommendedItems.Movies = await _storageService.GetMovieData(itemIds.ToArray()); return(results); } catch (Exception ex) { throw; } }
public async Task <SimilarItemViewModel> GetSimilarItems(string movieItemId) { SimilarItemViewModel results = null; try { //RELATED_ITEMS -- itemId required var relateditemsrequest = new GetRecommendationsRequest { CampaignArn = AwsParameterStoreClient.GetSimsArn(), //sims-arn ItemId = movieItemId, NumResults = 10 }; var relateditemsrequestresponse = await AmazonPersonalizeRuntimeClient.GetRecommendationsAsync(relateditemsrequest); var relateditemsrequestrecommendedItems = relateditemsrequestresponse.ItemList; var json = JsonConvert.SerializeObject(relateditemsrequestrecommendedItems); Logger.LogInformation("GetSimilarItems for movie:" + movieItemId + ": " + json); results = new SimilarItemViewModel { //selected movie Movie = await _storageService.GetMovieData(movieItemId) }; List <string> itemIds = relateditemsrequestrecommendedItems.Select(s => s.ItemId).ToList(); results.SimilarItems.Movies = await _storageService.GetMovieData(itemIds.ToArray()); return(results); } catch (Exception ex) { throw; } }
public async Task <PersonalizedRankingResults> GetPersonalizedResults(string userId, List <Movie> movies) { PersonalizedRankingResults results = null; try { //USER_PERSONALIZATION -- userid required var request = new GetPersonalizedRankingRequest //personal-ranking { CampaignArn = AwsParameterStoreClient.GetPersonalRankingArn(), UserId = userId, InputList = movies.Select(s => s.Id).ToList() }; var response = await AmazonPersonalizeRuntimeClient.GetPersonalizedRankingAsync(request); var recommendedItems = response.PersonalizedRanking; var json = JsonConvert.SerializeObject(recommendedItems); Logger.LogInformation("GetPersonalizedResults:" + userId + ": " + json); results = new PersonalizedRankingResults(); List <string> itemIds = recommendedItems.Select(s => s.ItemId).ToList(); results.Movies = await _storageService.GetMovieData(itemIds.ToArray()); return(results); } catch (Exception ex) { throw; } }