| 
					
				 | 
			
			
				@@ -637,6 +637,12 @@ class BaseConfig(object): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    # 自动调整广告模型阈值数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    AD_THRESHOLD_AUTO_UPDATE_DATA = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        'project': 'loghubods', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        'table': 'visit_uv_hh' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     # 调用广告模型appType列表 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     AD_APP_TYPE_LIST = [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         APP_TYPE['VLOG'],  # 票圈vlog 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -803,49 +809,48 @@ class BaseConfig(object): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     # 广告模型abtest分组配置 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     AD_ABTEST_ABCODE_CONFIG = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         # 票圈vlog 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        APP_TYPE[''] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        APP_TYPE['VLOG']: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'ab_test_id': 173, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'ab_test_config': {"a": ["ab1"], "b": ["ab3", "ab4", "ab6", "ab7", "ab8"], "c": [], "d": ["ab2"]}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'threshold_update': 1/24, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         # 票圈视频+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        '190-a': [], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        '190-b': [], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        APP_TYPE['PIAO_QUAN_VIDEO_PLUS']: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'ab_test_id': 190, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'ab_test_config': {"a": ["ab1"], "b": ["ab6", "ab7", "ab2", "ab3"]}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'threshold_update': 1 / 24, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         # 票圈视频 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        '194-a': [], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        '194-b': [], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        '194-c': [], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        '194-d': [], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        APP_TYPE['LOVE_LIVE']: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'ab_test_id': 194, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'ab_test_config': {"a": ["ab6", "ab7", "ab8"], "b": ["ab3", "ab4"], "c": ["ab2"], "d": ["ab1"]}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'threshold_update': 1 / 12, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         # 内容精选 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        '195-a': {'video': {'data': 'data1'}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  'user': {'data': 'data1', 'rule': 'rule1'}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  'threshold': {'group': 11 / 24, 'mean_group': 11 / 24}}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        '195-b': {'video': {'data': 'data1'}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  'user': {'data': 'data1', 'rule': 'rule2'}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  'threshold': {'group': 23 / 48, 'mean_group': 23 / 48}}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        '195-c': {'video': {'data': 'data3'}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  'user': {'data': 'data3', 'rule': 'rule1'}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  'threshold': {'group': 23 / 48, 'mean_group': 23 / 48}},  # 本端数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        APP_TYPE['LONG_VIDEO']: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'ab_test_id': 195, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'ab_test_config': {"b": [], "c": ["ab1", "ab2"]}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'threshold_update': 1 / 24, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         # 票圈短视频 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        '196-a': {'video': {'data': 'data1'}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  'user': {'data': 'data1', 'rule': 'rule1'}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  'threshold': {'group': 1 / 2, 'mean_group': 1 / 2}}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        '196-b': {'video': {'data': 'data4'}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  'user': {'data': 'data4', 'rule': 'rule1'}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  'threshold': {'group': 23 / 48, 'mean_group': 23 / 48}}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        '196-c': {'video': {'data': 'data4'}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  'user': {'data': 'data4', 'rule': 'rule3'}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  'threshold': {'group': 23 / 48, 'mean_group': 23 / 48}}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        APP_TYPE['SHORT_VIDEO']: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'ab_test_id': 196, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'ab_test_config': {"a": [], "b": [], "c": ["ab2", "ab3", "ab1", "ab9"]}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'threshold_update': 1 / 24, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         # 老好看视频 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        '197-a': {'video': {'data': 'data1'}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  'user': {'data': 'data1', 'rule': 'rule1'}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  'threshold': {'group': 25 / 48, 'mean_group': 25 / 48}}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        '197-b': {'video': {'data': 'data1'}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  'user': {'data': 'data1', 'rule': 'rule2'}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  'threshold': {'group': 25 / 48, 'mean_group': 25 / 48}}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        APP_TYPE['LAO_HAO_KAN_VIDEO']: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'ab_test_id': 197, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'ab_test_config': {"a": ["ab0", "ab100", "ab6", "ab7", "ab8", "ab9"], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                               "b": ["ab1", "ab2", "ab3",  "ab4", "ab5"]}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'threshold_update': 1 / 24, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         # 票圈最惊奇 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        '198-a': {'video': {'data': 'data1'}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  'user': {'data': 'data1', 'rule': 'rule1'}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  'threshold': {'group': 49 / 96, 'mean_group': 49 / 96}}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        '198-b': {'video': {'data': 'data1'}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  'user': {'data': 'data1', 'rule': 'rule1'}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  'threshold': {'group': 49 / 96, 'mean_group': 49 / 96}}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        APP_TYPE['ZUI_JING_QI']: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'ab_test_id': 198, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'ab_test_config': {"a": ["ab3", "ab6", "ab7"], "b": ["ab8", "ab9"]}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'threshold_update': 1 / 24, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     # 用户组有广告时的分享率预测结果存放 redis key 前缀,完整格式:ad:users:group:predict:share:rate:{user_data_key}:{user_rule_key}:{date} 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -856,6 +861,8 @@ class BaseConfig(object): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     KEY_NAME_PREFIX_MID_GROUP = 'mid:group:' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     # 广告推荐阈值结果存放 redis key 前缀,完整格式:ad:threshold:{abtestId}:{abtestConfigTag}:{group} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     KEY_NAME_PREFIX_AD_THRESHOLD = 'ad:threshold:' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    # 广告推荐阈值计算记录存放 redis key,完整格式:ad:threshold:record 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    KEY_NAME_PREFIX_AD_THRESHOLD_RECORD = 'ad:threshold:record' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 class DevelopmentConfig(BaseConfig): 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1180,8 +1187,8 @@ class ProductionConfig(BaseConfig): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 def set_config(): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     # 获取环境变量 ROV_OFFLINE_ENV 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    env = os.environ.get('ROV_OFFLINE_ENV') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    # env = 'dev' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    # env = os.environ.get('ROV_OFFLINE_ENV') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    env = 'dev' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     if env is None: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         # log_.error('ENV ERROR: is None!') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return 
			 |