AI 住宿决策师 · 三模式
把"找住处"这件高度主观的事,变成多目标决策 + 诚实量化。不是罗列房源,而是按
成本 / 位置 / 品质 / 通勤 加权打分、多样选房,并明确标注每个数字的来源与置信度。
一、三模式总览
decide.py (统一入口, --mode rent|stay|compare)
|
+--------------+--------------+
| | |
v v v
[Mode A] 租房 [Mode B] 酒店/民宿 [Mode C] 对照
rent.py recommend.py compare.py
(吃 rentals (吃 飞猪FlyAI (盈亏平衡点 D*:
.jsonl 房源) +citywalk路线) 租房 vs 长租酒店)
| | |
+------ mcdm.py(共享评分内核:minmax/norm/wsum)------+
- Mode A 租房:你给"城市+区+目标面积+月租预算+通勤点+居住性质",它排 top-N 最匹配房源
(元/㎡、面积匹配、通勤、地铁、装修、朝向、户型 7 因子)。 - Mode B 酒店/民宿:跟随 citywalk-designer 路线,按穷游/情侣/亲子/闺蜜/商务/独自的权重偏好,
推荐 5 家类型与价位多样的住宿(价格/景观密度/交通/评分/装修/品类内性价比/路线跟随 7 因子)。 - Mode C 对照:把"租房月租+隐藏成本"与"长租酒店每晚全包"归一化到同一成本基准(¥/居住日),
算盈亏平衡点 D*——这是"哪个划算"的真正答案,不是比月数字。
二、前置:数据从哪来(必须先讲清)
这是本 skill 唯一硬约束——它不爬房源,它是"决策评估器":
| 模式 | 数据来源 | 怎么喂 |
|---|---|---|
| A 租房 | 你从链家/贝壳/安居客复制的候选房源 | collect_rent.py --from 你的表.csv |
| B 酒店 | 飞猪 FlyAI 实时接口(已配 Key 为精确价,体验模式为掩码价) | collect.py(需 flyai CLI)或自带 data/prices.jsonl |
| B 路线 | citywalk-designer 的 POI 库 | --citywalk "城市:主题:区" 一键桥接 |
| C 对照 | A 的结果 + 你给的酒店每晚价 | decide.py --mode compare |
> [!] 链家/贝壳网页无登录会话 = 验证码/登录墙(已实测),自动爬虫在此环境不可行。
> 故租房数据靠"你复制 -> 我评估"。这反而最稳、零风险。
三、三种模式用法
Mode A — 租房
# 基本:广州越秀 50㎡左右、月租≤5000、单身白领
python decide.py --mode rent --city 广州 --district 越秀 \
--area 50 --area-tol 10 --budget 5000 --nature 单身白领 --top 5
# 加通勤终点(公司坐标),按真实距离排序
python decide.py --mode rent --city 广州 --district 天河 \
--area 60 --area-tol 15 --budget 5000 \
--commute "公司:23.12,113.32" --nature 情侣同居 --out 推荐.md
性质 --nature 可选:单身白领 / 情侣同居 / 家庭带娃 / 合租省钱 / 品质改善。
报告带每套「看原文」链接(数据从联网搜来的会自动带;手动填表时在 source_url 列贴链接)。
Mode B — 旅游酒店/民宿
# 跟随 citywalk 荔湾古建路线,情侣游
python decide.py --mode stay --citywalk "广州:heritage:荔湾" --nature 情侣游 --top 5
# 或用现成 route.json(任意规划器输出此格式即可)
python decide.py --mode stay --route route-广州样例.json --nature 亲子游
性质 --nature 可选:穷游 / 情侣游 / 亲子游 / 闺蜜游 / 商务 / 独自。
Mode C — 租房 vs 长租酒店 对照
# 租房¥2800/月 vs 长租酒店¥138/晚,计划住30天
python decide.py --mode compare --rent-month 2800 --area 50 \
--hotel-nightly 138 --stay-days 30 --out 对照.md
# 或直接从 A 的某套房源取月租
python decide.py --mode compare --rent-name "中山三路1室1厅东北向" --hotel-nightly 138
输出:盈亏平衡点 D*、住 7/30/90/180/365 天两边总花费对比、年省百分比、非价格因素清单。
四、数据契约速查
data/rentals.jsonl(租房房源,每行一条):
name, city, district, community, rent_month, area, layout, floor, has_elevator, orientation, deco, metro_dist_km, lat, lng, commute_min, source_url
缺字段走中性值;source_url为房源原始发布页(核实用,可空)。data/prices.jsonl(酒店快照,飞猪格式):name, price, lat, lon, rate, decorationTime, interestsPoi, type, ...;Mode B 直接读它。route.json(路线契约):{city, days:[{day, theme, pois:[{name,lat,lon}]}]}。- 填表模板:
rent_template.csv(先--template生成,照抄格式填,再--from导入)。
五、诚实边界(务必向用户说明)
- 租房数据是子集:只有你喂的候选,引擎在其内归一化比较,不代表全市全量。
- 通勤无实测则代理:没给
commute_min/ 坐标时,用直线距离近似(非真实路网)。 - 贝壳 API 无"房源搜索"接口:只有估值/楼盘字典/验真,只能做"小区画像+估值校验"补强层,
且需配额(见references/beike-setup.md)。不会自动拉在租清单。 - Mode C 假设:中介费0.5月、押金1月、水电¥200/月为产品先验;酒店价为搜索参考 nightly,
真实长包常打折会让 D* 上移。同 neighborhood 对照才有意义。 - 权重是产品先验:性质预设权重非数据拟合,可按城市/性质调整。
六、进阶能力(按需启用)
- 贝壳估值校验层:
beike_api.py的rent_sanity_check()可校验你复制的月租是否偏离市场
(租售比异常预警)。需先在~/.workbuddy/beike_config.json填 Key(模板见
references/beike_config.template.json),且控制台有配额。 - 订房时机:参考《算法之美》闭式解
r = a + √(2c(b−a))——当前价≤r 即下手(c=售罄概率×景观/交通损失)。 - 价格时序:
scan.py可定时采集飞猪价格序列,判断"何时订最便宜"(需 flyai + 自动化)。
七、文件地图
accommodation-decision/
|-- decide.py # 三模式统一入口(--mode)
|-- mcdm.py # 共享评分内核
|-- rent.py # Mode A 租房引擎
|-- recommend.py # Mode B 酒店/民宿引擎(路线跟随)
|-- compare.py # Mode C 盈亏平衡对照
|-- collect_rent.py # 租房数据采集(模板/导入/探针)
|-- collect.py / factors.py / scan.py # Mode B 飞猪数据层(需 flyai)
|-- route_from_citywalk.py # citywalk-designer 路线桥接
|-- beike_auth.py / beike_api.py # 贝壳 API(可选进阶)
|-- rent_template.csv # 填表模板
|-- data/ # 样本数据(rentals.jsonl / prices.jsonl / 种子POI)
+-- references/ # methodology / data-contracts / beike-setup / citywalk-bridge
八、执行步骤(agent 遵循)
- 听清用户要哪模式 + 城市/区/面积/预算/性质/通勤点。
- 先核数据:Mode A 确认
data/rentals.jsonl有该城市该区数据,没有就引导用户填表或联网搜后--from导入;
Mode B 确认data/prices.jsonl存在或让用户跑collect.py。 - 跑
decide.py --mode ...,报告输出到用户工作区(--out)。 - 主动讲诚实边界(第五节),尤其"数据是你喂的,不是全量"。
- 若用户要对照,再跑 Mode C;若给房源链接,确保
source_url带上是可核实的。
九、版权与署名
本 skill 为原创工具,可免费使用与二次分享;转载请注明出处「七仔的AI工具箱」。
方法论来源说明:订房时机闭式解参考《算法之美》第 1 章,仅引用结论公式,未包含任何受版权保护的原文摘录;
其余多目标打分、因子权重、盈亏平衡模型均为本 skill 自研逻辑。贝壳开放平台接入部分仅依赖官方公开 API 文档。
作者与联系方式
本 skill 由「七仔的AI工具箱」维护。欢迎就技能使用、问题反馈与二次分享交流:
- 微信公众号:七仔的AI工具箱
- 抖音号:七仔的AI工具箱
- CSDN 博客:七仔的AI工具箱
本 skill 可免费使用与二次分享;转载请注明出处「七仔的AI工具箱」。