Browse Source

增加参数传递

zhangbo 1 year ago
parent
commit
d516e1ccdc
4 changed files with 47 additions and 38 deletions
  1. 6 0
      app.py
  2. 3 1
      recommend.py
  3. 8 3
      utils.py
  4. 30 34
      video_recall.py

+ 6 - 0
app.py

@@ -118,6 +118,7 @@ def homepage_recommend():
         versioncode = request_data.get('versionCode', 0)
         recommendsource = request_data.get('recommendSource', '0')
         sencetype = request_data.get('senceType', 0)
+        hotSenceType = request_data.get('hotSenceType', 0)
         recomTraceId=request_data.get('recomTraceId', "")
         env_dict = {}
         try:
@@ -129,6 +130,7 @@ def homepage_recommend():
             env_dict['machineinfo_platform'] = str(machineinfoPlatform)
             env_dict['recommendsource'] = str(recommendsource)
             env_dict['sencetype'] = int(sencetype)
+            env_dict['hotSenceType'] = int(hotSenceType)
             env_dict['recomTraceId'] = recomTraceId
             env_dict['recomInterface'] = "homepage"
         except:
@@ -140,6 +142,7 @@ def homepage_recommend():
             env_dict['machineinfo_platform'] = str(machineinfoPlatform)
             env_dict['recommendsource'] = str(recommendsource)
             env_dict['sencetype'] = sencetype
+            env_dict['hotSenceType'] = int(hotSenceType)
             env_dict['recomTraceId'] = recomTraceId
             env_dict['recomInterface'] = "homepage"
             log_.error("feature error",env_dict)
@@ -248,6 +251,7 @@ def relevant_recommend():
         versioncode = request_data.get('versionCode', 0)
         recommendsource = request_data.get('recommendSource', '0')
         sencetype =  request_data.get('senceType', 0)
+        hotSenceType = request_data.get('hotSenceType', 0)
         recomTraceId = request_data.get('recomTraceId', "")
         env_dict = {}
         try:
@@ -259,6 +263,7 @@ def relevant_recommend():
             env_dict['machineinfo_platform'] = str(machineinfoPlatform)
             env_dict['recommendsource'] = str(recommendsource)
             env_dict['sencetype'] = int(sencetype)
+            env_dict['hotSenceType'] = int(hotSenceType)
             env_dict['recomInterface'] = "relevant_recommend"
             env_dict['recomTraceId'] = recomTraceId
             env_dict['relevant_video_id'] = video_id
@@ -271,6 +276,7 @@ def relevant_recommend():
             env_dict['machineinfo_platform'] = str(machineinfoPlatform)
             env_dict['recommendsource'] = str(recommendsource)
             env_dict['sencetype'] = sencetype
+            env_dict['hotSenceType'] = int(hotSenceType)
             env_dict['recomInterface'] = "relevant_recommend"
             env_dict['relevant_video_id'] = video_id
             env_dict['recomTraceId'] = recomTraceId

+ 3 - 1
recommend.py

@@ -488,7 +488,9 @@ def video_old_recommend(request_id, mid, uid, size, top_K, flow_pool_P, app_type
                              client_info=client_info, rule_key=rule_key, data_key=data_key, no_op_flag=no_op_flag,
                              params=params, rule_key_30day=rule_key_30day, shield_config=shield_config,
                              video_id=video_id, level_weight=level_weight,
-                             h_data_key=h_data_key, h_rule_key=h_rule_key)
+                             h_data_key=h_data_key, h_rule_key=h_rule_key,
+                             env_dict=env_dict
+                             )
 
     exp_config = pool_recall.get_sort_ab_codel_config()
     # 60054 全量: simrecall+融合排序

+ 8 - 3
utils.py

@@ -243,7 +243,9 @@ class FilterVideos(object):
                  risk_filter_flag=None,
                  app_region_filtered=None,
                  videos_with_risk=None,
