小红书越刷越想去,地图一看全不顺路,试试让NAS帮你排个行程
旅游攻略这个事,收藏的时候是最爽的,刷到一篇觉得有用就往收藏夹里塞,塞的时候感觉自己这趟已经会玩了。真到了订酒店、排路线的那天,把收藏夹翻出来一看,才发现这些东西根本接不上。
这篇说某个景点必去,那篇说另一个地方也不能错过,看着哪个都有道理。真全塞进一天,地图一打开,好家伙,景点各占城市一头,旅游还没开始,先给自己安排了一场拉练。
项目介绍今天熊猫给大家分享的TripStar,中文叫“旅途星辰”,就是一个可以自己部署的AI旅行规划项目。
项目简介
进去就是填目的地和出行日期,然后选交通方式、住宿类型,再挑一下旅行兴趣,想看历史建筑还是想看自然风光,都有现成的选项可以勾。要是还有别的想法,页面留了文字框,把具体要求补充进去就行。
项目制定比如准备去西安玩几天,就可以写上:“公共交通为主,每天少安排几个景点,中午留出休息时间。”
计划执行这样写,比直接一句“帮我规划西安旅游”有用多了,尤其是带老人、带孩子出门的,一天能走多少路,比能打卡多少个景点重要。这种要求你不写,它也不知道你是想慢慢逛,还是想从早跑到晚。
功能展开
这个项目比较有意思的地方,是接入了小红书攻略搜索,再配合地图、天气和酒店相关信息,让不同智能体分工整理,最后生成旅行计划。
功能展开有一说一,预约这件事比“推荐十个必去景点”实在,景点就在眼前,结果发现当天进不去,那种难受可不是换个拍照角度就能解决的。
详细内容生成后的内容按天组织,页面可以展示景点安排、餐饮和住宿建议,也能结合地图查看位置。熊猫觉得地图值得多看两眼,几个名字看起来都挺熟,放到地图上才知道到底隔了多远。
景点地图路线看着顺,也别把时间卡得太死。找入口、等车、吃饭排队,都可能让纸面上的安排往后挪。出去玩还得给临时起意留点位置,没必要照着一份生成结果赶进度。
预算管理TripStar带有预算明细,顶部筛选可以把景点、住宿、餐饮、交通等开销分开呈现,页面还提供了修改预算条目金额的操作。已经查到酒店实际价格,就可以按自己的信息调整,没必要守着最初生成的数字。
这里的数字适合拿来做初步估算,住宿价格和具体日期有关,门票也可能涉及不同票种,真正下单还是以预订页面为准。
AI助手最后项目还提供带行程上下文的AI问答,这个在左下角的小图标中,生成计划后可以继续追问细节。比如某天安排会不会太赶,某个景点适不适合自己的出行需求,不用每次从头描述目的地和整份路线。
项目部署
项目支持Docker构建,但作者并没有提供镜像,于是熊猫就打包了镜像上传到了ghcr.io上面。
项目部署打开极空间的Docker,随后在Compose中新建项目复制以下代码进去,其中涉及到的环境变量一定需要注意更改为自己的。
name: tripstar
services:
trip-planner:
image: ghcr.milu.moe/panda-995/tripstar:latest # 也可用具体版本号 tag,见 ghcr 包页面
container_name: tripstar
restart: unless-stopped
stop_grace_period: 60s
ports:
- "7860:7860" # 浏览器打开 http://NAS_IP:7860 即是前端
environment:
# ---- LLM(必填,OpenAI 兼容格式;也可启动后在设置页填) ----
- LLM_API_KEY=
- LLM_BASE_URL=
- LLM_MODEL_ID=
- LLM_TIMEOUT=${LLM_TIMEOUT:-600}
# ---- 高德地图(后端 REST: 地理编码/POI/天气/路线) ----
- VITE_AMAP_WEB_KEY=
# ---- 小红书数据源(网页版 Cookie,过期需更新) ----
- XHS_COOKIE=ets=
# ---- Google Maps(可选,国外行程用) ----
- GOOGLE_MAPS_API_KEY=${GOOGLE_MAPS_API_KEY:-}
- GOOGLE_MAPS_PROXY=${GOOGLE_MAPS_PROXY:-}
# ---- 用户偏好记忆(可选) ----
- ENABLE_USER_MEMORY=${ENABLE_USER_MEMORY:-false}
- MEMORY_THRESHOLD=${MEMORY_THRESHOLD:-2.0}
- MIN_INIT_WEIGHT=${MIN_INIT_WEIGHT:-4.0}
- MEMORY_DECAY_FACTOR=${MEMORY_DECAY_FACTOR:-0.97}
- MEMORY_MAX_RECALL=${MEMORY_MAX_RECALL:-10}
- MEMORY_MAX_SINGLE_CONTENT=${MEMORY_MAX_SINGLE_CONTENT:-120}
- MEMORY_USE_SQLITE=${MEMORY_USE_SQLITE:-false}
- HOST=0.0.0.0
- PORT=7860
- LOG_LEVEL=INFO
volumes:
# 任务状态/历史行程等业务数据
- ./data/backend:/app/backend/data
# 设置页保存的运行时配置(密钥等)。注意:上游默认不持久化这个文件,
# 重建容器会丢配置;这里单独挂出来。首次启动前确保该文件存在(交付包已带,内容 {})
- ./data/runtime_settings.json:/app/backend/runtime_settings.json
其中LLM的设置熊猫就不多说了,准备好自己要对接的AI接口地址、模型以及Key就行了,这里重点还是讲高德的地图API和小红书的Cookie。
高德API高德的API可以在高德的开放平台,也就是网址https://lbs.amap.com/中去获取,登录你的百度账号就行,然后在我的应用中去添加Key,记得要选Web服务。
百度Key生成高德这边免费的额度就非常多了,基本是不可能因为这项目用完了。
小红书的cookie获取就更简单了,登录网页版的小红书之后打开浏览器的开发者工具,找到Network选项,部分浏览器可能显示为网络,随后下滑网页,之后会出现homefeed。
操作指示点开之后往下翻就能看到你的cookie了,直接复制到compose中即可。
获取位置最后通过极空间的远程访问,或者浏览器本地访问端口,这时候就可以输入你的旅行计划了。
写在最后
这个项目的定位比较明确,适合愿意折腾、又懒得从空白文档开始写攻略的人。先让它整理一个底稿,再按照自己的体力、预算和实际预约情况修改,这种用法比较踏实。
极空间多一个旅行助手确实有意思,花点时间配置好之后的确它能帮你解决之后的所有旅行计划问题,项目也并不占用内存,很适合自部署。
结束图作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~
