首頁(yè)
人工智能平臺(tái) PAI
操作指南
AI開(kāi)發(fā)
A/B實(shí)驗(yàn)(ABTest)
A/B實(shí)驗(yàn)SDK參考
A/B實(shí)驗(yàn)GO SDK
A/B實(shí)驗(yàn)GO SDK
更新時(shí)間:
本文為您介紹如何使用A/B實(shí)驗(yàn)的GO SDK進(jìn)行實(shí)驗(yàn)分流,并獲取實(shí)驗(yàn)相關(guān)的參數(shù)配置信息。
前提條件
已創(chuàng)建實(shí)驗(yàn)。具體操作,請(qǐng)參見(jiàn)新建實(shí)驗(yàn)。
已在代碼運(yùn)行環(huán)境設(shè)置環(huán)境變量。具體操作,請(qǐng)參見(jiàn)管理訪問(wèn)憑證。
安裝A/B實(shí)驗(yàn)GO SDK
go get github.com/aliyun/aliyun-pai-ab-go-sdk
使用示例
package main
import (
"fmt"
"log"
"os"
"github.com/aliyun/aliyun-pai-ab-go-sdk/api"
"github.com/aliyun/aliyun-pai-ab-go-sdk/experiments"
"github.com/aliyun/aliyun-pai-ab-go-sdk/model"
)
func main() {
// init config
region := "cn-beijing"
accessId := os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")
accessKey := os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")
config := api.NewConfiguration(region, accessId, accessKey)
// init client
client, err := experiments.NewExperimentClient(config, experiments.WithLogger(experiments.LoggerFunc(log.Printf)))
if err != nil {
log.Fatal(err)
}
// set up experiment context
experimentContext := model.ExperimentContext{
RequestId: "pvid",
Uid: "157",
FilterParams: map[string]interface{}{
"sex": "male",
"age": 35,
},
}
// match experiment
// DefaultProject is project name
experimentResult := client.MatchExperiment("<DefaultProject>", &experimentContext)
// print experiment info
fmt.Println(experimentResult.Info())
// print exp id
fmt.Println(experimentResult.GetExpId())
// get experiment param value
param := experimentResult.GetExperimentParams().GetString("ab_param_name", "not_exist")
if param != "not_exist" {
// experiment logic
} else {
// default logic
}
}
其中:
region:地域ID,例如華東1(杭州)配置為cn-hangzhou。
RequestId:自定義配置請(qǐng)求ID。
Uid:實(shí)驗(yàn)分流ID標(biāo)識(shí)。可以是用戶側(cè)的UserID,也可以是設(shè)備ID等。
FilterParams:其中sex和male為實(shí)驗(yàn)過(guò)濾參數(shù),請(qǐng)根據(jù)實(shí)際情況進(jìn)行修改。
<DefaultProject>:A/B實(shí)驗(yàn)項(xiàng)目名稱。請(qǐng)前往A/B實(shí)驗(yàn)的新建實(shí)驗(yàn)項(xiàng)目。
頁(yè)面,查看項(xiàng)目名稱。具體操作,請(qǐng)參見(jiàn)
文檔內(nèi)容是否對(duì)您有幫助?