|
@@ -136,7 +136,7 @@ def positon_duplicate(pos1_vids, pos2_vids, videos):
|
|
|
|
|
|
|
|
|
def video_recommend(mid, uid, size, top_K, flow_pool_P, app_type, algo_type, client_info, expire_time=24*3600,
|
|
|
- ab_code=config_.AB_CODE['initial'], return_count=-1):
|
|
|
+ ab_code=config_.AB_CODE['initial'], rule_key=''):
|
|
|
"""
|
|
|
首页线上推荐逻辑
|
|
|
:param mid: mid type-string
|
|
@@ -171,7 +171,7 @@ def video_recommend(mid, uid, size, top_K, flow_pool_P, app_type, algo_type, cli
|
|
|
'''
|
|
|
recall_result_list = []
|
|
|
pool_recall = PoolRecall(app_type=app_type, mid=mid, uid=uid, ab_code=ab_code,
|
|
|
- client_info=client_info, return_count=return_count)
|
|
|
+ client_info=client_info, rule_key=rule_key)
|
|
|
_, last_rov_recall_key, _ = pool_recall.get_video_last_idx()
|
|
|
if ab_code in config_.AB_CODE['rank_by_h']:
|
|
|
t = [gevent.spawn(pool_recall.rov_pool_recall_by_h, size, expire_time),
|
|
@@ -378,7 +378,7 @@ def video_homepage_recommend(mid, uid, size, app_type, algo_type, client_info, a
|
|
|
flow_pool_P = config_.P
|
|
|
ab_code = config_.AB_CODE['initial']
|
|
|
expire_time = 24 * 3600
|
|
|
- return_count = -1
|
|
|
+ rule_key = ''
|
|
|
else:
|
|
|
ab_exp_code_list = []
|
|
|
config_value_dict = {}
|
|
@@ -408,25 +408,25 @@ def video_homepage_recommend(mid, uid, size, app_type, algo_type, client_info, a
|
|
|
flow_pool_P = config_.P
|
|
|
|
|
|
# 小时级更新-规则1 实验
|
|
|
- if config_.AB_EXP_CODE['rule_rank1_20'] in ab_exp_code_list:
|
|
|
+ if config_.AB_EXP_CODE['rule_rank1'] in ab_exp_code_list:
|
|
|
ab_code = config_.AB_CODE['rank_by_h'][0]
|
|
|
expire_time = 3600
|
|
|
- return_count = 20
|
|
|
- elif config_.AB_EXP_CODE['rule_rank1_10'] in ab_exp_code_list:
|
|
|
+ rule_key = 'rule1'
|
|
|
+ elif config_.AB_EXP_CODE['rule_rank2'] in ab_exp_code_list:
|
|
|
ab_code = config_.AB_CODE['rank_by_h'][1]
|
|
|
expire_time = 3600
|
|
|
- return_count = 10
|
|
|
+ rule_key = 'rule2'
|
|
|
else:
|
|
|
ab_code = config_.AB_CODE['initial']
|
|
|
expire_time = 24 * 3600
|
|
|
- return_count = -1
|
|
|
+ rule_key = ''
|
|
|
|
|
|
# 简单召回 - 排序 - 兜底
|
|
|
rank_result, last_rov_recall_key = video_recommend(mid=mid, uid=uid, app_type=app_type,
|
|
|
size=size, top_K=top_K, flow_pool_P=flow_pool_P,
|
|
|
algo_type=algo_type, client_info=client_info,
|
|
|
ab_code=ab_code, expire_time=expire_time,
|
|
|
- return_count=return_count)
|
|
|
+ rule_key=rule_key)
|
|
|
# ab-test
|
|
|
# result = ab_test_op(rank_result=rank_result,
|
|
|
# ab_code_list=[config_.AB_CODE['position_insert']],
|
|
@@ -456,7 +456,7 @@ def video_relevant_recommend(video_id, mid, uid, size, app_type, ab_exp_info):
|
|
|
flow_pool_P = config_.P
|
|
|
ab_code = config_.AB_CODE['initial']
|
|
|
expire_time = 24 * 3600
|
|
|
- return_count = -1
|
|
|
+ rule_key = ''
|
|
|
else:
|
|
|
ab_exp_code_list = []
|
|
|
config_value_dict = {}
|
|
@@ -487,25 +487,25 @@ def video_relevant_recommend(video_id, mid, uid, size, app_type, ab_exp_info):
|
|
|
flow_pool_P = config_.P
|
|
|
|
|
|
# 小时级更新-规则1 实验
|
|
|
- if config_.AB_EXP_CODE['rule_rank1_20'] in ab_exp_code_list:
|
|
|
+ if config_.AB_EXP_CODE['rule_rank1'] in ab_exp_code_list:
|
|
|
ab_code = config_.AB_CODE['rank_by_h'][0]
|
|
|
expire_time = 3600
|
|
|
- return_count = 20
|
|
|
- elif config_.AB_EXP_CODE['rule_rank1_10'] in ab_exp_code_list:
|
|
|
+ rule_key = 'rule1'
|
|
|
+ elif config_.AB_EXP_CODE['rule_rank2'] in ab_exp_code_list:
|
|
|
ab_code = config_.AB_CODE['rank_by_h'][1]
|
|
|
expire_time = 3600
|
|
|
- return_count = 10
|
|
|
+ rule_key = 'rule2'
|
|
|
else:
|
|
|
ab_code = config_.AB_CODE['initial']
|
|
|
expire_time = 24 * 3600
|
|
|
- return_count = -1
|
|
|
+ rule_key = ''
|
|
|
|
|
|
# 简单召回 - 排序 - 兜底
|
|
|
rank_result, last_rov_recall_key = video_recommend(mid=mid, uid=uid, app_type=app_type,
|
|
|
size=size, top_K=top_K, flow_pool_P=flow_pool_P,
|
|
|
algo_type='', client_info=None,
|
|
|
ab_code=ab_code, expire_time=expire_time,
|
|
|
- return_count=return_count)
|
|
|
+ rule_key=rule_key)
|
|
|
# ab-test
|
|
|
# result = ab_test_op(rank_result=rank_result,
|
|
|
# ab_code_list=[config_.AB_CODE['position_insert'], config_.AB_CODE['relevant_video_op']],
|