Sfoglia il codice sorgente

Merge branch 'recall_20230707' of algorithm/rov-server into master

linfan 1 anno fa
parent
commit
68b0fb073e
4 ha cambiato i file con 26 aggiunte e 35 eliminazioni
  1. 6 0
      config.py
  2. 16 33
      recommend.py
  3. 1 1
      video_rank.py
  4. 3 1
      video_recall.py

+ 6 - 0
config.py

@@ -161,6 +161,8 @@ class BaseConfig(object):
             'abtest_367': 60062,
             'abtest_368': 60063,
             'abtest_373': 60064,
+            'abtest_393': 60065,
+            #'abtest_394': 60066,
         },  # 地域分组小时级规则实验
 
         'rank_by_24h': {
@@ -404,6 +406,10 @@ class BaseConfig(object):
         '373': {
             'data_key': 'data10', 'rule_key': 'rule7',
             'ab_code': AB_CODE['region_rank_by_h'].get('abtest_373')
+        },
+        '393': {
+            'data_key': 'data10', 'rule_key': 'rule7',
+            'ab_code': AB_CODE['region_rank_by_h'].get('abtest_393')
         }
     }
 

+ 16 - 33
recommend.py

@@ -458,6 +458,8 @@ def video_old_recommend(request_id, mid, uid, size, top_K, flow_pool_P, app_type
             t.append(gevent.spawn(pool_recall.get_return_video_reall, exp_config))
         if ab_code == 60056:
             t.append(gevent.spawn(pool_recall.get_U2I_reall, mid , exp_config))
+        if ab_code == 60065:
+            t.append(gevent.spawn(pool_recall.get_return_video_reall, exp_config, 'rv2:'))
     else:
         t = [gevent.spawn(pool_recall.rov_pool_recall_with_region, size, expire_time, ab_code, exp_config),
              gevent.spawn(pool_recall.flow_pool_recall, size, config_.QUICK_FLOW_POOL_ID),
@@ -468,6 +470,8 @@ def video_old_recommend(request_id, mid, uid, size, top_K, flow_pool_P, app_type
             t.append(gevent.spawn(pool_recall.get_return_video_reall, exp_config))
         if ab_code == 60056:
             t.append(gevent.spawn(pool_recall.get_U2I_reall, mid , exp_config))
+        if ab_code == 60065:
+            t.append(gevent.spawn(pool_recall.get_return_video_reall, exp_config, 'rv2:'))
 
     gevent.joinall(t)
     recall_result_list = [i.get() for i in t]
@@ -505,7 +509,7 @@ def video_old_recommend(request_id, mid, uid, size, top_K, flow_pool_P, app_type
             if len(rov_pool_recall) > 0:
                 recall_result_list[0] = rov_pool_recall
     # merge return video
-    if ab_code == 60055:
+    if ab_code == 60055 or ab_code==60065:
         rov_pool_recall = []
         if len(recall_result_list)>=2:
             region_recall = recall_result_list[0]
@@ -1619,21 +1623,12 @@ def video_homepage_recommend(request_id, mid, uid, size, app_type, algo_type,
                              rule_key=rule_key, data_key=data_key,
                              no_op_flag=no_op_flag, old_video_index=old_video_index,
                              params=params, rule_key_30day=rule_key_30day, shield_config=shield_config)
-    # old base (test4, test5)
-    # elif ab_code == 60050 or ab_code == 60051:
-    #     result = video_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=algo_type, client_info=client_info,
-    #                              ab_code=ab_code, expire_time=expire_time,
-    #                              rule_key=rule_key, data_key=data_key,
-    #                              no_op_flag=no_op_flag, old_video_index=old_video_index,
-    #                              params=params, rule_key_30day=rule_key_30day, shield_config=shield_config)
-    # 60052,60053,60057(test7, test8, test6)
-    # simrecal: 60054
-    # 3 days , 7days recall: 60005, test1
+    # 60052,60053,60057(test7, test8, test6) 融合排序
+    # simrecal: 60054 +融合
+    # return video, return video2
     # old video: 60056, test2
-    elif ab_code == 60052 or ab_code == 60053 or ab_code == 60054 or ab_code == 60055 or ab_code == 60056 or ab_code==60057:
+    elif ab_code == 60052 or ab_code == 60053 or ab_code == 60054 \
+            or ab_code == 60055 or ab_code == 60056 or ab_code==60057 or ab_code==60065:
         result = 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,
@@ -1675,11 +1670,9 @@ def video_homepage_recommend(request_id, mid, uid, size, app_type, algo_type,
     update_redis_st = time.time()
     if ab_code == 60047 or  ab_code == 60048 or  ab_code == 60049:
         update_flow_redis_data(result=rank_result, app_type=app_type, mid=mid, top_K=top_K)
-    # elif ab_code == 60050 or  ab_code == 60051:
+    # elif ab_code == 60052 or ab_code == 60053 or ab_code == 60054 or ab_code == 60055 \
+    #         or ab_code == 60056 or ab_code==60057:
     #     update_redis_data(result=rank_result, app_type=app_type, mid=mid, top_K=top_K)
-    elif ab_code == 60052 or ab_code == 60053 or ab_code == 60054 or ab_code == 60055 \
-            or ab_code == 60056 or ab_code==60057:
-        update_redis_data(result=rank_result, app_type=app_type, mid=mid, top_K=top_K)
     else:
         update_redis_data(result=rank_result, app_type=app_type, mid=mid, top_K=top_K)
     # log_.info({
@@ -1752,18 +1745,8 @@ def video_relevant_recommend(request_id, video_id, mid, uid, size, app_type, ab_
                                  rule_key=rule_key, data_key=data_key, no_op_flag=no_op_flag,
                                  old_video_index=old_video_index, video_id=video_id,
                                  params=params, rule_key_30day=rule_key_30day, shield_config=shield_config)
-        # log_.info({
-    # elif ab_code == 60050 or ab_code == 60051:
-    #     result = video_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,
-    #                              rule_key=rule_key, data_key=data_key, no_op_flag=no_op_flag,
-    #                              old_video_index=old_video_index, video_id=video_id,
-    #                              params=params, rule_key_30day=rule_key_30day, shield_config=shield_config)
     elif ab_code == 60052 or ab_code == 60053 or ab_code == 60054 or ab_code == 60055 or \
-            ab_code == 60056 or ab_code==60057:
+            ab_code == 60056 or ab_code==60057 or ab_code ==60065:
         result = 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,
@@ -1808,9 +1791,9 @@ def video_relevant_recommend(request_id, video_id, mid, uid, size, app_type, ab_
          update_flow_redis_data(result=rank_result, app_type=app_type, mid=mid, top_K=top_K)
     # elif ab_code == 60050 or ab_code == 60051:
     #      update_redis_data(result=rank_result, app_type=app_type, mid=mid, top_K=top_K)
-    elif ab_code == 60052 or ab_code == 60053 or ab_code == 60054 or ab_code == 60055 or \
-            ab_code == 60056 or ab_code==60057:
-         update_redis_data(result=rank_result, app_type=app_type, mid=mid, top_K=top_K)
+    # elif ab_code == 60052 or ab_code == 60053 or ab_code == 60054 or ab_code == 60055 or \
+    #         ab_code == 60056 or ab_code==60057 or ab_code ==60065:
+    #      update_redis_data(result=rank_result, app_type=app_type, mid=mid, top_K=top_K)
     else:
          update_redis_data(result=rank_result, app_type=app_type, mid=mid, top_K=top_K)
     # log_.info({

+ 1 - 1
video_rank.py

@@ -610,7 +610,7 @@ def video_new_rank2(data, size, top_K, flow_pool_P, ab_code, exp_config=None):
     #全量的是vlog,票圈精选, 334,60057,
     # 60054: simrecall,
     # 60052: 票圈精选,融合排序,60053:空置
-    # 60055: video_reall
+    # 60055: video_reall, 60065: video_recall2
     # 60056: get_U2I_reall
     pre_str = "k_p2:"
     if ab_code==60057:

+ 3 - 1
video_recall.py

@@ -2820,10 +2820,12 @@ class PoolRecall(object):
         else:
             return None
 
-    def get_return_video_reall(self, exp_config=None):
+    def get_return_video_reall(self, exp_config=None, pre_key=None):
         if self.video_id is None:
             return  []
         recall_key = "rv:"+ str(self.video_id)
+        if pre_key :
+            recall_key = pre_key + str(self.video_id)
         #print("recall_key:", recall_key)
         data = self.redis_helper.get_data_from_redis(key_name=recall_key)