text
~/Desktop/sgcc_files/
├── 项目A/
│ ├── xxx-招标公告.docx ← 主公告 (docx 或 pdf, 自动识别)
│ ├── 公告附件_资质要求.xlsx ← 可选, 资质占位符回填用
│ └── 重要提醒.docx ← 自动忽略
├── 项目B/
│ └── xxx-采购公告.pdf
├── 散文件_招标公告.docx ← 根目录散放, 当成单独项目
└── ...
输出报告: ~/Desktop/sgcc_result.xlsx
直接运行固定脚本, 禁止自己写代码替代:
bash
python3 ~/.openclaw/workspace/skills/hbdc/scripts/analyze.py
优先级来源说明1Word/PDF 表格主公告里的包级明细表2xlsx 附件需求表/资质附件补充3Word/PDF 正文无表格时段落扫描 (标记需手动补盲)
用 pdfplumber 字符级字号定位封面最大字号文字作为项目名称,
比正则扫描段落更准确。PDF 读取失败后自动切换参数重试一次,
若仍失败则在终端明确提示。
资质列若为 详见附件1 / 详见附件二 等纯占位符:
(分标编号, 包号) 主键回填【通用】)长词命中后自动丢弃其子串短词:
咨询服务 命中 → 丢弃 咨询储能系统 命中 → 丢弃 储能宣传服务 命中 → 丢弃 宣传text
包级 资质条件 + 业绩要求 + 主要人员
↓ (为空或占位符)
xlsx 附件资质表回填
↓ (仍为空)
项目级资格要求章节 (过滤套话后, 前缀 【通用】)
过滤的模板套话: 依法注册、失信被执行人、信用中国、联合体、破产、黑名单等。
保留的实质条款: 甲/乙/丙级、建造师、ISO、安全生产许可证、总承包、业绩 等。
#列名来源1序号自动2项目名称PDF字号法 → 段落正则3招标编号正则4分标编号Word表格 → xlsx5分标名称Word表格 → xlsx6包号Word表格 → xlsx7需求部门/签订单位Word表格 → xlsx8子项目名称Word表格 → xlsx9项目概况与招标范围Word表格 → xlsx10资质/资格要求包级聚合 → 附件回填 → 项目级兜底11合同文本编号Word表格 → xlsx12实施地点Word表格 → xlsx13工期/服务期Word表格 → xlsx14报价方式Word表格 → xlsx15预算金额(万元)Word表格 → xlsx (元自动换万元)16最高限价Word表格 → xlsx17招标起止时间正则 (截止时间染色)18开标时间地点 ✨正则19投标保证金 ✨正则 (含"不收取"判断)20评标办法 ✨正则 (综合评估/合理低价/综合评分等)21联系人及电话 ✨正则 + xlsx 联系人字段22匹配关键词关键词引擎 (去冗余)23匹配来源Word表格 / PDF表格 / Excel附件 / 正文
颜色条件🔴 红色距截止 ≤ 3 天🟡 黄色距截止 ≤ 7 天⬜ 灰色已过截止时间无色7 天以上, 正常
bash
python3 ~/.openclaw/workspace/skills/hbdc/scripts/analyze.py
向用户汇报:
~/Desktop/sgcc_result.xlsx对以下情况主动接管:
资质/资格要求 仍含 "详见附件" → 读取对应附件补全用户问某项目细节时, 直接读取对应文件夹下的 word/pdf/xlsx 展示。
编辑 config/keywords.json 文件, 修改后无需改动脚本:
json
{
"keywords": {
"我的自定义类": ["关键词A", "关键词B"]
},
"short_keywords": {
"我的自定义类": ["短词"]
}
}
analyze.pyconfig/keywords.json