abtest.go 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. package abtest
  2. import (
  3. "os"
  4. "gitlab.alibaba-inc.com/pai_biz_arch/pairec-experiment/client_golang/experiments"
  5. "gitlab.alibaba-inc.com/pai_biz_arch/pairec-experiment/client_golang/model"
  6. "gitlab.alibaba-inc.com/pai_biz_arch/pairec/log"
  7. "gitlab.alibaba-inc.com/pai_biz_arch/pairec/recconf"
  8. )
  9. var experimentClient *experiments.ExperimentClient
  10. func Load(config *recconf.RecommendConfig) {
  11. if config.ABTestConf.Host != "" {
  12. env := config.RunMode
  13. if os.Getenv("PAIREC_ENVIRONMENT") != "" {
  14. env = os.Getenv("PAIREC_ENVIRONMENT")
  15. }
  16. l := log.ABTestLogger{}
  17. client, err := experiments.NewExperimentClient(config.ABTestConf.Host, env,
  18. experiments.WithLogger(experiments.LoggerFunc(l.Infof)),
  19. experiments.WithErrorLogger(experiments.LoggerFunc(l.Errorf)),
  20. experiments.WithToken(config.ABTestConf.Token),
  21. )
  22. if err != nil {
  23. panic(err)
  24. }
  25. experimentClient = client
  26. }
  27. }
  28. func GetExperimentClient() *experiments.ExperimentClient {
  29. return experimentClient
  30. }
  31. func GetParams(sceneName string) model.SceneParams {
  32. return experimentClient.GetSceneParams(sceneName)
  33. }