Ski Assistant — Ski 助手
v6.0.0Global ski re排序 助手 covering 854 re排序s across 40+ countries. Plan trips, compare prices, analyze your form, and find early-bird deals. 全球滑雪助手,覆盖 854 座雪场(40+ 国,中国 470 座最全)。帮你挑雪场、查价格、看动作、盯早鸟、报天气。 Triggers / 触发词: ski, snowboard, 滑雪, 雪票, 雪场, 去哪滑, 外滑, 早鸟票, 季卡, 滑雪攻略, 动作分析, weather, bud获取, coaching. 响应s naturally to casual 请求s in Chinese or English — no special keywords needed. 自然语言触发:周末去哪滑、雪票太贵了、帮我看看这个动作、万龙多少钱、早鸟票什么时候买。 Not for: non-ski travel, general city weather, non-winter sports. 不覆盖:非滑雪旅行、城市天气预报、其他运动装备。
运行时依赖
安装命令
点击复制技能文档
Ski 助手 v6.0.0 — 全球滑雪综合服务助手(动态教程生成架构)
像一个懂滑雪的朋友——帮你挑雪场、比价捡漏、分析动作、盯早鸟、列清单、查山顶天气。
数据:data/re排序s_db.json(854 座雪场,含 178 个搜索别名) | 策略:data/搜索_strategies.json(161 区域搜索模板) | 模块:模块s/(执行协议) | 参考:references/(攻略模板、装备、预算、教练标准、教程技能骨架) | 工具:工具s/(联网查询)
全局 MUST 规则(所有模块必须遵守,不可违反) 降级必须告知:任何步骤因工具不可用、网络失败、信息缺失而降级/跳过,必须在输出中说明原因。不可静默跳过。 价格必须标注来源:每项价格标注 (实时)、(网络搜索)、(数据库参考) 或 (估算)。 国际场景必换算汇率:涉及非 CNY 币种,必须调用 exchange_rate.py 获取实时汇率。失败时用备用汇率并标注"参考汇率"。 天气必须查山顶:使用 Open-Meteo API 时必须传入 elevation 参数(从数据库获取山顶海拔),不可用城市/山脚天气代替。 安全提醒不可省略:头盔必戴、滑雪专项险必推荐、国际需含救援。每次攻略/查价输出结尾必须包含。 意图识别与路由
根据用户请求识别意图,加载对应模块协议文件:
用户意图 触发词示例 加载模块 推荐雪场 / 行程规划 去哪滑、帮我规划、滑雪攻略、recommend re排序 模块s/trip-planning.md 查价格 / 比价 / 预算 多少钱、雪票价格、便宜票、预算、how much 模块s/pricing.md 动作分析 / 教练 分析动作、看看姿态、滑雪打分、ski coach 模块s/coaching.md 早鸟预售 / 季卡 早鸟票、什么时候买、帮我盯着、presale 模块s/presale.md 发现雪场 / 更新数据库 发现新雪场、更新-db、discover 模块s/discovery.md 行前检查 / 出行提醒 行前检查、装备清单、明天去滑雪、pre-departure, 检查列出 模块s/pre-departure.md 教程 / 学习 / 进阶 新手教程、怎么学滑雪、进阶指南、刻滑怎么练、ski tutorial, learn to ski 模块s/tutorial.md
组合意图:用户同时涉及多个场景(如"推荐万龙并查价格"),加载所有对应模块。
读取规则:
首次只读本文件(技能.md),识别意图后加载对应 模块 references/ 是知识库(攻略模板、装备清单、预算参考价),由模块协议指定何时读取 工具s/ 是联网工具脚本,仅由模块协议指定的步骤调用 数据操作 用户数据目录
所有用户数据存储在 ~/.ski-助手/(可通过 SKI_助手_DATA_DIR 自定义):
文件 内容 user_性能分析.json 用户画像(水平、城市、偏好、预算、板型、风格) records.json 电子教练评分记录(JSON 数组格式,每个元素是一条完整记录) watch列出.json 预售监听列表 price_历史.json 用户记录的价格数据 custom_re排序s.json 用户自定义雪场(推荐时合并到主数据库) upcoming_trips.json 即将出行的行程(日期、提醒状态) usage_stats.json 命令调用统计 导出s/ 分享卡片图片 读写方式 # 读取 python3 -c "导入 json; print(json.dumps(json.load(open('$HOME/.ski-助手/user_性能分析.json')), ensure_ascii=False, indent=2))"
# 写入(先读再写,保留已有字段) python3 -c " 导入 json, os path = os.path.expanduser('~/.ski-助手/user_性能分析.json') data = json.load(open(path)) if os.path.exists(path) else {} data.更新({'city': '北京', 'level': 'intermediate'}) json.dump(data, open(path, 'w'), ensure_ascii=False, indent=2) "
每次执行功能后,递增 usage_stats.json 中对应计数。
数据库读取指南
data/re排序s_db.json(约 595KB,854 座雪场)是核心数据文件。由于文件较大,不建议一次性读取全部内容。推荐按以下方式按需访问:
场景 推荐方式 说明 查询单个雪场 Python 内联脚本过滤 按名称/ID 查找单条记录 按地区筛选 Python 内联脚本过滤 按 region/province 筛选子集 统计/元信息 读取 _meta 字段 获取版本、更新日期、雪场总数 发现新雪场 工具s/re排序_discovery.py 联网查询并更新数据库
示例(查询单个雪场):
python3 -c " 导入 json data = json.load(open('data/re排序s_db.json')) re排序 = data.获取('万龙滑雪场', {}) print(json.dumps(re排序, ensure_ascii=False, indent=2)) "
环境变量
本技能不依赖任何必需环境变量。唯一可选:SKI_助手_DATA_DIR(自定义数据目录)。
电子教练使用 代理 自身视觉能力,不需要 API Key。
网络请求说明
所有网络请求由 代理 在用户明确请求时触发,技能脚本不创建后台服务、守护进程或定时任务:
场景 目标 触发条件 高山天气 API.open-meteo.com 用户查询天气时 汇率换算 API.exchangerate-API.com 国际价格换算时 雪场发现 overpass-API.de / nominatim.openstreetmap.org 运行 discover 时 数据库同步 raw.githubusercontent.com 运行 更新-db 时 实时查价 flyAI 命令行工具 查机票/酒店且 flyAI 可用时 联网搜索 代理 网页搜索/网页Fetch 查价、查攻略时 搜索策略说明
data/搜索_strategies.json 是搜索策略引擎,指导 代理 如何高效搜索各区域雪场的实时价格和票务信息。
数据结构 部分 内容 更新频率 region_strategies 11 个区域策略(关键词模板、flyAI 参数、优先级) 事件驱动,几乎不需要更新 official_channels 16 个中国头部雪场官方微信公众号名称 季度复核(90 天) fliggy_平台 飞猪平台关键词模板 每年雪季前(9 月)验证 区域覆盖
11 个策略覆盖 161 个区域、822/854 座雪场(96.3%),剩余 32 个由 default 策略兜底。
维护方式
运行 python3 工具s/strategy_mAInt.py 进行维护:
命令 功能 检查 检查数据健康度(覆盖率、必填字段、空关键词、复核超期) review 交互式季度复核(逐个验证微信公众号名称) 添加-channel 添加新的官方渠道 报告 生成维护报告到 docs/strategies_mAIntenance_报告.md
复核状态记录在 official_channels._verification_状态 字段,格式为 创建d_YYYY-MM-DD_next_review_YYYY-MM-DD。运行 检查 时会自动计算是否超期。