丁云鹏 1 year ago
parent
commit
e21c19e318

+ 19 - 3
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/RecommendService.java

@@ -28,6 +28,7 @@ import com.tzld.piaoquan.recommend.server.util.JSONUtils;
 import com.tzld.piaoquan.recommend.server.util.ParserUtils;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.collections4.CollectionUtils;
+import org.apache.commons.collections4.MapUtils;
 import org.apache.commons.lang3.RandomUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -348,7 +349,6 @@ public class RecommendService {
         param.setExpIdMap(JSONUtils.fromJson(request.getNewExpGroup(), new TypeToken<Map<String, String>>() {
         }, Collections.emptyMap()));
 
-
         return param;
     }
 
@@ -388,7 +388,15 @@ public class RecommendService {
     private RecallParam convertToRecallParam(RecommendParam param) {
         RecallParam recallParam = new RecallParam();
         recallParam.setAppType(param.getAppType());
-        recallParam.setAbCode(param.getAbCode());
+        // hard code 算法实验配置化之前,复用abcode做AB验证
+        // note 避免非实验产品被覆盖
+        if (param.getAppType() == AppTypeEnum.SHORT_VIDEO.getCode()) {
+            if (MapUtils.isNotEmpty(param.getExpIdMap())) {
+                recallParam.setAbCode(param.getExpIdMap().get("recall"));
+            }
+        } else {
+            recallParam.setAbCode(param.getAbCode());
+        }
         recallParam.setVideoId(param.getVideoId());
         recallParam.setFlowPoolAbtestGroup(param.getFlowPoolAbtestGroup());
 
@@ -427,7 +435,15 @@ public class RecommendService {
     private RankParam convertToRankParam(RecommendParam param, RecallResult recallResult) {
         RankParam rankParam = new RankParam();
         rankParam.setRecallResult(recallResult);
-        rankParam.setAbCode(param.getAbCode());
+        // hard code 算法实验配置化之前,复用abcode做AB验证
+        // note 避免非实验产品被覆盖
+        if (param.getAppType() == AppTypeEnum.SHORT_VIDEO.getCode()) {
+            if (MapUtils.isNotEmpty(param.getExpIdMap())) {
+                param.setAbCode(param.getExpIdMap().get("rank"));
+            }
+        } else {
+            param.setAbCode(param.getAbCode());
+        }
         rankParam.setSize(param.getSize());
         rankParam.setFlowPoolP(param.getFlowPoolP());
         rankParam.setTopK(param.getTopK());

+ 2 - 1
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/rank/RankRouter.java

@@ -42,7 +42,7 @@ public class RankRouter {
         if (abCode == null) {
             return rankService.rank(param);
         }
-        switch (abCode){
+        switch (abCode) {
             case "60106":
                 return rankStrategy4Rankv2Model.rank(param);
             case "60101":
@@ -67,6 +67,7 @@ public class RankRouter {
             case "60122": // 537
                 return rankStrategy4RegionMergeModelV2.rank(param);
             case "60123": // 541
+            case "541": // 541 新实验机制
                 return rankStrategy4RegionMergeModelV3.rank(param);
             case "60124": // 546
                 return rankStrategy4RegionMergeModelV4.rank(param);

+ 2 - 0
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/recall/RecallService.java

@@ -97,6 +97,7 @@ public class RecallService implements ApplicationContextAware {
                 case "60121": // 536
                 case "60122": // 537
                 case "60123": // 541
+                case "541": // 541 新实验机制
                 case "60124": // 546
                 case "60125": // 547
                 case "60126": // 548
@@ -162,6 +163,7 @@ public class RecallService implements ApplicationContextAware {
                     strategies.add(strategyMap.get(ReturnVideoRecallStrategy.class.getSimpleName()));
                     break;
                 case "60123": // 541
+                case "541": // 541 新实验机制
                 case "60126": // 548
                     strategies.add(strategyMap.get(SimHotVideoRecallStrategy.class.getSimpleName()));
                     strategies.add(strategyMap.get(ReturnVideoRecallStrategy.class.getSimpleName()));