Bläddra i källkod

Merge branch 'feature/zhangbo_rank' of algorithm/rov-server into master

zhangbo 1 år sedan
förälder
incheckning
76bb3a3722
4 ändrade filer med 28 tillägg och 11 borttagningar
  1. 10 0
      config.py
  2. 2 2
      parameter_update.py
  3. 14 7
      recommend.py
  4. 2 2
      video_rank.py

+ 10 - 0
config.py

@@ -198,6 +198,8 @@ class BaseConfig(object):
             'abtest_523': 60097,
             # 趋势性召回子策略,ab实验号533,推荐服务内实验号60098
             'abtest_533': 60098,
+            'abtest_536': 60099,
+            'abtest_537': 70000,
         },  # 地域分组小时级规则实验
 
         'rank_by_24h': {
@@ -579,6 +581,14 @@ class BaseConfig(object):
             'data_key': 'data66', 'rule_key': 'rule66',
             'ab_code': AB_CODE['region_rank_by_h'].get('abtest_533'),
         },  # 新增一路召回趋势性
+        '536': {
+            'data_key': 'data66', 'rule_key': 'rule66',
+            'ab_code': AB_CODE['region_rank_by_h'].get('abtest_536'),
+        },  # 新增一路召回趋势性
+        '537': {
+            'data_key': 'data66', 'rule_key': 'rule66',
+            'ab_code': AB_CODE['region_rank_by_h'].get('abtest_537'),
+        },  # 新增一路召回趋势性
 
     }
 

+ 2 - 2
parameter_update.py

@@ -106,8 +106,8 @@ def param_update_filter_flags() -> [bool, bool]:
             data2 = False
     return [data1, data2]
 
-def param_update_rule(redis_helper: RedisHelper) -> dict:
-    tmp = redis_helper.get_data_from_redis(key_name=TAGS_FILTER_RULE_V1_JSON)
+def param_update_rule(redis_helper: RedisHelper, rule_key_str: str) -> dict:
+    tmp = redis_helper.get_data_from_redis(key_name=rule_key_str)
     if tmp is not None:
         try:
             data = json.loads(tmp)

+ 14 - 7
recommend.py

