暴雨报案稽核
读报案、施工日志和损失照片,查合同和工地附近的天气、雨量,按条款逐项写出对得上、对不上、还要核实的地方。
- 官方技能,由智元数据编写和维护
- 只调用智元数据的 REST 接口
- 1 个取数脚本,只用 Python 3 自带的库
- API Key 从环境变量 WI_API_KEY 读取
- 依赖的数据集
- 4
- 一次对话
- —
- 安装次数
- 4
- 近 7 天调用
- 43
01怎么用
三步,让你的 Agent 用上这些数据
安装和设置只做一次。以后直接向你的 Agent 提问就行。
01
发安装语句
复制页头的安装语句,发给 你的 Agent。它会下载技能,装进自己的技能目录。可以在页头切换你用的 Agent。
02
设置 API Key
在终端里运行下面的命令,再启动 你的 Agent。
export WI_API_KEY=你的 API Key
创建 API Key03
直接提问
02依赖的数据集
这些数据集都要有授权
技能用到的数据集都要有授权才能查询。缺授权时,Agent 会告诉你缺哪一个。
工程项目上市公司政府采购合同
listed-company-gov-procurement
一行是一份政府采购合同,供应商是上市公司或它的子公司。包含合同名称、项目名称、采购人、供应商、主要标的、合同金额、签订日期、公告日期,以及匹配到的上市公司和股票代码。覆盖全国各级采购人公告的合同,上市公司的匹配由数据整理者完成。用来看一家上市公司拿到多少政府订单,评估它的履约责任和应收账款风险。
189,502 行 · 51 个字段登录后查看授权
自然灾害县市逐日天气
county-daily-weather
一行是一个县、区或市一天的天气。包含地名、所属的省市和行政区划代码、最高气温、最低气温、天气现象(例如“小雨转中雨”)、风向和风力。覆盖全国约 3000 个县、区和市,按日记录,是天气网站上的历史天气,不是气象站的原始观测。用来数一个地方每年有多少暴雨、大雪、高温、严寒的天数,安排施工工期,评估工程和财产的天气风险。
15,092,290 行 · 12 个字段登录后查看授权
自然灾害全国气象站逐日观测
station-daily-weather
一行是一个气象站一天的观测。包含站号、站名、经纬度、海拔,当天的平均、最高、最低气温,降水量,风速,最大风速,阵风,能见度,气压,积雪深度,是否出现雾、雨、雪、冰雹、雷暴。覆盖中国大陆和台湾的国际交换气象站,站数随年份变化,早期的站少,有的年份几乎没有数据。用来查工程所在地附近气象站的历史暴雨、大风、高温、冰雹天数,评估施工期的天气风险和财产的风灾、水灾风险。
9,932,486 行 · 29 个字段登录后查看授权
自然灾害县级逐月降水量
county-monthly-precipitation
一行是一个县一个月的降水量。包含行政区的名称、年份、月份、月降水量(毫米)。覆盖全国的县区,长时间序列,每月 1 个值,由 1 千米格点降水资料按行政区取平均得到。用来看各地降水的季节分布和多雨的月份,为工程的工期安排、洪涝和干旱风险评估提供依据。
4,211,028 行 · 9 个字段登录后查看授权
03技能内容
装进 Agent 的,全在这里
SKILL.md 可以看预览,也可以看原文。参考文件由平台按当前数据生成,需要时才读。
- 常驻约 152 token
- name 和 description,Agent 一直带着
- 触发后约 1,439 token
- 用到这个技能时读入 SKILL.md 正文
- 按需约 14,274 token
- 需要时才读参考文件、运行脚本
SKILL.md
82 行 · 约 1,591 token · 触发后读入--- name: engineering-claim-audit description: 稽核工程险的暴雨报案:读报案、施工日志和损失照片,查合同的工程内容、所在区县逐日的天气文字、附近气象站逐日的雨量,按条款的暴雨定义和 72 小时规则,逐项写出对得上、对不上、还要核实,交一份稽核意见。用户给出报案,问"对得上吗""是不是暴雨"时使用。通过智元数据 World Insight 的 REST 接口取数,需要环境变量 WI_API_KEY。 ---
暴雨报案稽核
核对一份工程险的暴雨报案。先读材料,再取数,再写代码比对,最后写稽核意见。
开始前
- 所有命令都在本技能的目录里运行:
python3 scripts/wi.py ...。取到数据后要计算时,先加--save data/<文件名>.json保存,再用 run_python 写代码读文件计算。数字都要来自命令或代码的输出。 - 先读
references/audit-card.md(条款规定、数据的局限、判断规则)。下面的命令已经写好了字段,不用再读references/datasets.md。 - 保存的文件是一个对象:
columns是字段的列表,每个字段是{"key": ..., "name": ...};rows是行,每行是一个列表,顺序和columns相同。读文件时用keys = [c["key"] for c in d["columns"]],不用再看文件的结构。 - 一次回答最多 16 轮。互不依赖的命令放在同一轮里一起运行。
第 1 步:读材料
先读材料,再调用任何取数工具。写 3 个 json 代码块:
读报案记录:出险日期、报损项目、估损金额、报案日期。
{"读报案": [{"字段": "出险日期", "值": "...", "原文": "..."}]}读日志记录:施工日志里每一行的日期、天气、工序、情况。
{"读日志": [{"日期": "2022-04-30", "天气": "...", "工序": "...", "情况": "..."}]}看图记录:损失照片上看到的东西。
{"看图": [{"图": 2, "发现": [{"label": "...", "note": "...", "box": [左, 上, 右, 下]}]}]}原文照抄,不改字。box按图的宽和高换算成 0 到 1000 的整数,框要紧贴那个东西。每张照片写 2 到 4 个发现。- 只写图上看得到的东西。写出照片能不能看出拍摄的时间、地点,以及和报损项目是不是同一类东西。照片可能是示例照片,不要说成就是这个工地。
第 2 步:取数
下面 4 条命令放在同一轮里运行。日期范围从出险前 3 天到报案日期。
python3 scripts/wi.py query listed-company-gov-procurement --where "contract_no = <合同编号>" --fields project_name,region_code,subject_name,contract_date --limit 5 python3 scripts/wi.py query county-daily-weather --where "region_code = <区县代码>" --where "date >= <开始日期>" --where "date <= <结束日期>" --fields county,date,weather,temp_max_c,temp_min_c --limit 50 python3 scripts/wi.py query station-daily-weather --where "lat >= <纬度-0.5>" --where "lat <= <纬度+0.5>" --where "lng >= <经度-0.5>" --where "lng <= <经度+0.5>" --where "date >= <开始日期>" --where "date <= <结束日期>" --fields station_id,station_name,lat,lng,date,precip_mm,precip_flag --limit 500 --save data/stations.json python3 scripts/wi.py query county-monthly-precipitation --where "region_code = <区县代码>" --where "month >= 4" --where "month <= 5" --fields year,month,precipitation_mm --limit 200 --save data/monthly.json
区县代码从合同编号的前 6 位得到(例如 445302)。纬度和经度用区县的代表点:云城区是北纬 22.9325、东经 112.0534(核保时用 156 个出让地块坐标的中位数算出)。
第 3 步:比对
写一段代码(只用 Python 自带的库):
- 算每个气象站到代表点的距离(千米),找最近的站。列出最近的站在出险前后每天的降水。
- 对报案里的每个出险日期:列出报案说的、施工日志写的、区县天气文字、最近站的降水,按
references/audit-card.md的规则给出结论。 - 算相邻两次出险相隔几小时(按日期算),判断是不是同一次事件。
- 算出险月份的降水和 1991 到 2020 年同月平均的比。
怎么回答
交一页"稽核意见",按这个顺序:
- 结论:一句话,哪些对得上、哪些对不上、哪些还要核实。
- 逐项核对:每项一行,写报案说的、数据显示的、结论(对得上、对不上、还要核实)、依据(数字和数据集)。至少包括:每个出险日期是不是暴雨、报损项目在不在合同的工程内容里、施工日志和报案是否一致、照片能不能证明出险、是不是同一次事件。
- 要客户补的:按稽核卡列。
- 说明:材料是示例时写明。站点的距离和日界。
不要编造数据。没有查到的写"没有查到"。
出错时
| 错误码 | 怎么办 |
|---|---|
NO_GRANT | 告诉用户缺哪个数据集的授权。其他步骤照常做完 |
TIMEOUT | 加过滤条件、减少字段,再试一次 |
BAD_REQUEST | 按错误信息改字段标识或过滤值,再试一次 |