| name | weather-compare |
| description | 旅行规划天气查询工具,对比官方气象数据与国际模型数据。当用户询问旅行天气、出行天气、多个城市天气对比、或者提到日期范围和城市名时触发此技能。即使用户没有明确说"天气对比",只要涉及出行日期和地点,就应该主动使用此工具提供天气信息。支持中文城市名和灵活的日期格式。 |
旅行天气对比查询工具
这个技能帮助用户规划旅行时查询天气信息,对比官方气象数据(如中央气象台)与国际气象模型数据(ECMWF、GFS),提供全面的天气预报参考。
何时使用
当用户表达以下需求时,主动使用此技能:
- 查询某个日期范围的城市天气("帮我查一下17号到21号伊宁的天气")
- 对比多个城市的天气情况("伊宁和赛里木湖这几天天气怎么样")
- 规划旅行时询问天气("我下周要去新疆旅游,看看天气")
- 需要权威天气预报数据("这期间天气靠谱吗")
即使没有明确要求"天气对比",只要涉及出行日期+地点,就主动提供天气信息服务。
工作流程
1. 解析用户输入
从用户消息中提取:
-
日期范围:支持多种格式
- "17号到21号" → MM-DD 到 MM-DD
- "4月17日至4月21日" → MM-DD 到 MM-DD
- "04-17到04-21" → MM-DD 到 MM-DD
- "下周"、"下个月"等相对时间 → 计算具体日期
- 如果没有明确日期,默认查询未来一周
-
城市列表:支持中文城市名
- 常见城市自动识别(如:北京、上海、伊宁等)
- 支持多个城市(用顿号、逗号、空格分隔)
- 如果城市不在预设列表中,提示用户提供经纬度
2. 处理依赖
在运行脚本前,检查 BeautifulSoup 是否已安装:
try:
from bs4 import BeautifulSoup
except ImportError:
subprocess.run([sys.executable, "-m", "pip", "install", "beautifulsoup4"], check=True)
如果自动安装失败,提示用户:
⚠️ 自动安装 BeautifulSoup 失败。请手动运行:
pip install beautifulsoup4
注意:没有 BeautifulSoup 将无法获取中央气象台数据,但仍可查看国际模型数据。
3. 执行查询
调用 scripts/weather_compare.py 脚本,传入参数:
- 开始日期(MM-DD 格式)
- 结束日期(MM-DD 格式)
- 城市列表(JSON 格式或命令行参数)
脚本位置:scripts/weather_compare.py
4. 展示结果
将脚本输出直接展示给用户,包括:
- 📍 检测位置和官方数据源
- 📅 出行日期范围
- 各城市的天气对比表格:
- 官方气象台数据(如有)
- ECMWF 欧洲模型数据
- GFS 美国模型数据
- 数据源说明和注意事项
城市配置
脚本需要城市配置信息(名称、经纬度、气象台ID)。支持两种方式:
预设城市列表
包含中国主要城市和热门旅游目的地:
- 北京、上海、广州、深圳
- 乌鲁木齐、伊宁、库尔德宁、赛里木湖
- (可根据需要扩展)
动态城市添加
如果用户提到的城市不在预设列表中:
- 尝试从在线地理编码服务获取经纬度
- 如果失败,提示用户提供:
- 城市名称
- 纬度(latitude)
- 经度(longitude)
- 中央气象台城市ID(可选,用于获取官方数据)
输出格式示例
====================================================================================================
🌤️ 智能天气对比查询
====================================================================================================
📍 检测位置: 中国 - 北京
🏛️ 官方数据源: 中央气象台 (中国气象局)
📅 出行日期: 04-17 至 04-21
📆 当前日期: 2026-04-15
====================================================================================================
📍 伊宁
----------------------------------------------------------------------------------------------------
日期 中央气象台 ECMWF欧洲 GFS美国
天气 温度 天气 温度 降水 天气 温度 降水
----------------------------------------------------------------------------------------------------
04-17 晴 18/8° 晴 17/7° 0mm 晴 18/8° 0mm
04-18 多云 20/10° 多云 19/9° 0mm 多云 20/10° 0mm
...
====================================================================================================
📊 数据源说明:
• 官方数据: 中央气象台 - 中国气象局
• ECMWF: Open-Meteo提供的ECMWF IFS模型数据(经过插值处理)
• GFS: Open-Meteo提供的NOAA GFS模型数据
...
====================================================================================================
注意事项
- 日期解析:优先使用明确日期,如用户说"下周",需计算具体日期范围
- 城市识别:支持模糊匹配(如"伊宁"可匹配"伊宁市")
- 数据来源:明确告知用户数据来源和可能的差异
- 网络错误:如 API 请求失败,给出清晰的错误提示
- 时区处理:默认使用 Asia/Shanghai 时区
错误处理
- 如果日期格式无效,提示正确格式并给出示例
- 如果城市无法识别,列出预设城市或要求提供经纬度
- 如果网络请求失败,建议用户稍后重试
- 如果缺少依赖,尝试自动安装或提示手动安装命令
扩展性
此技能可以扩展支持:
- 更多国际官方气象数据源(NOAA、JMA、Met Office等)
- 更多气象模型数据
- 历史天气数据对比
- 天气预警信息
- 旅行建议(基于天气的穿衣、活动建议)