liqian 1 rok temu
rodzic
commit
a7182fc0ac
3 zmienionych plików z 22 dodań i 9 usunięć
  1. 7 2
      ad_recommend.py
  2. 6 6
      ad_xgboost_predict.py
  3. 9 1
      app.py

+ 7 - 2
ad_recommend.py

@@ -342,7 +342,7 @@ def predict_mid_video_res_with_multiply(now_date, mid, video_id, abtest_param, a
     return result
 
 
-def ad_recommend_predict(app_type, mid, video_id, ab_exp_info, ab_test_code, care_model_status):
+def ad_recommend_predict(model, app_type, mid, video_id, ab_exp_info, ab_test_code, care_model_status):
     """
     广告推荐预测
     :param app_type: app_type
@@ -367,7 +367,12 @@ def ad_recommend_predict(app_type, mid, video_id, ab_exp_info, ab_test_code, car
         threshold_mix_func = abtest_param.get('threshold_mix_func', None)
         if predict_model == 'xgb':
             result = xgboost_predict(
-                app_type=app_type, mid=mid, video_id=video_id, abtest_id=abtest_id, ab_test_code=ab_test_code
+                model=model,
+                app_type=app_type,
+                mid=mid,
+                video_id=video_id,
+                abtest_id=abtest_id,
+                ab_test_code=ab_test_code
             )
         elif threshold_mix_func == 'add':
             result = predict_mid_video_res_with_add(

+ 6 - 6
ad_xgboost_predict.py

@@ -5,14 +5,14 @@ from utils import RedisHelper
 from config import set_config
 redis_helper = RedisHelper()
 config_ = set_config()
-# 模型加载
-model = XGBClassifier()
-booster = xgb.Booster()
-booster.load_model('./data/ad_xgb.model')
-model._Booster = booster
+# # 模型加载
+# model = XGBClassifier()
+# booster = xgb.Booster()
+# booster.load_model('./data/ad_xgb.model')
+# model._Booster = booster
 
 
-def xgboost_predict(app_type, mid, video_id, abtest_id, ab_test_code):
+def xgboost_predict(model, app_type, mid, video_id, abtest_id, ab_test_code):
     xgb_config = config_.AD_MODEL_CONFIG['xgb']
     # 1. 获取user特征
     user_feature_key = f"{xgb_config['predict_user_feature_key_prefix']}{app_type}:{mid}"

+ 9 - 1
app.py

@@ -24,10 +24,17 @@ from manager_op import get_video_list, search_video
 from ad_recommend import ad_recommend_predict
 # from werkzeug.middleware.profiler import ProfilerMiddleware
 # from geventwebsocket.handler import WebSocketHandler
+import xgboost as xgb
+from xgboost.sklearn import XGBClassifier
 
 app = Flask(__name__)
 log_ = Log()
 config_ = set_config()
+# 模型加载
+model = XGBClassifier()
+booster = xgb.Booster()
+booster.load_model('./data/ad_xgb.model')
+model._Booster = booster
 
 
 @app.route('/healthcheck')
@@ -370,7 +377,8 @@ def ad_predict():
         ab_exp_info = request_data.get('abExpInfo')
         ab_test_code = request_data.get('abTestCode')
         care_model_status = request_data.get('careModelStatus', 1)  # 用户关怀模式状态 1: 未开启,2: 开启, 默认: 1
-        predict_result = ad_recommend_predict(app_type=app_type,
+        predict_result = ad_recommend_predict(model=model,
+                                              app_type=app_type,
                                               mid=mid,
                                               video_id=video_id,
                                               ab_exp_info=ab_exp_info,