Weather Query(天气查询)
Overview
提供任意城市(中英文均可)的当前天气与未来 1–7 天预报,输出中文可读结果。底层调用 Open-Meteo 免费天气 API,无需注册或 API key,开箱即用,适合直接发布与分享。
When to Use
- 用户询问某个城市的天气、气温、风力、湿度、降水概率。
- 用户问"今天/明天天气怎么样""会下雨吗""适合旅游/出行吗"。
- 用户给出城市名并要求查天气或生成天气简报。
- 任何需要实时天气数据的场景(出行建议、穿搭推荐、活动安排)。
Workflow
1. 解析用户意图
从用户消息中提取:城市名(必填)、预报天数(可选,默认 3 天)。若城市名缺失,向用户询问具体城市,不要臆测。
2. 调用查询脚本
使用 bundled 脚本 scripts/weather.py 完成地理编码与天气获取,避免手动拼接 HTTP 请求:
python scripts/weather.py --city "北京" --days 3
python scripts/weather.py --city "Shanghai" --days 5
python scripts/weather.py --city "东京" --lang zh
参数说明:
- --city:城市名,支持中文(北京)与英文(Shanghai),必填。
- --days:预报天数,1–7,默认 3。
- --lang:地理编码语言,默认 zh。
脚本输出已格式化为中文天气简报(当前天气 + 逐日预报),可直接呈现给用户。
3. 补充建议(可选)
在脚本输出基础上,可根据天气情况主动给出出行/穿搭建议,例如高温提醒补水、降水概率高建议带伞、大风注意防风等。
Notes & Constraints
- 脚本仅依赖 Python 标准库(
urllib),无需pip install,兼容任意 Python 3.8+ 环境。 - 若查询失败(城市未找到 / 网络问题),脚本会输出明确错误信息并以非零码退出;此时向用户说明并建议换个写法或检查网络。
- API 限流约 10,000 次/天(免费额度),正常个人使用不会触发。
- WMO 天气代码与 API 字段细节见
references/open-meteo.md,需要更深定制时再读取。