Browse Source

Merge branch 'feature_20240528_zhaohaipeng_pqtid' into test

zhaohaipeng 11 months ago
parent
commit
e86443d966

+ 1 - 1
ad-engine-commons/src/main/java/com/tzld/piaoquan/ad/engine/commons/score/ScoreParam.java

@@ -17,7 +17,7 @@ public class ScoreParam {
     private String city;
     private String province;
     private Integer newExpGroup;
-    private String logTraceId;
+    private String pqtId;
     private Map<String,Object> extraParam=new HashMap<>();
 
 

+ 10 - 10
ad-engine-server/src/main/resources/logback-spring.xml

@@ -27,9 +27,9 @@
                     converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter"/>
     <!-- 彩色日志格式 -->
     <property name="CONSOLE_LOG_PATTERN"
-              value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr([%X{logTraceId}]){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
+              value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr([%X{pqtId}]){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
     <!--<property name="CONSOLE_LOG_PATTERN"-->
-    <!--          value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr([%X{√logTraceId}]){magenta} %clr(-&#45;&#45;){faint} %clr([%15.15t]){faint} %clr(at %class.%method){cyan} \\(%file:%line\\) %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>-->
+    <!--          value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr([%X{√pqtId}]){magenta} %clr(-&#45;&#45;){faint} %clr([%15.15t]){faint} %clr(at %class.%method){cyan} \\(%file:%line\\) %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>-->
 
 
     <!--输出到控制台-->
@@ -55,7 +55,7 @@
         <file>${LOG_PATH}/debug.log</file>
         <!--日志文件输出格式-->
         <encoder>
-            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level [%X{logTraceId}] %logger{50} [%L] - %msg%n</pattern>
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level [%X{pqtId}] %logger{50} [%L] - %msg%n</pattern>
             <charset>UTF-8</charset> <!-- 设置字符集 -->
         </encoder>
         <!-- 日志记录器的滚动策略,按日期,按大小记录 -->
@@ -85,7 +85,7 @@
         <file>${LOG_PATH}/info.log</file>
         <!--日志文件输出格式-->
         <encoder>
-            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level [%X{logTraceId}] %logger{50} [%L] - %msg%n</pattern>
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level [%X{pqtId}] %logger{50} [%L] - %msg%n</pattern>
             <charset>UTF-8</charset>
         </encoder>
         <!-- 日志记录器的滚动策略,按日期,按大小记录 -->
@@ -116,7 +116,7 @@
         <file>${LOG_PATH}/warn.log</file>
         <!--日志文件输出格式-->
         <encoder>
-            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level [%X{logTraceId}] %logger{50} [%L] - %msg%n</pattern>
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level [%X{pqtId}] %logger{50} [%L] - %msg%n</pattern>
             <charset>UTF-8</charset> <!-- 此处设置字符集 -->
         </encoder>
         <!-- 日志记录器的滚动策略,按日期,按大小记录 -->
@@ -146,7 +146,7 @@
         <file>${LOG_PATH}/error.log</file>
         <!--日志文件输出格式-->
         <encoder>
-            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level [%X{logTraceId}] %logger{50} [%L] - %msg%n</pattern>
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level [%X{pqtId}] %logger{50} [%L] - %msg%n</pattern>
             <charset>UTF-8</charset> <!-- 此处设置字符集 -->
         </encoder>
         <!-- 日志记录器的滚动策略,按日期,按大小记录 -->
@@ -188,7 +188,7 @@
         <maxRetryBackoffMs>50000</maxRetryBackoffMs>
 
         <encoder>
-            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level [%X{logTraceId}] %logger{50} [%L] - %msg%n</pattern>
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level [%X{pqtId}] %logger{50} [%L] - %msg%n</pattern>
             <charset>UTF-8</charset>
         </encoder>
 
@@ -199,7 +199,7 @@
             <level>INFO</level>
         </filter>
 
-        <mdcFields>logTraceId</mdcFields>
+        <mdcFields>pqtId</mdcFields>
     </appender>
 
     <appender name="ALIYUN_LOG_ERROR" class="com.aliyun.openservices.log.logback.LoghubAppender">
@@ -220,7 +220,7 @@
         <maxRetryBackoffMs>50000</maxRetryBackoffMs>
 
         <encoder>
-            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level [%X{logTraceId}] %logger{50} [%L] - %msg%n</pattern>
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level [%X{pqtId}] %logger{50} [%L] - %msg%n</pattern>
             <charset>UTF-8</charset>
         </encoder>
 
@@ -231,7 +231,7 @@
             <level>ERROR</level>
         </filter>
 
-        <mdcFields>logTraceId</mdcFields>
+        <mdcFields>pqtId</mdcFields>
     </appender>
 
     <!--

+ 3 - 4
ad-engine-service/src/main/java/com/tzld/piaoquan/ad/engine/service/predict/impl/PredictModelServiceImpl.java

@@ -19,7 +19,6 @@ import com.tzld.piaoquan.ad.engine.service.predict.param.RoiThresholdPredictMode
 import com.tzld.piaoquan.ad.engine.service.predict.param.ThresholdPredictModelParam;
 import com.tzld.piaoquan.ad.engine.service.predict.param.request.RoiPredictModelRequestParam;
 import com.tzld.piaoquan.ad.engine.service.predict.param.request.ThresholdPredictModelRequestParam;
-import org.apache.commons.lang.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.BeanUtils;
@@ -70,7 +69,7 @@ public class PredictModelServiceImpl implements PredictModelService {
 
     public Map<String, Object> adPredict(ThresholdPredictModelRequestParam requestParam) {
         Map<String,Object> result=new HashMap<>();
-        result.put("logTraceId", requestParam.getLogTraceId());
+        result.put("pqtId", requestParam.getPqtId());
         try {
             String[] withoutAdVideoIdsArr=withoutAdVideoIds.split(",");
             for(String videoId:withoutAdVideoIdsArr){
@@ -256,8 +255,8 @@ public class PredictModelServiceImpl implements PredictModelService {
 
             return result;
         }catch (Exception e){
-            log.error("svc=adPredict appType={} group={} newGroup={} logTraceId={}"
-                    ,requestParam.getAppType(),requestParam.getAbTestCode(),requestParam.getNewExpGroup(),requestParam.getLogTraceId());
+            log.error("svc=adPredict appType={} group={} newGroup={} pqtId={}"
+                    ,requestParam.getAppType(),requestParam.getAbTestCode(),requestParam.getNewExpGroup(),requestParam.getPqtId());
             result.put("ad_predict", 1);
             result.put("no_ad_strategy", "error");
             return result;

+ 1 - 1
ad-engine-service/src/main/java/com/tzld/piaoquan/ad/engine/service/predict/param/request/ThresholdPredictModelRequestParam.java

@@ -24,6 +24,6 @@ public class ThresholdPredictModelRequestParam {
     String region = "-1";
     //市-中文
     String city = "-1";
-    String logTraceId;
+    String pqtId;
     MachineInfoParam machineInfo = new MachineInfoParam();
 }

+ 10 - 6
ad-engine-service/src/main/java/com/tzld/piaoquan/ad/engine/service/score/VideoAdThompsonScorerV2.java

@@ -117,6 +117,7 @@ public class VideoAdThompsonScorerV2 {
         adIdList.forEach(creativeDTO -> {
             redisKey.add(redisCreativeStatisticsPrefix+creativeDTO.getCreativeId());
         });
+        //view/sum(view)
         List<String> values=redisHelper.getValues(redisKey);
         int i=0;
         double score=0d;
@@ -132,7 +133,7 @@ public class VideoAdThompsonScorerV2 {
                 }else {
                     statistic =gson.fromJson(jsonStr,CreativeStatistic.class);
                     score = betaSampler(exp665Param.getOrDefault("alpha",1d)+Long.parseLong(statistic.getOrder()) ,
-                            exp665Param.getOrDefault("beta",100000d)+Long.parseLong(statistic.getExp())) ;
+                            (exp665Param.getOrDefault("beta",100000d)+Long.parseLong(statistic.getExp())))/ (1+exp665Param.getOrDefault("beta_k",9d));
                 }
                 score=score*dto.getCpa()*dto.getBid1()*dto.getBid2();
                 item.setScore(score);
@@ -177,15 +178,18 @@ public class VideoAdThompsonScorerV2 {
                         score = betaSampler(exp666Param.getOrDefault("alpha",1d),exp666Param.getOrDefault("beta",100000d));
                     }else {
                         statistic =gson.fromJson(jsonStr,CreativeStatistic.class);
-                        score = betaSampler(exp666Param.getOrDefault("alpha",1d)+Long.parseLong(statistic.getOrder()) , exp666Param.getOrDefault("beta",100000d)+Long.parseLong(statistic.getExp())) ;
+                        score = betaSampler(exp666Param.getOrDefault("alpha",1d)+Long.parseLong(statistic.getOrder()) ,
+                                (exp666Param.getOrDefault("beta",100000d)+Long.parseLong(statistic.getExp()))/(1+exp666Param.getOrDefault("beta_k",9d))) ;
                     }
                 }else {
                     statistic =gson.fromJson(jsonStr,CreativeStatistic.class);
                     if(Double.parseDouble(statistic.getExp())>exp666Param.getOrDefault("viewThreshold",5000d)){
-                        score = betaSampler(1d+Long.parseLong(statistic.getOrder()) , exp666Param.getOrDefault("beta",100000d)+Long.parseLong(statistic.getExp())) ;
+                        score = betaSampler(1d+Long.parseLong(statistic.getOrder()) ,
+                                (exp666Param.getOrDefault("beta",100000d)+Long.parseLong(statistic.getExp()))/(1+exp666Param.getOrDefault("beta_k",9d))) ;
                     } else if( values.get(i)!=null) {
                         statistic =gson.fromJson(values.get(i),CreativeStatistic.class);
-                        score = betaSampler(exp666Param.getOrDefault("alpha",1d)+Long.parseLong(statistic.getOrder()) , exp666Param.getOrDefault("beta",100000d)+Long.parseLong(statistic.getExp())) ;
+                        score = betaSampler(exp666Param.getOrDefault("alpha",1d)+Long.parseLong(statistic.getOrder()) ,
+                                (exp666Param.getOrDefault("beta",100000d)+Long.parseLong(statistic.getExp()))/(1+exp666Param.getOrDefault("beta_k",9d))) ;
                     }else {
                         score = betaSampler(exp666Param.getOrDefault("alpha",1d),exp666Param.getOrDefault("beta",100000d));
                     }
@@ -255,13 +259,13 @@ public class VideoAdThompsonScorerV2 {
             return cpa;
         }
     }
-     double betaSampler(double alpha, double beta) {
+    double betaSampler(double alpha, double beta) {
         BetaDistribution betaSample = new BetaDistribution(alpha, beta);
         return betaSample.sample();
     }
     @Value("${ad.engine.new.thompson.exp.V2.663:{\"randomMin\":0.000001,\"randomMax\":0.00001,\"alpha\":1,\"beta\":10000}}")
     public void setExp663Param(String str){
-       this.exp663Param=gson.fromJson(str,Map.class);
+        this.exp663Param=gson.fromJson(str,Map.class);
     }
     @Value("${ad.engine.new.thompson.exp.V2.664:{}}")
     public void setExp664Param(String str){

+ 1 - 2
ad-engine-service/src/main/java/com/tzld/piaoquan/ad/engine/service/score/convert/RequestConvert.java

@@ -3,7 +3,6 @@ package com.tzld.piaoquan.ad.engine.service.score.convert;
 import com.tzld.piaoquan.ad.engine.service.score.param.RecommendRequestParam;
 import com.tzld.piaoquan.recommend.feature.domain.ad.base.AdRequestContext;
 import com.tzld.piaoquan.ad.engine.commons.score.ScoreParam;
-import com.tzld.piaoquan.ad.engine.service.score.param.RankRecommendRequestParam;
 
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
@@ -25,7 +24,7 @@ public class RequestConvert {
         scoreParam.setRequestContext(context);
         scoreParam.setVideoId(request.getVideoId());
         scoreParam.setNewExpGroup(request.getNewExpGroup());
-        scoreParam.setLogTraceId(request.getLogTraceId());
+        scoreParam.setPqtId(request.getPqtId());
         return scoreParam;
     }
 

+ 4 - 4
ad-engine-service/src/main/java/com/tzld/piaoquan/ad/engine/service/score/impl/RankServiceImpl.java

@@ -160,7 +160,7 @@ public class RankServiceImpl implements RankService {
             object.put("dataTime",currentTime.format(timeFormatter));
             object.put("creativeId",rankResult.get(0).getAdId());
             object.put("videoId", request.getVideoId());
-            object.put("logTraceId", request.getLogTraceId());
+            object.put("pqtId", request.getPqtId());
             log.info("svc=adItemRank {}", JSONObject.toJSONString(object));
             object.remove("lrsamples");
             if(inCpcPidExp){
@@ -265,7 +265,7 @@ public class RankServiceImpl implements RankService {
             object.put("dataTime",currentTime.format(timeFormatter));
             object.put("creativeId",rankResult.get(0).getAdId());
             object.put("videoId", rankResult.get(0).getVideoId());
-            object.put("logTraceId", request.getLogTraceId());
+            object.put("pqtId", request.getPqtId());
             log.info("svc=videoAdThompsonRank_lr_log {}", JSONObject.toJSONString(object));
             object.remove("lrsamples");
             object.put("score_500",rankResult.get(0).getTf_ctr());
@@ -410,7 +410,7 @@ public class RankServiceImpl implements RankService {
         object.put("cpa",dto.getCpa()*dto.getBid1());
         object.put("oCpa",dto.getCpa());
         object.put("dataTime",currentTime.format(timeFormatter));
-        object.put("logTraceId", request.getLogTraceId());
+        object.put("pqtId", request.getPqtId());
         log.info("svc=adBidRank {}", JSONObject.toJSONString(object));
         object.remove("lrsamples");
         log.info("svc=pid_log obj={}", JSONObject.toJSONString(object));
@@ -533,7 +533,7 @@ public class RankServiceImpl implements RankService {
         //CPA还原
         object.put("cpa",dto.getCpa()*dto.getBid1());
         object.put("oCpa",dto.getCpa());
-        object.put("logTraceId", request.getLogTraceId());
+        object.put("pqtId", request.getPqtId());
         object.put("dataTime",currentTime.format(timeFormatter));
         log.info("svc=adBidRankNewPid {}", JSONObject.toJSONString(object));
         object.remove("lrsamples");

+ 1 - 1
ad-engine-service/src/main/java/com/tzld/piaoquan/ad/engine/service/score/param/RecommendRequestParam.java

@@ -19,6 +19,6 @@ public class RecommendRequestParam {
     //市-中文
     String city = "-1";
     Integer newExpGroup;
-    String logTraceId;
+    String pqtId;
     List<Map> adAbExpArr ;
 }