Merge branch ‘dev’ into ‘master’ feat: 去除region参数 See merge request byteair/volcengine-sdk-go-rec!28
Merge branch ‘dev’ into ‘master’
feat: 去除region参数
See merge request byteair/volcengine-sdk-go-rec!28
volcengine data/predict api sdk, go version
package main import ( "github.com/google/uuid" "github.com/volcengine/volcengine-sdk-go-rec/byteair" "github.com/volcengine/volcengine-sdk-go-rec/byteair/protocol" "github.com/volcengine/volcengine-sdk-go-rec/core" "github.com/volcengine/volcengine-sdk-go-rec/core/logs" "github.com/volcengine/volcengine-sdk-go-rec/core/metrics" "github.com/volcengine/volcengine-sdk-go-rec/core/option" "time" ) var client byteair.Client func init() { client, _ = (&byteair.ClientBuilder{}). // 必传,租户id. TenantId("xxx"). // 必传,项目id. ApplicationId("xxx"). // 必传,密钥AK. AK("xxx"). // 必传,密钥SK. SK("xxx"). // 必传,域名. Hosts([]string{"xxx"}). Build() // metrics上报init.建议开启,方便字节侧排查问题. metrics.Init( // 域名同上 metrics.WithMetricsDomain("xxx"), ) logs.Level = logs.LevelInfo } func Write() { // 此处为示例数据,实际调用时需注意字段类型和格式 dataList := []map[string]interface{}{ { // 第一条数据 "id": "1", "title": "test_title1", "status": 0, "brand": "volcengine", "pub_time": 1583641807, "current_price": 1.1, }, { // 第二条数据 "id": "2", "title": "test_title2", "status": 1, "brand": "volcengine", "pub_time": 1583641503, "current_price": 2.2, }, } // topic为枚举值,请参考API文档 topic := "item" // 同步离线天级数据,需要指定日期 date, _ := time.Parse("2006-01-02", "2022-01-01") opts := []option.Option{ // 测试数据/预同步阶段("pre_sync"),历史数据同步("history_sync")和增量天级数据上传("incremental_sync_daily") option.WithStage("pre_sync"), // 必传,要求每次请求的Request-Id不重复,若未传,sdk会默认为每个请求添加 option.WithRequestId(uuid.NewString()), // 必传,数据产生日期,实际传输时需修改为实际日期 option.WithDataDate(date), } rsp, err := client.WriteData(dataList, topic, opts...) if err != nil { logs.Error("[WriteData] occur error, msg:%s", err.Error()) return } if !rsp.GetStatus().GetSuccess() { logs.Error("[WriteData] failure") return } logs.Info("[WriteData] success") return } func Done() { date, _ := time.Parse("2006-01-02", "2022-01-01") // 已经上传完成的数据日期,可在一次请求中传多个 dateList := []time.Time{date} // 与离线天级数据传输的topic保持一致 topic := "item" opts := []option.Option{ // 测试数据/预同步阶段("pre_sync"),历史数据同步("history_sync")和增量天级数据上传("incremental_sync_daily") option.WithStage("pre_sync"), // 必传,要求每次请求的Request-Id不重复,若未传,sdk会默认为每个请求添加 option.WithRequestId(uuid.NewString()), } rsp, err := client.Done(dateList, topic, opts...) if err != nil { logs.Error("[Done] occur error, msg: %s", err.Error()) return } if !rsp.GetStatus().GetSuccess() { logs.Error("[Done] failure") return } logs.Info("[Done] success") return } func Predict() { req := &protocol.PredictRequest{ User: &protocol.PredictUser{ Uid: "uid1", }, Context: &protocol.PredictContext{ Spm: "1$##$2$##$3$##$4", Extra: map[string]string{"extra_key": "extra_value"}, }, CandidateItems: []*protocol.PredictCandidateItem{&protocol.PredictCandidateItem{ Id: "item_id1", }}, ParentItem: &protocol.PredictParentItem{ Id: "item_id2", }, } opts := []option.Option{ option.WithRequestId(uuid.NewString()), option.WithScene("default"), // 是否开启SPM路由.开启的话需要保证请求体里的SPM存在且绑定了栏位. // server会根据body里的SPM路由到选择的栏位. option.WithHeaders(map[string]string{ "Enable-spm-route": "true", }), } rsp, err := client.Predict(req, opts...) if err != nil { logs.Error("[predict] occur error, msg: %s", err.Error()) return } if !rsp.GetSuccess() { logs.Error("[predict] failure") return } rsp.GetRequestId() logs.Info("[predict] success") } func Callback() { req := &protocol.CallbackRequest{ Uid: "uid1", Scene: "default", Items: []*protocol.CallbackItem{ { Id: "item_id1", Pos: "pos1", Extra: "{\"reason\":\"exposure\"}", }, { Id: "item_id1", Pos: "pos1", Extra: "{\"reason\":\"filter\"}", }, }, PredictRequestId: "ds12ad61hnwo", Context: &protocol.CallbackContext{ Spm: "1$##$2$##$3$##$4", Extra: map[string]string{"extra_key": "extra_value"}, }, Extra: nil, } opts := []option.Option{ option.WithRequestId(uuid.NewString()), } rsp, err := client.Callback(req, opts...) if err != nil { logs.Error("[callback] occur error, msg: %s", err.Error()) return } if !rsp.GetSuccess() { logs.Error("[callback] failure") return } logs.Info("[callback] success") }
版权所有:中国计算机学会技术支持:开源发展技术委员会 京ICP备13000930号-9 京公网安备 11010802032778号
volcengine data/predict api sdk, go version