|
@@ -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
|
|
|
|
|
|
|