-                 force_truncation=None):
+                 force_truncation=None,
+                 env_dict=None
+                 ):
         """
         初始化
         :param request_id: request_id
@@ -262,6 +264,7 @@ class FilterVideos(object):
         self.app_region_filtered = app_region_filtered
         self.videos_with_risk = videos_with_risk
         self.force_truncation = force_truncation
+        self.env_dict = env_dict
 
     def filter_video_status_h(self, video_ids, rule_key, data_key, ab_code, province_code, key_flag=''):
         """召回小时级更新的视频状态过滤"""
@@ -533,7 +536,8 @@ class FilterVideos(object):
                         "uid": self.uid,
                         "types": list(types),
                         "videoIds": video_ids,
-                        "cityCode": region_code
+                        "cityCode": region_code,
+                        "hotSenceType": self.env_dict["hotSenceType"]  if "hotSenceType" in self.env_dict else 0
                         }
         # print(request_data)
         # 调用http接口
@@ -867,7 +871,8 @@ class FilterVideos(object):
                         "uid": self.uid,
                         "types": types,
                         "videoIds": video_ids,
-                        "cityCode": region_code
+                        "cityCode": region_code,
+                        "hotSenceType": self.env_dict["hotSenceType"]  if "hotSenceType" in self.env_dict else 0
                         }
         # print(request_data)
         # 调用http接口

+ 30 - 34
video_recall.py

@@ -23,7 +23,7 @@ class PoolRecall(object):
     """召回"""
     def __init__(self, request_id, app_type, client_info=None, mid='', uid='', ab_code='',
                  rule_key='', data_key='', no_op_flag=False, params=None, rule_key_30day=None, shield_config=None,
-                 video_id=None, level_weight=None, h_data_key=None, h_rule_key=None):
+                 video_id=None, level_weight=None, h_data_key=None, h_rule_key=None, env_dict=None):
         """
         初始化
         :param request_id: request_id
@@ -50,6 +50,7 @@ class PoolRecall(object):
         self.redis_helper = RedisHelper(params=params)
         self.h_data_key = data_key
         self.h_rule_key = h_rule_key
+        self.env_dict = env_dict
 
         self.expansion_factor = param_update_expansion_factor()
         self.risk_filter_flag = param_update_risk_filter_flag()
@@ -223,7 +224,7 @@ class PoolRecall(object):
                     video_score[video_id] = value[1]
                 # 过滤
                 filter_ = FilterVideos(request_id=self.request_id,
-                                       app_type=self.app_type, mid=self.mid, uid=self.uid, video_ids=video_ids)
+                                       app_type=self.app_type, mid=self.mid, uid=self.uid, video_ids=video_ids, env_dict=self.env_dict)
                 ge = gevent.spawn(filter_.filter_videos_h, self.rule_key, self.ab_code, province_code)
                 ge.join()
                 filtered_result = ge.get()
@@ -305,7 +306,7 @@ class PoolRecall(object):
                     video_score[video_id] = value[1]
                 # 过滤
                 filter_ = FilterVideos(request_id=self.request_id,
-                                       app_type=self.app_type, mid=self.mid, uid=self.uid, video_ids=video_ids)
+                                       app_type=self.app_type, mid=self.mid, uid=self.uid, video_ids=video_ids, env_dict=self.env_dict)
                 ge = gevent.spawn(filter_.filter_videos)
                 ge.join()
                 filtered_result = ge.get()
@@ -420,7 +421,7 @@ class PoolRecall(object):
                 video_score[video_id] = value[1]
             # 过滤
             filter_ = FilterVideos(request_id=self.request_id,
-                                   app_type=self.app_type, mid=self.mid, uid=self.uid, video_ids=video_ids)
+                                   app_type=self.app_type, mid=self.mid, uid=self.uid, video_ids=video_ids, env_dict=self.env_dict)
             ge = gevent.spawn(filter_.filter_videos)
             ge.join()
             filtered_result = ge.get()
@@ -536,7 +537,7 @@ class PoolRecall(object):
                                    expansion_factor=self.expansion_factor,
                                    risk_filter_flag=self.risk_filter_flag,
                                    app_region_filtered=self.app_region_filtered,
-                                   videos_with_risk=self.videos_with_risk
+                                   videos_with_risk=self.videos_with_risk, env_dict=self.env_dict
                                    )
             ge = gevent.spawn(filter_.filter_videos, pool_type='flow',
                               region_code=region_code, shield_config=self.shield_config)
