| 
					
				 | 
			
			
				@@ -215,33 +215,33 @@ def video_recommend(request_id, mid, uid, size, top_K, flow_pool_P, app_type, al 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         exp_config = pool_recall.get_video_recall_config() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     #print("exp_config:", exp_config) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     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, ab_code, exp_config)] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        t = [gevent.spawn(pool_recall.rov_pool_recall_with_region, size, expire_time)] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if ab_code==60058: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            t.append(gevent.spawn(pool_recall.get_U2I_reall, mid, exp_config)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            t.append(gevent.spawn(pool_recall.get_play_reall, mid, exp_config)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            t.append(gevent.spawn(pool_recall.get_U2I_reall, mid)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            t.append(gevent.spawn(pool_recall.get_play_reall, mid)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         elif  ab_code==60059: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            t.append(gevent.spawn(pool_recall.get_word2vec_item_reall, exp_config)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            t.append(gevent.spawn(pool_recall.get_word2vec_item_reall)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         elif  ab_code==60061 or ab_code==60063: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            t.append(gevent.spawn(pool_recall.get_sim_hot_item_reall_filter, exp_config)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            t.append(gevent.spawn(pool_recall.get_sim_hot_item_reall_filter)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         elif  ab_code==60062: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            t.append(gevent.spawn(pool_recall.get_U2U2I_reall, mid, exp_config)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            t.append(gevent.spawn(pool_recall.get_U2U2I_reall, mid)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         elif  ab_code==60064: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            t.append(gevent.spawn(pool_recall.get_return_video_reall, exp_config)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            t.append(gevent.spawn(pool_recall.get_return_video_reall)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     else: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        t = [gevent.spawn(pool_recall.rov_pool_recall_with_region, size, expire_time, ab_code, exp_config), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        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_U2I_reall, mid, exp_config)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            t.append(gevent.spawn(pool_recall.get_play_reall, mid, exp_config)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            t.append(gevent.spawn(pool_recall.get_U2I_reall, mid)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            t.append(gevent.spawn(pool_recall.get_play_reall, mid)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         elif ab_code == 60059: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            t.append(gevent.spawn(pool_recall.get_word2vec_item_reall, exp_config)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            t.append(gevent.spawn(pool_recall.get_word2vec_item_reall)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         elif ab_code == 60061 or ab_code==60063: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            t.append(gevent.spawn(pool_recall.get_sim_hot_item_reall_filter, exp_config)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            t.append(gevent.spawn(pool_recall.get_sim_hot_item_reall_filter)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         elif ab_code == 60062: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            t.append(gevent.spawn(pool_recall.get_U2U2I_reall, mid, exp_config)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            t.append(gevent.spawn(pool_recall.get_U2U2I_reall, mid)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         elif  ab_code==60064:                                                                          
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            t.append(gevent.spawn(pool_recall.get_return_video_reall, exp_config)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            t.append(gevent.spawn(pool_recall.get_return_video_reall)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     # 最惊奇相关推荐实验 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     # elif ab_code == config_.AB_CODE['top_video_relevant_appType_19']: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     #     t = [gevent.spawn(pool_recall.relevant_recall_19, video_id, size, expire_time), 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -346,14 +346,14 @@ def video_recommend(request_id, mid, uid, size, top_K, flow_pool_P, app_type, al 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     #else: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     #print("data['hot_recall']", data['hot_recall']) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     # 60058: u2itag, 60059:word2vec, 60061: sim_recall, 60062: u2u2i 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    if ab_code == 60058 or ab_code == 60059 or ab_code == 60060 or ab_code == 60061 \ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        or ab_code == 60062 or ab_code== 60063 or ab_code == 60064: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        rank_result, flow_num = video_sank_pos_rank(data=data, size=size, top_K=top_K, flow_pool_P=float(flow_pool_P), ab_Code=ab_code, exp_config=exp_config) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        result['flow_num'] = flow_num 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if rank_result: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            result['rank_num'] = len(rank_result) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    else: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        rank_result = video_rank(data=data, size=size, top_K=top_K, flow_pool_P=float(flow_pool_P)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    # if ab_code == 60058 or ab_code == 60059 or ab_code == 60060 or ab_code == 60061 \ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    #     or ab_code == 60062 or ab_code== 60063 or ab_code == 60064: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    #     rank_result, flow_num = video_sank_pos_rank(data=data, size=size, top_K=top_K, flow_pool_P=float(flow_pool_P), ab_Code=ab_code, exp_config=exp_config) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    #     result['flow_num'] = flow_num 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    #     if rank_result: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    #         result['rank_num'] = len(rank_result) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    # 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']]: 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -441,51 +441,36 @@ def video_old_recommend(request_id, mid, uid, size, top_K, flow_pool_P, app_type 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                              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) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    exp_config = None 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    if ab_code == 60052: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        exp_config = pool_recall.get_flow_exp_7_config() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    elif ab_code == 60053: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        exp_config = pool_recall.get_flow_exp_8_config() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    elif ab_code == 60057: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        exp_config = pool_recall.get_flow_exp_6_config() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    #print("exp_config:", exp_config) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    exp_config = pool_recall.get_sort_ab_codel_config() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    # 60054 全量: simrecall+融合排序 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     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, ab_code, exp_config)] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        t = [gevent.spawn(pool_recall.rov_pool_recall_with_region, size, expire_time)] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if ab_code ==60054 or ab_code==60066: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            t.append(gevent.spawn(pool_recall.get_sim_hot_item_reall_filter, exp_config)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if ab_code == 60055: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            t.append(gevent.spawn(pool_recall.get_return_video_reall, exp_config)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if ab_code == 60056: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            t.append(gevent.spawn(pool_recall.get_sim_hot_item_reall_filter, exp_config)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            t.append(gevent.spawn(pool_recall.get_U2I_reall, mid , exp_config)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if ab_code == 60065 : 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            t.append(gevent.spawn(pool_recall.get_return_video_reall, exp_config, 'rv2:')) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if ab_code ==60067 : 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            t.append(gevent.spawn(pool_recall.get_sim_hot_item_reall_filter, exp_config)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            t.append(gevent.spawn(pool_recall.get_return_video_reall, exp_config)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if ab_code == 60068: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            t.append(gevent.spawn(pool_recall.get_sim_hot_item_reall_filter, exp_config)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            t.append(gevent.spawn(pool_recall.get_return_video_reall, exp_config, 'rv2:')) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            t.append(gevent.spawn(pool_recall.get_sim_hot_item_reall_filter)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if ab_code == 60056 or ab_code == 60071: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            t.append(gevent.spawn(pool_recall.get_sim_hot_item_reall_filter)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            t.append(gevent.spawn(pool_recall.get_U2I_reall, mid)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if ab_code ==60067  or ab_code == 60069: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            t.append(gevent.spawn(pool_recall.get_sim_hot_item_reall_filter)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            t.append(gevent.spawn(pool_recall.get_return_video_reall)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if ab_code == 60068 or ab_code == 60070: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            t.append(gevent.spawn(pool_recall.get_sim_hot_item_reall_filter)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            t.append(gevent.spawn(pool_recall.get_return_video_reall, 'rv2:')) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     else: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        t = [gevent.spawn(pool_recall.rov_pool_recall_with_region, size, expire_time, ab_code, exp_config), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        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 or ab_code==60066: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             t.append(gevent.spawn(pool_recall.get_sim_hot_item_reall_filter)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if ab_code == 60055: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            t.append(gevent.spawn(pool_recall.get_return_video_reall, exp_config)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if ab_code == 60056: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            t.append(gevent.spawn(pool_recall.get_sim_hot_item_reall_filter, exp_config)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            t.append(gevent.spawn(pool_recall.get_U2I_reall, mid , exp_config)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if ab_code == 60065: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            t.append(gevent.spawn(pool_recall.get_return_video_reall, exp_config, 'rv2:')) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if ab_code == 60067: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            t.append(gevent.spawn(pool_recall.get_sim_hot_item_reall_filter, exp_config)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            t.append(gevent.spawn(pool_recall.get_return_video_reall, exp_config)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if ab_code == 60068: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            t.append(gevent.spawn(pool_recall.get_sim_hot_item_reall_filter, exp_config)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            t.append(gevent.spawn(pool_recall.get_return_video_reall, exp_config, 'rv2:')) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if ab_code == 60056 or ab_code == 60071: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            t.append(gevent.spawn(pool_recall.get_sim_hot_item_reall_filter)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            t.append(gevent.spawn(pool_recall.get_U2I_reall, mid)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if ab_code == 60067 or ab_code == 60069: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            t.append(gevent.spawn(pool_recall.get_sim_hot_item_reall_filter)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            t.append(gevent.spawn(pool_recall.get_return_video_reall)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if ab_code == 60068 or ab_code == 60070: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            t.append(gevent.spawn(pool_recall.get_sim_hot_item_reall_filter)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            t.append(gevent.spawn(pool_recall.get_return_video_reall, 'rv2:')) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     gevent.joinall(t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     recall_result_list = [i.get() for i in t] 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -495,7 +480,7 @@ def video_old_recommend(request_id, mid, uid, size, top_K, flow_pool_P, app_type 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         result['recallResult']= [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         result['rankResult'] = [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return result 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    #1. merge simrecall 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    #1. merge simrecall or  deepfm 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     if ab_code == 60054 or ab_code==60066: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         rov_pool_recall = [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if len(recall_result_list) >= 2: 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -522,35 +507,8 @@ def video_old_recommend(request_id, mid, uid, size, top_K, flow_pool_P, app_type 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         now_video_ids.add(video_id) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if len(rov_pool_recall) > 0: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 recall_result_list[0] = rov_pool_recall 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    # merge return video 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    if ab_code == 60055 or ab_code==60065: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        rov_pool_recall = [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if len(recall_result_list)>=2: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            region_recall = recall_result_list[0] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            return_video_reall = [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if app_type in [config_.APP_TYPE['LAO_HAO_KAN_VIDEO'], config_.APP_TYPE['ZUI_JING_QI']]: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                return_video_reall, = recall_result_list[1] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            else: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if len(recall_result_list)>=4: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    return_video_reall = 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(return_video_reall)>0: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                for video in return_video_reall: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    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(rov_pool_recall)>0: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                recall_result_list[0] = rov_pool_recall 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    # merge simrecall, merge u2i title recall 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    if ab_code == 60056: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    # merge simrecall, merge u2i title recall, deepfm 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if ab_code == 60056 or ab_code == 60071: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         rov_pool_recall = [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if len(recall_result_list)>=2: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             region_recall = recall_result_list[0] 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -565,6 +523,7 @@ def video_old_recommend(request_id, mid, uid, size, top_K, flow_pool_P, app_type 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     sim_recall = recall_result_list[3] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 if len(recall_result_list) >= 5: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     u2i_title_recall = recall_result_list[4] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            #print("u2i_title_recall:", u2i_title_recall) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             now_video_ids = set('') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if len(region_recall)>0: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 for video in region_recall: 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -589,7 +548,7 @@ def video_old_recommend(request_id, mid, uid, size, top_K, flow_pool_P, app_type 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 recall_result_list[0] = rov_pool_recall 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     #2. merge simrecall, return video 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    if ab_code == 60067 or ab_code==60068: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if ab_code == 60067 or ab_code==60068 or ab_code==60069 or ab_code==60070: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         rov_pool_recall = [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if len(recall_result_list)>=2: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             region_recall = recall_result_list[0] 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -665,40 +624,46 @@ def video_old_recommend(request_id, mid, uid, size, top_K, flow_pool_P, app_type 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 'flow_pool_recall': recall_result_list[2] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     # 3. 特征回流 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    #print(env_dict) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    rec_recall_list = [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    vidKeys = [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    hour_vidKeys = [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    pre_str = "v_ctr:" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    pre_hour_str = "v_hour_ctr:" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    rec_recall_item_list = [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    for recall_item in data['rov_pool_recall']: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if len(recall_item) <= 0: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            continue 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        vid = recall_item.get("videoId", 0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        rec_recall_list.append(vid) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        vidKeys.append(pre_str + str(vid)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        hour_vidKeys.append(pre_hour_str + str(vid)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        rec_recall_item_list.append(recall_item) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    redisObj = RedisHelper() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    video_static_info = redisObj.get_batch_key(vidKeys) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    video_hour_static_info = redisObj.get_batch_key(hour_vidKeys) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    vid_day_fea_list = [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    vid_hour_fea_list = [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if video_static_info: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        vid_day_fea_list = video_static_info 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if video_hour_static_info: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        vid_hour_fea_list = video_hour_static_info 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     if env_dict: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        province_code = client_info.get('provinceCode', '-1') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        city_code = client_info.get('cityCode', '-1') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        province_code = client_info.get('provinceCode', -1) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if province_code and province_code == "": 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            province_code =-1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        city_code = client_info.get('cityCode', -1) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if city_code and city_code == "": 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            city_code = -1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         env_dict['mid'] = mid 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         env_dict['province_code'] = province_code 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         env_dict['city_code'] = city_code 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        rec_recall_list = [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        vidKeys = [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        hour_vidKeys = [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        pre_str = "v_ctr:" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        pre_hour_str = "v_hour_ctr:" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        for recall_item in data['rov_pool_recall']: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if len(recall_item) <= 0: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                continue 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            vid = recall_item.get("videoId", 0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            rec_recall_list.append(vid) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            vidKeys.append(pre_str + str(vid)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            hour_vidKeys.append(pre_hour_str + str(vid)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        redisObj = RedisHelper() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        video_static_info = redisObj.get_batch_key(vidKeys) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        video_hour_static_info = redisObj.get_batch_key(hour_vidKeys) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        vid_day_fea_list = [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        vid_hour_fea_list = [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if video_static_info: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            vid_day_fea_list = video_static_info 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if video_hour_static_info: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            vid_hour_fea_list = video_hour_static_info 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         env_dict['recall_list'] = rec_recall_list 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         env_dict['vid_day_fea_list'] = vid_day_fea_list 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         env_dict['vid_hour_fea_list'] = vid_hour_fea_list 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         env_json = env_dict 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     #4. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    rank_result, flow_num  = video_new_rank2(data=data, size=size, top_K=top_K, flow_pool_P=float(flow_pool_P), ab_code=ab_code, mid=mid, exp_config=exp_config, env_dict=env_dict) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    rank_result, flow_num  = video_new_rank2(data=data, size=size, top_K=top_K, flow_pool_P=float(flow_pool_P), ab_code=ab_code, mid=mid, exp_config=exp_config, env_dict=env_dict, rec_recall_item_list=rec_recall_item_list) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     #print(rank_result) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     if rank_result: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         result['rank_num'] = len(rank_result) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1719,14 +1684,13 @@ 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 +融合 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    # simrecal: 60054 +融合, 全量 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     # return video, return video2 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     # 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  \ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            or ab_code==60065 or ab_code == 60067 or ab_code==60068 \ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            or ab_code==60066: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    elif  ab_code == 60054 \ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+             or ab_code == 60056 \ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+             or ab_code == 60067 or ab_code==60068 \ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            or ab_code==60066 or ab_code == 60069 or ab_code == 60070 or ab_code == 60071: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         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, 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1769,9 +1733,6 @@ def video_homepage_recommend(request_id, mid, uid, size, app_type, algo_type, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     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) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    # 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({ 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1844,9 +1805,9 @@ 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 or ab_code ==60065 or ab_code ==60067 \ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            or ab_code ==60068 or ab_code==60066: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    elif   ab_code == 60054  or \ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            ab_code == 60056 or ab_code ==60067 \ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            or ab_code ==60068 or ab_code==60066 or ab_code == 60069 or ab_code == 60070 or ab_code == 60071: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         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, 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1890,11 +1851,6 @@ def video_relevant_recommend(request_id, video_id, mid, uid, size, app_type, ab_ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     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) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    # 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 or ab_code ==60065: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    #      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({ 
			 |