文档

Go SDK快速入门

本文介绍如何使用Go SDK对智能召回引擎进行读写操作。

前提条件

  • 已安装智能召回引擎Go SDK。更多信息,请参见安装Go SDK

示例代码

本示例中,初始化智能召回引擎的客户端,并调用接口完成对服务的查询操作,对详情表的写操作。示例如下:更多示例代码,请参见Aliyun BE Go SDK

package main

import (
        "fmt"
        be "github.com/aliyun/aliyun-be-go-sdk"
)


func main() {
        endpoint := "http://be-cn-xxxx.be.aliyuncs.com"
        userName := "test"
        passWord := "test"
        beClient := be.NewClient(endpoint, userName, passWord)

        // x2i recall example
        x2iBizName := "x2i_biz_test"
        x2iReadRequest := be.NewReadRequest(x2iBizName, 5)
        x2iRecallParams := be.NewRecallParam().
                SetTriggerItems([]string{"100:1", "200:2"}).
                SetRecallType(be.RecallTypeX2I).
                SetScorerClause(be.NewScorerClause("score*double(weight)")) //设置打分公式
        x2iReadRequest.AddRecallParam(x2iRecallParams)

        x2iReadResponse, err := beClient.Read(*x2iReadRequest)
        if err != nil {
                fmt.Printf("read be err: %s\n", err)
        }
        fmt.Printf("x2i read be response:\n%s\n", be.ToJson(x2iReadResponse))

        // vector recall example
        vectorBizName := "vector_biz_test"
        vectorReadRequest := be.NewReadRequest(vectorBizName, 5)
        vectorRecallParams := be.NewRecallParam().
                SetTriggerItems([]string{
                        "0.579158749845,0.470209030437,0.749097467349,0.445656739882,0.844264905484,0.712275306635,0.844056298441,0.276650665052,0.949767836991,0.649219221171,0.66098161068,0.0691913368449,0.354189112041,0.447059806687,0.0549635567026,0.460209072549,0.65463754064,0.274392229466,0.0938289210632,0.424779378871,0.724381527526,0.207687200109,0.0439432787604,0.559263209734,0.0595299411194,0.949378904378,0.184843100327,0.208226326752,0.702787280776,0.211002033769,0.305579165662,0.0689032954442",
                        "0.608493077698,0.364550556482,0.22805051152,0.0762799657836,0.625648915719,0.57495010351,0.513739996805,0.851899131358,0.890538053817,0.915521223743,0.896193552683,0.809539003532,0.624342285425,0.777748612316,0.835579622526,0.988614572482,0.817653978433,0.807812712295,0.789510115629,0.96497810191,0.044510097916,0.810315469502,0.902480341306,0.698768508509,0.962197754709,0.74970913387,0.274244754285,0.756700157766,0.911915116709,0.407594729035,0.0998223357224,0.744411396701",
                }).
                SetRecallType(be.RecallTypeVector)
        vectorReadRequest.AddRecallParam(vectorRecallParams)
        vectorReadResponse, err := beClient.Read(*vectorReadRequest)
        if err != nil {
                fmt.Printf("read be err: %s\n", err)
        }
        fmt.Printf("vector read be response:\n%s\n", be.ToJson(vectorReadResponse))

        // multi recalls example
        multiBizName := "multi_biz_test"
        multiReadRequest := be.NewReadRequest(multiBizName, 10)
          // 多路召回每一路需要设置返回个数
        x2iRecallParams.ReturnCount = 5
        x2iRecallParams.SetRecallName("x2i_recall")
        x2iRecallParams.SetScorerClause(nil)
        vectorRecallParams.ReturnCount = 5
        vectorRecallParams.SetRecallName("vector_recall")
        multiReadRequest.AddRecallParam(x2iRecallParams).AddRecallParam(vectorRecallParams)
        multiReadResponse, err := beClient.Read(*multiReadRequest)
        if err != nil {
                fmt.Printf("read be err: %s\n", err)
        }
        fmt.Printf("multi read be response:\n%s\n", be.ToJson(multiReadResponse))


        tableName := "be_example_expose"
        // write add example
        addWriteRequest := be.NewWriteRequest(be.WriteTypeAdd, tableName, "user_id", map[string]string{})
        addWriteRequest.AddContent("user_id", "u0003")
        addWriteRequest.AddContent("item_id", "10001")
        addWriteRequest.AddContent("time", "1640242662")
        addWriteResponse, err := beClient.Write(*addWriteRequest)
        if err != nil {
                fmt.Printf("write be err: %s\n", err)
        }
        fmt.Printf("add write be response:\n%s\n", be.ToJson(addWriteResponse))

        // write delete example
        deleteWriteRequest := be.NewWriteRequest(be.WriteTypeDelete, tableName, "user_id", map[string]string{})
        deleteWriteRequest.AddContent("user_id", "u0003")
        deleteWriteRequest.AddContent("item_id", "10001")
        deleteWriteResponse, err := beClient.Write(*deleteWriteRequest)
        if err != nil {
                fmt.Printf("write be err: %s\n", err)
        }
        fmt.Printf("delete write be response:\n%s\n", be.ToJson(deleteWriteResponse))
}

返回结果

返回结果示例如下:

x2i read be response:
{"result":{"match_items":{"field_names":["__score__","content","field1","field2","weight","item_id","match_type"],"field_values":[[988.4087543487548,"949127_0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","318","287",992,"949127",0],[977.155827522278,"11512_0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","226","934",998,"11512",0],[970.5834701657299,"830059_0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","421","541",975,"830059",0],[966.1300110816956,"172910_0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","245","814",995,"172910",0],[957.701641082764,"799633_0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","149","444",979,"799633",0]]}}}
vector read be response:
{"result":{"match_items":{"field_names":["match_type","__score__","content","field1","field2","weight","item_id"],"field_values":[[0,15.965773582458496,"136453_0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","159","368",261,"136453"],[0,15.827646255493164,"207968_0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","29","652",484,"207968"],[0,15.694404602050781,"542054_0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","446","618",968,"542054"],[0,15.608759880065918,"250028_0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","275","58",159,"250028"],[0,15.49856948852539,"681135_0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","18","541",417,"681135"]]}}}
multi read be response:
{"result":{"match_items":{"field_names":["__score__","content","field1","field2","item_id","match_type","weight"],"field_values":[[1.999786734580994,"951859_0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","177","116","951859",1,504],[1.999384760856628,"432626_0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","326","465","432626",1,315],[1.998915195465088,"839916_0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","334","76","839916",1,728],[1.998752355575562,"492782_0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","305","275","492782",1,411],[1.997196316719056,"598421_0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","411","558","598421",1,512],[15.965773582458496,"136453_0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","159","368","136453",2,261],[15.827646255493164,"207968_0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","29","652","207968",2,484],[15.694404602050781,"542054_0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","446","618","542054",2,968],[15.608759880065918,"250028_0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","275","58","250028",2,159],[15.49856948852539,"681135_0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","18","541","681135",2,417]]}}}
add write be response:
{"result":{"match_items":null}}
delete write be response:
{"result":{"match_items":null}}

  • 本页导读 (0)
文档反馈