| 
														
															@@ -1,4 +1,5 @@ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import os 
														 | 
														
														 | 
														
															 import os 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+import random 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import time 
														 | 
														
														 | 
														
															 import time 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import lightgbm as lgb 
														 | 
														
														 | 
														
															 import lightgbm as lgb 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -8,9 +9,9 @@ from sklearn.model_selection import train_test_split 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 from sklearn.metrics import mean_absolute_error, r2_score, mean_absolute_percentage_error 
														 | 
														
														 | 
														
															 from sklearn.metrics import mean_absolute_error, r2_score, mean_absolute_percentage_error 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 from config import set_config 
														 | 
														
														 | 
														
															 from config import set_config 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-from utils import read_from_pickle, write_to_pickle, data_normalization, request_post 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+from utils import read_from_pickle, write_to_pickle, data_normalization, request_post, filter_video_status 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 from log import Log 
														 | 
														
														 | 
														
															 from log import Log 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-from db_helper import RedisHelper 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+from db_helper import RedisHelper, MysqlHelper 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 config_ = set_config() 
														 | 
														
														 | 
														
															 config_ = set_config() 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 log_ = Log() 
														 | 
														
														 | 
														
															 log_ = Log() 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -170,6 +171,43 @@ def predict(): 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         log_.error('notify backend fail!') 
														 | 
														
														 | 
														
															         log_.error('notify backend fail!') 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+def predict_test(): 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    """测试环境数据生成""" 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    # 获取测试环境中最近发布的40000条视频 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    mysql_info = { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        'host': 'rm-bp1k5853td1r25g3n690.mysql.rds.aliyuncs.com', 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        'port': 3306, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        'user': 'wx2016_longvideo', 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        'password': 'wx2016_longvideoP@assword1234', 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        'db': 'longvideo' 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    sql = "SELECT id FROM wx_video ORDER BY id DESC LIMIT 40000;" 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    mysql_helper = MysqlHelper(mysql_info=mysql_info) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    data = mysql_helper.get_data(sql=sql) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    video_ids = [video[0] for video in data] 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    # 视频状态过滤 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    filtered_videos = filter_video_status(video_ids) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    log_.info('filtered_videos nums={}'.format(len(filtered_videos))) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    # 随机生成 0-100 数作为分数 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    redis_data = {} 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    json_data = [] 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    for video_id in filtered_videos: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        score = random.uniform(0, 100) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        redis_data[video_id] = score 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        json_data.append({'videoId': video_id, 'rovScore': score}) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    # 上传Redis 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    redis_helper = RedisHelper() 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    key_name = config_.RECALL_KEY_NAME_PREFIX + time.strftime('%Y%m%d') 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    redis_helper.add_data_with_zset(key_name=key_name, data=redis_data) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    log_.info('test data to redis finished!') 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    # 通知后端更新数据 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    result = request_post(request_url=config_.NOTIFY_BACKEND_UPDATE_ROV_SCORE_URL, request_data={'videos': json_data}) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    if result['code'] == 0: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        log_.info('notify backend success!') 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    else: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        log_.error('notify backend fail!') 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 if __name__ == '__main__': 
														 | 
														
														 | 
														
															 if __name__ == '__main__': 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     log_.info('rov model train start...') 
														 | 
														
														 | 
														
															     log_.info('rov model train start...') 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     train_start = time.time() 
														 | 
														
														 | 
														
															     train_start = time.time() 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -185,4 +223,3 @@ if __name__ == '__main__': 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     predict() 
														 | 
														
														 | 
														
															     predict() 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     predict_end = time.time() 
														 | 
														
														 | 
														
															     predict_end = time.time() 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     log_.info('rov model predict end, execute time = {}ms'.format((predict_end - predict_start)*1000)) 
														 | 
														
														 | 
														
															     log_.info('rov model predict end, execute time = {}ms'.format((predict_end - predict_start)*1000)) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															- 
														 | 
														
														 | 
														
															 
														 |