Explainable constraint-based travel planning in MoonBit
| 能力 | 当前实现 |
|---|---|
| 理解偏好 | 公网接入 kimi-k2.6,提取预算、兴趣与作息;确认前不改路书 |
| 安排餐饮 | 午餐与晚餐;晚餐优先靠近末站;按品牌及相似名称抑制重复 |
| 自主调整 | 景点 / 餐厅分类候选,加入、替换、预览、接受、撤销 |
| 计算费用 | 活动、餐饮、市内接驳分项;人数与用户填写的往返交通总账 |
| 查看路线 | Leaflet + OpenStreetMap 真实底图、日期切换、编号与地点详情 |
| 保存与资料 | HTML / Markdown / JSON 导出;地点来源、日期和费用说明 |
| 旅行模式 | 默认节奏 |
|---|---|
| 懒人旅行 | 10:00–18:00,每天最多2个景点,站间休息45分钟,美食与少转场优先 |
| 特种兵旅行 | 07:00–22:00,每天最多6个景点,站间休息5分钟,早出晚归 |
| 周末轻旅行 | 2天,09:00–18:00,每天最多3个景点,限制接驳时间与已查询路程 |
git clone https://github.com/Kleinrat/Traveling.git
cd Traveling
sh scripts/build.sh
python3 scripts/serve.pymoon run src/main --target jscp .env.example .envsh scripts/build.sh
moon test --target js
python3 -m unittest discover -s scripts -p 'test_*.py'
node scripts/smoke.mjs
node scripts/check_cities.mjs
node scripts/check_sight_evidence.mjs
node scripts/test_map.mjs
node scripts/test_worker.mjs
node scripts/test_public.mjs
node scripts/test_hosted.mjs
# 页面交互回归需要开发依赖
pnpm install --frozen-lockfile --ignore-scripts
node scripts/test_ui.mjs
# 打包公开静态站点
python3 scripts/build_pages.py