linfan 1 rok pred
rodič
commit
f6284e53d0
2 zmenil súbory, kde vykonal 55 pridanie a 21 odobranie
  1. 9 9
      recommend.py
  2. 46 12
      video_recall.py

+ 9 - 9
recommend.py

@@ -211,21 +211,21 @@ def video_recommend(request_id, mid, uid, size, top_K, flow_pool_P, app_type, al
     if app_type in [config_.APP_TYPE['LAO_HAO_KAN_VIDEO'], config_.APP_TYPE['ZUI_JING_QI']]:
         t = [gevent.spawn(pool_recall.rov_pool_recall_with_region, size, expire_time, ab_code, exp_config)]
         if ab_code==60058:
-            t.append(gevent.spawn(pool_recall.get_U2I_reall, mid))
+            t.append(gevent.spawn(pool_recall.get_U2I_reall, mid, exp_config))
         elif  ab_code==60059:
-            t.append(gevent.spawn(pool_recall.get_word2vec_item_reall))
+            t.append(gevent.spawn(pool_recall.get_word2vec_item_reall, exp_config))
         elif  ab_code==60061:
-            t.append(gevent.spawn(pool_recall.get_sim_hot_item_reall_filter))
+            t.append(gevent.spawn(pool_recall.get_sim_hot_item_reall_filter, exp_config))
     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),
              gevent.spawn(pool_recall.flow_pool_recall, size)]
         if ab_code==60058:
-            t.append(gevent.spawn(pool_recall.get_U2I_reall, mid))
+            t.append(gevent.spawn(pool_recall.get_U2I_reall, mid, exp_config))
         elif ab_code == 60059:
-            t.append(gevent.spawn(pool_recall.get_word2vec_item_reall))
+            t.append(gevent.spawn(pool_recall.get_word2vec_item_reall, exp_config))
         elif ab_code == 60061:
-            t.append(gevent.spawn(pool_recall.get_sim_hot_item_reall_filter))
+            t.append(gevent.spawn(pool_recall.get_sim_hot_item_reall_filter, exp_config))
 
     # 最惊奇相关推荐实验
     # elif ab_code == config_.AB_CODE['top_video_relevant_appType_19']:
@@ -432,11 +432,11 @@ def video_old_recommend(request_id, mid, uid, size, top_K, flow_pool_P, app_type
     if app_type in [config_.APP_TYPE['LAO_HAO_KAN_VIDEO'], config_.APP_TYPE['ZUI_JING_QI']]:
         t = [gevent.spawn(pool_recall.rov_pool_recall_with_region, size, expire_time, ab_code, exp_config)]
         if ab_code ==60054:
-            t.append(gevent.spawn(pool_recall.get_sim_hot_item_reall_filter))
+            t.append(gevent.spawn(pool_recall.get_sim_hot_item_reall_filter, exp_config))
         if ab_code == 60055:
-            t.append(gevent.spawn(pool_recall.get_3days_hot_item_reall))
+            t.append(gevent.spawn(pool_recall.get_3days_hot_item_reall, exp_config))
         if ab_code == 60056:
-            t.append(gevent.spawn(pool_recall.get_hot_item_reall))
+            t.append(gevent.spawn(pool_recall.get_hot_item_reall, exp_config))
     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),

+ 46 - 12
video_recall.py

@@ -2137,7 +2137,7 @@ class PoolRecall(object):
                 )
         return recall_result[:200]
 
-    def get_sim_hot_item_reall_filter(self):
+    def get_sim_hot_item_reall_filter(self, exp_config=None):
         if self.video_id is None:
             return  []
         recall_key = "sim_hot_" + str(self.video_id)
@@ -2162,7 +2162,14 @@ class PoolRecall(object):
                     continue
         if len(video_ids)<=0:
             return  recall_result
-        video_ids = video_ids[:50]
+        recall_num = 20
+        try:
+            if exp_config and exp_config['recall_get_num']:
+                recall_num = int(exp_config['recall_get_num'])
+        except:
+            recall_num = 20
+        print("recall_num:", recall_num)
+        video_ids = video_ids[:recall_num]
         #print(video_ids)
         filter_ = FilterVideos(request_id=self.request_id,
                                app_type=self.app_type, mid=self.mid, uid=self.uid, video_ids=video_ids)
@@ -2173,7 +2180,7 @@ class PoolRecall(object):
         for vid in filtered_viewed_videos:
             if vid in recall_dict:
                 recall_result.append(recall_dict[vid])
