服務發布之后的接口調用詳情
接口說明
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 時使用,可以打印更多的日志。例如會在控制臺打印user和item的詳情;如果啟用了流量調控,會在返回的結果中打印流量調控的過程以及一些計算參數的變化 | 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 |
使用示例:
傳遞單個值,
[{"name":"age", "type":"int", "values":20}, {"name":"sex", "values":"male", "type":"string"}]
傳遞數組
[{"name":"list_features", "type":"list<int>", "values":[1,2,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,如下圖:
在服務詳情中點擊查看調用信息,即可彈出調用信息。
注意,如果是本地調用,需要使用公網地址。公網地址+/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控制臺服務管理部署的服務,可以直接使用診斷工具來調試推薦結果,如下圖:
您需要選擇對應服務、環境,路由信息選擇/api/rec/feed
;
物品表:如果您有item的詳情表,這里也可以選擇,會將item的詳情和返回的數據進行關聯;
請求數據:會展示您最近一段時間的請求參數,也可以手動填寫。
如下圖所示,選擇和填寫好相關參數,點擊診斷即可獲得推薦結果。