liqian 3 years ago
parent
commit
3b7fb9e35d
1 changed files with 12 additions and 10 deletions
  1. 12 10
      recommend.py

+ 12 - 10
recommend.py

@@ -372,12 +372,14 @@ def video_homepage_recommend(mid, uid, size, app_type, algo_type, client_info, a
             top_K = config_.K
             flow_pool_P = config_.P
         else:
-            exp_item_id_list = [int(item.get('expItemId')) for item in ab_exp_info]
+            exp_item_id_list = [int(item.get('expItemId')) for item in ab_exp_info if item is not None]
             if config_.EXP_ITEM_ID['rec_size'] in exp_item_id_list:
-                config_value = ab_exp_info[exp_item_id_list.index(config_.EXP_ITEM_ID['rec_size'])].get('configValue')
-                size = config_value.get('size', 4)
-                top_K = config_value.get('K', 3)
-                flow_pool_P = config_value.get('P', 0.3)
+                config_value = eval(
+                    ab_exp_info[exp_item_id_list.index(config_.EXP_ITEM_ID['rec_size'])].get('configValue')
+                )
+                size = int(config_value.get('size', 4))
+                top_K = int(config_value.get('K', 3))
+                flow_pool_P = float(config_value.get('P', 0.3))
             else:
                 size = size
                 top_K = config_.K
@@ -415,12 +417,12 @@ def video_relevant_recommend(video_id, mid, uid, size, app_type, ab_exp_info):
         top_K = config_.K
         flow_pool_P = config_.P
     else:
-        exp_item_id_list = [int(item.get('expItemId')) for item in ab_exp_info]
+        exp_item_id_list = [int(item.get('expItemId')) for item in ab_exp_info if item is not None]
         if config_.EXP_ITEM_ID['rec_size'] in exp_item_id_list:
-            config_value = ab_exp_info[exp_item_id_list.index(config_.EXP_ITEM_ID['rec_size'])].get('configValue')
-            size = config_value.get('size', 4)
-            top_K = config_value.get('K', 3)
-            flow_pool_P = config_value.get('P', 0.3)
+            config_value = eval(ab_exp_info[exp_item_id_list.index(config_.EXP_ITEM_ID['rec_size'])].get('configValue'))
+            size = int(config_value.get('size', 4))
+            top_K = int(config_value.get('K', 3))
+            flow_pool_P = float(config_value.get('P', 0.3))
         else:
             size = size
             top_K = config_.K