|  | @@ -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,
 |  |  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'], rule_key='', no_op_flag=False, old_video_index=-1):
 |  | 
 | 
											
												
													
														|  | 
 |  | +                    ab_code=config_.AB_CODE['initial'], rule_key='', no_op_flag=False, old_video_index=-1, video_id=None):
 | 
											
												
													
														|  |      """
 |  |      """
 | 
											
												
													
														|  |      首页线上推荐逻辑
 |  |      首页线上推荐逻辑
 | 
											
												
													
														|  |      :param mid: mid type-string
 |  |      :param mid: mid type-string
 | 
											
										
											
												
													
														|  | @@ -149,6 +149,7 @@ def video_recommend(mid, uid, size, top_K, flow_pool_P, app_type, algo_type, cli
 | 
											
												
													
														|  |      :param client_info: 用户位置信息 {"country": "国家",  "province": "省份",  "city": "城市"}
 |  |      :param client_info: 用户位置信息 {"country": "国家",  "province": "省份",  "city": "城市"}
 | 
											
												
													
														|  |      :param expire_time: 末位视频记录redis过期时间
 |  |      :param expire_time: 末位视频记录redis过期时间
 | 
											
												
													
														|  |      :param ab_code: AB实验code
 |  |      :param ab_code: AB实验code
 | 
											
												
													
														|  | 
 |  | +    :param video_id: 相关推荐头部视频id
 | 
											
												
													
														|  |      :return:
 |  |      :return:
 | 
											
												
													
														|  |      """
 |  |      """
 | 
											
												
													
														|  |      # ####### 多进程召回
 |  |      # ####### 多进程召回
 | 
											
										
											
												
													
														|  | @@ -185,6 +186,10 @@ def video_recommend(mid, uid, size, top_K, flow_pool_P, app_type, algo_type, cli
 | 
											
												
													
														|  |      elif ab_code in [code for _, code in config_.AB_CODE['region_rank_by_h'].items()]:
 |  |      elif ab_code in [code for _, code in config_.AB_CODE['region_rank_by_h'].items()]:
 | 
											
												
													
														|  |          t = [gevent.spawn(pool_recall.rov_pool_recall_with_region, size, expire_time),
 |  |          t = [gevent.spawn(pool_recall.rov_pool_recall_with_region, size, expire_time),
 | 
											
												
													
														|  |               gevent.spawn(pool_recall.flow_pool_recall, size)]
 |  |               gevent.spawn(pool_recall.flow_pool_recall, size)]
 | 
											
												
													
														|  | 
 |  | +    # 最惊奇相关推荐实验
 | 
											
												
													
														|  | 
 |  | +    elif ab_code == config_.AB_CODE['top_video_relevant_appType_19']:
 | 
											
												
													
														|  | 
 |  | +        t = [gevent.spawn(pool_recall.relevant_recall_19, video_id, size, expire_time),
 | 
											
												
													
														|  | 
 |  | +             gevent.spawn(pool_recall.flow_pool_recall_18_19, size)]
 | 
											
												
													
														|  |      # 最惊奇/老好看实验
 |  |      # 最惊奇/老好看实验
 | 
											
												
													
														|  |      elif app_type in [config_.APP_TYPE['LAO_HAO_KAN_VIDEO'], config_.APP_TYPE['ZUI_JING_QI']]:
 |  |      elif app_type in [config_.APP_TYPE['LAO_HAO_KAN_VIDEO'], config_.APP_TYPE['ZUI_JING_QI']]:
 | 
											
												
													
														|  |          t = [gevent.spawn(pool_recall.rov_pool_recall, size, expire_time),
 |  |          t = [gevent.spawn(pool_recall.rov_pool_recall, size, expire_time),
 | 
											
										
											
												
													
														|  | @@ -212,7 +217,11 @@ def video_recommend(mid, uid, size, top_K, flow_pool_P, app_type, algo_type, cli
 | 
											
												
													
														|  |      start_rank = time.time()
 |  |      start_rank = time.time()
 | 
											
												
													
														|  |      # log_.info('====== rank')
 |  |      # log_.info('====== rank')
 | 
											
												
													
														|  |      if app_type in [config_.APP_TYPE['LAO_HAO_KAN_VIDEO'], config_.APP_TYPE['ZUI_JING_QI']]:
 |  |      if app_type in [config_.APP_TYPE['LAO_HAO_KAN_VIDEO'], config_.APP_TYPE['ZUI_JING_QI']]:
 | 
											
												
													
														|  | -        if ab_code in [config_.AB_CODE['rov_rank_appType_18_19'], config_.AB_CODE['rov_rank_appType_19']]:
 |  | 
 | 
											
												
													
														|  | 
 |  | +        if ab_code in [
 | 
											
												
													
														|  | 
 |  | +            config_.AB_CODE['rov_rank_appType_18_19'],
 | 
											
												
													
														|  | 
 |  | +            config_.AB_CODE['rov_rank_appType_19'],
 | 
											
												
													
														|  | 
 |  | +            config_.AB_CODE['top_video_relevant_appType_19']
 | 
											
												
													
														|  | 
 |  | +        ]:
 | 
											
												
													
														|  |              data = {
 |  |              data = {
 | 
											
												
													
														|  |                  'rov_pool_recall': recall_result_list[0],
 |  |                  'rov_pool_recall': recall_result_list[0],
 | 
											
												
													
														|  |                  'flow_pool_recall': recall_result_list[1]
 |  |                  'flow_pool_recall': recall_result_list[1]
 | 
											
										
											
												
													
														|  | @@ -366,8 +375,13 @@ def update_local_distribute_count(videos):
 | 
											
												
													
														|  |          log_.error(traceback.format_exc())
 |  |          log_.error(traceback.format_exc())
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | -def get_recommend_params(ab_exp_info):
 |  | 
 | 
											
												
													
														|  | -    """根据实验分组给定对应的推荐参数"""
 |  | 
 | 
											
												
													
														|  | 
 |  | +def get_recommend_params(ab_exp_info, page_type=0):
 | 
											
												
													
														|  | 
 |  | +    """
 | 
											
												
													
														|  | 
 |  | +    根据实验分组给定对应的推荐参数
 | 
											
												
													
														|  | 
 |  | +    :param ab_exp_info: AB实验组参数
 | 
											
												
													
														|  | 
 |  | +    :param page_type: 页面区分参数,默认:0(首页)
 | 
											
												
													
														|  | 
 |  | +    :return:
 | 
											
												
													
														|  | 
 |  | +    """
 | 
											
												
													
														|  |      top_K = config_.K
 |  |      top_K = config_.K
 | 
											
												
													
														|  |      flow_pool_P = config_.P
 |  |      flow_pool_P = config_.P
 | 
											
												
													
														|  |      # 不获取人工干预数据标记
 |  |      # 不获取人工干预数据标记
 | 
											
										
											
												
													
														|  | @@ -501,6 +515,13 @@ def get_recommend_params(ab_exp_info):
 | 
											
												
													
														|  |              flow_pool_P = config_.P_18_19
 |  |              flow_pool_P = config_.P_18_19
 | 
											
												
													
														|  |              no_op_flag = True
 |  |              no_op_flag = True
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | 
 |  | +        elif config_.AB_EXP_CODE['top_video_relevant_appType_19'] in ab_exp_code_list and page_type == 2:
 | 
											
												
													
														|  | 
 |  | +            ab_code = config_.AB_CODE['top_video_relevant_appType_19']
 | 
											
												
													
														|  | 
 |  | +            expire_time = 3600
 | 
											
												
													
														|  | 
 |  | +            top_K = 1
 | 
											
												
													
														|  | 
 |  | +            flow_pool_P = config_.P_18_19
 | 
											
												
													
														|  | 
 |  | +            no_op_flag = True
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  |          # 老视频实验
 |  |          # 老视频实验
 | 
											
												
													
														|  |          if config_.AB_EXP_CODE['old_video'] in ab_exp_code_list:
 |  |          if config_.AB_EXP_CODE['old_video'] in ab_exp_code_list:
 | 
											
												
													
														|  |              ab_code = config_.AB_CODE['old_video']
 |  |              ab_code = config_.AB_CODE['old_video']
 | 
											
										
											
												
													
														|  | @@ -581,7 +602,7 @@ def video_homepage_recommend(mid, uid, size, app_type, algo_type, client_info, a
 | 
											
												
													
														|  |      return rank_result
 |  |      return rank_result
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | -def video_relevant_recommend(video_id, mid, uid, size, app_type, ab_exp_info, client_info):
 |  | 
 | 
											
												
													
														|  | 
 |  | +def video_relevant_recommend(video_id, mid, uid, size, app_type, ab_exp_info, client_info, page_type):
 | 
											
												
													
														|  |      """
 |  |      """
 | 
											
												
													
														|  |      相关推荐逻辑
 |  |      相关推荐逻辑
 | 
											
												
													
														|  |      :param video_id: 相关推荐的头部视频id
 |  |      :param video_id: 相关推荐的头部视频id
 | 
											
										
											
												
													
														|  | @@ -590,6 +611,8 @@ def video_relevant_recommend(video_id, mid, uid, size, app_type, ab_exp_info, cl
 | 
											
												
													
														|  |      :param size: 请求视频数量 type-int
 |  |      :param size: 请求视频数量 type-int
 | 
											
												
													
														|  |      :param app_type: 产品标识  type-int
 |  |      :param app_type: 产品标识  type-int
 | 
											
												
													
														|  |      :param ab_exp_info: ab实验分组参数 [{"expItemId":1, "configValue":{"size":4, "K":3, ...}}, ...]
 |  |      :param ab_exp_info: ab实验分组参数 [{"expItemId":1, "configValue":{"size":4, "K":3, ...}}, ...]
 | 
											
												
													
														|  | 
 |  | +    :param client_info: 地域参数
 | 
											
												
													
														|  | 
 |  | +    :param page_type: 页面区分参数  1:详情页;2:分享页
 | 
											
												
													
														|  |      :return: videos type-list
 |  |      :return: videos type-list
 | 
											
												
													
														|  |      """
 |  |      """
 | 
											
												
													
														|  |      top_K, flow_pool_P, ab_code, rule_key, expire_time, no_op_flag, old_video_index = \
 |  |      top_K, flow_pool_P, ab_code, rule_key, expire_time, no_op_flag, old_video_index = \
 | 
											
										
											
												
													
														|  | @@ -601,7 +624,7 @@ def video_relevant_recommend(video_id, mid, uid, size, app_type, ab_exp_info, cl
 | 
											
												
													
														|  |                                                         algo_type='', client_info=client_info,
 |  |                                                         algo_type='', client_info=client_info,
 | 
											
												
													
														|  |                                                         ab_code=ab_code, expire_time=expire_time,
 |  |                                                         ab_code=ab_code, expire_time=expire_time,
 | 
											
												
													
														|  |                                                         rule_key=rule_key, no_op_flag=no_op_flag,
 |  |                                                         rule_key=rule_key, no_op_flag=no_op_flag,
 | 
											
												
													
														|  | -                                                       old_video_index=old_video_index)
 |  | 
 | 
											
												
													
														|  | 
 |  | +                                                       old_video_index=old_video_index, video_id=video_id)
 | 
											
												
													
														|  |      # ab-test
 |  |      # ab-test
 | 
											
												
													
														|  |      # result = ab_test_op(rank_result=rank_result,
 |  |      # result = ab_test_op(rank_result=rank_result,
 | 
											
												
													
														|  |      #                     ab_code_list=[config_.AB_CODE['position_insert'], config_.AB_CODE['relevant_video_op']],
 |  |      #                     ab_code_list=[config_.AB_CODE['position_insert'], config_.AB_CODE['relevant_video_op']],
 |