|
@@ -458,7 +458,7 @@ def video_old_recommend(request_id, mid, uid, size, top_K, flow_pool_P, app_type
|
|
|
expire_time=24*3600, ab_code=config_.AB_CODE['initial'], rule_key='', data_key='',
|
|
|
no_op_flag=False, old_video_index=-1, video_id=None, params=None, rule_key_30day=None,
|
|
|
shield_config=None, env_dict=None, level_weight=None, flow_pool_abtest_group=None,
|
|
|
- rank_key_prefix=None):
|
|
|
+ rank_key_prefix=None, h_data_key=None, h_rule_key=None):
|
|
|
"""
|
|
|
首页线上推荐逻辑
|
|
|
:param request_id: request_id
|
|
@@ -487,7 +487,8 @@ def video_old_recommend(request_id, mid, uid, size, top_K, flow_pool_P, app_type
|
|
|
app_type=app_type, mid=mid, uid=uid, ab_code=ab_code,
|
|
|
client_info=client_info, rule_key=rule_key, data_key=data_key, no_op_flag=no_op_flag,
|
|
|
params=params, rule_key_30day=rule_key_30day, shield_config=shield_config,
|
|
|
- video_id=video_id, level_weight=level_weight)
|
|
|
+ video_id=video_id, level_weight=level_weight,
|
|
|
+ h_data_key=h_data_key, h_rule_key=h_rule_key)
|
|
|
|
|
|
exp_config = pool_recall.get_sort_ab_codel_config()
|
|
|
# 60054 全量: simrecall+融合排序
|
|
@@ -525,7 +526,8 @@ def video_old_recommend(request_id, mid, uid, size, top_K, flow_pool_P, app_type
|
|
|
if ab_code == 60054 or ab_code == 60066 or ab_code == 60072 or ab_code == 60073 or ab_code == 60074 \
|
|
|
or ab_code == 60075 or ab_code == 60076 or ab_code == 60077 or ab_code == 60078 or ab_code == 60079 \
|
|
|
or ab_code == 60087 or ab_code == 60088 or ab_code == 60089 or ab_code == 60090 \
|
|
|
- or ab_code == 60091 or ab_code == 60092 or ab_code == 60093 or ab_code == 60094 or ab_code == 60095:
|
|
|
+ or ab_code == 60091 or ab_code == 60092 or ab_code == 60093 or ab_code == 60094 or ab_code == 60095 \
|
|
|
+ or ab_code == 60096:
|
|
|
t.append(gevent.spawn(pool_recall.get_sim_hot_item_reall_filter))
|
|
|
elif ab_code == 60056 or ab_code == 60071:
|
|
|
t.append(gevent.spawn(pool_recall.get_sim_hot_item_reall_filter))
|
|
@@ -550,7 +552,8 @@ def video_old_recommend(request_id, mid, uid, size, top_K, flow_pool_P, app_type
|
|
|
if ab_code == 60054 or ab_code == 60066 or ab_code == 60072 or ab_code == 60073 or ab_code == 60074 \
|
|
|
or ab_code == 60075 or ab_code == 60076 or ab_code == 60077 or ab_code == 60078 or ab_code == 60079 \
|
|
|
or ab_code == 60087 or ab_code == 60088 or ab_code == 60089 or ab_code == 60090 \
|
|
|
- or ab_code == 60091 or ab_code == 60092 or ab_code == 60093 or ab_code == 60094 or ab_code == 60095:
|
|
|
+ or ab_code == 60091 or ab_code == 60092 or ab_code == 60093 or ab_code == 60094 or ab_code == 60095 \
|
|
|
+ or ab_code == 60096:
|
|
|
rov_pool_recall = []
|
|
|
if len(recall_result_list) >= 2:
|
|
|
region_recall = recall_result_list[0]
|
|
@@ -1092,6 +1095,14 @@ def update_redis_data(result, app_type, mid, top_K, expire_time=24*3600, level_w
|
|
|
redis_helper.set_data_to_redis(key_name=last_video_key, value=rov_recall_24h_dup3_video[-1],
|
|
|
expire_time=expire_time)
|
|
|
|
|
|
+ # 将此次获取的 不分地域小时级数据列表(不做离线去重)中的视频id同步刷新到redis中,方便下次快速定位到召回位置
|
|
|
+ rov_recall_h_h_without_dup_video = [item['videoId'] for item in result[:top_K]
|
|
|
+ if item['pushFrom'] == config_.PUSH_FROM['rov_recall_h_h_without_dup']]
|
|
|
+ if len(rov_recall_h_h_without_dup_video) > 0:
|
|
|
+ last_video_key = f'{config_.LAST_VIDEO_FROM_H_PREFIX}{app_type}:{mid}'
|
|
|
+ redis_helper.set_data_to_redis(key_name=last_video_key, value=rov_recall_h_h_without_dup_video[-1],
|
|
|
+ expire_time=expire_time)
|
|
|
+
|
|
|
# # 将此次获取的 相对48h筛选数据列表 中的视频id同步刷新到redis中,方便下次快速定位到召回位置
|
|
|
# rov_recall_48h_dup2_video = [item['videoId'] for item in result[:top_K]
|
|
|
# if item['pushFrom'] == config_.PUSH_FROM['rov_recall_48h']]
|
|
@@ -1486,6 +1497,8 @@ def get_recommend_params(recommend_type, ab_exp_info, ab_info_data, mid, app_typ
|
|
|
rule_key_30day = param.get('30day_rule_key')
|
|
|
shield_config = config_.SHIELD_CONFIG
|
|
|
rank_key_prefix = 'rank:score1:'
|
|
|
+ h_rule_key = param.get('h_rule_key')
|
|
|
+ h_data_key = param.get('h_data_key')
|
|
|
|
|
|
# 默认使用 095 实验的配置
|
|
|
# ab_code = config_.AB_EXP_CODE['095'].get('ab_code')
|
|
@@ -1601,6 +1614,8 @@ def get_recommend_params(recommend_type, ab_exp_info, ab_info_data, mid, app_typ
|
|
|
rule_key_30day = param.get('30day_rule_key')
|
|
|
shield_config = param.get('shield_config', config_.SHIELD_CONFIG)
|
|
|
rank_key_prefix = param.get('rank_key_prefix', 'rank:score1:')
|
|
|
+ h_rule_key = param.get('h_rule_key')
|
|
|
+ h_data_key = param.get('h_data_key')
|
|
|
break
|
|
|
|
|
|
"""
|
|
@@ -1900,7 +1915,7 @@ def get_recommend_params(recommend_type, ab_exp_info, ab_info_data, mid, app_typ
|
|
|
# log_.info(f"flow_pool_id_choice: {flow_pool_id_choice}, flow_pool_abtest_group: {flow_pool_abtest_group}")
|
|
|
|
|
|
return top_K, flow_pool_P, ab_code, rule_key, data_key, expire_time, no_op_flag, old_video_index, rule_key_30day, \
|
|
|
- shield_config, flow_pool_abtest_group, rank_key_prefix
|
|
|
+ shield_config, flow_pool_abtest_group, rank_key_prefix, h_data_key, h_rule_key
|
|
|
|
|
|
|
|
|
def video_homepage_recommend(request_id, mid, uid, size, app_type, algo_type,
|
|
@@ -1969,7 +1984,8 @@ def video_homepage_recommend(request_id, mid, uid, size, app_type, algo_type,
|
|
|
|
|
|
# 普通mid推荐处理
|
|
|
top_K, flow_pool_P, ab_code, rule_key, data_key, expire_time, \
|
|
|
- no_op_flag, old_video_index, rule_key_30day, shield_config, flow_pool_abtest_group, rank_key_prefix = \
|
|
|
+ no_op_flag, old_video_index, rule_key_30day, shield_config, flow_pool_abtest_group, rank_key_prefix, \
|
|
|
+ h_data_key, h_rule_key = \
|
|
|
get_recommend_params(recommend_type=0, ab_exp_info=ab_exp_info, ab_info_data=ab_info_data, mid=mid,
|
|
|
app_type=app_type, flow_pool_abtest_config=flow_pool_abtest_config)
|
|
|
# log_.info({
|
|
@@ -2005,7 +2021,8 @@ def video_homepage_recommend(request_id, mid, uid, size, app_type, algo_type,
|
|
|
or ab_code == 60078 or ab_code == 60079 or ab_code == 60080 or ab_code == 60081 or ab_code == 60082\
|
|
|
or ab_code == 60083 or ab_code == 60084 or ab_code == 60085 or ab_code == 60086 \
|
|
|
or ab_code == 60087 or ab_code == 60088 or ab_code == 60089 or ab_code == 60090 \
|
|
|
- or ab_code == 60091 or ab_code == 60092 or ab_code == 60093 or ab_code == 60094 or ab_code == 60095:
|
|
|
+ or ab_code == 60091 or ab_code == 60092 or ab_code == 60093 or ab_code == 60094 or ab_code == 60095 \
|
|
|
+ or ab_code == 60096:
|
|
|
result, fea_info = video_old_recommend(request_id=request_id, mid=mid, uid=uid, app_type=app_type, size=size,
|
|
|
top_K=top_K, flow_pool_P=flow_pool_P, algo_type='',
|
|
|
client_info=client_info, ab_code=ab_code, expire_time=expire_time,
|
|
@@ -2014,7 +2031,8 @@ def video_homepage_recommend(request_id, mid, uid, size, app_type, algo_type,
|
|
|
rule_key_30day=rule_key_30day, shield_config=shield_config,
|
|
|
env_dict=env_dict, level_weight=level_weight,
|
|
|
flow_pool_abtest_group=flow_pool_abtest_group,
|
|
|
- rank_key_prefix=rank_key_prefix)
|
|
|
+ rank_key_prefix=rank_key_prefix,
|
|
|
+ h_data_key=h_data_key, h_rule_key=h_rule_key)
|
|
|
recommend_result['fea_info'] = fea_info
|
|
|
else:
|
|
|
result = video_recommend(request_id=request_id, mid=mid, uid=uid, app_type=app_type, size=size, top_K=top_K,
|
|
@@ -2099,7 +2117,8 @@ def video_relevant_recommend(request_id, video_id, mid, uid, size, app_type, ab_
|
|
|
|
|
|
# 普通mid推荐处理
|
|
|
top_K, flow_pool_P, ab_code, rule_key, data_key, expire_time, \
|
|
|
- no_op_flag, old_video_index, rule_key_30day, shield_config, flow_pool_abtest_group, rank_key_prefix = \
|
|
|
+ no_op_flag, old_video_index, rule_key_30day, shield_config, flow_pool_abtest_group, rank_key_prefix, \
|
|
|
+ h_data_key, h_rule_key = \
|
|
|
get_recommend_params(recommend_type=1, ab_exp_info=ab_exp_info, ab_info_data=ab_info_data, page_type=page_type,
|
|
|
mid=mid, app_type=app_type, flow_pool_abtest_config=flow_pool_abtest_config)
|
|
|
# log_.info({
|
|
@@ -2130,7 +2149,8 @@ def video_relevant_recommend(request_id, video_id, mid, uid, size, app_type, ab_
|
|
|
or ab_code == 60078 or ab_code == 60079 or ab_code == 60080 or ab_code == 60081 or ab_code == 60082 \
|
|
|
or ab_code == 60083 or ab_code == 60084 or ab_code == 60085 or ab_code == 60086 \
|
|
|
or ab_code == 60087 or ab_code == 60088 or ab_code == 60089 or ab_code == 60090 \
|
|
|
- or ab_code == 60091 or ab_code == 60092 or ab_code == 60093 or ab_code == 60094 or ab_code == 60095:
|
|
|
+ or ab_code == 60091 or ab_code == 60092 or ab_code == 60093 or ab_code == 60094 or ab_code == 60095 \
|
|
|
+ or ab_code == 60096:
|
|
|
result, fea_info = video_old_recommend(request_id=request_id, mid=mid, uid=uid, app_type=app_type, size=size,
|
|
|
top_K=top_K, flow_pool_P=flow_pool_P, algo_type='',
|
|
|
client_info=client_info, ab_code=ab_code, expire_time=expire_time,
|
|
@@ -2139,7 +2159,8 @@ def video_relevant_recommend(request_id, video_id, mid, uid, size, app_type, ab_
|
|
|
rule_key_30day=rule_key_30day, shield_config=shield_config,
|
|
|
env_dict=env_dict, level_weight=level_weight,
|
|
|
flow_pool_abtest_group=flow_pool_abtest_group,
|
|
|
- rank_key_prefix=rank_key_prefix)
|
|
|
+ rank_key_prefix=rank_key_prefix,
|
|
|
+ h_data_key=h_data_key, h_rule_key=h_rule_key)
|
|
|
recommend_result['fea_info'] = fea_info
|
|
|
else:
|
|
|
result = video_recommend(request_id=request_id, mid=mid, uid=uid, app_type=app_type, size=size, top_K=top_K,
|