工程风险画像

看现场照片,查工程、降水、地形、施工单位和同类工程,给出工程险核保的风险画像。

官方技能第 2 版 · 2026/11/14 发布
  • 官方技能,由智元数据编写和维护
  • 只调用智元数据的 REST 接口
  • 1 个取数脚本,只用 Python 3 自带的库
  • API Key 从环境变量 WI_API_KEY 读取
依赖的数据集
9
一次对话
—
安装次数
3
近 7 天调用
142

01怎么用

三步,让你的 Agent 用上这些数据

安装和设置只做一次。以后直接向你的 Agent 提问就行。

  1. 01

    发安装语句

    复制页头的安装语句,发给 你的 Agent。它会下载技能,装进自己的技能目录。可以在页头切换你用的 Agent。

  2. 02

    设置 API Key

    在终端里运行下面的命令,再启动 你的 Agent。

    export WI_API_KEY=你的 API Key

    创建 API Key
  3. 03

    直接提问

02依赖的数据集

这些数据集都要有授权

技能用到的数据集都要有授权才能查询。缺授权时,Agent 会告诉你缺哪一个。

  • 工程项目

    上市公司政府采购合同

    listed-company-gov-procurement

    一行是一份政府采购合同,供应商是上市公司或它的子公司。包含合同名称、项目名称、采购人、供应商、主要标的、合同金额、签订日期、公告日期,以及匹配到的上市公司和股票代码。覆盖全国各级采购人公告的合同,上市公司的匹配由数据整理者完成。用来看一家上市公司拿到多少政府订单,评估它的履约责任和应收账款风险。

    189,502 行 · 51 个字段登录后查看授权
  • 工程项目

    全国土地出让记录

    land-transfer

    一行是一宗供应出去的土地(出让、划拨等)。包含位置、面积、用途、供地方式、成交价、土地使用权人、合同签订日期、约定的动工和竣工日期。覆盖全国,合同签订日期从 2000-01-01 到 2024-12-31,3511918 行。用来发现新开工的工程项目,估算项目的规模和工期。

    3,511,918 行 · 58 个字段登录后查看授权
  • 自然灾害

    全国格点逐年极端降水

    grid-annual-extreme-precipitation

    一行是一个 0.1 度(约 10 千米)的格点一年的降水指标。包含格点中心的经纬度、年降水量、最大日降水量、最大连续 5 日降水量、雨日数、大雨日数、暴雨日数、大暴雨日数,以及格点里的雨量站数。覆盖中国陆地,每个格点每年 1 行,由逐日格点降水资料算出,格点降水由全国 2839 个雨量站插值得到。用来按工程项目的经纬度查当地历年的暴雨强度和次数,估计洪涝和山洪风险,给极端降水打分。

    6,022,990 行 · 12 个字段登录后查看授权
  • 自然灾害

    县级逐月降水量

    county-monthly-precipitation

    一行是一个县一个月的降水量。包含行政区的名称、年份、月份、月降水量(毫米)。覆盖全国的县区,长时间序列,每月 1 个值,由 1 千米格点降水资料按行政区取平均得到。用来看各地降水的季节分布和多雨的月份,为工程的工期安排、洪涝和干旱风险评估提供依据。

    4,211,028 行 · 9 个字段登录后查看授权
  • 自然灾害

    县级地形起伏度

    county-terrain-relief

    一行是一个县区。包含行政区划代码、中文和英文名称、地形起伏度。覆盖全国的县区,数值由 1 千米栅格按行政区取平均得到,不随年份变化。用来判断一个地方是平原还是山地,估计滑坡、山洪等地质和洪涝风险,也用来估计工程施工的难度。

    2,873 行 · 5 个字段登录后查看授权
  • 自然灾害

    地级市河流长度与密度

    city-river-density

    一行是一个地级市。包含市内河流的总长度和河流密度(每平方千米的河流长度)。覆盖全国的地级市、自治州、地区、盟、直辖市和省直辖县,数值不随年份变化。用来比较各个城市的水网疏密,估计洪涝和内涝的暴露程度,也常用作经济研究里的地理变量。

    368 行 · 7 个字段登录后查看授权
  • 自然灾害

    全国台风登陆记录

    typhoon-landfall

    一行是一个台风在中国沿海的一次登陆。包含台风编号、中文名、登陆日期、登陆地点和它的行政区划代码、登陆时的强度等级。覆盖有记录以来在中国大陆、香港、澳门、台湾登陆的台风,同一个台风多次登陆时各占一行。用来统计沿海各县市台风登陆的次数和强度,评估工程项目和企业财产的风灾风险。

    839 行 · 13 个字段登录后查看授权
  • 司法监管

    上市公司诉讼仲裁明细

    listed-company-litigation-detail

    一行是上市公司的一次诉讼或仲裁公告。每行有起诉方和应诉方及它们和上市公司的关系、涉案缘由、涉案金额、审理机构、司法进程和裁决内容。覆盖沪深上市公司,公告日期从 1996 年到 2024 年初,2014 年以后的记录多。用来评估一家公司的诉讼风险和或有负债,辅助董责险、保证保险的核保。

    122,679 行 · 30 个字段登录后查看授权
  • 司法监管

    上市公司环保处罚

    listed-company-env-penalty

    一行是一家上市公司(或它的子公司)收到的一次环保处罚,包含处罚内容和罚款金额、处罚部门、文号和处罚原因。覆盖沪深上市公司,处罚时间从 2006 年到 2022 年,2014 年以前的记录少。用来查一家公司的环境违法记录,评估环境污染责任险的风险。

    1,291 行 · 10 个字段登录后查看授权