@@ -662,7 +663,7 @@ class PoolRecall(object):
                     video_mapping[video_id].append(flow_pool)
             # 过滤
             filter_ = FilterVideos(request_id=self.request_id,
-                                   app_type=self.app_type, mid=self.mid, uid=self.uid, video_ids=video_ids)
+                                   app_type=self.app_type, mid=self.mid, uid=self.uid, video_ids=video_ids, env_dict=self.env_dict)
             ge = gevent.spawn(filter_.filter_videos, pool_type='flow',
                               region_code=region_code, shield_config=self.shield_config)
             ge.join()
@@ -797,7 +798,7 @@ class PoolRecall(object):
                                    expansion_factor=self.expansion_factor,
                                    risk_filter_flag=self.risk_filter_flag,
                                    app_region_filtered=self.app_region_filtered,
-                                   videos_with_risk=self.videos_with_risk
+                                   videos_with_risk=self.videos_with_risk, env_dict=self.env_dict
                                    )
             ge = gevent.spawn(filter_.filter_videos, pool_type='flow',
                               region_code=region_code, shield_config=self.shield_config)
@@ -938,7 +939,7 @@ class PoolRecall(object):
                     video_mapping[video_id].append(flow_pool)
             # 过滤
             filter_ = FilterVideos(request_id=self.request_id,
-                                   app_type=self.app_type, mid=self.mid, uid=self.uid, video_ids=video_ids)
+                                   app_type=self.app_type, mid=self.mid, uid=self.uid, video_ids=video_ids, env_dict=self.env_dict)
             ge = gevent.spawn(filter_.filter_videos, pool_type='flow',
                               region_code=region_code, shield_config=self.shield_config)
             ge.join()
@@ -1092,7 +1093,7 @@ class PoolRecall(object):
                                    expansion_factor=self.expansion_factor,
                                    risk_filter_flag=self.risk_filter_flag,
                                    app_region_filtered=self.app_region_filtered,
-                                   videos_with_risk=self.videos_with_risk
+                                   videos_with_risk=self.videos_with_risk, env_dict=self.env_dict
                                    )
             ge = gevent.spawn(filter_.filter_videos, pool_type='flow',
                               region_code=region_code, shield_config=self.shield_config)
@@ -1588,7 +1589,7 @@ class PoolRecall(object):
                 video_score[video_id] = value[1]
             # 过滤
             filter_ = FilterVideos(request_id=self.request_id,
-                                   app_type=self.app_type, video_ids=video_ids, mid=self.mid, uid=self.uid)
+                                   app_type=self.app_type, video_ids=video_ids, mid=self.mid, uid=self.uid, env_dict=self.env_dict)
             ge = gevent.spawn(filter_.filter_videos)
             ge.join()
             filtered_result = ge.get()
@@ -1655,7 +1656,7 @@ class PoolRecall(object):
 
             # 过滤
             filter_ = FilterVideos(request_id=self.request_id,
-                                   app_type=self.app_type, video_ids=video_ids, mid=self.mid, uid=self.uid)
+                                   app_type=self.app_type, video_ids=video_ids, mid=self.mid, uid=self.uid, env_dict=self.env_dict)
             ge = gevent.spawn(filter_.filter_videos)
             ge.join()
             filtered_result = ge.get()
@@ -1857,7 +1858,7 @@ class PoolRecall(object):
 
             # 过滤
             filter_ = FilterVideos(request_id=self.request_id,
-                                   app_type=self.app_type, mid=self.mid, uid=self.uid, video_ids=video_ids)
+                                   app_type=self.app_type, mid=self.mid, uid=self.uid, video_ids=video_ids, env_dict=self.env_dict)
             ge = gevent.spawn(filter_.filter_videos)
             ge.join()
             filtered_result = ge.get()
@@ -1952,7 +1953,7 @@ class PoolRecall(object):
         # 过滤
         old_video_ids = [int(video_id) for video_id in old_videos]
         filter_ = FilterVideos(request_id=self.request_id,
-                               app_type=self.app_type, video_ids=old_video_ids, mid=self.mid, uid=self.uid)
+                               app_type=self.app_type, video_ids=old_video_ids, mid=self.mid, uid=self.uid, env_dict=self.env_dict)
         ge = gevent.spawn(filter_.filter_videos)
         ge.join()
         filtered_videos = ge.get()