-        return recall_result[:30]
+        return recall_result
     # get region_hour_recall
     def get_region_hour_recall(self, size=4, region_code='-1'):
         pool_key_prefix = config_.RECALL_KEY_NAME_PREFIX_REGION_BY_H
@@ -2377,7 +2384,7 @@ class PoolRecall(object):
 
         return flow_pool_recall_result[:size]
 
-    def get_3days_hot_item_reall(self):
+    def get_3days_hot_item_reall(self, exp_config=None):
         recall_key = "hot_3day:"
         #print("recall_key:", recall_key)
         data = self.redis_helper.get_data_from_redis(key_name=recall_key)
@@ -2401,11 +2408,17 @@ class PoolRecall(object):
         #print("vid len:", len(video_ids))
         if len(video_ids)<=0:
             return  recall_result
-        video_ids = video_ids[:30]
+        recall_num = 20
+        try:
+            if exp_config and exp_config['recall_get_num']:
+                recall_num = int(exp_config['recall_get_num'])
+        except:
+            recall_num = 20
+        video_ids = video_ids[:recall_num]
         #print(video_ids)
         filter_ = FilterVideos(request_id=self.request_id,
                                app_type=self.app_type, mid=self.mid, uid=self.uid, video_ids=video_ids)
-        filtered_viewed_videos = filter_.filter_videos(pool_type='normal')
+        filtered_viewed_videos = filter_.filter_videos_status(pool_type='normal')
         if filtered_viewed_videos is None:
             return recall_result
         #print("filtered_viewed_videos:", filtered_viewed_videos)
@@ -2416,7 +2429,7 @@ class PoolRecall(object):
         #print("recall_dict:", recall_dict)
         return recall_result
 
-    def get_hot_item_reall(self):
+    def get_hot_item_reall(self,exp_config=None):
         #recall_key = "hot_video:"
         recall_key = "hot_video:"
         #print("recall_key:", recall_key)
@@ -2440,7 +2453,14 @@ class PoolRecall(object):
                     continue
         if len(video_ids)<=0:
             return  recall_result
-        video_ids = video_ids[:30]
+        recall_num = 20
+        try:
+            if exp_config and exp_config['recall_get_num']:
+                recall_num = int(exp_config['recall_get_num'])
+        except:
+            recall_num = 20
+        #print("recall_num:", recall_num)
+        video_ids = video_ids[:recall_num]
         #print(video_ids)
         filter_ = FilterVideos(request_id=self.request_id,
                                app_type=self.app_type, mid=self.mid, uid=self.uid, video_ids=video_ids)
@@ -2492,7 +2512,7 @@ class PoolRecall(object):
                 recall_result.append(recall_dict[vid])
         return recall_result
 
-    def get_word2vec_item_reall(self):
+    def get_word2vec_item_reall(self, exp_config=None):
         if self.video_id is None:
             return  []
         recall_key = "w2v:" + str(self.video_id)
@@ -2517,7 +2537,14 @@ class PoolRecall(object):
                     continue
         if len(video_ids)<=0:
             return  recall_result
-        video_ids = video_ids[:50]
+        recall_num = 20
+        try:
+            if exp_config and exp_config['recall_get_num']:
+                recall_num = int(exp_config['recall_get_num'])
+        except:
+            recall_num = 20
+        print("recall_num:", recall_num)
+        video_ids = video_ids[:recall_num]
         #print(video_ids)
         filter_ = FilterVideos(request_id=self.request_id,
                                app_type=self.app_type, mid=self.mid, uid=self.uid, video_ids=video_ids)
@@ -2665,7 +2692,7 @@ class PoolRecall(object):
             return None
 
 
-    def get_U2I_reall(self, mid):
+    def get_U2I_reall(self, mid, exp_config=None):
         #recall_key = "hot_video:"
         if not mid:
             return  []
@@ -2691,7 +2718,14 @@ class PoolRecall(object):
                     continue
         if len(video_ids)<=0:
             return  recall_result
-        video_ids = video_ids[:50]
+        recall_num = 20
+        try:
+            if exp_config and exp_config['recall_get_num']:
+                recall_num = int(exp_config['recall_get_num'])
+        except:
+            recall_num = 20
+        print("recall_num:", recall_num)
+        video_ids = video_ids[:recall_num]
         #print(video_ids)
         filter_ = FilterVideos(request_id=self.request_id,
                                app_type=self.app_type, mid=self.mid, uid=self.uid, video_ids=video_ids)