|
@@ -295,25 +295,36 @@ def predict_mid_video_res_with_add(now_date, mid, video_id, abtest_param, abtest
|
|
|
return result
|
|
|
|
|
|
def predict_mid_video_res_with_model(now_date, mid, video_id, abtest_param, abtest_id, abtest_config_tag, ab_test_code, care_model_status):
|
|
|
- # now_dt = datetime.datetime.strftime(now_date, '%Y%m%d')
|
|
|
- now_dt = '20231129'
|
|
|
- model_key = abtest_param.get('model_key', 'ad_out_v2_model_v1.day')
|
|
|
- user_key_name = f"{config_.KEY_NAME_PREFIX_AD_OUT_MODEL_SCORE_USER}{model_key}:{now_dt}"
|
|
|
- item_key_name = f"{config_.KEY_NAME_PREFIX_AD_OUT_MODEL_SCORE_ITEM}{model_key}:{now_dt}"
|
|
|
+ model_key = abtest_param.get('model_key', 'ad_out_v1')
|
|
|
+ mean_key = 'mean'
|
|
|
+ user_key_name = f"{config_.KEY_NAME_PREFIX_AD_OUT_MODEL_SCORE_USER}{model_key}:{mid}"
|
|
|
+ user_key_name_mean = f"{config_.KEY_NAME_PREFIX_AD_OUT_MODEL_SCORE_USER}{model_key}:{mean_key}"
|
|
|
+ item_key_name = f"{config_.KEY_NAME_PREFIX_AD_OUT_MODEL_SCORE_ITEM}{model_key}:{video_id}"
|
|
|
+ item_key_name_mean = f"{config_.KEY_NAME_PREFIX_AD_OUT_MODEL_SCORE_ITEM}{model_key}:{mean_key}"
|
|
|
+ config_key_prefix = f"{config_.KEY_NAME_PREFIX_AD_OUT_MODEL_CONFIG}{model_key}:{abtest_id}:{abtest_config_tag}"
|
|
|
+ threshold_key = f"{config_key_prefix}:threshold"
|
|
|
+ use_mean_key = f"{config_key_prefix}:use_mean"
|
|
|
+
|
|
|
+ use_mean = redis_helper.get_data_from_redis(key_name=use_mean_key)
|
|
|
+ user_score = redis_helper.get_data_from_redis(key_name=user_key_name)
|
|
|
+ item_score = redis_helper.get_data_from_redis(key_name=item_key_name)
|
|
|
|
|
|
- user_score = redis_helper.get_score_with_value(key_name=user_key_name, value=mid)
|
|
|
- item_score = redis_helper.get_score_with_value(key_name=item_key_name, value=video_id)
|
|
|
if user_score is None:
|
|
|
- user_score = 0.0
|
|
|
+ if use_mean:
|
|
|
+ user_score = redis_helper.get_data_from_redis(key_name=user_key_name_mean)
|
|
|
+ else:
|
|
|
+ user_score = 0.0
|
|
|
+
|
|
|
if item_score is None:
|
|
|
- item_score = 0.0
|
|
|
+ if use_mean:
|
|
|
+ item_score = redis_helper.get_data_from_redis(key_name=item_key_name_mean)
|
|
|
+ else:
|
|
|
+ item_score = 0.0
|
|
|
+
|
|
|
final_score = user_score + item_score
|
|
|
|
|
|
# 获取对应的阈值
|
|
|
- threshold_key_name_prefix = config_.KEY_NAME_PREFIX_AD_THRESHOLD
|
|
|
- threshold_key_name = f"{threshold_key_name_prefix}{abtest_id}:{abtest_config_tag}:{ab_test_code}:"
|
|
|
- # threshold = redis_helper.get_data_from_redis(key_name=threshold_key_name)
|
|
|
- threshold = 0.2
|
|
|
+ threshold = redis_helper.get_data_from_redis(key_name=threshold_key)
|
|
|
|
|
|
# 阈值判断
|
|
|
if final_score > threshold:
|
|
@@ -323,6 +334,8 @@ def predict_mid_video_res_with_model(now_date, mid, video_id, abtest_param, abte
|
|
|
# 否则,不出广告
|
|
|
ad_predict = 1
|
|
|
result = {
|
|
|
+ 'use_mean_key': use_mean_key,
|
|
|
+ 'threshold_key': threshold_key,
|
|
|
'user_score': user_score,
|
|
|
'item_score': item_score,
|
|
|
'final_score': final_score,
|