← Back to skills
extension
Category: Data & AnalyticsNo API key required

全国医疗类工程项目招投标索引

检索全国医疗健康领域的招投标与采购公开信息(医院建设、医疗设备、医疗信息化、卫健/医保信息化、疾控/妇幼等),覆盖招标公告、采购意向、中标候选人公示、中标结果、更正公告,并按地区/金额/时间维度筛选汇总,输出 Markdown 与 Excel 报告。当用户提到医院招标、医疗设备采购、医疗信息化(HIS/PACS)、卫健/医保项目、智慧医院等需求,或要查找近期某地区医疗健康项目机会/中标情况时,使用本技能。

personAuthor: user_1465a16chubcommunity

招投标信息检索

目的

从全国公共资源交易平台、中国招标投标公共服务平台、中国政府采购网及各省级交易中心等公开渠道检索招投标信息,把散落在搜索结果里的半结构化内容,整理成字段规范、金额可比、可筛选的清单,交付 Markdown 表格(对话内直接看)+ Excel(二次加工)。

核心原则

只做公开信息的检索与整理,不编造、不绕过、不越界。具体红线见文末「硬性约束」。

何时使用

  • 查找某地区 / 某行业近期在招项目(商机挖掘)
  • 查询中标结果与中标单位(竞对分析、市场格局)
  • 跟踪特定招标人的历史采购(如某医院近一年的信息化项目)
  • 定期汇总行业招投标动态

参数与默认值

先解析用户需求,按下表补齐参数。缺失项直接使用默认值并在报告开头标注,不要为填参数而反复追问用户——只在需求歧义会导致结果完全不同时才提问(例如「项目」指代不明)。

| 参数 | 默认值 | |---|---| | 地区 | 全国(需按七大片区分批检索) | | 行业 | 医疗健康(本技能已锁定;临时跨行业检索可显式传 --industry 其他行业关键词) | | 公告类型 | 招标公告(在招项目) | | 时间范围 | 近 30 天(freshness=d30) | | 金额区间 | 不限制 | | 目标条数 | 20–40 条有效记录 |

工作流

第 1 步:构造检索矩阵

可先运行 python scripts/search_matrix.py --region 广州 --industry 医疗健康 按公式自动生成 4–6 组查询词与 freshness 建议(词库见 references/query-cookbook.md),直接复制下发即可;需要自定义时再手工调整。本技能已默认锁定行业为「医疗健康」,可省略 --industry 参数。

读取 references/query-cookbook.md,按「地区词 + 行业关键词 + 公告类型词 + 时间限定」公式,生成 4–6 组互补查询。单条查询必然漏检,多角度并行覆盖是质量的关键。

要点:

  • site: 语法在当前搜索中不可靠,会返回其他域名的结果。改用「平台名 + 域名片段」作普通关键词。
  • 时间限定优先用 WebSearch 的 freshness 参数,比在关键词里写「近7天」可靠;同时在长查询里补写当前年份。
  • 做商机挖掘时,务必额外检索「采购意向 / 需求公示」——比正式招标公告早 1–3 个月,是提前介入窗口。

第 2 步:执行检索

并行下发多组 WebSearch,浏览结果后:

  1. 用 references/sources.md 的域名表判定来源档位(A 类官方可直接引用;B 类聚合需回源核对;C 类内容营销站禁止作为事实来源)。
  2. 对 A 类平台的关键公告,用 WebFetch 打开原文抽取精确字段(预算金额、最高限价、项目编号、投标截止时间、代理机构)。搜索摘要常缺金额单位,必须回原文确认。
  3. 每条记录必须保留可点击的 url。
  4. WebFetch 回源失败 fallback 流程(B3):若某条公告 WebFetch 抓取失败(超时/反爬/页面改版),按以下顺序处理,不要直接留空了事:
    • 重试 1 次(换 http/https 或补充路径后重试);
    • 仍失败 → 用不同检索词(如项目编号、采购人名称)重新 WebSearch 定位其它镜像/转载页回源;
    • 仍无法取得关键字段 → 该条照常入库,但 confidence 保持 medium(不得标 high),并在 note 标注「回源失败,待复核」;它会被自动收入报告末的「待核实清单」,供后续人工补抓。

第 3 步:抽取为结构化 JSON

按 references/field-schema.md 的字段表,把结果写入中间 JSON 文件。要点:

  • 金额照抄原文字符串(如 "31,000,000.00元"),归一化交给脚本,不要在抽取阶段手算。
  • confidence 由脚本按来源 url 域名自动判定(规则见 references/domains.json,可随时增删域名):
    • A 类官方媒介 → high:公共资源交易平台、政府采购网等;新增兜底规则——所有 .gov.cn 政府站点一律判 A(如 zfcg.gd.gov.cn、ggzy.shaanxi.gov.cn)。
    • B 类聚合/转载 → medium:剑鱼标讯(jianyu360.cn)、千里马(qianlima.com)、中国采购与招标网(chinabidding.com.cn) 等第三方标讯平台,必须在备注注明需回官方核对。
    • C 类内容营销站 → low:cnhh.com、中项网(ccpc360.com) 等,整行标黄并标注「二手来源需回官方核实」,禁止作为事实来源。
    • 人工只需在已用 WebFetch 回源核对后显式标 high;其余留空,脚本自动判定,不必手填。
  • 缺失字段填 null,绝不猜测填充。
  • 用 --print-template 获取空模板,或参考 assets/sample_records.json 中的完整样例(该样例故意包含 1 条无链接记录和 1 条同编号的更正公告,用于演示去重与丢弃规则):
