|  | @@ -10,7 +10,7 @@ import config
 | 
	
		
			
				|  |  |  from log import Log
 | 
	
		
			
				|  |  |  from config import set_config
 | 
	
		
			
				|  |  |  from video_recall import PoolRecall
 | 
	
		
			
				|  |  | -from video_rank import video_new_rank,video_rank,refactor_video_rank, bottom_strategy, video_rank_by_w_h_rate, video_rank_with_old_video, bottom_strategy2
 | 
	
		
			
				|  |  | +from video_rank import video_new_rank2, video_sanke_rank,video_new_rank,video_rank,refactor_video_rank, bottom_strategy, video_rank_by_w_h_rate, video_rank_with_old_video, bottom_strategy2
 | 
	
		
			
				|  |  |  from db_helper import RedisHelper
 | 
	
		
			
				|  |  |  import gevent
 | 
	
		
			
				|  |  |  from utils import FilterVideos, get_user_has30day_return
 | 
	
	
		
			
				|  | @@ -197,10 +197,22 @@ def video_recommend(request_id, mid, uid, size, top_K, flow_pool_P, app_type, al
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      if app_type in [config_.APP_TYPE['LAO_HAO_KAN_VIDEO'], config_.APP_TYPE['ZUI_JING_QI']]:
 | 
	
		
			
				|  |  |          t = [gevent.spawn(pool_recall.rov_pool_recall_with_region, size, expire_time)]
 | 
	
		
			
				|  |  | +        if ab_code==60058:
 | 
	
		
			
				|  |  | +            t.append(gevent.spawn(pool_recall.get_hot_item_reall))
 | 
	
		
			
				|  |  | +        elif  ab_code==60059:
 | 
	
		
			
				|  |  | +            t.append(gevent.spawn(pool_recall.get_word2vec_item_reall))
 | 
	
		
			
				|  |  | +        elif  ab_code==60061:
 | 
	
		
			
				|  |  | +            t.append(gevent.spawn(pool_recall.get_sim_hot_item_reall_filter))
 | 
	
		
			
				|  |  |      else:
 | 
	
		
			
				|  |  |          t = [gevent.spawn(pool_recall.rov_pool_recall_with_region, size, expire_time),
 | 
	
		
			
				|  |  |               gevent.spawn(pool_recall.flow_pool_recall, size, config_.QUICK_FLOW_POOL_ID),
 | 
	
		
			
				|  |  |               gevent.spawn(pool_recall.flow_pool_recall, size)]
 | 
	
		
			
				|  |  | +        if ab_code==60058:
 | 
	
		
			
				|  |  | +            t.append(gevent.spawn(pool_recall.get_hot_item_reall))
 | 
	
		
			
				|  |  | +        elif ab_code == 60059:
 | 
	
		
			
				|  |  | +            t.append(gevent.spawn(pool_recall.get_word2vec_item_reall))
 | 
	
		
			
				|  |  | +        elif ab_code == 60061:
 | 
	
		
			
				|  |  | +            t.append(gevent.spawn(pool_recall.get_sim_hot_item_reall_filter))
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      # 最惊奇相关推荐实验
 | 
	
		
			
				|  |  |      # elif ab_code == config_.AB_CODE['top_video_relevant_appType_19']:
 | 
	
	
		
			
				|  | @@ -281,10 +293,40 @@ def video_recommend(request_id, mid, uid, size, top_K, flow_pool_P, app_type, al
 | 
	
		
			
				|  |  |                  'rov_pool_recall': recall_result_list[0],
 | 
	
		
			
				|  |  |                  'flow_pool_recall': recall_result_list[2]
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    if ab_code == 60058:
 | 
	
		
			
				|  |  | +        if len(recall_result_list)>=4:
 | 
	
		
			
				|  |  | +            data['hot_recall'] = recall_result_list[3]
 | 
	
		
			
				|  |  | +        else:
 | 
	
		
			
				|  |  | +            data['hot_recall'] = []
 | 
	
		
			
				|  |  | +    elif ab_code == 60059:
 | 
	
		
			
				|  |  | +        if len(recall_result_list)>=4:
 | 
	
		
			
				|  |  | +            data['w2v_recall'] = recall_result_list[3]
 | 
	
		
			
				|  |  | +        else:
 | 
	
		
			
				|  |  | +            data['w2v_recall'] = []
 | 
	
		
			
				|  |  | +    elif ab_code == 60061:
 | 
	
		
			
				|  |  | +        if len(recall_result_list)>=4:
 | 
	
		
			
				|  |  | +            data['sim_recall'] = recall_result_list[3]
 | 
	
		
			
				|  |  | +        else:
 | 
	
		
			
				|  |  | +            data['sim_recall'] = []
 | 
	
		
			
				|  |  |      #if ab_code=="ab_new_test":
 | 
	
		
			
				|  |  |      #    rank_result = video_new_rank(data=data, size=size, top_K=top_K, flow_pool_P=float(flow_pool_P))
 | 
	
		
			
				|  |  |      #else:
 | 
	
		
			
				|  |  | -    rank_result = video_rank(data=data, size=size, top_K=top_K, flow_pool_P=float(flow_pool_P))
 | 
	
		
			
				|  |  | +    #print("data['hot_recall']", data['hot_recall'])
 | 
	
		
			
				|  |  | +    if ab_code == 60058 or ab_code == 60059 or ab_code == 60060 or ab_code == 60061 :
 | 
	
		
			
				|  |  | +        test_config = None
 | 
	
		
			
				|  |  | +        if ab_code == 60058:
 | 
	
		
			
				|  |  | +            test_config =pool_recall.get_hotrecall_config()
 | 
	
		
			
				|  |  | +        elif ab_code == 60059:
 | 
	
		
			
				|  |  | +            test_config = pool_recall.get_w2v_config()
 | 
	
		
			
				|  |  | +        elif ab_code == 60060:
 | 
	
		
			
				|  |  | +            test_config = pool_recall.get_test_config()
 | 
	
		
			
				|  |  | +        elif ab_code == 60061:
 | 
	
		
			
				|  |  | +            test_config = pool_recall.get_simrecall_config()
 | 
	
		
			
				|  |  | +        #print("test config:",test_config)
 | 
	
		
			
				|  |  | +        rank_result = video_sanke_rank(data=data, size=size, top_K=top_K, flow_pool_P=float(flow_pool_P), ab_Code=ab_code, exp_config=test_config)
 | 
	
		
			
				|  |  | +    else:
 | 
	
		
			
				|  |  | +        rank_result = video_rank(data=data, size=size, top_K=top_K, flow_pool_P=float(flow_pool_P))
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      # 老视频实验
 | 
	
		
			
				|  |  |      # if ab_code in [config_.AB_CODE['old_video']]:
 | 
	
	
		
			
				|  | @@ -336,6 +378,199 @@ def video_recommend(request_id, mid, uid, size, top_K, flow_pool_P, app_type, al
 | 
	
		
			
				|  |  |      #
 | 
	
		
			
				|  |  |      # result['rankResult'] = rank_result
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +    return result
 | 
	
		
			
				|  |  | +    # return rank_result, last_rov_recall_key
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +def video_old_recommend(request_id, 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='', data_key='',
 | 
	
		
			
				|  |  | +                    no_op_flag=False, old_video_index=-1, video_id=None, params=None, rule_key_30day=None,
 | 
	
		
			
				|  |  | +                    shield_config=None):
 | 
	
		
			
				|  |  | +    """
 | 
	
		
			
				|  |  | +    首页线上推荐逻辑
 | 
	
		
			
				|  |  | +    :param request_id: request_id
 | 
	
		
			
				|  |  | +    :param mid: mid type-string
 | 
	
		
			
				|  |  | +    :param uid: uid type-string
 | 
	
		
			
				|  |  | +    :param size: 请求视频数量 type-int
 | 
	
		
			
				|  |  | +    :param top_K: 保证topK为召回池视频 type-int
 | 
	
		
			
				|  |  | +    :param flow_pool_P: size-top_K视频为流量池视频的概率 type-float
 | 
	
		
			
				|  |  | +    :param app_type: 产品标识  type-int
 | 
	
		
			
				|  |  | +    :param algo_type: 算法类型  type-string
 | 
	
		
			
				|  |  | +    :param client_info: 用户位置信息 {"country": "国家",  "province": "省份",  "city": "城市"}
 | 
	
		
			
				|  |  | +    :param expire_time: 末位视频记录redis过期时间
 | 
	
		
			
				|  |  | +    :param ab_code: AB实验code
 | 
	
		
			
				|  |  | +    :param video_id: 相关推荐头部视频id
 | 
	
		
			
				|  |  | +    :param params:
 | 
	
		
			
				|  |  | +    :return:
 | 
	
		
			
				|  |  | +    """
 | 
	
		
			
				|  |  | +    result = {}
 | 
	
		
			
				|  |  | +    # ####### 多进程召回
 | 
	
		
			
				|  |  | +    start_recall = time.time()
 | 
	
		
			
				|  |  | +    # log_.info('====== recall')
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    #print("abcode",ab_code)
 | 
	
		
			
				|  |  | +    recall_result_list = []
 | 
	
		
			
				|  |  | +    pool_recall = PoolRecall(request_id=request_id,
 | 
	
		
			
				|  |  | +                             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)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    if app_type in [config_.APP_TYPE['LAO_HAO_KAN_VIDEO'], config_.APP_TYPE['ZUI_JING_QI']]:
 | 
	
		
			
				|  |  | +        t = [gevent.spawn(pool_recall.rov_pool_recall_with_region, size, expire_time)]
 | 
	
		
			
				|  |  | +        if ab_code ==60054:
 | 
	
		
			
				|  |  | +            t.append(gevent.spawn(pool_recall.get_sim_hot_item_reall_filter))
 | 
	
		
			
				|  |  | +        if ab_code == 60055:
 | 
	
		
			
				|  |  | +            t.append(gevent.spawn(pool_recall.get_3days_hot_item_reall))
 | 
	
		
			
				|  |  | +        if ab_code == 60056:
 | 
	
		
			
				|  |  | +            t.append(gevent.spawn(pool_recall.get_hot_item_reall))
 | 
	
		
			
				|  |  | +    else:
 | 
	
		
			
				|  |  | +        t = [gevent.spawn(pool_recall.rov_pool_recall_with_region, size, expire_time),
 | 
	
		
			
				|  |  | +             gevent.spawn(pool_recall.flow_pool_recall, size, config_.QUICK_FLOW_POOL_ID),
 | 
	
		
			
				|  |  | +             gevent.spawn(pool_recall.flow_pool_recall, size)]
 | 
	
		
			
				|  |  | +        if  ab_code == 60054:
 | 
	
		
			
				|  |  | +            t.append(gevent.spawn(pool_recall.get_sim_hot_item_reall_filter))
 | 
	
		
			
				|  |  | +        if ab_code == 60055:
 | 
	
		
			
				|  |  | +            t.append(gevent.spawn(pool_recall.get_3days_hot_item_reall))
 | 
	
		
			
				|  |  | +        if ab_code == 60056:
 | 
	
		
			
				|  |  | +            t.append(gevent.spawn(pool_recall.get_hot_item_reall))
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    gevent.joinall(t)
 | 
	
		
			
				|  |  | +    recall_result_list = [i.get() for i in t]
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    #print("recall:",recall_result_list)
 | 
	
		
			
				|  |  | +    if len(recall_result_list)<0:
 | 
	
		
			
				|  |  | +        result['recallResult']= []
 | 
	
		
			
				|  |  | +        result['rankResult'] = []
 | 
	
		
			
				|  |  | +        return result
 | 
	
		
			
				|  |  | +    #1. merge simrecall
 | 
	
		
			
				|  |  | +    if ab_code == 60054:
 | 
	
		
			
				|  |  | +        rov_pool_recall = []
 | 
	
		
			
				|  |  | +        if len(recall_result_list) >= 2:
 | 
	
		
			
				|  |  | +            region_recall = recall_result_list[0]
 | 
	
		
			
				|  |  | +            sim_recall = []
 | 
	
		
			
				|  |  | +            if app_type in [config_.APP_TYPE['LAO_HAO_KAN_VIDEO'], config_.APP_TYPE['ZUI_JING_QI']]:
 | 
	
		
			
				|  |  | +                sim_recall = recall_result_list[1]
 | 
	
		
			
				|  |  | +            else:
 | 
	
		
			
				|  |  | +                if len(recall_result_list)>=4:
 | 
	
		
			
				|  |  | +                    sim_recall = recall_result_list[3]
 | 
	
		
			
				|  |  | +            now_video_ids = set('')
 | 
	
		
			
				|  |  | +            if len(region_recall) > 0:
 | 
	
		
			
				|  |  | +                for video in region_recall:
 | 
	
		
			
				|  |  | +                    video_id = video.get('videoId')
 | 
	
		
			
				|  |  | +                    if video_id not in now_video_ids:
 | 
	
		
			
				|  |  | +                        rov_pool_recall.append(video)
 | 
	
		
			
				|  |  | +                        now_video_ids.add(video_id)
 | 
	
		
			
				|  |  | +            if len(sim_recall) > 0:
 | 
	
		
			
				|  |  | +                for video in sim_recall:
 | 
	
		
			
				|  |  | +                    video_id = video.get('videoId')
 | 
	
		
			
				|  |  | +                    # print("sim video_id:", video_id)
 | 
	
		
			
				|  |  | +                    if video_id not in now_video_ids:
 | 
	
		
			
				|  |  | +                        rov_pool_recall.append(video)
 | 
	
		
			
				|  |  | +                        now_video_ids.add(video_id)
 | 
	
		
			
				|  |  | +            if len(rov_pool_recall) > 0:
 | 
	
		
			
				|  |  | +                recall_result_list[0] = rov_pool_recall
 | 
	
		
			
				|  |  | +    # merge hot 3day recall
 | 
	
		
			
				|  |  | +    if ab_code == 60055:
 | 
	
		
			
				|  |  | +        rov_pool_recall = []
 | 
	
		
			
				|  |  | +        if len(recall_result_list)>=2:
 | 
	
		
			
				|  |  | +            region_recall = recall_result_list[0]
 | 
	
		
			
				|  |  | +            hot_3_day_recall = []
 | 
	
		
			
				|  |  | +            if app_type in [config_.APP_TYPE['LAO_HAO_KAN_VIDEO'], config_.APP_TYPE['ZUI_JING_QI']]:
 | 
	
		
			
				|  |  | +                hot_3_day_recall = recall_result_list[1]
 | 
	
		
			
				|  |  | +            else:
 | 
	
		
			
				|  |  | +                if len(recall_result_list)>=4:
 | 
	
		
			
				|  |  | +                    hot_3_day_recall = recall_result_list[3]
 | 
	
		
			
				|  |  | +            #print("sim:",sim_recall)
 | 
	
		
			
				|  |  | +            now_video_ids = set('')
 | 
	
		
			
				|  |  | +            if len(region_recall)>0:
 | 
	
		
			
				|  |  | +                for video in region_recall:
 | 
	
		
			
				|  |  | +                    video_id = video.get('videoId')
 | 
	
		
			
				|  |  | +                    if video_id not in now_video_ids:
 | 
	
		
			
				|  |  | +                        rov_pool_recall.append(video)
 | 
	
		
			
				|  |  | +                        now_video_ids.add(video_id)
 | 
	
		
			
				|  |  | +            if len(hot_3_day_recall)>0:
 | 
	
		
			
				|  |  | +                for video in hot_3_day_recall:
 | 
	
		
			
				|  |  | +                    video_id = video.get('videoId')
 | 
	
		
			
				|  |  | +                    #print("sim video_id:", video_id)
 | 
	
		
			
				|  |  | +                    if video_id not in now_video_ids:
 | 
	
		
			
				|  |  | +                        rov_pool_recall.append(video)
 | 
	
		
			
				|  |  | +                        now_video_ids.add(video_id)
 | 
	
		
			
				|  |  | +            if len(rov_pool_recall)>0:
 | 
	
		
			
				|  |  | +                recall_result_list[0] = rov_pool_recall
 | 
	
		
			
				|  |  | +    # merge old day recall
 | 
	
		
			
				|  |  | +    if ab_code == 60056:
 | 
	
		
			
				|  |  | +        rov_pool_recall = []
 | 
	
		
			
				|  |  | +        if len(recall_result_list)>=2:
 | 
	
		
			
				|  |  | +            region_recall = recall_result_list[0]
 | 
	
		
			
				|  |  | +            hot_7_day_recall = []
 | 
	
		
			
				|  |  | +            if app_type in [config_.APP_TYPE['LAO_HAO_KAN_VIDEO'], config_.APP_TYPE['ZUI_JING_QI']]:
 | 
	
		
			
				|  |  | +                hot_7_day_recall = recall_result_list[1]
 | 
	
		
			
				|  |  | +            else:
 | 
	
		
			
				|  |  | +                if len(recall_result_list) >= 3:
 | 
	
		
			
				|  |  | +                    hot_7_day_recall = recall_result_list[3]
 | 
	
		
			
				|  |  | +            now_video_ids = set('')
 | 
	
		
			
				|  |  | +            if len(region_recall)>0:
 | 
	
		
			
				|  |  | +                for video in region_recall:
 | 
	
		
			
				|  |  | +                    video_id = video.get('videoId')
 | 
	
		
			
				|  |  | +                    if video_id not in now_video_ids:
 | 
	
		
			
				|  |  | +                        rov_pool_recall.append(video)
 | 
	
		
			
				|  |  | +                        now_video_ids.add(video_id)
 | 
	
		
			
				|  |  | +            if len(hot_7_day_recall)>0:
 | 
	
		
			
				|  |  | +                for video in hot_7_day_recall:
 | 
	
		
			
				|  |  | +                    video_id = video.get('videoId')
 | 
	
		
			
				|  |  | +                    #print("sim video_id:", video_id)
 | 
	
		
			
				|  |  | +                    if video_id not in now_video_ids:
 | 
	
		
			
				|  |  | +                        rov_pool_recall.append(video)
 | 
	
		
			
				|  |  | +                        now_video_ids.add(video_id)
 | 
	
		
			
				|  |  | +            if len(rov_pool_recall)>0:
 | 
	
		
			
				|  |  | +                recall_result_list[0] = rov_pool_recall
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    result['recallResult'] = recall_result_list
 | 
	
		
			
				|  |  | +    result['recallTime'] = (time.time() - start_recall) * 1000
 | 
	
		
			
				|  |  | +    #print("recall:", recall_result_list)
 | 
	
		
			
				|  |  | +    # ####### 排序
 | 
	
		
			
				|  |  | +    start_rank = time.time()
 | 
	
		
			
				|  |  | +    # log_.info('====== rank')
 | 
	
		
			
				|  |  | +    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'],
 | 
	
		
			
				|  |  | +            config_.AB_CODE['top_video_relevant_appType_19']
 | 
	
		
			
				|  |  | +        ]:
 | 
	
		
			
				|  |  | +            data = {
 | 
	
		
			
				|  |  | +                'rov_pool_recall': recall_result_list[0],
 | 
	
		
			
				|  |  | +                'flow_pool_recall': recall_result_list[1]
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        else:
 | 
	
		
			
				|  |  | +            data = {
 | 
	
		
			
				|  |  | +                'rov_pool_recall': recall_result_list[0],
 | 
	
		
			
				|  |  | +                'flow_pool_recall': []
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +    else:
 | 
	
		
			
				|  |  | +        if recall_result_list[1]:
 | 
	
		
			
				|  |  | +            redis_helper = RedisHelper()
 | 
	
		
			
				|  |  | +            quick_flow_pool_P = redis_helper.get_data_from_redis(
 | 
	
		
			
				|  |  | +                key_name=f"{config_.QUICK_FLOWPOOL_DISTRIBUTE_RATE_KEY_NAME_PREFIX}{config_.QUICK_FLOW_POOL_ID}"
 | 
	
		
			
				|  |  | +            )
 | 
	
		
			
				|  |  | +            if quick_flow_pool_P:
 | 
	
		
			
				|  |  | +                flow_pool_P = quick_flow_pool_P
 | 
	
		
			
				|  |  | +            data = {
 | 
	
		
			
				|  |  | +                'rov_pool_recall': recall_result_list[0],
 | 
	
		
			
				|  |  | +                'flow_pool_recall': recall_result_list[1]
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        else:
 | 
	
		
			
				|  |  | +            data = {
 | 
	
		
			
				|  |  | +                'rov_pool_recall': recall_result_list[0],
 | 
	
		
			
				|  |  | +                'flow_pool_recall': recall_result_list[2]
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +    #if ab_code=="ab_new_test":
 | 
	
		
			
				|  |  | +    #print("before data:", data)
 | 
	
		
			
				|  |  | +    rank_result = video_new_rank2(data=data, size=size, top_K=top_K, flow_pool_P=float(flow_pool_P), ab_code=ab_code)
 | 
	
		
			
				|  |  | +    #print(rank_result)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    result['rankResult'] = rank_result
 | 
	
		
			
				|  |  | +    result['rankTime'] = (time.time() - start_rank) * 1000
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |      return result
 | 
	
		
			
				|  |  |      # return rank_result, last_rov_recall_key
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -394,6 +629,8 @@ def new_video_recommend(request_id, mid, uid, size, top_K, flow_pool_P, app_type
 | 
	
		
			
				|  |  |               gevent.spawn(pool_recall.get_selected_recall, size, region_code),
 | 
	
		
			
				|  |  |               gevent.spawn(pool_recall.get_no_selected_recall, size, region_code)
 | 
	
		
			
				|  |  |               ]
 | 
	
		
			
				|  |  | +        if ab_code == 60049:
 | 
	
		
			
				|  |  | +            t.append(gevent.spawn(pool_recall.get_sim_hot_item_reall))
 | 
	
		
			
				|  |  |      else:
 | 
	
		
			
				|  |  |          t = [
 | 
	
		
			
				|  |  |               gevent.spawn(pool_recall.get_region_hour_recall, size, region_code),
 | 
	
	
		
			
				|  | @@ -884,6 +1121,8 @@ def get_recommend_params(recommend_type, ab_exp_info, ab_info_data, mid, app_typ
 | 
	
		
			
				|  |  |                  flow_pool_P = 0.4
 | 
	
		
			
				|  |  |              elif '301' in ab_exp_code_list:
 | 
	
		
			
				|  |  |                  flow_pool_P = 0.6
 | 
	
		
			
				|  |  | +            elif '339' in ab_exp_code_list:
 | 
	
		
			
				|  |  | +                flow_pool_P = 0
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |              # if '136' in ab_exp_code_list:
 | 
	
		
			
				|  |  |              #     # 无回流 - 消费人群
 | 
	
	
		
			
				|  | @@ -1333,6 +1572,7 @@ def video_homepage_recommend(request_id, mid, uid, size, app_type, algo_type,
 | 
	
		
			
				|  |  |      # 简单召回 - 排序 - 兜底
 | 
	
		
			
				|  |  |      get_result_st = time.time()
 | 
	
		
			
				|  |  |      #print("ab_code:", ab_code)
 | 
	
		
			
				|  |  | +    #new pipeline
 | 
	
		
			
				|  |  |      if ab_code == 60047 or ab_code == 60048 or ab_code == 60049:
 | 
	
		
			
				|  |  |          result = new_video_recommend(request_id=request_id,
 | 
	
		
			
				|  |  |                               mid=mid, uid=uid, app_type=app_type,
 | 
	
	
		
			
				|  | @@ -1342,6 +1582,7 @@ def video_homepage_recommend(request_id, mid, uid, size, app_type, algo_type,
 | 
	
		
			
				|  |  |                               rule_key=rule_key, data_key=data_key,
 | 
	
		
			
				|  |  |                               no_op_flag=no_op_flag, old_video_index=old_video_index,
 | 
	
		
			
				|  |  |                               params=params, rule_key_30day=rule_key_30day, shield_config=shield_config)
 | 
	
		
			
				|  |  | +    # old base (test4, test5)
 | 
	
		
			
				|  |  |      elif ab_code == 60050 or ab_code == 60051:
 | 
	
		
			
				|  |  |          result = video_recommend(request_id=request_id,
 | 
	
		
			
				|  |  |                                   mid=mid, uid=uid, app_type=app_type,
 | 
	
	
		
			
				|  | @@ -1351,6 +1592,19 @@ def video_homepage_recommend(request_id, mid, uid, size, app_type, algo_type,
 | 
	
		
			
				|  |  |                                   rule_key=rule_key, data_key=data_key,
 | 
	
		
			
				|  |  |                                   no_op_flag=no_op_flag, old_video_index=old_video_index,
 | 
	
		
			
				|  |  |                                   params=params, rule_key_30day=rule_key_30day, shield_config=shield_config)
 | 
	
		
			
				|  |  | +    # 60052,60053,60057(test7, test8, test6)
 | 
	
		
			
				|  |  | +    # simrecal: 60054
 | 
	
		
			
				|  |  | +    # 3 days , 7days recall: 60005, test1
 | 
	
		
			
				|  |  | +    # old video: 60056, test2
 | 
	
		
			
				|  |  | +    elif ab_code == 60052 or ab_code == 60053 or ab_code == 60054 or ab_code == 60055 or ab_code == 60056 or ab_code==60057:
 | 
	
		
			
				|  |  | +        result = 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,
 | 
	
		
			
				|  |  | +                                     rule_key=rule_key, data_key=data_key, no_op_flag=no_op_flag,
 | 
	
		
			
				|  |  | +                                     old_video_index=old_video_index, video_id= None,
 | 
	
		
			
				|  |  | +                                     params=params, rule_key_30day=rule_key_30day, shield_config=shield_config)
 | 
	
		
			
				|  |  |      else:
 | 
	
		
			
				|  |  |          result = video_recommend(request_id=request_id,
 | 
	
		
			
				|  |  |                               mid=mid, uid=uid, app_type=app_type,
 | 
	
	
		
			
				|  | @@ -1384,6 +1638,9 @@ def video_homepage_recommend(request_id, mid, uid, size, app_type, algo_type,
 | 
	
		
			
				|  |  |          update_flow_redis_data(result=rank_result, app_type=app_type, mid=mid, top_K=top_K)
 | 
	
		
			
				|  |  |      elif ab_code == 60050 or  ab_code == 60051:
 | 
	
		
			
				|  |  |          update_redis_data(result=rank_result, app_type=app_type, mid=mid, top_K=top_K)
 | 
	
		
			
				|  |  | +    elif ab_code == 60052 or ab_code == 60053 or ab_code == 60054 or ab_code == 60055 \
 | 
	
		
			
				|  |  | +            or ab_code == 60056 or ab_code==60057:
 | 
	
		
			
				|  |  | +        update_redis_data(result=rank_result, app_type=app_type, mid=mid, top_K=top_K)
 | 
	
		
			
				|  |  |      else:
 | 
	
		
			
				|  |  |          update_redis_data(result=rank_result, app_type=app_type, mid=mid, top_K=top_K)
 | 
	
		
			
				|  |  |      # log_.info({
 | 
	
	
		
			
				|  | @@ -1466,6 +1723,16 @@ def video_relevant_recommend(request_id, video_id, mid, uid, size, app_type, ab_
 | 
	
		
			
				|  |  |                                   rule_key=rule_key, data_key=data_key, no_op_flag=no_op_flag,
 | 
	
		
			
				|  |  |                                   old_video_index=old_video_index, video_id=video_id,
 | 
	
		
			
				|  |  |                                   params=params, rule_key_30day=rule_key_30day, shield_config=shield_config)
 | 
	
		
			
				|  |  | +    elif ab_code == 60052 or ab_code == 60053 or ab_code == 60054 or ab_code == 60055 or \
 | 
	
		
			
				|  |  | +            ab_code == 60056 or ab_code==60057:
 | 
	
		
			
				|  |  | +        result = 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,
 | 
	
		
			
				|  |  | +                                 rule_key=rule_key, data_key=data_key, no_op_flag=no_op_flag,
 | 
	
		
			
				|  |  | +                                 old_video_index=old_video_index, video_id=video_id,
 | 
	
		
			
				|  |  | +                                 params=params, rule_key_30day=rule_key_30day, shield_config=shield_config)
 | 
	
		
			
				|  |  |      else:
 | 
	
		
			
				|  |  |          result = video_recommend(request_id=request_id,
 | 
	
		
			
				|  |  |                               mid=mid, uid=uid, app_type=app_type,
 | 
	
	
		
			
				|  | @@ -1497,11 +1764,14 @@ def video_relevant_recommend(request_id, video_id, mid, uid, size, app_type, ab_
 | 
	
		
			
				|  |  |      # redis数据刷新
 | 
	
		
			
				|  |  |      update_redis_st = time.time()
 | 
	
		
			
				|  |  |      if ab_code == 60047 or ab_code == 60048 or  ab_code == 60049:
 | 
	
		
			
				|  |  | -        update_flow_redis_data(result=rank_result, app_type=app_type, mid=mid, top_K=top_K)
 | 
	
		
			
				|  |  | +         update_flow_redis_data(result=rank_result, app_type=app_type, mid=mid, top_K=top_K)
 | 
	
		
			
				|  |  |      elif ab_code == 60050 or ab_code == 60051:
 | 
	
		
			
				|  |  | -        update_redis_data(result=rank_result, app_type=app_type, mid=mid, top_K=top_K)
 | 
	
		
			
				|  |  | +         update_redis_data(result=rank_result, app_type=app_type, mid=mid, top_K=top_K)
 | 
	
		
			
				|  |  | +    elif ab_code == 60052 or ab_code == 60053 or ab_code == 60054 or ab_code == 60055 or \
 | 
	
		
			
				|  |  | +            ab_code == 60056 or ab_code==60057:
 | 
	
		
			
				|  |  | +         update_redis_data(result=rank_result, app_type=app_type, mid=mid, top_K=top_K)
 | 
	
		
			
				|  |  |      else:
 | 
	
		
			
				|  |  | -        update_redis_data(result=rank_result, app_type=app_type, mid=mid, top_K=top_K)
 | 
	
		
			
				|  |  | +         update_redis_data(result=rank_result, app_type=app_type, mid=mid, top_K=top_K)
 | 
	
		
			
				|  |  |      # log_.info({
 | 
	
		
			
				|  |  |      #     'logTimestamp': int(time.time() * 1000),
 | 
	
		
			
				|  |  |      #     'request_id': request_id,
 |