Skip to content

Instantly share code, notes, and snippets.

View gcsfred's full-sized avatar

Gustavo Frederico gcsfred

View GitHub Profile
@gcsfred
gcsfred / _get_recommendations_fragment.py
Created February 3, 2020 16:01
Get product recommendations from Amazon Personalize (fragment)
def get_product_recommendations(config, user):
_log_info('Retrieving product recommendations')
return _get_recommendations(user, config['DEFAULT']['product_recommendations_campaignArn'])
def _get_recommendations(user, campaign):
personalize = boto3.client('personalize-runtime', 'us-east-2')
response = personalize.get_recommendations(campaignArn=campaign, userId=user)
answer = []
_log_info('Recommended items:')
@gcsfred
gcsfred / _get_ranking_fragment.py
Created February 3, 2020 16:07
Retrieve product ranking from Amazon (fragment)
def get_product_ranking(config, user, input_list):
_log_info('Retrieving product ranking')
answer = _get_ranking(config['DEFAULT']['product_rankings_campaignArn'], user, input_list,
float(config['DEFAULT']['product_ranking_start']),
float(config['DEFAULT']['product_ranking_steps_down']))
return answer
def _get_ranking(campaign, user, input_list, start, steps_down):
@gcsfred
gcsfred / query_es_fragment.py
Last active February 3, 2020 16:13
Query Elasticsearch with boosts and weights given by Amazon Personalize
def query_es(text_search, category_boost_pairs, product_id_weight_pairs):
client = Elasticsearch()
the_body = {
"query": {
"function_score": {
"query": {
"bool": {
"should": arrange_json_array(
transform_category_boost(category_boost_pairs), {
"match": {
@gcsfred
gcsfred / config.conf
Created February 3, 2020 16:18
Sample integration between Elasticsearch and Amazon Personalize - entire file
[DEFAULT]
product_ranking_start = 10
product_ranking_steps_down = 0.2
cat_ranking_start = 10
cat_ranking_steps_down = 0.2
product_recommendations_campaignArn=arn:aws:personalize:us-east-2:11123456:campaign/es-test03-hrnn
product_rankings_campaignArn=arn:aws:personalize:us-east-2:222789:campaign/es-test03-rank
property1_recommendations_campaignArn=arn:aws:personalize:us-east-2:3333456:campaign/es-test03-cat-hrnn
property1_rankings_campaignArn=arn:aws:personalize:us-east-2:444789:campaign/es-test03-cat-rank