Ver Fonte

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

add fea log
linfan há 1 ano atrás
pai
commit
4eac6b9723
2 ficheiros alterados com 57 adições e 11 exclusões
  1. 15 3
      app.py
  2. 42 8
      recommend.py

+ 15 - 3
app.py

@@ -62,6 +62,7 @@ def homepage_recommend():
         versioncode = request_data.get('versionCode', 0)
         recommendsource = request_data.get('recommendSource', '0')
         sencetype = request_data.get('senceType', 0)
+        recomTraceId=request_data.get('recomTraceId', "")
         env_dict = {}
         try:
             env_dict['app_type'] = int(app_type)
@@ -72,6 +73,8 @@ def homepage_recommend():
             env_dict['machineinfo_platform'] = str(machineinfoPlatform)
             env_dict['recommendsource'] = str(recommendsource)
             env_dict['sencetype'] = int(sencetype)
+            env_dict['recomTraceId'] = recomTraceId
+            env_dict['recomInterface'] = "homepage"
         except:
             env_dict['app_type'] = 4
             env_dict['pagesource'] = str(pagesource)
@@ -81,8 +84,9 @@ def homepage_recommend():
             env_dict['machineinfo_platform'] = str(machineinfoPlatform)
             env_dict['recommendsource'] = str(recommendsource)
             env_dict['sencetype'] = sencetype
+            env_dict['recomTraceId'] = recomTraceId
+            env_dict['recomInterface'] = "homepage"
             log_.error("feature error",env_dict)
-
         params = Params(request_id=request_id)
         # size默认为10
         if not size:
@@ -184,6 +188,7 @@ def relevant_recommend():
         versioncode = request_data.get('versionCode', 0)
         recommendsource = request_data.get('recommendSource', '0')
         sencetype =  request_data.get('senceType', 0)
+        recomTraceId = request_data.get('recomTraceId', "")
         env_dict = {}
         try:
             env_dict['app_type'] = int(app_type)
@@ -194,6 +199,9 @@ def relevant_recommend():
             env_dict['machineinfo_platform'] = str(machineinfoPlatform)
             env_dict['recommendsource'] = str(recommendsource)
             env_dict['sencetype'] = int(sencetype)
+            env_dict['recomInterface'] = "relevant_recommend"
+            env_dict['recomTraceId'] = recomTraceId
+            env_dict['relevant_video_id'] = video_id
         except:
             env_dict['app_type'] = 4
             env_dict['pagesource'] = str(pagesource)
@@ -203,9 +211,12 @@ def relevant_recommend():
             env_dict['machineinfo_platform'] = str(machineinfoPlatform)
             env_dict['recommendsource'] = str(recommendsource)
             env_dict['sencetype'] = sencetype
+            env_dict['recomInterface'] = "relevant_recommend"
+            env_dict['relevant_video_id'] = video_id
+            env_dict['recomTraceId'] = recomTraceId
             log_.error("feature error", env_dict)
         params = Params(request_id=request_id)