03技能内容

装进 Agent 的,全在这里

SKILL.md 可以看预览,也可以看原文。参考文件由平台按当前数据生成,需要时才读。

常驻约 167 token
name 和 description,Agent 一直带着
触发后约 2,345 token
用到这个技能时读入 SKILL.md 正文
按需约 18,637 token
需要时才读参考文件、运行脚本

SKILL.md

121 行 · 约 2,512 token · 触发后读入
---
name: engineering-underwriting
description: 给一个在建工程做工程险核保的风险画像:看现场照片,查工程合同、所在区县的降水和极端降水、地形起伏、河网密度、台风登陆、中标单位的合同和诉讼处罚、同类工程,列出风险、依据、要补的资料和要补拍的照片。用户给出工程名称或合同编号,问"这个工程有哪些风险""还要补什么资料"时使用。通过智元数据 World Insight 的 REST 接口取数,需要环境变量 WI_API_KEY。
---

工程风险画像

给一个在建的小型水利或市政工程做核保前的风险画像。先看用户给的照片,再取数,最后写画像。

开始前

  1. 所有命令都在本技能的目录里运行:python3 scripts/wi.py ...。取到数据后要计算时,先加 --save data/<文件名>.json 保存,再用 run_python 写代码读文件计算。数字都要来自命令或代码的输出。
  2. 先读 references/risk-card.md(风险因子、要补的资料)。下面的命令已经写好了字段,不用再读 references/datasets.md。
  3. 保存的文件是一个对象:columns 是字段的列表,每个字段是 {"key": ..., "name": ...};rows 是行,每行是一个列表,顺序和 columns 相同。读文件时用 keys = [c["key"] for c in d["columns"]],不用再看文件的结构。
  4. 一次回答最多 16 轮。互不依赖的命令放在同一轮里一起运行(例如第 6 步和第 7 步的 6 条命令)。一段代码尽量把这一步要算的都算完。

第 1 步:看图

用户附了照片或地图时,先看图,再调用任何工具。把看到的东西写成一个 json 代码块,标题写"看图记录":

{"看图": [{"图": 1, "发现": [{"label": "临水作业", "note": "挖掘机停在土围堰顶上,两侧是水", "box": [520, 540, 640, 640], "factor": "临水作业"}]}]}
  1. box 是发现在图上的位置,写成 [左, 上, 右, 下],按图的宽和高换算成 0 到 1000 的整数。框要紧贴那个东西。
  2. factor 只能用 references/risk-card.md 里的因子名称。
  3. 只写图上看得到的东西。看不清的写"看不清"。照片可能是同类工程的示例照片,不要说成就是这个工程的现场。
  4. 每张照片写 2 到 5 个发现。每个发现是一个具体的东西(一台机械、一段土堤、一处裸露的坡面),不要框整张图或整片水面。位置图只写它说明了什么,不写 box。

第 2 步:找到工程

python3 scripts/wi.py query listed-company-gov-procurement --where "contract_no = <合同编号>" --fields project_name,buyer_name,region_code,buyer_city_code,supplier_name,stock_code,subject_name,contract_amount_yuan,contract_date,performance_info --limit 5

记下区县代码 region_code、市代码 buyer_city_code、中标单位 supplier_name、股票代码 stock_code、金额、签订日期。subject_name 是工程内容,从里面读出工序(例如溢洪道拆除重建、坝坡培土)。合同里没有工期时,写"工期没有",按签订后 12 个月估计施工期,并把工期列进要补的资料。

第 3 步:区县代表点

python3 scripts/wi.py query land-transfer --where "geocoded_county_code = <区县代码>" --fields lat,lng,address --limit 1000 --save data/parcels.json

geocoded_county_code 是按地块坐标判断的区县,比 region_code 准。写代码:去掉空坐标和重复坐标,取纬度和经度的中位数,作为区县代表点。工程没有精确坐标,位置只精确到区县。这一步和第 2 步可以在同一轮里运行。

第 4 步:最大日降水和重现期

取代表点周围 3×3 个 0.1 度格点(格点中心是 x.x5)。纬度范围是代表点所在格点的中心 ±0.1,经度同理。

