旅游攻略生成器 - 一键生成精美HTML攻略。适用于制定旅游计划、生成攻略、规划行程。支持国内外城市(威海、青岛、大连等)、情侣浪漫游、周末短途游、自驾游。自动搜索全网攻略,使用高德API计算路线与耗时,生成PC/移动端自适应HTML,包含每日行程、酒店及美食推荐。
自动生成精美、详细、浪漫的旅游攻略HTML文档。支持多语言输出。
🤖 一句话生成精美旅游攻略 HTML,让每一次出发都有温度
本 Skill 由 AI 在识别到 明确的旅游攻略生成请求 时自动调用,用户无需记忆命令,直接说出需求即可。需满足"生成/规划攻略"的明确意图才会触发,普通旅游闲聊不会触发:
仅讨论旅游话题(如"XX 好不好玩""XX 有什么特色")不会触发本 Skill,避免误用网络查询或外部 API 调用。
直接说即可触发(示例):
帮我生成一份威海4天浪漫攻略,从北京出发 规划一个大理2天周末游,情侣 Generate a 3-day romantic guide for Kyoto
不会触发的情况(超出边界,见下节): 纯订票 / 订酒店、签证办理、商务出差、非旅游类路线规划。
为避免生成结果不符合预期,请先了解本 Skill 的覆盖范围与限制:
本 skill 支持生成多种语言的旅游攻略HTML。所有模块文本(标题、按钮、标签、提示等)均会翻译为指定语言。
语言代码语言示例请求zh-CN简体中文(默认)"帮我生成一个威海4天旅游攻略"en英语"Generate a 4-day travel guide for Tokyo"ja日语"東京の4日間旅行ガイドを作成して"ko韩语"부산 4일 여행 가이드 만들어줘"fr法语"Génère un guide de voyage de 4 jours à Paris"de德语"Erstelle einen 4-Tage-Reiseführer für München"es西班牙语"Genera una guía de viaje de 4 días para Barcelona"it意大利语"Genera una guida di viaggio di 4 giorni per Roma"pt葡萄牙语"Gere um guia de viagem de 4 dias para Lisboa"ru俄语"Создай путеводитель на 4 дня по Москве"th泰语"สร้างคู่มือเที่ยวโตเกียว 4 วัน"vi越南语"Tạo hướng dẫn du lịch 4 ngày ở Đà Nẵng"ar阿拉伯语"أنشئ دليلاً سياحياً لمدة 4 أيام في دبي"
HTML <html lang="..."> 标签设置为对应语言代码
所有面向用户的文本 全部翻译为目标语言,包括:
专有名词(景点名、酒店名、店名)保留原文,可在括号中附注翻译
价格和数字 使用当地货币格式
CSS样式 不变,只改变文本内容
对于 阿拉伯语等RTL语言,在HTML中添加 dir="rtl" 属性
回复顺序(必须遵守):
文字版攻略必须包括:
回复风格:详细、有温度、像朋友在推荐。不要只说"已生成攻略"就结束。
text
✅ 大理2天浪漫攻略已生成!
**HTML文件已生成**:`C:\Users\...\大理2天浪漫攻略.html`
您可以直接打开这个文件查看精美的旅游攻略(PC/移动端自适应,带右侧快速导航)。
---
## 📱 详细文字版攻略(方便快速浏览)
### 🏔️ 行程总览
- Day1:古城漫步 → 三塔倒影 → 洱海日落(龙龛码头)
- Day2:喜洲古镇(麦田/转角楼)→ 周城扎染 → 环海东路S湾 → 双廊
## ✨ 必打卡
1. 龙龛码头日落 — 金光洒满洱海,苍山作背景,一生必看!
2. 喜洲麦田 — 春夏绿/秋天金,宫崎骏动画即视感
3. S湾公路 — 洱海+苍山同框,大理最出片的地方
4. 周城扎染 — 一起做方巾,成品当情侣信物带走
## 🍜 美食推荐(详细版见HTML)
- 喜洲破酥粑粑 ¥10-15(现烤现卖,甜/咸两种都好吃!)
- 梅子井酒家 ¥50-70/人(百年梅子树院子,雕梅扣肉一绝)
- 洱海渔家 ¥60-80/人(白族风味,砂锅鱼+乳扇羹)
## 🏨 住宿推荐
- 古城内民宿 ¥200-500/晚(白族庭院,推荐"既下山")
- 洱海边精品 ¥600-1500/晚(推窗见洱海,浪漫值爆表)
## ⚠️ 关键避坑
- 不要在景区买银器/茶叶,套路深!去周城正规作坊买扎染
- 环海不要中午去,紫外线超强!早9前或下午4后
- 人民路"野生导游"不要理,会带你去购物点
## 💰 预算
- 经济型:¥800-1200/人 | 舒适型:¥1500-2500/人
用户说:"Generate a 3-day romantic travel guide for Kyoto from Tokyo"
生成的HTML应:
<html lang="en">用户只需提供:
示例请求:
text
帮我生成一个威海4天旅游攻略,从北京出发,浪漫休闲风格
references/guide-schema.json 生成,不直接手写最终 HTMLroute_estimator.py 按坐标自动估算并标注validate_guide.py 检查结构、时间、闭馆日、营业时间、路线衔接和来源时效build_guide.py 生成 HTML、Markdown、ICS、GeoJSON 和规范化 JSON推荐命令:
bash
python scripts/build_guide.py guide.json --output-base 目的地攻略
工作流中任一步失败都 不能中断整篇攻略,必须按下方「可靠性与容错」降级处理。
本 Skill 的核心可靠性原则: 攻略永远要能生成出来。网络、API、搜索任何一环出问题,都必须自动切换到备选方案,而不是中断报错、留下空白攻略。
{"status":"error","fallback":true} 而非崩溃;AI 捕获后按上述规则降级, 绝不因一个工具失败导致整篇攻略空白。text
真实数据 > 启发式估算(标注"估算") > 通用知识(标注"建议核实") > 留空并提示用户补充
任何情况下,行程框架、酒店 / 美食 / 避坑 / 预算等模块都应 完整输出。
💡 先放宽心:这一节是 可选的增强项,不是必做步骤。即使完全不配置高德 API,攻略照常生成——景点间距离和用时会自动用 估算值 代替,行程、酒店、美食、避坑、预算等模块都不受影响。只有你想让路线距离/用时更精准时才需要配置它。
配置高德 API 后,攻略中的景点间距离、驾车/步行用时会是 真实数据,路线规划更精准。不配置完全没问题,按需决定即可。
route-key)⚠️ 安全提示:API Key 属于敏感凭证, 请勿在对话中把 Key 发送给 AI,也不要让 AI 把它写入系统环境变量。聊天内容可能被记录、留存或泄露;永久写入系统环境变量也会增加泄露面(尤其在共享/ compromised 主机上)。请自行通过下方方式配置,并优先使用 临时/会话级 凭证。
脚本通过读取 AMAP_KEY 环境变量获取 Key。 Key 只应存在于你自己的环境变量或密钥管理器中,不要写进代码或聊天框。
Windows (PowerShell):
powershell
# 当前会话临时生效(推荐,关闭终端即失效)
$env:AMAP_KEY="你的key"
# 永久生效(谨慎使用):系统属性 → 高级 → 环境变量 → 新建用户变量 AMAP_KEY
Windows (CMD):
cmd
set AMAP_KEY=你的key
macOS / Linux:
bash
export AMAP_KEY="你的key"
# 临时会话有效;如需持久化,写入 shell 配置文件:
echo 'export AMAP_KEY="你的key"' >> ~/.zshrc # 或 ~/.bashrc
也可在运行脚本时临时用
--key参数传入(仅本次运行有效),适合不想配置环境变量的场景。密钥管理建议:优先使用系统密钥管理器(如 macOS Keychain、Windows Credential Manager、云厂商 Secrets Manager)在运行时注入
AMAP_KEY;一旦怀疑泄露,立即在高德控制台删除并重新生成该 Key。
bash
python scripts/amap_route.py --origin "威海公园" --destination "火炬八街" --city "威海"
能返回 distance / duration 即配置成功;若提示"未设置 AMAP_KEY 环境变量"说明未生效,请重做第三步。
配置好后,直接让 AI 生成攻略即可 自动调用高德 API 计算真实距离与用时,无需额外说明。也可显式提醒:
用高德 API 帮我计算威海景点间的真实距离(Key 已配置)
若未配置 Key,Skill 会自动改用估算值,攻略照常生成,不影响其他模块。
主要 API 接口:
https://restapi.amap.com/v3/geocode/geo - 地址转经纬度https://restapi.amap.com/v3/direction/driving - 驾车路线https://restapi.amap.com/v3/distance - 直线 / 驾车距离https://restapi.amap.com/v3/place/text - 景点搜索🧩 模块隔离容错:各模块(Hero / 交通 / 每日行程 / 美食 / 酒店 / 避坑 / 预算 / Tips)相互独立。某个模块数据缺失或生成失败(如某 Day 卡片、某景点交通提示)时, 只跳过或降级该模块,其余模块照常渲染,绝不因一处出错导致整页空白或报错。
生成的HTML包含以下模块:
端到端入口:补全估算路线、生成季节建议、校验、渲染并导出所有格式。
python
python scripts/build_guide.py examples/sample-guide.json --output-base examples/my-trip
校验结构、来源、时间重叠、营业时间、闭馆日和交通预留。
python
python scripts/validate_guide.py examples/sample-guide.json --strict
在地图 API 不可用时,根据经纬度估算步行、骑行、公交或驾车路线。
从同一份 JSON 导出 Markdown、ICS 日历和 GeoJSON 点位。
计算两点间驾车距离和用时。
python
python scripts/amap_route.py --origin "威海公园" --destination "火炬八街" --key YOUR_AMAP_KEY
输出示例:
json
{
"distance": "8500",
"duration": "1200",
"distance_text": "8.5公里",
"duration_text": "20分钟"
}
生成用于在线搜索工具的攻略关键词;脚本本身不直接抓取第三方平台内容。
python
python scripts/search_guide.py --destination "威海" --type avoid
HTML模板已内置响应式设计:
assets/template.html - 完整HTML模板参考references/design-spec.md - 配色、字体、布局规范references/daily-itinerary-spec.md - 酒店住宿推荐、酒店→景点路线条、景点间交通提示的详细HTML结构和CSS代码 - 酒店住宿推荐、酒店→景点路线条的详细HTML结构、CSS代码生成攻略后的回复,遵循以下原则,避免反复解释降级、给用户心理负担:
正文不赘述降级:行程 / 美食 / 酒店 / 避坑 / 预算等模块直接呈现,不要在回复里反复说"未配置高德 API""路线为估算值"。HTML 内该加的「估算」标签照常加(见可靠性章节),但 回复文字里不解释。
结尾只轻提示一句:仅在回复最末尾,用一句话温和引导即可,例如:
💡 当前路线距离为估算哦,可以配置高德 API 生成更准确的路线。
其他降级同理:如联网搜索失败改用通用知识,也只在 HTML 内标注"建议核实",回复文字不反复解释。
核心态度:让用户感觉攻略已经完整可用,增强项是"锦上添花"而非"缺了不行"。