丁云鹏 8 tháng trước cách đây
mục cha
commit
6a75d72365

+ 2 - 0
ad-engine-commons/src/main/java/com/tzld/piaoquan/ad/engine/commons/score/ScorerUtils.java

@@ -30,6 +30,7 @@ public final class ScorerUtils {
     public static String VIDEO_CREATIVE_THOMPSON = "video_ad_thompson.conf";
 
     public static String LR_ROV_SCORE_20240626 = "ad_score_config_20240626.conf";
+    public static String LR_ROV_SCORE_20240813 = "ad_score_config_20240813.conf";
 
     public static void warmUp() {
         log.info("scorer warm up ");
@@ -41,6 +42,7 @@ public final class ScorerUtils {
         // ScorerUtils.init(VIDEO_CREATIVE_THOMPSON);
 
         ScorerUtils.init(LR_ROV_SCORE_20240626);
+        ScorerUtils.init(LR_ROV_SCORE_20240813);
     }
 
     private ScorerUtils() {

+ 2 - 1
ad-engine-commons/src/main/java/com/tzld/piaoquan/ad/engine/commons/score/model/XGBoostModel.java

@@ -2,6 +2,7 @@ package com.tzld.piaoquan.ad.engine.commons.score.model;
 
 
 import com.tzld.piaoquan.ad.engine.commons.util.CompressUtil;
+import com.tzld.piaoquan.ad.engine.commons.util.PropertiesUtil;
 import ml.dmlc.xgboost4j.scala.spark.XGBoostClassificationModel;
 import org.apache.commons.lang.math.NumberUtils;
 import org.apache.spark.ml.linalg.Vector;
@@ -76,7 +77,7 @@ public class XGBoostModel extends Model {
 
     @Override
     public boolean loadFromStream(InputStream in) throws Exception {
-        String modelDir = "model2";
+        String modelDir = PropertiesUtil.getString("model.xgboost.path");
         CompressUtil.decompressGzFile(in, modelDir);
         XGBoostClassificationModel model2 = XGBoostClassificationModel.load("file://" + modelDir);
         model2.setMissing(0.0f);

+ 20 - 0
ad-engine-commons/src/main/java/com/tzld/piaoquan/ad/engine/commons/util/PropertiesUtil.java

@@ -0,0 +1,20 @@
+package com.tzld.piaoquan.ad.engine.commons.util;
+
+import org.springframework.context.EnvironmentAware;
+import org.springframework.core.env.Environment;
+
+public class PropertiesUtil implements EnvironmentAware {
+
+
+    private static Environment environment;
+
+
+    @Override
+    public void setEnvironment(Environment environment) {
+        this.environment = environment;
+    }
+
+    public static String getString(String name) {
+        return environment.getProperty(name);
+    }
+}

+ 23 - 0
ad-engine-commons/src/main/java/com/tzld/piaoquan/ad/engine/commons/util/ServiceBeanFactory.java

@@ -0,0 +1,23 @@
+package com.tzld.piaoquan.ad.engine.commons.util;
+
+import org.springframework.beans.BeansException;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.ApplicationContextAware;
+import org.springframework.stereotype.Component;
+
+/**
+ * @author dyp
+ */
+@Component
+public class ServiceBeanFactory implements ApplicationContextAware {
+    private static ApplicationContext applicationContext;
+
+    @Override
+    public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
+        this.applicationContext = applicationContext;
+    }
+
+    public static <T> T getBean(Class<T> clazz) {
+        return applicationContext.getBean(clazz);
+    }
+}

+ 8 - 0
ad-engine-server/src/main/resources/ad_score_config_20240813.conf

@@ -0,0 +1,8 @@
+scorer-config = {
+  lr-rov-score-config = {
+    scorer-name = "com.tzld.piaoquan.ad.engine.service.score.XGBoostScorer"
+    scorer-priority = 99
+    model-path = "zhangbo/model.tar.gz"
+  }
+
+}

+ 4 - 1
ad-engine-server/src/main/resources/application.yml

@@ -127,4 +127,7 @@ grpc:
     recommend-feature:
       negotiationType: PLAINTEXT
     recommend-server:
-      negotiationType: PLAINTEXT
+      negotiationType: PLAINTEXT
+model:
+  xgboost:
+    path: ../xgboost