-        recommend_result = video_relevant_recommend(
+        recommend_result, fea_info = video_relevant_recommend(
             request_id=request_id,
             video_id=video_id,
             mid=mid,
@@ -238,7 +249,8 @@ def relevant_recommend():
             'updateRedisDataTime': recommend_result.get('updateRedisDataTime', ''),
             'recommendOperation': recommend_result.get('recommendOperation', ''),
             'result': result,
-            'executeTime': (time.time() - start_time) * 1000
+            'executeTime': (time.time() - start_time) * 1000,
+            'fea_info': fea_info
         }
         log_.info(log_message)
 

+ 42 - 8
recommend.py

@@ -664,8 +664,40 @@ def video_old_recommend(request_id, mid, uid, size, top_K, flow_pool_P, app_type
                 'rov_pool_recall': recall_result_list[0],
                 'flow_pool_recall': recall_result_list[2]
             }
-    #if ab_code=="ab_new_test":
-    #print("before data:", data)
+    # 3. 特征回流
+    #print(env_dict)
+    if env_dict:
+        province_code = client_info.get('provinceCode', '-1')
+        city_code = client_info.get('cityCode', '-1')
+        env_dict['mid'] = mid
+        env_dict['province_code'] = province_code
+        env_dict['city_code'] = city_code
+        rec_recall_list = []
+        vidKeys = []
+        hour_vidKeys = []
+        pre_str = "v_ctr:"
+        pre_hour_str = "v_hour_ctr:"
+        for recall_item in data['rov_pool_recall']:
+            if len(recall_item) <= 0:
+                continue
+            vid = recall_item.get("videoId", 0)
+            rec_recall_list.append(vid)
+            vidKeys.append(pre_str + str(vid))
+            hour_vidKeys.append(pre_hour_str + str(vid))
+        redisObj = RedisHelper()
+        video_static_info = redisObj.get_batch_key(vidKeys)
+        video_hour_static_info = redisObj.get_batch_key(hour_vidKeys)
+        vid_day_fea_list = []
+        vid_hour_fea_list = []
+        if video_static_info:
+            vid_day_fea_list = video_static_info
+        if video_hour_static_info:
+            vid_hour_fea_list = video_hour_static_info
+        env_dict['recall_list'] = rec_recall_list
+        env_dict['vid_day_fea_list'] = vid_day_fea_list
+        env_dict['vid_hour_fea_list'] = vid_hour_fea_list
+        env_json = json.dumps(env_dict)
+    #4.
     rank_result, flow_num  = video_new_rank2(data=data, size=size, top_K=top_K, flow_pool_P=float(flow_pool_P), ab_code=ab_code, mid=mid, exp_config=exp_config, env_dict=env_dict)
     #print(rank_result)
     if rank_result:
@@ -675,7 +707,7 @@ def video_old_recommend(request_id, mid, uid, size, top_K, flow_pool_P, app_type
     result['rankTime'] = (time.time() - start_rank) * 1000
 
 
-    return result
+    return result, env_json
     # return rank_result, last_rov_recall_key
 
 def new_video_recommend(request_id, mid, uid, size, top_K, flow_pool_P, app_type, algo_type, client_info,
@@ -1677,6 +1709,8 @@ def video_homepage_recommend(request_id, mid, uid, size, app_type, algo_type,
     get_result_st = time.time()
     #print("ab_code:", ab_code)
     #new pipeline
+
+    fea_info = json.dumps(env_dict)
     if ab_code == 60047 or ab_code == 60048 or ab_code == 60049:
         result = new_video_recommend(request_id=request_id,
                              mid=mid, uid=uid, app_type=app_type,
@@ -1694,7 +1728,7 @@ def video_homepage_recommend(request_id, mid, uid, size, app_type, algo_type,
             or ab_code == 60055 or ab_code == 60056 or ab_code==60057  \
             or ab_code==60065 or ab_code == 60067 or ab_code==60068 \
             or ab_code==60066:
-        result = video_old_recommend(request_id=request_id,
+        result, fea_info = 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,
                                      algo_type='', client_info=client_info,
@@ -1751,7 +1785,7 @@ def video_homepage_recommend(request_id, mid, uid, size, app_type, algo_type,
     # })
     recommend_result['updateRedisDataTime'] = (time.time() - update_redis_st) * 1000
 
-    return recommend_result
+    return recommend_result, fea_info
     # return rank_result
 
 
@@ -1797,7 +1831,7 @@ def video_relevant_recommend(request_id, video_id, mid, uid, size, app_type, ab_
     #     'executeTime': (time.time() - param_st) * 1000
     # })
     recommend_result['getRecommendParamsTime'] = (time.time() - param_st) * 1000
-
+    fea_info = json.dumps(env_dict)
     # 简单召回 - 排序 - 兜底
     get_result_st = time.time()
     #print("ab_code:", ab_code)
@@ -1813,7 +1847,7 @@ def video_relevant_recommend(request_id, video_id, mid, uid, size, app_type, ab_
     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 ==60067 \
             or ab_code ==60068 or ab_code==60066:
-        result = video_old_recommend(request_id=request_id,
+        result, fea_info = 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,
                                  algo_type='', client_info=client_info,
@@ -1873,7 +1907,7 @@ def video_relevant_recommend(request_id, video_id, mid, uid, size, app_type, ab_
     # })
     recommend_result['updateRedisDataTime'] = (time.time() - update_redis_st) * 1000
 
-    return recommend_result
+    return recommend_result, fea_info
     # return rank_result