@@ -537,10 +537,10 @@ def video_old_recommend(request_id, mid, uid, size, top_K, flow_pool_P, app_type
     elif ab_code == 60068 or ab_code == 60070 or ab_code == 60080 or ab_code == 60081 or ab_code == 60082 \
             or ab_code == 60083 or ab_code == 60084 or ab_code == 60085 or ab_code == 60086 \
             or ab_code == 60092 or ab_code == 60093 or ab_code == 60094 or ab_code == 60095 or ab_code == 60096\
-            or ab_code == 60097 or ab_code == 60098:
+            or ab_code == 60097 or ab_code == 60098 or ab_code == 60099 or ab_code == 70000:
         t.append(gevent.spawn(pool_recall.get_sim_hot_item_reall_filter))
         t.append(gevent.spawn(pool_recall.get_return_video_reall, 'rv2:'))
-    elif ab_code == 60099:
+    elif ab_code == 1000000:
         t.append(gevent.spawn(pool_recall.get_sim_hot_item_reall_filter))
         t.append(gevent.spawn(pool_recall.get_return_video_reall, 'rv2:'))
         # todo:zhangbo
@@ -629,7 +629,7 @@ def video_old_recommend(request_id, mid, uid, size, top_K, flow_pool_P, app_type
             or ab_code == 60080 or ab_code == 60081 or ab_code == 60082 or ab_code == 60083 or ab_code == 60084\
             or ab_code == 60085 or ab_code == 60086 \
             or ab_code == 60092 or ab_code == 60093 or ab_code == 60094 or ab_code == 60095 or ab_code == 60096\
-            or ab_code == 60097 or ab_code == 60098:
+            or ab_code == 60097 or ab_code == 60098 or ab_code == 60099 or ab_code == 70000:
         rov_pool_recall = []
         if len(recall_result_list)>=2:
             region_recall = recall_result_list[0]
@@ -790,11 +790,18 @@ def video_old_recommend(request_id, mid, uid, size, top_K, flow_pool_P, app_type
         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)
+    if ab_code == 60098 or ab_code == 60099 or ab_code == 70000:
+        rule_key_str = "TAGS_FILTER_RULE_V1_JSON"
+        if ab_code == 60098:
+            rule_key_str = "TAGS_FILTER_RULE_V1_JSON"
+        elif ab_code == 60099:
+            rule_key_str = "TAGS_FILTER_RULE_V2_JSON"
+        elif ab_code == 70000:
+            rule_key_str = "TAGS_FILTER_RULE_V3_JSON"
 
-    if ab_code == 60098:
         rank_result, flow_num, flow_pool_recall_process = video_new_rank3_4density(
             data=data, size=size, top_K=top_K, flow_pool_P=float(flow_pool_P), rank_key_prefix=rank_key_prefix,
-            flow_pool_recall_process=flow_pool_recall_process, app_type=app_type
+            flow_pool_recall_process=flow_pool_recall_process, app_type=app_type, rule_key_str=rule_key_str
         )
     else:
         rank_result, flow_num, flow_pool_recall_process = video_new_rank3(
@@ -2068,7 +2075,7 @@ def video_homepage_recommend(request_id, mid, uid, size, app_type, algo_type,
             or ab_code == 60083 or ab_code == 60084 or ab_code == 60085 or ab_code == 60086 \
             or ab_code == 60087 or ab_code == 60088 or ab_code == 60089 or ab_code == 60090 \
             or ab_code == 60091 or ab_code == 60092 or ab_code == 60093 or ab_code == 60094 or ab_code == 60095 \
-            or ab_code == 60096 or ab_code == 60097 or ab_code == 60098:
+            or ab_code == 60096 or ab_code == 60097 or ab_code == 60098 or ab_code == 60099 or ab_code == 70000:
         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, algo_type='',
                                                client_info=client_info, ab_code=ab_code, expire_time=expire_time,
@@ -2196,7 +2203,7 @@ def video_relevant_recommend(request_id, video_id, mid, uid, size, app_type, ab_
             or ab_code == 60083 or ab_code == 60084 or ab_code == 60085 or ab_code == 60086 \
             or ab_code == 60087 or ab_code == 60088 or ab_code == 60089 or ab_code == 60090 \
             or ab_code == 60091 or ab_code == 60092 or ab_code == 60093 or ab_code == 60094 or ab_code == 60095 \
-            or ab_code == 60096 or ab_code == 60097 or ab_code == 60098:
+            or ab_code == 60096 or ab_code == 60097 or ab_code == 60098 or ab_code == 60099 or ab_code == 70000:
         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, algo_type='',
                                                client_info=client_info, ab_code=ab_code, expire_time=expire_time,

+ 2 - 2
video_rank.py

@@ -884,7 +884,7 @@ def video_new_rank3(data, size, top_K, flow_pool_P, rank_key_prefix='rank:score1
 
 def video_new_rank3_4density(data, size, top_K, flow_pool_P, rank_key_prefix='rank:score1:',
                              flow_pool_recall_process=None,
-                             app_type=None):
+                             app_type=None, rule_key_str = None):
     """
         视频分发排序
         :param data: 各路召回的视频 type-dict {'rov_pool_recall': [], 'flow_pool_recall': []}
@@ -897,7 +897,7 @@ def video_new_rank3_4density(data, size, top_K, flow_pool_P, rank_key_prefix='ra
     # 1 读取多样性密度控制规则 todo 没有判断非字典数据,有报错风险,先用try兜底。
     redis_helper = RedisHelper()
     density_rules = {}
-    rules_all = param_update_rule(redis_helper)
+    rules_all = param_update_rule(redis_helper, rule_key_str)
     try:
         if len(rules_all) != 0:
             for k, v in rules_all.items():