@@ -2281,7 +2282,7 @@ class PoolRecall(object):
                     video_score[video_id] = value[1]
                 # 过滤
                 filter_ = FilterVideos(request_id=self.request_id,
-                                       app_type=self.app_type, mid=self.mid, uid=self.uid, video_ids=video_ids)
+                                       app_type=self.app_type, mid=self.mid, uid=self.uid, video_ids=video_ids, env_dict=self.env_dict)
                 ge = gevent.spawn(filter_.filter_videos_h, self.rule_key, self.data_key,
                                   self.ab_code, province_code, key_flag)
                 ge.join()
@@ -2349,7 +2350,7 @@ class PoolRecall(object):
                     video_score[video_id] = value[1]
                 # 过滤
                 filter_ = FilterVideos(request_id=self.request_id,
-                                       app_type=self.app_type, mid=self.mid, uid=self.uid, video_ids=video_ids)
+                                       app_type=self.app_type, mid=self.mid, uid=self.uid, video_ids=video_ids, env_dict=self.env_dict)
                 ge = gevent.spawn(filter_.filter_videos)
                 ge.join()
                 filtered_result = ge.get()
@@ -2461,7 +2462,7 @@ class PoolRecall(object):
                     video_score[video_id] = value[1]
                 # 过滤
                 filter_ = FilterVideos(request_id=self.request_id,
-                                       app_type=self.app_type, mid=self.mid, uid=self.uid, video_ids=video_ids)
+                                       app_type=self.app_type, mid=self.mid, uid=self.uid, video_ids=video_ids, env_dict=self.env_dict)
                 ge = gevent.spawn(filter_.filter_videos_h, self.rule_key, self.ab_code, '', key_flag)
                 ge.join()
                 filtered_result = ge.get()
@@ -2506,7 +2507,7 @@ class PoolRecall(object):
             video_ids.append(video_id)
             video_score[video_id] = value[1]
         # 过滤
-        filter_ = FilterVideos(request_id=self.request_id, app_type=self.app_type, mid=self.mid, uid=self.uid, video_ids=video_ids)
+        filter_ = FilterVideos(request_id=self.request_id, app_type=self.app_type, mid=self.mid, uid=self.uid, video_ids=video_ids, env_dict=self.env_dict)
         ge = gevent.spawn(filter_.filter_videos)
         ge.join()
         filtered_result = ge.get()
@@ -2864,7 +2865,7 @@ class PoolRecall(object):
                                     risk_filter_flag=self.risk_filter_flag,
                                     app_region_filtered=self.app_region_filtered,
                                     videos_with_risk=self.videos_with_risk,
-                                   force_truncation=20
+                                   force_truncation=20, env_dict=self.env_dict
                                    )
             ge = gevent.spawn(filter_.filter_videos, '', province_code, None)
             ge.join()
@@ -2955,7 +2956,7 @@ class PoolRecall(object):
                 video_score[video_id] = value[1]
             # 过滤
             filter_ = FilterVideos(request_id=self.request_id,
-                                   app_type=self.app_type, mid=self.mid, uid=self.uid, video_ids=video_ids)
+                                   app_type=self.app_type, mid=self.mid, uid=self.uid, video_ids=video_ids, env_dict=self.env_dict)
             ge = gevent.spawn(filter_.filter_videos, pool_type='normal',
                               region_code=province_code, shield_config=self.shield_config)
             ge.join()
@@ -3092,7 +3093,7 @@ class PoolRecall(object):
                 video_score[video_id] = value[1]
             # 过滤
             filter_ = FilterVideos(request_id=self.request_id,
-                                   app_type=self.app_type, mid=self.mid, uid=self.uid, video_ids=video_ids)
+                                   app_type=self.app_type, mid=self.mid, uid=self.uid, video_ids=video_ids, env_dict=self.env_dict)
             ge = gevent.spawn(filter_.filter_videos)
             ge.join()
             filtered_result = ge.get()
@@ -3175,7 +3176,7 @@ class PoolRecall(object):
                                expansion_factor=self.expansion_factor,
                                risk_filter_flag=self.risk_filter_flag,
                                app_region_filtered=self.app_region_filtered,
