获取推荐结果

参数说明

参数

类型

描述

是否必填

备注

userId

string

需要推荐的目标用户

和imei至少一个不为空

如果不在user表中,则无个性化效果

imei

string

用户设备id,安卓设备是(imei),IOS设备是(idfa)

和userId至少一个不为空,非注册用户必填

32位MD5值

returnCount

Integer

单次请求返回的推荐结果数量

建议取值20

sceneId

string

物品投放的场景ID

默认值为1,需要与上传的数据中场景ID一致

items

string

在“相关推荐”场景下的基准物品

“相关推荐”场景下必填

格式:itemId:itemType,itemId:itemType

ip

string

用户最后登录的ip

rankOpen

boolean

召回排序阶段是否根据用户id个性化排序

默认值true

recType

string

推荐服务类型

hot:热门推荐、rr:相关推荐、gul:猜你喜欢。注意:rr和gul都属于个性化推荐服务,只有rankOpen=false且recType="hot"时才完全关闭个性化推荐

除以上参数外,智能推荐额外支持可选推荐过滤功能“filter”,可以通过传入filter相关参数来指定单次推荐结果的推荐item范围。推荐过滤功能的详细使用可参看:通过推荐过滤功能实现Feed流个性化过滤

通过服务端SDK获取推荐结果的常见错误

返回结果为空:

1、请求参数填错:测试场景填入:scene_id,此项必须保证上报过来的数据中有此场景id;

测试用户填入:user_id,如果填入的user_id未存在user表中,则视为新用户;

推荐物品数:要小于场景可推荐的item数量。

注意:通过服务端SDK获取推荐结果中推荐物品数最大值=50。如果是相关推荐,还需要填入item_id:item_type为请求参数,详情如下相关推荐请求参数.相关推荐请求参数2、由于满足条件的可推荐的物料数过少,默认开启了曝光过滤功能后当前用户已经把当前场景的item全部刷空了(全部曝光过了)。

示例代码

package com.aliyun.airec;

import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.airec.model.v20181012.RecommendRequest;
import com.aliyuncs.airec.model.v20181012.RecommendResponse;
import com.aliyuncs.http.FormatType;
import com.aliyuncs.profile.DefaultProfile;
import com.aliyuncs.profile.IClientProfile;

public class Recommend {
    private static final String accessKeyId = "your access key";
    private static final String accessKeySecret = "your access key secret";

    public static void main(String args[]) {
        IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", accessKeyId, accessKeySecret);
        DefaultProfile.addEndpoint("cn-hangzhou", "Airec", "airec.cn-hangzhou.aliyuncs.com");

        DefaultAcsClient client = new DefaultAcsClient(profile);

        RecommendRequest request = new RecommendRequest();

        //以下三个参数为必填参数。
        request.setInstanceId("airec-xxx");
        request.setReturnCount(10);
        request.setSceneId("场景id");

        //以下参数需要至少上报一个(imei/user_id)。
        request.setUserId("0");
        request.setImei("0");

        //如果是相关推荐场景可选使用
        //request.setItems("88:article,33:image");

        //如果需要关闭个性化推荐
        //request.setRankOpen(false);
        //request.setRecType("hot");

        request.setAcceptFormat(FormatType.JSON);

        try {
            RecommendResponse response = client.getAcsResponse(request);

            for (RecommendResponse.ResultItem item : response.getResult()) {
                System.out.println(item.getItemId());
                System.out.println(item.getItemType());
                System.out.println(item.getTraceId());
                System.out.println(item.getTraceInfo());
                System.out.println(item.getMatchInfo());
                System.out.println(item.getWeight());
                System.out.println(item.getPosition());
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

推送数据及获取推荐结果的项目demo

详见:airec推送数据+获取推荐结果demo

阿里云首页 智能推荐AIRec 相关技术圈