python3 scripts/wi.py query grid-annual-extreme-precipitation --where "lat >= <纬度下限>" --where "lat <= <纬度上限>" --where "lng >= <经度下限>" --where "lng <= <经度上限>" --fields lat,lng,year,rx1day_mm,rainstorm_days,downpour_days --limit 1000 --save data/grid.json

写代码(只用 Python 自带的库):

  1. 每年取这些格点 rx1day_mm 的平均,得到年最大日降水序列。写出年数、平均值、最大的 3 年。
  2. 用矩法拟合 Gumbel 分布:beta = s*sqrt(6)/pi,mu = 均值 - 0.5772*beta,重现期 T 年的值 mu - beta*ln(-ln(1-1/T))。算 10、20、50、100 年一遇。
  3. 算 1991-2020 年平均每年的暴雨日(rainstorm_days,日降水 ≥ 50 毫米)和大暴雨日(downpour_days,≥ 100 毫米),以及施工期所在年份的值。
  4. 用拟合的分布反算施工期所在年份的最大日降水大约是几年一遇:T = 1 / (1 - exp(-exp(-(x - mu) / beta)))。

回答里和重现期比较大小的话,只写代码算出来的结论,不要自己比。

第 5 步:月降水和汛期

python3 scripts/wi.py query county-monthly-precipitation --where "region_code = <区县代码>" --where "year >= 1991" --fields year,month,precipitation_mm --limit 1000 --save data/monthly.json

写代码:算 1991-2020 年各月平均和全年合计,4 至 9 月占全年的比例。列出施工期(第 2 步)每个月的降水,和常年同月比。

第 6 步:地形、河网、台风

python3 scripts/wi.py query county-terrain-relief --where "region_code = <区县代码>" --fields county,relief
python3 scripts/wi.py query city-river-density --where "region_code = <市代码>" --fields city,river_length_km,river_density
python3 scripts/wi.py query typhoon-landfall --where "city_code = <市代码>" --fields typhoon_name,landfall_date,landfall_place,intensity

没有县级的河网密度,只有市级的,要写明。台风没有在本市登陆过时,写"本市没有台风登陆的记录",不要推断。

第 7 步:中标单位

python3 scripts/wi.py query listed-company-gov-procurement --where "supplier_name = <中标单位>" --fields project_name,buyer_city,buyer_county,contract_amount_yuan,contract_date --limit 100
python3 scripts/wi.py query listed-company-litigation-detail --where "stock_code = <股票代码>" --where "event_content contains <中标单位>" --fields event_id,announcement_date,case_cause,judicial_progress,plaintiff,defendant,other_party --limit 50
python3 scripts/wi.py query listed-company-env-penalty --where "stock_code = <股票代码>" --fields penalty_date,authority,penalty_content,fine_amount --limit 50

写清楚:

  1. 环保处罚的对象是上市公司(中标单位的母公司),不是中标单位本身。
  2. 诉讼还在一审、没有判决的,写"未判决"。不把诉讼当成中标单位有过错。
  3. 平台没有中标单位自己的行政处罚和工商登记,写"没有查到"。

第 8 步:同类工程

python3 scripts/wi.py query listed-company-gov-procurement --where "project_name contains 除险加固" --fields project_name,buyer_province,contract_amount_yuan,contract_date --limit 1000 --save data/similar.json

写代码:去掉名称里有设计、监理、勘察、检测、鉴定、咨询、监测、设备、自动化的合同,按项目名称、金额去重。算同类工程份数、其中名称有"水库"的份数、本工程金额的百分位。数据只有供应商是上市公司的合同,要写明。

怎么回答

交一页"风险画像",按这个顺序:

  1. 工程:一句话,名称、金额、签订日期、工序、位置精确到哪里。
  2. 风险清单:每条一行,写风险、等级(高、中、低)、依据。依据要有数字和数据集。照片看到的写"照片(示例)"。
  3. 要补的资料:按 references/risk-card.md 列,写为什么要。
  4. 要补拍的照片:写拍什么、从哪里拍。
  5. 说明:照片是示例时写明。位置精确到区县。数据的局限。

不要编造数据。没有查到的写"没有查到"。

出错时

错误码怎么办
NO_GRANT告诉用户缺哪个数据集的授权。其他步骤照常做完
TIMEOUT加过滤条件、减少字段,再试一次
BAD_REQUEST按错误信息改字段标识或过滤值,再试一次

04版本

发布后不修改,旧版本保留

数据或说明有变化时,平台发布新版本。旧版本仍然可以查看和下载。

  1. 版本 第 2 版2026/11/14 发布

    最新下载

    更新平台维护的文件:空间数据可以按行政区划取(--region、--geometry)。按当前数据重新生成参考文件。 · 全部文件约 21,149 token

  2. 版本 第 1 版2026/11/13 发布

    历史版本查看下载

    第一版:工程险核保的风险画像。 · 全部文件约 15,499 token