| 
					
				 | 
			
			
				@@ -637,41 +637,127 @@ class BaseConfig(object): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         APP_TYPE['APP'],  # 票圈视频APP 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     ] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    # 免广告用户组列表 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    NO_AD_MID_GROUP_LIST = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        'class1': ['return25_nmids'], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        'class2': ['return30_nmids'], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     # 广告模型abtest配置 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     AD_ABTEST_CONFIG = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         # 票圈vlog 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        '173-a': {'video': 'data1', 'user': 'data1'}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        '173-b': {'video': 'data1', 'user': 'data1:1'},  # 调整未分组用户的阈值(去除不出广告的用户组) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        '173-a': { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'video': {'data': 'data1'}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'user': {'data': 'data1', 'rule': 'rule1'}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'group_class_key': 'class1', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'no_ad_mid_group_list': NO_AD_MID_GROUP_LIST['class1'] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        '173-b': { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'video': {'data': 'data1'}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'user': {'data': 'data1', 'rule': 'rule2'}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'group_class_key': 'class1', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'no_ad_mid_group_list': NO_AD_MID_GROUP_LIST['class1'] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        },  # 调整未分组用户的阈值(去除不出广告的用户组) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        '173-c': { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'video': {'data': 'data1'}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'user': {'data': 'data1', 'rule': 'rule3'}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'group_class_key': 'class2', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'no_ad_mid_group_list': NO_AD_MID_GROUP_LIST['class2'] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        },  # 细化分组 return25_29, return30+, 且return30+ 不出广告 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         # 票圈视频+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        '190-a': {'video': 'data1', 'user': 'data1'}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        '190-b': {'video': 'data1', 'user': 'data1'}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        '190-a': { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'video': {'data': 'data1'}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'user': {'data': 'data1', 'rule': 'rule1'}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'group_class_key': 'class1', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'no_ad_mid_group_list': NO_AD_MID_GROUP_LIST['class1'] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        '190-b': { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'video': {'data': 'data1'}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'user': {'data': 'data1', 'rule': 'rule1'}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'group_class_key': 'class1', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'no_ad_mid_group_list': NO_AD_MID_GROUP_LIST['class1'] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         # 票圈视频 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        '194-a': {'video': 'data1', 'user': 'data1'}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        '194-b': {'video': 'data1', 'user': 'data1:1'}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        '194-a': { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'video': {'data': 'data1'}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'user': {'data': 'data1', 'rule': 'rule1'}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'group_class_key': 'class1', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'no_ad_mid_group_list': NO_AD_MID_GROUP_LIST['class1'] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        '194-b': { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'video': {'data': 'data1'}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'user': {'data': 'data1', 'rule': 'rule2'}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'group_class_key': 'class1', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'no_ad_mid_group_list': NO_AD_MID_GROUP_LIST['class1'] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        },  # 调整未分组用户的阈值(去除不出广告的用户组) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         # 内容精选 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        '195-a': {'video': 'data1', 'user': 'data1'}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        '195-b': {'video': 'data1', 'user': 'data1:1'}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        '195-a': { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'video': {'data': 'data1'}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'user': {'data': 'data1', 'rule': 'rule1'}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'group_class_key': 'class1', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'no_ad_mid_group_list': NO_AD_MID_GROUP_LIST['class1'] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        '195-b': { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'video': {'data': 'data1'}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'user': {'data': 'data1', 'rule': 'rule2'}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'group_class_key': 'class1', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'no_ad_mid_group_list': NO_AD_MID_GROUP_LIST['class1'] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        },  # 调整未分组用户的阈值(去除不出广告的用户组) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         # 票圈短视频 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        '196-a': {'video': 'data1', 'user': 'data1'}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        '196-b': {'video': 'data4', 'user': 'data4'}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        '196-a': { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'video': {'data': 'data1'}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'user': {'data': 'data1', 'rule': 'rule1'}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'group_class_key': 'class1', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'no_ad_mid_group_list': NO_AD_MID_GROUP_LIST['class1'] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        '196-b': { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'video': {'data': 'data4'}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'user': {'data': 'data4', 'rule': 'rule1'}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'group_class_key': 'class1', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'no_ad_mid_group_list': NO_AD_MID_GROUP_LIST['class1'] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         # 老好看视频 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        '197-a': {'video': 'data1', 'user': 'data1'}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        '197-b': {'video': 'data1', 'user': 'data1:1'}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        '197-a': { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'video': {'data': 'data1'}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'user': {'data': 'data1', 'rule': 'rule1'}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'group_class_key': 'class1', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'no_ad_mid_group_list': NO_AD_MID_GROUP_LIST['class1'] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        '197-b': { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'video': {'data': 'data1'}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'user': {'data': 'data1', 'rule': 'rule2'}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'group_class_key': 'class1', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'no_ad_mid_group_list': NO_AD_MID_GROUP_LIST['class1'] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        },  # 调整未分组用户的阈值(去除不出广告的用户组) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         # 票圈最惊奇 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        '198-a': {'video': 'data1', 'user': 'data1'}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        '198-b': {'video': 'data1', 'user': 'data1'}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        '198-a': { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'video': {'data': 'data1'}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'user': {'data': 'data1', 'rule': 'rule1'}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'group_class_key': 'class1', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'no_ad_mid_group_list': NO_AD_MID_GROUP_LIST['class1'] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        '198-b': { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'video': {'data': 'data1'}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'user': {'data': 'data1', 'rule': 'rule1'}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'group_class_key': 'class1', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'no_ad_mid_group_list': NO_AD_MID_GROUP_LIST['class1'] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     # 用户组有广告时的分享率预测结果存放 redis key 前缀,完整格式:ad:users:group:predict:share:rate:{user_data_key}:{date} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     KEY_NAME_PREFIX_AD_GROUP = 'ad:users:group:predict:share:rate:' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     # 视频有广告时的分享率预测结果存放 redis key 前缀,完整格式:ad:video:predict:share:rate:{video_data_key}:{date} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     KEY_NAME_PREFIX_AD_VIDEO = 'ad:video:predict:share:rate:' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    # 用户分组结果存放 redis key 前缀,完整格式:mid:group:{mid} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    # 用户分组结果存放 redis key 前缀,完整格式:mid:group:{class_key}:{mid} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     KEY_NAME_PREFIX_MID_GROUP = 'mid:group:' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     # 广告推荐阈值结果存放 redis key 前缀,完整格式:ad:threshold:{abtestId}:{abtestConfigTag}:{group} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     KEY_NAME_PREFIX_AD_THRESHOLD = 'ad:threshold:' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    # 免广告用户组列表 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    NO_AD_MID_GROUP_LIST = ['return25_nmids'] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 class DevelopmentConfig(BaseConfig): 
			 |