-                               videos_with_risk=self.videos_with_risk
+                               videos_with_risk=self.videos_with_risk, env_dict=self.env_dict
                                )
         filtered_viewed_videos = filter_.filter_videos_status(pool_type='normal', region_code=self.get_region_code())
         if filtered_viewed_videos is None:
@@ -3347,11 +3348,6 @@ class PoolRecall(object):
                     video_mapping[video_id] = [flow_pool]
                 else:
                     video_mapping[video_id].append(flow_pool)
-            # 过滤
-            # filter_ = FilterVideos(request_id=self.request_id,
-            #                        app_type=self.app_type, mid=self.mid, uid=self.uid, video_ids=video_ids)
-            # filtered_result = filter_.filter_videos(pool_type='flow', region_code=region_code, shield_config=self.shield_config)
-            # print("flow filter time:", (time.time()-et_get)*1000)
             # 检查可分发数
             if video_ids and len(video_ids)>0:
                 check_result = self.check_video_counts(video_ids=video_ids, flow_pool_mapping=video_mapping)
@@ -3417,7 +3413,7 @@ class PoolRecall(object):
         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)
+                               app_type=self.app_type, mid=self.mid, uid=self.uid, video_ids=video_ids, env_dict=self.env_dict)
         filtered_viewed_videos = filter_.filter_videos_status(pool_type='normal')
         if filtered_viewed_videos is None:
             return recall_result
@@ -3460,7 +3456,7 @@ class PoolRecall(object):
         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)
+                               app_type=self.app_type, mid=self.mid, uid=self.uid, video_ids=video_ids, env_dict=self.env_dict)
         filtered_viewed_videos = filter_.filter_videos(pool_type='rov')
         if filtered_viewed_videos is None:
             return recall_result
@@ -3498,7 +3494,7 @@ class PoolRecall(object):
         video_ids = video_ids[:50]
         # 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)
+                               app_type=self.app_type, mid=self.mid, uid=self.uid, video_ids=video_ids, env_dict=self.env_dict)
         filtered_viewed_videos = filter_.filter_videos(pool_type='normal')
         if filtered_viewed_videos is None:
             return recall_result
@@ -3542,7 +3538,7 @@ class PoolRecall(object):
         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)
+                               app_type=self.app_type, mid=self.mid, uid=self.uid, video_ids=video_ids, env_dict=self.env_dict)
         filtered_viewed_videos = filter_.filter_videos_status(pool_type='normal')
         if filtered_viewed_videos is None:
             return recall_result
@@ -3751,7 +3747,7 @@ class PoolRecall(object):
                                expansion_factor=self.expansion_factor,
                                risk_filter_flag=self.risk_filter_flag,
                                app_region_filtered=self.app_region_filtered,
-                               videos_with_risk=self.videos_with_risk
+                               videos_with_risk=self.videos_with_risk, env_dict=self.env_dict
                                )
         filtered_viewed_videos = filter_.filter_videos_status(pool_type='normal', region_code=self.get_region_code())
         if filtered_viewed_videos is None:
@@ -3799,7 +3795,7 @@ class PoolRecall(object):
         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)
+                               app_type=self.app_type, mid=self.mid, uid=self.uid, video_ids=video_ids, env_dict=self.env_dict)
         filtered_viewed_videos = filter_.filter_videos_status(pool_type='normal')
         if filtered_viewed_videos is None:
             return recall_result
@@ -3859,7 +3855,7 @@ class PoolRecall(object):
                                expansion_factor=self.expansion_factor,
                                risk_filter_flag=self.risk_filter_flag,
                                app_region_filtered=self.app_region_filtered,
-                               videos_with_risk=self.videos_with_risk
+                               videos_with_risk=self.videos_with_risk, env_dict=self.env_dict
                                )
         filtered_viewed_videos = filter_.filter_videos_status(pool_type='normal', region_code=self.get_region_code())
         if filtered_viewed_videos is None:
@@ -3906,7 +3902,7 @@ class PoolRecall(object):
         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)
+                               app_type=self.app_type, mid=self.mid, uid=self.uid, video_ids=video_ids, env_dict=self.env_dict)
         filtered_viewed_videos = filter_.filter_videos_status(pool_type='normal')
         if filtered_viewed_videos is None:
             return recall_result