推荐引擎接口调用

服务发布之后的接口调用详情

接口说明

POST /api/rec/feed

请求参数

参数名称

参数说明

类型

是否必须

用例

uid

用户ID。

string

"1000079"

size

推荐返回的物品数量。

integer

10

scene_id

推荐场景ID,用于区分不同推荐场景的请求。

String

home_feed

features

上下文特征。

json map

{"age":20, "sex":"male"}

complex_type_features

复杂类型的上下文特征,如果需要有类型的信息请求模型服务,需要设置此值。

json array

[{"name":"age", "type":"int", "values":20}, {"name":"sex", "values":"male", "type":"string"}]

item_id

相似性推荐传入的物品ID。

string

248791390

item_list

自定义的召回传入列表。

json array

[{"item_id":"1111", "score":1},{"item_id":"222", "score":0.95}]

debug

debug 时使用,可以打印更多的日志。例如会在控制台打印useritem的详情;如果启用了流量调控,会在返回的结果中打印流量调控的过程以及一些计算参数的变化

bool

true

request_id

请求唯一标识ID,此参数为空时,PAI-Rec 引擎会自动生成,如果用户传入,使用参数值当成请求的ID。

string

"c46c3f5e-6b32-4b5c-8aac-59a319941248"

item_list

当有一批召回的数据,希望通过接口传递进来,可以赋值给 item_list。 item_list 是一个数组,每个 item 是 map object ,item 中必须有 item_id 字段,表示物品的ID。其余都是可选的。 item 中如果包含 score 字段,会当成召回得分处理。其余字段当成 item 属性进行处理。

complex_type_features

复杂类型的上下文特征需要数组传递过来,每个元素包含的内容如下:

名称

说明

用例

name

上下文特征名称

age

type

上下文特征类型

int

values

上下文特征值,这里可以设置多种类型,支持具体值,数组, map 等

20

使用示例:

  1. 传递单个值,[{"name":"age", "type":"int", "values":20}, {"name":"sex", "values":"male", "type":"string"}]

  2. 传递数组[{"name":"list_features", "type":"list<int>", "values":[1,2,3]}]

  3. 传递map[{"name":"map_features", "type":"map<int,int>", "values":{"1":10,"2":20,"3":30}}], 或者[{"name":"map_features", "type":"map<int,int>", "values":{"1":"10","2":"20","3":"30"}}],

type 支持的类型包括int,int64,float,double,string,list<int>,list<int64>,list<float>,list<double>,list<string>,map<int,int>,map<int,int64>,map<int,float>,map<int,double>,map<int,string>,map<string,int>,map<string,int64>,map<string,float>,map<string,double>,map<string,string>,map<int64,int>,map<int64,int64>,map<int64,float>,map<int64,double>,map<int64,string>

注:传递上下文中, complex_type_features 和 features 可以同时使用。

接口返回

名称

说明

类型

示例

code

接口返回业务码

int

200

msg

业务信息

string

success

request_id

请求的唯一标识

string

e332fe9c-7d99-45a8-a047-bc7ec33d07f6

size

返回的推荐条目数量

int

10

experiment_id

实验ID 标识, 没有对接 AB 实验,返回为空

string

ER2_L1#EG1#E2

items

返回推荐条目的列表

json array

[{"item_id":"248791390","score":0.9991594902203332,"retrieve_id":"mock_recall"}]

items 条目具体说明如下:

名称

说明

类型

示例

item_id

推荐物品ID

string

3v5RE7417j7R

retrieve_id

召回源ID标识

string

u2i_recall

score

推荐得分

float

0.45

错误码说明

错误码

说明

msg

200

接口正常

success

299

返回的数量不足

items size not enough

400

参数错误,不同的情况, msg 说明不同

uid not empty 或者nexpected end of JSON input 等

500

服务器错误, 以 HTTP 错误码形式返回

接口调用

通过curl命令调用

如果需要本地通过curl命令请求引擎服务,需要先在EAS控制台找到对应服务的请求地址和token,如下图:

在服务详情中点击查看调用信息,即可弹出调用信息。

image

重要

注意,如果是本地调用,需要使用公网地址。公网地址+/api/rec/feed,才是完整的请求地址。

curl -X 'POST' -v \
'http://12*****.vpc.hangzhou.pai-eas.aliyuncs.com/api/predict/test/api/rec/feed' \
-H 'Authorization:YmRjZThkM2Z*****************TU5Mw==' \
-d '{
"uid":"13579",
"size":10,
"scene_id":"home_feed",
}'

返回数据

{
  "code":200,
  "msg":"success",
  "request_id":"e332fe9c-7d99-45a8-a047-bc7ec33d07f6",
  "size":10,
  "experiment_id":"",
  "items":[
    {
      "item_id":"248791390",
      "score":0.9991594902203332,
      "retrieve_id":"mock_recall"
    }
  ]
}

通过PAI-Rec诊断工具调用

如果您是通过PAI-Rec控制台服务管理部署的服务,可以直接使用诊断工具来调试推荐结果,如下图:

image

您需要选择对应服务、环境,路由信息选择/api/rec/feed

物品表:如果您有item的详情表,这里也可以选择,会将item的详情和返回的数据进行关联;

请求数据:会展示您最近一段时间的请求参数,也可以手动填写。

如下图所示,选择和填写好相关参数,点击诊断即可获得推荐结果。

image