本 Skill 提供一套完整的水平衡测试报告自动化编写解决方案,覆盖从原始数据收集到最终报告生成的全流程。基于用户上传的多格式文件(docx、xlsx、pdf、png、audio),自动识别、提取、校验关键数据,并生成符合规范的专业报告。
? 继续读取直到下一个逗号| 规则 | 提取内容 | 文件类型 |
|---|---|---|
| ------ | ---------- | ---------- |
| Collect1 | 学校一年用水天数(约 220 天) | 所有 |
| Collect2 | 是否有水泵房(二次加压判断) | 所有 |
| Collect3 | 2.2/2.3/3.1/3.2 表格 | docx/xlsx/pdf/png |
| Collect4 | 节水工作领导小组 | 所有 |
| Collect5 | 2.1/5.1/4./5.3 表格 | docx/xlsx/pdf/png |
| Collect6 | 自评分表 | 所有 |
| Collect7 | 7 类制度文件 | 所有 |
| Collect8 | 水质检测报告(pH/硬度/浑浊度) | 所有 |
| Collect9 | 每年度人员统计数量+用水量 | 所有 |
| Collect10 | 管道维修/改造项目 | 所有 |
| Collect11 | 异常表(5.2.1 等) | docx/xlsx/pdf/png |
| Collect12 | 年度人均取水量 | xlsx |
| Collect_PNG | 图片结构化数据(水平衡示意/水表/管网) | png/jpg |
将文件内容自动分为 7 个段落:
> v1.2.0 提示:段落 4(排水情况)的信息经常分散在 docx 的其他章节中,LLM 必须全文扫描排水相关关键词,不能仅根据章节标题判断。
XXm³XXm³| 章节 | 内容 | 撰写节点 |
|---|---|---|
| ------ | ------ | ---------- |
| 1.项目概要 | 学校简介(五部分结构) | 独立 LLM 节点 |
| 2.取水情况 | 水源、水压、管道、加压 | 2-5-7 章节节点 |
| 2.1 水质检测 | 检测报告总结 | 2-5-7 章节节点 |
| 3.用水情况 | 取水量、领导小组、用水天数 | 2-5-7 章节节点 |
| 4.排水情况 | 排放方式、污水标准、日排水量 | 2-5-7 章节节点 |
| 5.近 3 年节水改造 | 器具配备、管网改造、其他 | 2-5-7 章节节点 |
| 6.水平衡测试建议 | 节水措施建议 | 独立 LLM 节点 |
| 7.自评报告 | 学校简介、节水成效、自评分 | 独立 LLM 节点 |
人均水耗计算:
人均水耗 = 年度取水量 / 年度人员统计数量
年度变化率:
变化率 = (上一年人均 - 最新年人均) / 上一年人均 × 100%
水量平衡验证:
取水量 + 重复利用水量 = 排水量 + 漏损水量 + 耗水量
规则 1: 2.1 取水水源情况表与水质检测报告的水质数据比对
规则 2: Collect9 与 2.2 近三年用水情况表的年份和取水量比对
规则 3: 5.1 表每个用水单元的取水量 = 排水量 + 漏损量 + 耗水量
规则 4: 异常表(5.2.1 等)输入水量小计 = 输出水量小计
在所有 Collect 完成后自动计算综合质量评分:
评分公式:综合得分 = Σ(权重 × 完成度) / Σ权重 × 100 - 质量扣分
权重分布:
评分等级:优秀(90-100) / 良好(75-89) / 一般(60-74) / 较差(40-59) / 严重不足(0-39)
> 详细评分规则见 knowledge/收集规则库.md 中的"收集质量评分机制"章节。
---file_links: 逗号分隔的文件链接列表(docx、xlsx、pdf、png、audio)school_name: 学校/单位名称(如未提供,从文件中自动提取)report_type: 报告类型(默认:水平衡测试报告)custom_rules: 自定义 Collect 规则report_markdown: 完整的水平衡测试报告(Markdown 格式)report_docx: 转换后的 Word 文档data_summary: 收集的数据汇总(JSON 格式)validation_result: 数据校验结果missing_data: 缺失数据清单anomalies: 数据异常报告collect_results: Collect1-Collect12 识别结果knowledge/专业知识库.md)knowledge/法律法规知识库.md)knowledge/收集规则库.md)knowledge/实施意见库.md)demo/docx/)学校概况与节水工作介绍.docx.md: 学校简介、基本信息、节水工作、取水/排水情况、近 3 年改造、附件清单demo/xlsx/)2.1取水水源情况表.xlsx.md: 水源类别、水质情况、供水信息2.2近三年用水情况表.xlsx.md: 近 3 年取水量、人员、人均取水量2.3运营情况统计表.xlsx.md: 人员、班级、面积、运营数据3.1计量仪表配置情况表.xlsx.md: 水表配置、配备率、完好率3.2水表安装情况一览表.xlsx.md: 水表安装位置、类型、检定信息4.节水器具配备情况.xlsx.md: 器具类型、数量、普及率、节水效果5.1用水单位水平衡测试统计表.xlsx.md: 核心水平衡数据、水量验证5.2.1教学楼用水单元水平衡测试表.xlsx.md: 异常表示例(教学楼)5.2.2食堂用水单元水平衡测试表.xlsx.md: 异常表示例(食堂)5.3用水单位用水分析表.xlsx.md: 用水/排水/耗水/漏损分析demo/pdf/)水质检测报告.pdf.md: 检测项目、结果、结论(30 项指标)demo/png/)(v1.3.0 更新:支持结构化 OCR 提取)水平衡示意图.png.md: 水流量拓扑图(市政进水 55.60 m³/d,教学楼 15.50/办公楼 5.20/食堂 8.80/体育馆 12.60/宿舍楼 6.20/绿化 4.50/锅炉房 2.80,消耗 21.45,排水 32.30,漏损 1.85)水表照片.png.md: 水表 M-001,序列号 0015280,读数 15280,日期 2024-05-15管网示意图.png.md: 建筑物管网连接拓扑(教学楼/办公楼/食堂/体育馆/宿舍楼/绿化 6 节点 + 市政进水)demo/audio/)学校节水工作介绍录音.txt: 转录文本、关键信息提取(Collect 结果)1. 用户上传文件链接(逗号分隔)
↓
2. 执行【数据收集工作流】
- 文件分类
- 循环处理各类型文件
- 提取 Collect1-Collect12
- 汇总所有文件信息
↓
3. 执行【报告撰写工作流】
- 并行撰写各章节
- 执行数据校验
- 计算用水数据
- 汇总整合
↓
4. 输出最终报告
- Markdown 格式
- Word 文档
- 数据校验报告
步骤 1: 数据收集
输入: file_links
输出: collect_results, data_summary
步骤 2: 数据校验
输入: data_summary
输出: validation_result, anomalies
步骤 3: 报告撰写
输入: data_summary, validation_result
输出: report_markdown
步骤 4: 格式转换
输入: report_markdown
输出: report_docx
输入: 指定章节的原始数据
输出: 该章节的撰写内容
支持章节:
- 1.项目概要
- 2.取水情况
- 3.用水情况
- 4.排水情况
- 5.近3年节水改造情况
- 6.水平衡测试建议
- 7.自评报告
| 节点 | 模型 | Temperature | Max Tokens | 特殊配置 |
|---|---|---|---|---|
| ------ | ------ | ------------- | ------------ | ---------- |
| doc/docx 格式处理 | 腾讯混元 hunyuan-3 (hy3) | 0.2 | 32768 | 优先模型 |
| xlsx 格式处理 | DeepSeek-V4 Pro | 0.3 | 16384 | 数值精度优先 |
| pdf 格式处理 | 腾讯混元 hunyuan-3 (hy3) | 0.2 | 32768 | 优先模型 |
| png 格式处理 | 腾讯混元 hunyuan-3 (hy3) | 0.2 | 32768 | 多模态能力 |
| audio 格式处理 | 腾讯混元 hunyuan-3 (hy3) | 0.2 | 32768 | 优先模型 |
| 项目简介撰写 | DeepSeek-V4 Pro | - | - | 深度推理 |
| 2-5-7 章节撰写 | DeepSeek-V4 Pro | - | - | 超时 600s |
| 节水工作成效 | 腾讯混元 hunyuan-3 (hy3) | 0.31 | - | TopP 0.62 |
| 异常表计算 | 腾讯混元 hunyuan-3 (hy3) | 0.45 | - | TopP 0.7 |
| 正常表计算 | DeepSeek-V4 Pro | - | - | 数值精度优先 |
| 最终格式校验 | DeepSeek-V4 Pro | - | - | 严格校验 |
| 循环节点 | 最大迭代次数 | 循环类型 | 处理内容 |
|---|---|---|---|
| ---------- | -------------- | ---------- | ---------- |
| 循环_文档 | 10 | 数组 | docx 文件 |
| 循环_表格 | 10 | 数组 | xlsx 文件 |
| 循环_pdf | 10 | 数组 | pdf 文件 |
| 循环_图片 | 10 | 数组 | png 文件 |
| 循环_音频 | 10 | 数组 | audio 文件 |
| 节点类型 | 超时时间 |
|---|---|
| ---------- | ---------- |
| LLM 节点 | 420000ms(7 分钟) |
| 代码节点 | 60000ms(1 分钟) |
| 节水工作成效 | 300000ms(5 分钟) |
| 2-5-7 章节撰写 | 600000ms(10 分钟) |
| 变量 | 类型 | 说明 | 示例 |
|---|---|---|---|
| ------ | ------ | ------ | ------ |
{{input}} | string | 文件链接或文件内容 | 文件路径或链接文本 |
{{collect}} | string | 当前需要识别的 Collect 规则列表 | "Collect1,Collect2,Collect4" |
# 角色
你是一个专业的基础素材收集助手,能够准确理解给你的文件内容,需要按照特定要求进行分类整理。
## 技能
### 技能 1: 理解与分类文件
我的分类有多个部分,分别是:
段落1:项目概况
段落2:取水情况
段落3:用水情况
段落4:排水情况
段落5:近3年节水改造情况
段落6:水平衡测试建议(不来源于外部数据,由参考提示词评估)
段落7:自评报告
## 限制:
- 输出内容需围绕文件分类及撰写模块所需识别文件展开,不能偏离框架要求。
{{input}}这是文件链接,请你解读链接,评估文件需要融合的段落,以段落的方式输出。
注意 Collect3 提到的表格和 Collect5 提到的表格,只摘录表格名称给我。
注意 Collect2 中的学校介绍确认是否包含。
输出格式:
输入的原始文件名称为:xxxx,需要融合的段落和其余要回答的{{collect}}内容和与段落1的摘录文字和如果文件包含 Collect7 的附件信息和 Collect6 的自评分表格和 Collect3 和 Collect5 对应的表格名称和 Collect8 的检测总结和 collect11 和数值 a 和数值 b
需要注意以下 **8** 个要点(v1.2.0 新增第 7-8 点):
1. 需要融合的段落为:段落几【只告诉我结论,不需要每个段落的细节】
2. 如果跟段落1相关的,请你完全复制文件文本,输出给我
3. 如果文件包含 Collect7 任意一个文件,输出包含的标题关键词名称
4. 如果文件包含 Collect6,请摘取自评分表最后的文字总结
5. 如果文件包含 Collect3 和 Collect5,请摘取文件中的表格名称
6. 如果文件包含 Collect8,请摘取检测总结
7. **特别注意段落4(排水情况):如果文件内容涉及以下任一关键词——污水、排放、市政管网、雨水、下水道、排水口、污水处理、废水、排污——则必须标记为"融合段落4:排水情况",即使排水信息只有一两句**
8. **排水相关信息可能分散在文件的取水情况章节末尾或节水改造章节中,需要全文扫描而非仅看标题**
如果 {{input}} 没有输入内容或者输入为"[]",就输出:处理完成
处理逻辑如下:
1. 请注意 collect11 的表格,对应的每一个表格对应的字段都要摘录下来,禁止只摘录部分表格
2. 请你摘录 Collect11 对应(表5与表6中间的所有表的内容)表格的数值
要求:如果 Collect11 的内容包含表,就去找到表5与表6中间的所有表格内容,都属于异常表,把表格内容收录下来。例如你发现中间包含 5.2.1-5.2.9 共 9 个异常表,请你摘取 {{input}} 中的 5.2.1 5.2.2 ... 5.2.9 表格的所有内容,不能有遗漏。
如果 {{input}} 没有输入内容或者输入为"[]",就输出:处理完成
禁止:禁止摘录 Collect11 对应的部分表格,必须要把所有的异常表都摘录下来
这是 Collect_PNG 的核心处理 Prompt,用于从图片中提取结构化数据:
{{input}}这是图片文件的链接,请使用多模态能力识别图片内容并提取结构化数据。
## 图片类型自动识别
按以下优先级判断图片类型:
- 文件名含"水平衡"/"示意图"/"flow" → 【类型一:水平衡示意图】
- 文件名含"水表"/"meter"/"计费表" → 【类型二:水表照片】
- 文件名含"管网"/"pipe"/"供水" → 【类型三:管网示意图】
- 以上都不匹配 → 根据图片内容自行判断
## 类型一:水平衡示意图提取要求
从水流量拓扑图中提取以下结构化数据:
1. 市政进水量(总进水口数值,单位 m³/d)
2. 各建筑单元用水量(教学楼、办公楼、食堂、体育馆、宿舍楼、绿化、锅炉房等),逐项列出
3. 系统总消耗量(m³/d)
4. 系统总排水量(m³/d)
5. 系统总漏损量(m³/d)
6. **水量平衡验证**:自动计算"进水量"与"消耗量+排水量+漏损量"是否一致,列出偏差
输出格式:
水平衡示意图数据:
...
## 类型二:水表照片提取要求
从水表照片中提取以下信息:
1. 水表铭牌编号(如 M-001)
2. 水表序列号
3. 表盘当前读数(精确到小数点后)
4. 照片中标注的日期
5. 水表类型(机械式/智能式等)
6. 安装位置描述
输出格式:
水表照片数据:
## 类型三:管网示意图提取要求
从管网拓扑图中提取以下信息:
1. 所有建筑/用水节点名称(列表)
2. 管道连接关系(节点A→节点B 格式)
3. 水流方向(箭头标注方向)
4. 管径标注(如有,格式 DNxxx)
5. 阀门/水表位置描述
输出格式:
管网示意图数据:
...
## 交叉验证提示(所有类型通用)
提取完毕后,请在输出末尾添加交叉验证建议:
- 如果是水平衡示意图 → 建议与 Collect5·5.1 表总用水量、5.3 表排水量对比
- 如果是水表照片 → 建议与 Collect3·3.2 表水表编号对比
- 如果是管网示意图 → 建议与 Collect5·5.1 表用水单元名称对比
如果 {{input}} 没有输入内容或者输入为"[]",就输出:处理完成
规则 1: 校验 2.1 取水水源情况表中水源类别和水质(pH值、硬度、浑浊度)与"水质检测报告"文件做信息比对
规则 2: 校验 Collect9 对应文件与 2.2 近三年用水情况表的年份和取水量是否一致
规则 3: 校验 5.1 用水单位水平衡测试统计表中每个用水单元:
取水量(含常规水资源量小计+非常规水资源量小计+重复利用水量小计)+重复利用水量 = 其他水量(排水量+漏损水量+耗水量)
规则 4: 如果 collect11 中包含异常表(5.2.1等),校验每个异常表的输入水量(平均值)小计与输出水量(平均值)小计是否一致
Skill 根目录(存放本文件、知识库和 Demo 数据):
/Users/zengchuixin/WorkBuddy/水资源报告编写专家/.workbuddy/skills/water-report-expert/
目录结构:
SKILL.md — 本文件,Skill 主定义knowledge/ — 知识库文件(专业知识库.md、法律法规知识库.md、收集规则库.md、实施意见库.md)demo/docx/ — Demo Word 文档demo/xlsx/ — Demo Excel 表格demo/pdf/ — Demo PDF 文档demo/png/ — Demo 图片demo/audio/ — Demo 音频> 注意:Demo 文件目前以 Markdown 格式(.md 后缀)存储,内容为真实业务数据的文本化表示。实际使用时,用户应上传真实格式的文件(.docx/.xlsx/.pdf/.png/.mp3),文件类型识别依赖扩展名分类。
当某个 Collect 规则对应的数据缺失时,按以下策略处理:
| Collect | 缺失时的回退方案 | 报告输出策略 |
|---|---|---|
| --------- | ----------------- | ------------- |
| Collect1 用水天数 | 默认值 220 天(小学/中学) | 正常输出默认值 |
| Collect2 二次加压 | 默认"无需二次加压" | 正常输出默认值 |
| Collect3 用水统计表 | 跳过,不影响报告 | 在缺失评估中标注 |
| Collect4 节水领导小组 | 跳过 | 第3章(2)不输出该段落 |
| Collect5 水源与节水表 | 无法进行数据校验 | 在缺失评估中标注 |
| Collect6 自评分表 | 无回退 | 第7章(3)输出"暂无法提供" |
| Collect7 制度文件 | 跳过 | 第1章附件清单跳过 |
| Collect8 水质检测 | 无法进行水质比对 | 第2.1章标注"未提供" |
| Collect9 人员与水量 | 尝试从 2.2 表获取 | 人均水耗使用 2.2 表数据 |
| Collect10 管道改造 | 无回退 | 第5章(2)输出"未提及" |
| Collect11 异常表 | 无回退 | 跳过异常表校验 |
| Collect12 人均取水量 | 从 Collect9 计算得出 | 正常输出计算值 |
| Collect_PNG 图片结构化数据 | 跳过,不影响核心报告 | 图片数据作为交叉验证辅助 |
round(value, 2),防止浮点精度溢出如 28.880000000000003)```python
def safe_float(value, digits=2):
"""安全浮点转换,自动 round 到指定位数"""
try:
return round(float(value), digits)
except (ValueError, TypeError):
return None
```
在 knowledge/收集规则库.md 中:
在 knowledge/专业知识库.md 中:
在 knowledge/法律法规知识库.md 中:
| 版本 | 日期 | 变更内容 |
|---|---|---|
| ------ | ------ | ---------- |
| 1.3.0 | 2026-05-26 | 图片 OCR + 质量评分:(1) 新增 Collect_PNG 规则,支持水平衡示意图/水表照片/管网示意图 3 类图片结构化数据提取 (2) SKILL.md 新增 PNG 结构化提取 Prompt,含自动类型识别 + 交叉验证提示 (3) 新增收集质量评分机制(0-100 分,13 项权重分配 + 5 级评分 + 质量扣分项)(4) 新增图片类型自动识别策略(L1-L4)和交叉验证规则 |
| 1.2.0 | 2026-05-26 | 数据收集准确性提升:(1) Collect3/5 增加表格名称别名机制 + L1-L4 四级匹配策略 (2) Collect9 增加 Rule5 合理性范围校验(人员数/用水量/一致性/人均水耗/年际变化率)(3) safe_float 强制 round(2) 防浮点溢出 (4) docx Prompt 增加排水段落识别要点(第7-8条)+ 排水关键词列表 |
| 1.1.0 | 2026-05-25 | 端到端测试后优化:增加工作空间路径配置、数据缺失处理策略、提示词变量说明;修正排水量定义、增加 Collect 交叉引用、增加法律法规引用指南、增加数据驱动建议逻辑;模型配置改为腾讯混元 hy3 + DeepSeek-V4 Pro |
| 1.0.0 | 2026-05-25 | 初始版本,包含完整的数据收集和报告撰写工作流 |
28.880000000000003 这类结果,所有输出前必须 round(2)共 1 个版本