SKILL.md
天气查询#
查询指定城市/地点的实时天气和未来 1~7 天预报。数据源为 Open-Meteo(免费、无需 API Key)。
用法#
python3 weather.py "北京"
python3 weather.py "Tokyo" --days 3
python3 weather.py --lat 39.9 --lon 116.4 --days 2
- 第一个参数为城市名(中文或英文),自动解析坐标;也可以直接用
--lat/--lon指定经纬度。 --days N:预报天数,默认 1(含今天)。--lang zh|en:输出语言,默认跟随城市语言。
输出示例#
北京 · 2026-10-31
晴 12°C(体感 11°C) 湿度 34% 西南风 12 km/h
明天 11-01:多云 8~16°C 降水概率 10%
机制#
- 城市→坐标:Open-Meteo Geocoding API(
https://geocoding-api.open-meteo.com/v1/search?name=<城市>&count=1&language=zh&format=json)。 - 天气:Open-Meteo Forecast API(
https://api.open-meteo.com/v1/forecast?latitude=&longitude=¤t=temperature_2m,relative_humidity_2m,apparent_temperature,weather_code,wind_speed_10m,wind_direction_10m&daily=weather_code,temperature_2m_max,temperature_2m_min,precipitation_probability_max&timezone=auto&forecast_days=N)。 - WMO weather code 映射为中文/英文天气状况描述。
- 纯 Python 标准库(urllib),无第三方依赖;输出简洁,适合直接转述给用户。
隐私与安全#
- 不收集任何个人信息;仅向 Open-Meteo 公共接口发起查询。
- 不含任何密钥或账号凭据。
用途与依赖
作者没写,这些是平台读文件后整理的,以文件为准。
使用示例
请求:帮我看看北京明天到后天的天气,会不会下雨?
预期
我会运行 python3 weather.py "北京" --days 3,先通过地理编码接口把“北京”解析为坐标,再拉取当前天气和 3 天预报,然后回复类似:“北京 · 当前:晴 12°C(体感 11°C) 湿度 34% 风速 12 km/h;今天:晴 5~18°C 降水概率 0%;明天:多云 8~16°C 降水概率 10%;后天:小雨 7~13°C 降水概率 60%。”如果城市名查不到,我会告知找不到该地点,并请你换个写法或提供经纬度。
- 适用场景
- 用户想知道某个城市现在天气怎么样
- 用户询问某地未来几天会不会下雨、气温多少
- 用户在做出行、通勤或活动安排前想先看天气预报
- 用户给出了经纬度坐标,想查询该位置的天气
- 用户用英文提问,希望得到英文天气描述
- 输入
- 城市或地点名称(中文或英文)
- 或者经纬度:--lat 与 --lon
- 可选:预报天数 --days N(默认 1,含今天)
- 可选:输出语言 --lang zh 或 --en
- 输出
- 当前天气:天气状况、气温、体感温度、湿度、风速
- 逐日预报:日期、天气状况、最低~最高气温、降水概率
- 地点标注(城市名、省或州、国家)
- 查询失败时的错误提示(如找不到地点、网络请求异常)
- 运行环境
- Python 3(仅使用标准库 urllib、json、argparse)
- 依赖
- 无

