垃圾分类
用户在搜索询问某种垃圾的具体分类时,搜索会展现“垃圾分类“卡片,提供各城市垃圾分类信息,满足用户的需求。
示意图
intent 上传接口
当前资源 intent 意图参数
key | 类型 | 含义 | 示例/说明 |
---|---|---|---|
city | string | 城市名,可为空,形式不保证规范 | “北京”/“上海” |
trash | string | 垃圾名称 | “香蕉皮”/“小龙虾” |
当同时提供 intent.city
和location.city
时,优先使用 intent.city
。因为 intent
内容是从用户搜索词中直接提取的。
通过平台上传 txt 文件
资源方需要将自己小程序能够覆盖的所有 intent 参数组合通过 txt 文件上传到平台上,txt 文件的具体要求参见接入流程-上传 intent 数据。
当前资源分类 txt 上传文件内容示例如下:
- {"city":"北京","trash":"鸡骨头"}
{"city":"上海","trash":"易拉罐"}
{"city":"","trash":"鸡骨头"}
通过开放 API 上传
未开放
Webhook API
发送给 webhook 的请求
公共字段
key | 类型 | 含义 | 示例/说明 |
---|---|---|---|
type | string | 请求类型(大部分开发者可不关心) | 在小程序阿拉丁下永远为 “sp_ala” |
surface | string | 搜索场景(大部分开发者可不关心) | mobile: 支持小程序的移动搜索,web_h5: 支持 H5 的移动搜索 |
srcid | string | 资源编号 | 每个资源分类不同 |
intent | object | 搜索意图参数 | JSON 对象,每个资源分类不同 |
location | object | 用户定位信息 | JSON 对象 |
location.province | string | 用户所在省份 | “北京”/“浙江”,不含行政区划单位,例如”市、省、自治区”,可能为空 |
location.city | string | 用户所在城市 | “北京”/“杭州”,不含行政区划单位,例如”市”,可能为空 |
当前资源 srcid 资源编号
key | 类型 | 含义 | 设定 |
---|---|---|---|
srcid | string | 资源编号 | 5547 |
当前资源的 intent 参数参考上节 “intent 上传接口“。
举例:发送给 webhook 的 JSON (解密后)
- {
"type": "sp_ala",
"srcid": "5547",
"surface": "mobile",
"intent": {
"city":"",
"trash":"鸡骨头"
},
"location": {
"province":"浙江",
"city": "杭州"
}
}
从 webhook 返回的结果
外层通用数据字段
key | 类型 | 含义 | 示例/说明 |
---|---|---|---|
status | integer | 结果状态码,0 代表正确,1 代表无结果,2 代表请求参数错误,3 代表内部服务错误 | 0 |
msg | string | 出错消息,当非 0 时提供 | “” |
data | object | 要返回的资源数据内容 | JSON 对象,每个资源分类不同 |
当前资源分类的 data
object 字段内容
key | 类型 | 要求 | 说明 |
---|---|---|---|
jump_url | string | 必选 | 卡片标题的跳转链接,跳转到展示垃圾分类结果的页面 |
anwser | string | 必选 | 垃圾分类的短答案,当短答案为单一答案时,显示对应的垃圾分类名称,比如『干垃圾』。当短答案为多答案时,显示可能涉及到的垃圾分类,比如『厨余垃圾 或 其他垃圾 或 可回收垃圾』,注意,多垃圾之间的衔接用『或』来表示,两边有空隙 |
explaination | string | 必选 | 对短答案的解释,展示是哪个城市的分类数据,具体格式为:xx(城市)垃圾分类标准,比如『北京垃圾分类标准』 |
detail | string | 必选 | 垃圾分类的长答案,具体解释,当为多答案时,需要给出不同分类对应的解释,比如『电池是什么垃圾,对应短答案:干垃圾或有害垃圾』,长答案解释『不含汞等有害物质的一次性干电池为干垃圾,比如一次性5号、7号电池。可充电电池或纽扣电池等为有害垃圾』。也可以在解释完后补充垃圾类别的通⽤解释。当为单一答案时,给对应垃圾类别的通⽤解释,比如『干垃圾的作用是xxx…』 |
extra_list | string | 可选,若选不可为空 | 结构化垃圾分类信息,展示其他城市对应的垃圾分类结果,第一列城市、第二列具体垃圾类别,多类别以“/”相连。若城市小于三个,则结构化表格模块不展示。 |
extra_list.city_name | string | 可选,若选不可为空 | 结构化垃圾分类信息-第一列,城市名称,比如『上海』 |
extra_list.trash_category | string | 可选,若选不可为空 | 结构化垃圾分类信息-第二列,垃圾类别,比如『干垃圾/湿垃圾』,或者『有害垃圾』 |
disclaimer | string | 可选,若选不可为空 | 解释说明,非官方授权不显示 |
举例:从 webhook 返回的 JSON (加密前)
- {
"status": 0,
"msg": "",
"data": {
"jump_url": "/path/to/page",
"anwser": "干垃圾 或 湿垃圾",
"explaination": "北京垃圾分类标准",
"detail": "猫砂是干垃圾或者湿垃圾。猫砂分多钟类型,其中豆腐猫砂属于诗垃圾,膨润土猫砂属于干垃圾。还有很多其他类型的猫砂,一般能充厕所的猫砂属于湿垃圾,不能冲厕所的猫砂属于干垃圾",
"extra_list": [
{
"city_name": "上海",
"trash_category": "干垃圾/湿垃圾"
},
{
"city_name": "成都",
"trash_category": "其他垃圾/厨余垃圾"
},
{
"city_name": "重庆",
"trash_category": "其他垃圾/易腐垃圾"
}
],
"disclaimer": "以上内容由政府官方授权"
}
}
审核常见问题
内容与intent的相关性
垃圾分类的卡片内容应与intent高度相关,能满足intent体现的用户主需求。当intent体现的用户需求精确至具体城市,卡片展示的垃圾分类结果也应精确;但intent体现出用户的泛需求,应展现北京市的垃圾分类结果。举例如下:
类目 | intent | 卡片内容 | 是否通过 | 说明 |
---|---|---|---|---|
垃圾分类 | {“city”:””, “trash”:”香蕉皮” } | “anwser”展现北京市垃圾分类结果,”extra_list”展示其他城市垃圾分类结果 | 通过 | |
垃圾分类 | {“city”:”北京”, “trash”:”香蕉皮” } | “anwser”展现北京市垃圾分类结果,”extra_list”展示其他城市垃圾分类结果 | 通过 | |
垃圾分类 | {“city”:”重庆”, “trash”:”香蕉皮” } | “anwser”展现北京市垃圾分类结果,”extra_list”展示其他城市垃圾分类结果 | 不通过 | intent体现出用户精准需求,卡片内容不能满足用户主需求。 |