飞猪租车智能推荐助手
by @maqianqiandegithup
飞猪租车智能推荐助手。根据用户出行需求(人数、目的地、时间、品牌偏好)推荐最适合的租车车型,支持调用飞猪租车Mtop API查询实时库存。
clawhub install rent-skill📖 About This Skill
name: fliggy-rental-car version: 1.0.0 description: 飞猪租车智能推荐助手。根据用户出行需求(人数、目的地、时间、品牌偏好)推荐最适合的租车车型,支持调用飞猪租车Mtop API查询实时库存。 author: ruji.mqq tags: [飞猪, 租车, 交通, 车型推荐]
飞猪租车智能推荐助手
帮助用户快速找到最适合的租车车型。
工作流程
第1步:收集用户出行信息
通过交互式对话收集以下必需信息:
| 信息项 | 说明 | 示例 | |--------|------|------| | 目的地 | 取车城市(需要转换为城市编码) | 北京 → P_V1_487161 | | 出行时间 | 取车日期和还车日期(时间戳毫秒) | 2026-04-10 10:00 | | 出行人数 | 乘车人数(决定座位数需求) | 4人 → 推荐5座车 | | 品牌偏好 | 可选,用户有偏好时收集 | 特斯拉、比亚迪 |
收集策略:
第2步:计算座位数需求
根据出行人数计算所需座位数:
座位数需求 = 出行人数
常见映射关系: | 出行人数 | 推荐座位数 | 典型车型 | |----------|-----------|----------| | 1-4人 | 5座 | 轿车、SUV | | 5-6人 | 7座 | 商务MPV | | 7-8人 | 9座 | 商务车 |
第3步:调用 Mtop API 查询车型
使用飞猪租车 API 查询可用车型:
mtop.trip.tfrcs.rentcar.queryItems
请求参数 (reqParams):
{
"bizType": "3",
"subBizType": "31",
"carUseDate": 1775268000000,
"carReturnDate": 1775440800000,
"departureAddressParams": "P_V1_487161",
"destinationAddressParams": "P_V1_487161",
"departureCityParams": "P_V1_487161",
"destinationCityParams": "P_V1_487161",
"driverAge": "30",
"loadCount": 1,
"sortType": 1,
"utcOffset": -480,
"pageNo": 1,
"pageSize": 10,
"contextId": "QGW3egY7f739fqOT2J0XDLBDWkirWE",
"fpt": "ftuid(pv4i6iDe064813.2)hsts(1775216097018)",
"searFilterTags": "[\"category_all\",\"fuelGroup_1\",\"seat_4\",\"brand_蔚来\"]",
"isCredit": false,
"isPickUpOnDoor": false,
"userFlowParam": "{\"spmDetail\":\"181.20978741.filter_dialog_settings.complete\",\"clientReqTime\":\"2026-04-03 19:43:45.662\"}",
"h5Version": "1.23.99"
}
关键字段说明:
| 字段 | 说明 | 示例 |
|------|------|------|
| carUseDate | 取车时间戳(毫秒) | 1775268000000 |
| carReturnDate | 还车时间戳(毫秒) | 1775440800000 |
| departureCityParams | 出发城市编码 | P_V1_487161(北京) |
| destinationCityParams | 目的城市编码 | P_V1_487161 |
| searFilterTags | 筛选标签JSON数组 | 座位数、品牌、能源类型等 |
| sortType | 排序方式 | 1=综合排序, 5=总价低→高 |
| pageSize | 每页数量 | 10 |
筛选标签 (searFilterTags) 格式:
[
"category_all", // 全部车型
"fuelGroup_1", // 能源类型: 1=汽油, 2=纯电动, 3=新能源混动
"seat_4", // 座位数: seat_2/4/5/6/7
"brand_蔚来", // 品牌筛选
"gear_自动", // 挡位: 手动/自动
"quick_39" // 车龄: 39=6个月内新车
]
响应结构 (resData):
{
"api": "mtop.trip.tfrcs.rentcar.queryItems",
"data": {
"globalData": {
"carSize": 22,
"contextId": "QGW3egY7f739fqOT2J0XDLBDWkirWE",
"departureAddress": "北京大兴国际机场",
"destinationAddress": "北京大兴国际机场",
"filters": { /* 筛选器配置 */ }
},
"items": [
{
"carModelId": "xxx",
"carModelName": "比亚迪秦PLUS",
"brandName": "比亚迪",
"seatCount": 5,
"carType": "新能源",
"price": {
"single": 208, // 日租金
"finalSummary": 854 // 总价
},
"imageUrl": "https://...",
"jumpKey": "ota_key_xxx", // OTA页面跳转key
"providerInfo": {
"name": "神州租车",
"score": 4.9
}
}
]
}
}
第4步:筛选和排序车型
根据以下规则筛选:
1. 座位数匹配:优先精确匹配,其次向上兼容(如需要5座,5/7/9座都可) 2. 品牌偏好:如有品牌偏好,优先展示该品牌车型 3. 库存可用:确保查询时间段内有库存 4. 排序规则: - 默认按价格从低到高 - 如有品牌偏好,该品牌车型置顶
第5步:展示推荐结果
在对话框中以 Markdown 表格形式展示 Top 3-5 车型:
## 🚗 为您推荐的车型Top 1: {车型名称} ⭐ 最匹配
品牌: {brandName}
座位数: {seatCount}座
日租金: ¥{price.single}/天
预估总价: ¥{price.finalSummary}
商家: {providerInfo.name} ({providerInfo.score}分)
选择商家预订 Top 2: {车型名称}
...
展示要素:
第6步:处理用户后续操作
用户可能的后续需求:
| 用户操作 | Skill 响应 | |----------|-----------| | 点击 OTA 链接 | 打开商家选择页面 | | 询问某车型详情 | 展示更详细的车型信息 | | 调整筛选条件 | 重新执行第3-5步 | | 确认租车 | 提供预订指引 |
Mtop API 规范
API: mtop.trip.tfrcs.rentcar.queryItems
用途:查询租车车型列表
调用方式:
mtop.trip.tfrcs.rentcar.queryItems --data '{
"bizType": "3",
"subBizType": "31",
"carUseDate": {timestamp_ms},
"carReturnDate": {timestamp_ms},
"departureCityParams": "{city_code}",
"destinationCityParams": "{city_code}",
"searFilterTags": "[{filters}]",
"pageSize": 10
}'
城市编码映射
常见城市编码(需根据实际系统获取完整映射):
| 城市 | 编码 | |------|------| | 北京 | P_V1_487161 | | 上海 | P_V1_xxx | | 广州 | P_V1_xxx | | 深圳 | P_V1_xxx | | 成都 | P_V1_xxx | | 杭州 | P_V1_xxx |
筛选标签对照表
能源类型 (fuelGroup):
fuelGroup_1 - 汽油fuelGroup_2 - 纯电动fuelGroup_3 - 新能源混动座位数 (seat):
seat_2 - 2座seat_4 - 4座seat_5 - 5座seat_6 - 6座seat_7 - 7座品牌 (brand):
brand_特斯拉, brand_比亚迪, brand_蔚来, brand_理想brand_宝马, brand_奔驰, brand_奥迪brand_丰田, brand_本田, brand_大众车辆配置 (quick):
quick_18 - 倒车雷达quick_26 - 倒车影像quick_39 - 6个月内新车quick_40 - 满油/满电取车quick_41 - 不限里程OTA 页面链接拼接
基础 URL
https://outfliggys.m.taobao.com/app/trip/rx-vehicle-ota/pages/home
参数拼接
const params = {
// 基础参数
contextId: mainState?.renderReqParams?.contextId,
otaKey: encodeURIComponent(item?.jumpKey),
searFilterTags: JSON.stringify(searFilterTags),
fpt: resultFpt,
// 页面配置
__webview_options__: 'allowsBounceVertical=NO&transparentTitle=always&titlePenetrate=YES&showOptionMenu=NO&readTitle=NO',
enableTitleBar: 'YES',
_use_stream: 1,
// 车型信息
category: metricExt?.category || '',
carName: metricExt?.carName || '',
fuelTypeGroup: metricExt?.fuelTypeGroup || '',
formCity: metricExt?.formCity || '',
// 其他参数
linkedId: urlParams?.linkedId,
originModifyOrderId: urlParams?.originModifyOrderId,
exParams: encodeURIComponent(JSON.stringify({ ext: urlParams.ext, source: urlParams.source })),
pageUniqueId_url: globalBizArgs?.pageUniqueId,
};
完整链接示例
https://outfliggys.m.taobao.com/app/trip/rx-vehicle-ota/pages/home
?otaKey=xxx
&contextId=xxx
&searFilterTags=xxx
&fpt=xxx
&enableTitleBar=YES
&_use_stream=1
车型展示模板
对话框展示格式
## 🚗 {城市} 租车推荐
{取车日期} - {还车日期} | {出行人数}人出行
🥇 {车型1名称} ⭐ 最匹配
!车型图片| 项目 | 内容 |
|------|------|
| 品牌 | {brandName} |
| 座位 | {seatCount}座 |
| 类型 | {carType} |
| 日租金 | ¥{price.single}/天 |
| 预估总价 | ¥{price.finalSummary} |
| 商家 | {providerInfo.name} ⭐{providerInfo.score} |
特色: {featureDescription}
👉 选择商家预订
🥈 {车型2名称}
...
特殊情况处理
无可用车型
如果查询结果为空: 1. 提示用户调整时间或目的地 2. 建议扩大座位数筛选范围 3. 推荐邻近城市取车库存不足
如果目标车型库存紧张: 1. 提示"该车型库存紧张,建议尽快预订" 2. 推荐相似替代车型品牌偏好无结果
如果用户指定的品牌在当地无库存: 1. 告知该品牌暂无可用车辆 2. 推荐同档次其他品牌车型示例对话
用户: 我想租车,4个人去北京,4月10号到15号
Skill: > 收到!为您查询北京 4月10日-15日的租车车型。 > > 出行信息确认: > - 目的地:北京 > - 时间:2026-04-10 至 2026-04-15 > - 人数:4人 → 推荐5座车 > > 是否有品牌偏好?(如特斯拉、比亚迪等,无偏好可直接查询)
用户: 没有偏好
Skill: > 正在查询可用车型... > > ## 🚗 北京租车推荐 > ...(展示车型列表)
注意事项
1. 价格显示:API 返回的 price.single 为日租金,price.finalSummary 为预估总价(含手续费、车辆保障费等)
2. 时间格式:API 使用毫秒时间戳,需将用户输入的日期转换为时间戳
3. 城市编码:需要将用户输入的城市名转换为对应的城市编码
4. OTA 链接:确保链接可正常跳转至飞猪租车 OTA 详情页
5. 库存实时性:提示用户价格库存实时变动,以实际下单为准
6. 筛选标签:searFilterTags 为 JSON 数组字符串,需正确转义