Pārlūkot izejas kodu

Merge branch 'ad-abtest-update-2022122215' into test

liqian 2 gadi atpakaļ
vecāks
revīzija
dd9c0aca06
2 mainītis faili ar 28 papildinājumiem un 5 dzēšanām
  1. 20 5
      ad_user_video_predict.py
  2. 8 0
      config.py

+ 20 - 5
ad_user_video_predict.py

@@ -106,6 +106,20 @@ def predict_ad_group_video(dt, config_key, config_param):
         for key, val in threshold_data.items():
             key_name = f"{config_.KEY_NAME_PREFIX_AD_THRESHOLD}{abtest_id}:{abtest_config_tag}:{abtest_group}:{key}"
             redis_helper.set_data_to_redis(key_name=key_name, value=val, expire_time=2 * 24 * 3600)
+
+        # 计算比常态阈值较低阈值 并 写入Redis
+        up_threshold_flag = config_param.get('up_threshold_flag', None)
+        up_rate = config_param.get('up_rate', None)
+        if up_threshold_flag is True:
+            up_threshold_data = {}
+            for key, val in threshold_data.items():
+                up_val = val * up_rate
+                up_threshold_data[key] = up_val
+                up_key_name = \
+                    f"{config_.KEY_NAME_PREFIX_AD_THRESHOLD}{abtest_id}:{abtest_config_tag}:{abtest_group}:{key}:up"
+                redis_helper.set_data_to_redis(key_name=up_key_name, value=up_val, expire_time=2 * 24 * 3600)
+            log_.info(f"config_key = {config_key}, abtest_group = {abtest_group}, up_threshold_data = {up_threshold_data}")
+
     # predict_df.to_csv(f'./data/ad_user_video_predict_{config_key}.csv')
     log_.info(f"config_key = {config_key} update end!")
 
@@ -119,11 +133,12 @@ def predict():
     for config_key, config_param in params.items():
         predict_ad_group_video(dt=dt, config_key=config_key, config_param=config_param)
         # 阈值参数记录
-    #     for abtest_group, ad_threshold_mapping in config_param['threshold'].items():
-    #         threshold_record[f"{config_key}-{abtest_group}"] = ad_threshold_mapping['group']
-    # redis_helper.set_data_to_redis(key_name=config_.KEY_NAME_PREFIX_AD_THRESHOLD_RECORD,
-    #                                value=str(threshold_record),
-    #                                expire_time=24*3600)
+        ad_threshold_mappings = config_.AD_ABTEST_THRESHOLD_CONFIG.get(config_key.split('-')[0])
+        for abtest_group, ad_threshold_mapping in ad_threshold_mappings.items():
+            threshold_record[f"{config_key}-{abtest_group}"] = ad_threshold_mapping['group']
+    redis_helper.set_data_to_redis(key_name=config_.KEY_NAME_PREFIX_AD_THRESHOLD_RECORD,
+                                   value=str(threshold_record),
+                                   expire_time=24*3600)
 
 
 if __name__ == '__main__':

+ 8 - 0
config.py

@@ -787,6 +787,14 @@ class BaseConfig(object):
                   'user': {'data': 'data1', 'rule': 'rule3'}},
         '173-d': {'video': {'data': 'data1:7days'},
                   'user': {'data': 'data1', 'rule': 'rule1'}},
+        '173-e': {'video': {'data': 'data1'},
+                  'user': {'data': 'data1', 'rule': 'rule2'},
+                  'up_threshold_flag': True, 'up_rate': 0.9,  # 存储比常态阈值较低阈值
+                  },
+        '173-f': {'video': {'data': 'data1'},
+                  'user': {'data': 'data1', 'rule': 'rule2'},
+                  'up_threshold_flag': True, 'up_rate': 0.9,
+                  },
         # 票圈视频+
         '190-a': {'video': {'data': 'data1'},
                   'user': {'data': 'data1', 'rule': 'rule1'}},