Jelajahi Sumber

update config

linfan 1 tahun lalu
induk
melakukan
5b1dae7db6
3 mengubah file dengan 88 tambahan dan 28 penghapusan
  1. 10 0
      config.py
  2. 52 2
      recommend.py
  3. 26 26
      video_rank.py

+ 10 - 0
config.py

@@ -163,6 +163,8 @@ class BaseConfig(object):
             'abtest_373': 60064,
             'abtest_393': 60065,
             'abtest_394': 60066,
+            'abtest_395': 60067,
+            'abtest_396': 60068,
         },  # 地域分组小时级规则实验
 
         'rank_by_24h': {
@@ -414,6 +416,14 @@ class BaseConfig(object):
         '394': {
             'data_key': 'data10', 'rule_key': 'rule7',
             'ab_code': AB_CODE['region_rank_by_h'].get('abtest_394')
+        },
+        '395': {
+            'data_key': 'data10', 'rule_key': 'rule7',
+            'ab_code': AB_CODE['region_rank_by_h'].get('abtest_395')
+        },
+        '396': {
+            'data_key': 'data10', 'rule_key': 'rule7',
+            'ab_code': AB_CODE['region_rank_by_h'].get('abtest_396')
         }
     }
 

+ 52 - 2
recommend.py

@@ -458,7 +458,13 @@ 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:
+        if ab_code == 60065 :
+            t.append(gevent.spawn(pool_recall.get_return_video_reall, exp_config, 'rv2:'))
+        if ab_code ==60067 :
+            t.append(gevent.spawn(pool_recall.get_sim_hot_item_reall_filter, exp_config))
+            t.append(gevent.spawn(pool_recall.get_return_video_reall, exp_config))
+        if ab_code == 60068:
+            t.append(gevent.spawn(pool_recall.get_sim_hot_item_reall_filter, exp_config))
             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),
@@ -472,6 +478,12 @@ def video_old_recommend(request_id, mid, uid, size, top_K, flow_pool_P, app_type
             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:'))
+        if ab_code == 60067:
+            t.append(gevent.spawn(pool_recall.get_sim_hot_item_reall_filter, exp_config))
+            t.append(gevent.spawn(pool_recall.get_return_video_reall, exp_config))
+        if ab_code == 60068:
+            t.append(gevent.spawn(pool_recall.get_sim_hot_item_reall_filter, exp_config))
+            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]
@@ -563,6 +575,44 @@ 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
 
+    #2. merge simrecall, return video
+    if ab_code == 60067 or ab_code==60068:
+        rov_pool_recall = []
+        if len(recall_result_list)>=2:
+            region_recall = recall_result_list[0]
+            return_video_reall = []
+            sim_recall = []
+            if app_type in [config_.APP_TYPE['LAO_HAO_KAN_VIDEO'], config_.APP_TYPE['ZUI_JING_QI']]:
+                sim_recall = recall_result_list[1]
+                if len(recall_result_list) >= 3:
+                    return_video_reall = recall_result_list[2]
+            else:
+                if len(recall_result_list)>=4:
+                    sim_recall = recall_result_list[3]
+                if len(recall_result_list)>=5:
+                    return_video_reall = recall_result_list[4]
+            #print("sim:",sim_recall)
+            now_video_ids = set('')
+            if len(region_recall)>0:
+                for video in region_recall:
+                    video_id = video.get('videoId')
+                    if video_id not in now_video_ids:
+                        rov_pool_recall.append(video)
+                        now_video_ids.add(video_id)
+            if len(sim_recall) > 0:
+                for video in sim_recall:
+                    video_id = video.get('videoId')
+                    if video_id not in now_video_ids:
+                        rov_pool_recall.append(video)
+                        now_video_ids.add(video_id)
+            if len(return_video_reall)>0:
+                for video in return_video_reall:
+                    video_id = video.get('videoId')
+                    if video_id not in now_video_ids:
+                        rov_pool_recall.append(video)
+                        now_video_ids.add(video_id)
+            if len(rov_pool_recall)>0:
+                recall_result_list[0] = rov_pool_recall
     result['recallResult'] = recall_result_list
     result['recallTime'] = (time.time() - start_recall) * 1000
     #print("recall:", recall_result_list)
@@ -1629,7 +1679,7 @@ def video_homepage_recommend(request_id, mid, uid, size, app_type, algo_type,
     # 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  \
-            or ab_code==60065 or ab_code == 60066:
+            or ab_code==60065 or ab_code == 60067 or ab_code==60068 :
         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,

+ 26 - 26
video_rank.py

@@ -627,32 +627,32 @@ def video_new_rank2(data, size, top_K, flow_pool_P, ab_code, exp_config=None):
     #print("pre_str:", pre_str)
     recall_list = []
     #call rank service
-    if ab_code == 60066:
-        get_featurs()
-
-    else:
-        redisObj = RedisHelper()
-        vidKeys = []
-        for recall_item in data['rov_pool_recall']:
-            if len(recall_item)<=0:
-                continue
-            vid = recall_item.get("videoId",0)
-            vidKeys.append(pre_str+ str(vid))
-            recall_list.append(recall_item)
-        #print("vidKeys:", vidKeys)
-        video_scores = redisObj.get_batch_key(vidKeys)
-        #print("video_score:",video_scores)
-        for i in range(len(video_scores)):
-             try:
-                # print(video_scores[i])
-                if video_scores[i] is None:
-                    recall_list[i]['sort_score']= 0.0
-                else:
-                    video_score_str = json.loads(video_scores[i])
-                    #print("video_score_str:", video_score_str)
-                    recall_list[i]['sort_score'] = video_score_str[0]
-             except Exception :
-                    recall_list[i]['sort_score'] = 0.0
+    # if ab_code == 60066:
+    #     get_featurs()
+    #
+    # else:
+    redisObj = RedisHelper()
+    vidKeys = []
+    for recall_item in data['rov_pool_recall']:
+        if len(recall_item) <= 0:
+            continue
+        vid = recall_item.get("videoId", 0)
+        vidKeys.append(pre_str + str(vid))
+        recall_list.append(recall_item)
+    # print("vidKeys:", vidKeys)
+    video_scores = redisObj.get_batch_key(vidKeys)
+    # print("video_score:",video_scores)
+    for i in range(len(video_scores)):
+        try:
+            # print(video_scores[i])
+            if video_scores[i] is None:
+                recall_list[i]['sort_score'] = 0.0
+            else:
+                video_score_str = json.loads(video_scores[i])
+                # print("video_score_str:", video_score_str)
+                recall_list[i]['sort_score'] = video_score_str[0]
+        except Exception:
+            recall_list[i]['sort_score'] = 0.0
     #sort_items = sorted(video_items, key=lambda k: k[1], reverse=True)
     rov_recall_rank =sorted(recall_list, key=lambda k: k.get('sort_score', 0), reverse=True)
     #print(rov_recall_rank)