未来7天10维度交通天气风险预报 skill
用途
对指定城市未来7天逐3小时(共50个时段)的天气信息,从10个交通风险维度进行深度分析,并给出每个维度的风险描述、防御措施和总结短语。
10个交通风险维度:
| 编号 | 维度 | 数据字段 |
|---|---|---|
| a | 司乘人员生理状态 | a1(风险描述) / a2(防御措施) / a3(总结短语) |
| b | 司机驾驶行为 | b1 / b2 / b3 |
| c | 车辆性能 | c1 / c2 / c3 |
| d | 车辆故障与风险 | d1 / d2 / d3 |
| e | 路面状态 | e1 / e2 / e3 |
| f | 道路通行条件 | f1 / f2 / f3 |
| g | 交通管理 | g1 / g2 / g3 |
| h | 货物品质 | h1 / h2 / h3 |
| k | 运输安全 | k1 / k2 / k3 |
| p | 运输效率 | p1 / p2 / p3 |
数据源
JSON 数据由 https://diga2026-1252033877.cos.ap-beijing.myqcloud.com/kg3hour26/{city_id}traffic.json 提供。
city_id:9位数字城市代码,可在city_data.py的CITY_DICT中按名称查找- 返回 JSON 数组,按
date+hour升序排列,共 50 条记录(7天 × 8个3小时间隔:2/5/8/11/14/17/20/23) - 每条记录包含 30 个文本字段(a1-a3、b1-b3、c1-c3、d1-d3、e1-e3、f1-f3、g1-g3、h1-h3、k1-k3、p1-p3)+ city/date/hour 三个索引字段
使用方式
命令行
# 1. 模糊查询城市
python3 main.py search "京" # 列出所有"京"字开头的城市
python3 main.py search "广州" # 精准匹配
# 2. 查看指定城市所有50个时段(默认从今天起)
python3 main.py query "北京"
# 3. 查询特定日期(YYYY-MM-DD)或日期+小时
python3 main.py query "上海" --date 2026-06-15
python3 main.py query "深圳" --date 2026-06-15 --hour 14
# 4. 仅查看高风险时段
python3 main.py query "成都" --risk-only
# 5. 仅输出指定维度
python3 main.py query "杭州" --dims "a,b,c"
# 6. 查看帮助
python3 main.py --help
作为模块调用
from main import TrafficWeather10Dim
tw = TrafficWeather10Dim()
# 模糊查询城市
results = tw.search_city("北京") # -> [('101010100', '北京'), ...]
city_id = results[0][0] # '101010100'
# 拉取并展示数据
report = tw.query("北京")
print(report)
# 指定时间
report = tw.query("北京", date="2026-06-15", hour=14)
print(report)
# 仅看高风险
report = tw.query("北京", risk_only=True)
# 仅看部分维度
report = tw.query("北京", dims="a,b")
匹配规则
城市名称模糊匹配
- 去除空格、全角符号,统一中文比较
- 优先精准完全匹配;精准无果时再前缀匹配;前缀无果时再子串包含
- 同时按城市名模糊、ID 模糊(支持 6-9 位数字短码)
时间匹配
- 用户给定
date和hour时: - 找到当日
hour完全相等的记录 - 无精确匹配时,取距离目标时间最近(小时差绝对值最小)的记录
- 用户只给定
date时:返回该日 8 个时段中风险最高(或第一个)的记录 - 用户不给时间:返回 50 个时段的关键摘要
文件结构
weather-3hour-interpret-traffic-10dim/
├── SKILL.md # 本文件
├── city_data.py # 内嵌的3249个城市ID-名称映射
├── main.py # 核心 skill 逻辑(命令行 + Python API)
└── test.py # 完整测试套件
输出格式
查询结果以分段标题 + 表格形式呈现,分10个区块对应10个维度,每块包含:
- 风险描述(a1/b1/c1/...)
- 防御措施(a2/b2/c2/...)
- 总结短语(a3/b3/c3/...)