liqian 3 years ago
parent
commit
abadddf70f
3 changed files with 19 additions and 12 deletions
  1. 10 7
      config.py
  2. 8 4
      pool_predict.py
  3. 1 1
      rov_train.py

+ 10 - 7
config.py

@@ -2,6 +2,9 @@ class BaseConfig(object):
     # 产品标识
     APP_TYPE = {
         'VLOG': 0,
+        'LOVE_LIVE': 4,
+        'LONG_VIDEO': 5,
+        'SHORT_VIDEO': 6
     }
     # 数据存放路径
     DATA_DIR_PATH = './data'
@@ -29,10 +32,10 @@ class BaseConfig(object):
     # 模型存放文件
     MODEL_FILENAME = 'model.pickle'
 
-    # 小程序离线ROV模型结果存放 redis key前缀,完整格式:com.weiqu.video.recall.hot.item.score.{appType}.{date}
+    # 小程序离线ROV模型结果存放 redis key前缀,完整格式:com.weiqu.video.recall.hot.item.score.{date}
     RECALL_KEY_NAME_PREFIX = 'com.weiqu.video.recall.hot.item.score.'
-    # 流量池离线模型结果存放 redis key
-    FLOWPOOL_KEY_NAME = 'com.weiqu.video.flowpool.hot.item.score'
+    # 流量池离线模型结果存放 redis key前缀,完整格式 com.weiqu.video.flowpool.hot.item.score.{appType}
+    FLOWPOOL_KEY_NAME_PREFIX = 'com.weiqu.video.flowpool.hot.item.score.'
 
 
 class DevelopmentConfig(BaseConfig):
@@ -61,7 +64,7 @@ class DevelopmentConfig(BaseConfig):
     # 获取视频在流量池中的剩余可分发数接口地址
     GET_REMAIN_VIEW_COUNT_URL = 'http://testapi-internal.piaoquantv.com/flowpool/video/remainViewCount'
     # 计算完ROV通知后端接口地址
-    NOTIFY_BACKEND_UPDATE_ROV_SCORE_URL = 'http://speedtest.wx.com/longvideoapi/openapi/recommend/updateRovScore'
+    NOTIFY_BACKEND_UPDATE_ROV_SCORE_URL = 'http://videotest-internal.yishihui.com/longvideoapi/openapi/recommend/updateRovScore'
 
 
 class TestConfig(BaseConfig):
@@ -90,7 +93,7 @@ class TestConfig(BaseConfig):
     # 获取视频在流量池中的剩余可分发数接口地址
     GET_REMAIN_VIEW_COUNT_URL = 'http://testapi-internal.piaoquantv.com/flowpool/video/remainViewCount'
     # 计算完ROV通知后端接口地址
-    NOTIFY_BACKEND_UPDATE_ROV_SCORE_URL = 'http://speedtest.wx.com/longvideoapi/openapi/recommend/updateRovScore'
+    NOTIFY_BACKEND_UPDATE_ROV_SCORE_URL = 'http://videotest-internal.yishihui.com/longvideoapi/openapi/recommend/updateRovScore'
 
 
 class PreProductionConfig(BaseConfig):
@@ -119,7 +122,7 @@ class PreProductionConfig(BaseConfig):
     # 获取视频在流量池中的剩余可分发数接口地址
     GET_REMAIN_VIEW_COUNT_URL = 'http://preapi-internal.piaoquantv.com/flowpool/video/remainViewCount'
     # 计算完ROV通知后端接口地址
-    NOTIFY_BACKEND_UPDATE_ROV_SCORE_URL = 'http://speedpre.wx.com/longvideoapi/openapi/recommend/updateRovScore'
+    NOTIFY_BACKEND_UPDATE_ROV_SCORE_URL = 'http://videopre-internal.piaoquantv.com/longvideoapi/openapi/recommend/updateRovScore'
 
 
 class ProductionConfig(BaseConfig):
@@ -148,7 +151,7 @@ class ProductionConfig(BaseConfig):
     # 获取视频在流量池中的剩余可分发数接口地址
     GET_REMAIN_VIEW_COUNT_URL = 'http://api-internal.piaoquantv.com/flowpool/video/remainViewCount'
     # 计算完ROV通知后端接口地址
-    NOTIFY_BACKEND_UPDATE_ROV_SCORE_URL = 'http://speed.wx.com/longvideoapi/openapi/recommend/updateRovScore'
+    NOTIFY_BACKEND_UPDATE_ROV_SCORE_URL = 'http:// longvideoapi-internal.piaoquantv.com/longvideoapi/openapi/recommend/updateRovScore'
 
 
 def set_config():

+ 8 - 4
pool_predict.py

@@ -60,13 +60,14 @@ def get_score(video_ids):
     return [1] * len(video_ids)
 
 
-def predict():
+def predict(app_type):
     """
     对流量池视频排序,并将结果上传Redis
+    :param app_type: 产品标识 type-int
     :return: None
     """
     # 从流量池获取数据
-    videos = get_videos_from_flow_pool(app_type=config_.APP_TYPE['VLOG'])
+    videos = get_videos_from_flow_pool(app_type=app_type)
     if len(videos) <= 0:
         log_.info('流量池中无需分发的视频')
         return None
@@ -94,7 +95,7 @@ def predict():
         for flow_pool in mapping.get(video_id):
             value = '{}-{}'.format(video_id, flow_pool)
             redis_data[value] = score
-    key_name = config_.FLOWPOOL_KEY_NAME
+    key_name = config_.FLOWPOOL_KEY_NAME + str(app_type)
     redis_helper = RedisHelper()
     # 如果key已存在,删除key
     if redis_helper.key_exists(key_name):
@@ -109,6 +110,9 @@ if __name__ == '__main__':
     # res = get_videos_remain_view_count(app_type=0, videos_info=[('12345', '#2#1#111')])
     # print(res)
     log_.info('flow pool predict start...')
-    predict()
+    for app_name, app_type in config_.APP_TYPE.items():
+        log_.info('{} predict start...'.format(app_name))
+        predict(app_type=app_type)
+        log_.info('{} predict end...'.format(app_name))
     log_.info('flow pool predict end...')
 

+ 1 - 1
rov_train.py

@@ -158,7 +158,7 @@ def predict():
     for i in range(len(video_ids)):
         redis_data[video_ids[i]] = normal_y_[i]
         json_data.append({'videoId': video_ids[i], 'rovScore': normal_y_[i]})
-    key_name = config_.RECALL_KEY_NAME_PREFIX + '{}.{}'.format(config_.APP_TYPE['VLOG'], time.strftime('%Y%m%d'))
+    key_name = config_.RECALL_KEY_NAME_PREFIX + time.strftime('%Y%m%d')
     redis_helper = RedisHelper()
     redis_helper.add_data_with_zset(key_name=key_name, data=redis_data)
     log_.info('data to redis finished!')