python scripts/build_report.py --print-template

第 4 步:生成报告

python scripts/build_report.py --input records.json --outdir . --name "医疗健康招投标" --md-columns brief

脚本自动完成:金额归一化为万元、日期标准化、按项目编号去重(同号保留最新并标注「有更正」)、丢弃无链接条目、按发布日期倒序,输出 Markdown + Excel。

  • --md-columns brief(默认):对话内展示,列少易读
  • --md-columns full:全字段,适合存档

Excel 为全字段,含冻结首行、自动筛选、金额数值列(可排序)、原文超链接;可信度 low 的行整行标黄。

Python 解释器优先使用 C:/Users/wtj/.workbuddy/binaries/python/envs/default/Scripts/python.exe(已装 openpyxl)。若环境无 openpyxl,脚本自动降级输出 CSV,不中断。

时间窗口与缓冲带(B2,可选)

需要严格按「近 N 天」卡时间时,加 --window-days N(默认不启用即保留全部)。启用后:窗口内正常保留;落在 [窗口, 窗口+缓冲] 的临近边界条目保留并标注「⚠️临近时间窗口边界」(不再像 freshness 硬阈值那样直接丢临近条目);超出窗口+缓冲的直接丢弃。缓冲带默认 5 天,可用 --buffer-days 调,--as-of 指定基准日(默认今天)。

python scripts/build_report.py --input records.json --outdir . --name "广州旧改近30天" \
    --window-days 30 --buffer-days 5

HTML 可视化报告(C2,可选)

加 --html 额外输出一份自包含单页 HTML(无外部 CDN,离线可用,浅色主题),含汇总卡片、按类型/地区的柱状图、可筛选可排序明细表,以及「待核实清单」。适合汇报与长期留存。

python scripts/build_report.py --input records.json --outdir . --name "广州旧改近30天" --html

各类报告均会在末尾自动附「待核实清单」(B3):收录 confidence=low 或 medium 且无金额的条目,提示回 A 类官方平台按项目编号核对后再引用。

增量缓存(可选,适合定期运行)

若每周/每日定期跑同一主题(如「广州老旧小区改造」),加 --cache <path>.json 即可跨次对比,只关注新增与变化:

python scripts/build_report.py --input records.json --outdir . --name "广州旧改周报" \
    --cache ~/.cache/cn-tender-medical/gz-old-community.json --md-columns full

脚本会:按「项目编号 + 公告类型」做缓存键与历史逐条比对;给每条打 状态 列(新增 / 更新 / 未变);同条目字段变化(金额更正、中标单位公布、状态推进等)判为 更新 并在备注列出变更点(如「变更 中标单位: —→某某公司」);最后写回全量缓存供下次对比。Excel 里 new 行浅绿、updated 行浅橙、low 行浅黄,便于一眼区分。

配合 --only-new 只输出本次新增/更新的条目,适合直接推送给团队或定时任务:

python scripts/build_report.py --input records.json --outdir . --name "广州旧改增量" \
    --cache ~/.cache/cn-tender-medical/gz-old-community.json --only-new

每个订阅主题用独立缓存文件;换主题或重跑历史时另建缓存,避免互相污染。

第 5 步:交付与说明

调用 present_files 呈现 Markdown 与 Excel。在回复中补充:

  • 命中概况(条数、类型分布、地区分布)
  • 值得关注的项目(金额最大、截止时间最近、与用户业务最匹配)
  • 数据局限(哪些条目待核实、时间窗口、覆盖了哪些平台)

硬性约束

  1. 不编造任何金额、日期、项目编号、中标单位。缺失一律 —,宁缺勿猜。
  2. 只采集公开发布的信息。不尝试登录、不绕过验证码与反爬、不涉及 CA 锁或付费墙内容。招标文件下载需用户自行登录平台。
  3. 第三方聚合站数据不可直接引用,必须回 A 类官方平台按项目编号核对。
  4. 每份报告必须附免责声明(脚本已自动添加):数据来自公开渠道,以平台原文为准,不构成投标建议。
  5. 公告存在「更正公告」覆盖原文的情况,同项目编号以发布日期最新的一条为准。

参考资源

| 文件 | 用途 | |---|---| | references/sources.md | 平台清单、域名速查、可信度分档 | | references/query-cookbook.md | 检索公式、行业关键词库、时间限定、漏检排查 | | references/field-schema.md | 输出字段规范、金额/日期归一化规则、去重规则 | | scripts/build_report.py | JSON → Markdown + Excel(+ 可选 HTML),含归一化、按域名自动判定可信度、去重;支持 --cache 增量模式(新增/更新/未变标注)、--only-new 增量推送、--window-days/--buffer-days 时间窗口过滤、--html 可视化报告;金额解析支持约/含税/区间 | | scripts/tests/test_amount.py | 金额解析单测(python scripts/tests/test_amount.py,依赖 venv 内 pytest 之外的标准库 unittest) | | scripts/search_matrix.py | 检索矩阵生成器:参数化生成 4–6 组查询词 + freshness 建议 | | references/domains.json | 域名可信度分档(A/B/C),供 build_report.py 自动判定 confidence | | assets/sample_records.json | 9 条真实公告样例,可直接跑 --input 验证脚本行为 |