AI招标 Skill
查询招标大数据,提供以下功能接口,调用时输入 API Key 即可使用。
调用方式
所有能力通过统一 CLI 客户端调用:
node skills/ai-bidding/scripts/api-client.js <子命令> --参数=值
能力清单:
# 标讯检索
node ... api-client.js search --kw=医疗设备 --prov=广东 --days=7
# AI 商机推荐
node ... api-client.js recommend --keywords=医疗,信息化 --mode=conservative --budgetMax=500
# 单条详情
node ... api-client.js detail --docId=GD20260817001
# 统计看板
node ... api-client.js stats
# 竞品分析
node ... api-client.js competitor --industry=医疗设备
# 筛选项
node ... api-client.js filters
图表能力:查询结果以结构化表格呈现原始数据,并基于接口返回的 data 直接生成图表(Mermaid 饼图 / 柱状图,对话内即出图,无需任何渲染脚本)。选图原则:占比/分布类用 Mermaid pie(带 showData);排名/对比类用 Mermaid 柱状图(xychart)或精致 Markdown 表格(含排名、数值与占比);禁用 █ 文本条形图(视觉粗糙)。Mermaid 坐标图(xychart/xychart-beta)在部分环境可能不被支持,渲染失败时回退为 Markdown 表格。图表类型、数据维度、Top N、配色等均可按用户要求调整;无论采用何种展示方式,图表数值一律由接口返回的 data 实算(计数、求和、占比、金额元→万元换算),禁止编造、四舍五入后凑整、凭空补点。选图规则与准确性口径详见 references/report-guide.md「AI 直接生成图表」章节。
首次使用:配置 API Key
向技能提供方购买/获取 key 后,任选一种方式配置(优先级从高到低):
- 一键写入本地(推荐):运行配置脚本,把 key 保存到
scripts/.key,之后所有调用自动携带:node skills/ai-bidding/scripts/config-key.js --key=你的key - 编辑
scripts/.key文件:scripts/.key已随 skill 预置(空占位文件),用文本编辑器打开,把内容替换为你的 key 后保存即可(纯文本,含换行亦可,系统自动去空白),与脚本写入等效,适合不想跑命令的场景。 - 临时传参
--key=你的key:仅本次调用生效。
获取 API Key / 技术支持
尚未获取 key 或遇到问题,可通过以下方式联系技能提供方:
- 电话/微信:
17505449950(微信同号)
完整参数与响应结构见 references/api-docs.md。
场景路由
| 用户说 | 路由 | 执行动作 |
|---|---|---|
| "查最近7天广东医疗设备招标" | 标讯检索 | search --kw=医疗设备 --prov=广东 --days=7 → 标讯表格 + 地域/预算图表报告 |
| "找500万以内的智能化项目,保守模式" | 商机推荐 | recommend --keywords=智能化 --mode=conservative --budgetMax=500 → 评分 Top 表格 + 可视化 |
| "分析医疗信息化竞争格局" | 竞品分析 | competitor --industry=医疗信息化 → 份额表格 + 饼图 + 格局解读(以 level/levelText 为准) |
| "看看这个 docId 的标讯详情" | 详情深挖 | detail --docId=... → 关键信息表格与时间节点 |
| "哪个行业招标最多" | 统计洞察 | stats → 分布表格 + 图表报告 |
| "有哪些筛选项可用" | 元数据 | filters → 枚举表格 |
| "把结果做成好看的图表/报告" | 图表报告 | 无需脚本,模型直接按 report-guide「AI 直接生成图表」规范生成 Mermaid 饼图/柱状图(数据必须实算准确) |
| "换个图表样式 / 只看某个维度 / 只要表格" | 自定义图表 | 按 report-guide「用户自定义图表」调整图表类型/维度/TopN/配色,数值仍以接口 data 实算为准 |
响应处理约定
- 响应统一为
{code, msg, data}:code === 0才展示data,否则直接向用户说明msg,不抛原始 JSON;各接口data结构不同(search 为{list,total,...}、recommend 为数组、stats/filters 为对象),勿混用; searchesLeft为当日剩余搜索次数(仅 search 消耗),接近 0 时提醒用户"当日搜索次数将尽,建议次日再查或更换 key";docId为数值型(如815003073),表格保留、detail直接传数字,不加引号/前导零;total为服务端匹配上限(命中量大时恒为 10000),报告中注明"命中超上限",不当真实总数;- 调用失败时向用户给出通用提示(key 无效/过期/被限流/服务暂不可用),不得展示请求细节;
- 其余接口事实(
list不含全文、字段含义、错误码技术说明)见 references/api-docs.md。
报告输出约定
所有查询结果一律输出为 三段式报告:Markdown 表格 → 可视化图表 → 洞察结论。禁止直接抛原始 JSON。
- 图表生成与自定义:无需任何渲染脚本,模型拿到接口返回的
data后直接计算分布并输出图表;展示方式(图表类型/维度/Top N/配色)可按用户要求调整——占比/分布用 Mermaidpie,排名/对比用 Mermaid 柱状图(xychart)或精致 Markdown 表格;禁用█文本条形图。Mermaid 坐标图(xychart/xychart-beta)渲染失败时回退为 Markdown 表格。数据准确性红线:图表每一项数值必须由data实算得出(计数、求和、占比、金额元→万元换算),禁止编造、放大、补点、四舍五入后凑整;Top N 归并"其他"时须注明口径(如"除 Top5 外归并为其他")。选图规则、自定义范围与口径详见 references/report-guide.md「AI 直接生成图表」章节; - 通用规则与各接口模板详见 references/report-guide.md;
- 表格保留
docId便于追问详情;金额统一"万元"; - 字段口径红线:截止时间兜底顺序为
timeBidClose(报价截止)→timeRegistrationEnd(报名截止)→timePublicityEnd(公示至),表格列标注对应口径、公示至 ≠ 报价截止;预算/中标/项目总金额分开标注;中标类展示中标人(含二三名候选人);城市"未知"用区县兜底;公告类型归类以docChannel/bidWay为准(详见 report-guide 通用规则 6); - 参数先校验:
prov/cities/bidWay先与 filters 枚举比对,非法值会静默返回空,勿误报"该地区无标讯";同一docId多条为同一项目多成交人,统计条数按docId去重; - 报告末尾固定注明
数据来源:{webSourceName}; - 结尾输出 2-3 条结构化洞察(趋势判断/机会识别/风险提示,每条按「现象→归因→行动」展开)。
示例(search 报告)
以下为示意数据(非真实),演示 search 报告的标准写法:表格(覆盖各类字段口径)→ 图表 → 洞察。
| # | 标题 | 招标人 | 省份 | 城市 | 类型 | 预算(万) | 中标(万) | 中标人 | 截止时间 | |---|---|---|---|---|---|---|---|---|---| | 1 | 广东省医疗设备采购项目公开招标公告 | 广州市第一人民医院 | 广东 | 广州 | 招标公告 | 168.5 | - | - | 报价截止 2026-08-30 | | 2 | 深圳市医疗信息化改造项目中标候选人公示 | 深圳市卫生健康委 | 广东 | 深圳 | 候选人公示 | 520.0 | 480.2 | 华信科技(二名 中软创新 465.0、三名 南方软件 458.6) | 公示至 08-20 | | 3 | 佛山市禅城区智慧停车系统采购项目 | 禅城区交通运输局 | 广东 | 禅城区 | 合同公告 | - | 39.4 | 数字市政(同项目多成交人) | 公示至 08-18 | | 4 | 东莞市应急指挥平台运维服务竞争性磋商公告 | 东莞市应急管理局 | 广东 | 东莞 | 竞争性磋商 | 96.0 | - | - | 报名截止 08-25 |
字段口径演示:时间列区分「报价截止/公示至/报名截止」;第 2 条展示候选人二三名;第 3 条城市未知用区县兜底、
docId多条合并为一行标注"同项目多成交人";第 4 条类型按bidWay归为"竞争性磋商"而非"公开招标"。
数据来源:广东省公共资源交易网等。
pie showData
title 最近7天广东医疗设备招标-地域分布
"广州" : 45
"深圳" : 32
"东莞" : 18
"其他" : 12
预算区间分布(万元,按固定档位排序)
```mermaid
pie showData
title 广东医疗设备近7天预算区间分布
"0-50万" : 8
"50-200万" : 42
"200-500万" : 17
"500万以上" : 5
洞察(每条按「现象 → 归因 → 行动」):
- 趋势判断:货物类占比 76%、预算集中于 50-200 万区间(42/72),说明当前采购以中小额设备更新为主,市场结构稳定;
- 机会识别:第 2 条预算 520 万、公示期至 08-20 仍有响应窗口,为同批价值最高的可介入商机,建议优先配置资源跟进;
- 风险提示:第 4 条报名截止 08-25 且属竞争性磋商,竞争门槛低、中标价易被压缩,需预先评估毛利空间与资质匹配。
术语
行业分类、招标方式、评标办法等枚举以 filters 实时返回为准;省份用标准省名(如"广东""江苏")。详见 references/domain-terms.md。
常见问题(FAQ)
高频疑问速查(key 配置、空结果排查、金额换算、接口结构差异、竞品指数异常等)见 references/faq.md。核心要点:
- 空结果先查参数:
prov/cities/bidWay非法值被静默忽略返回空,先与filters比对再下结论,勿误报"该地区无标讯"; - 一标多包:同一
docId多条 = 同一项目多成交人,统计按docId去重,表格合并标注"同项目多成交人",不得按标题去重; - 金额为元字符串:报告统一换算万元,区分预算/中标/项目总金额三口径,空字符串表示未公示;
- recommend 返回数组:
data直接为评分降序数组(含matchScore),与 search 的{list,total}、stats/filters 的对象结构不同; - 竞品指数异常:
hhi/top3Share实测可能为 1 或 0,结论以level/levelText为准,份额按topCompetitors[].wins占比计算(分母为 Top 企业 wins 合计,勿用total/competitorCount)。
边界与安全
- API Key 属于敏感凭据,仅在调用接口时由客户端自动读取并临时使用,模型本身不得触碰、读取或回显明文;
- 任何时候都不得在聊天输出、代码、文档、日志、截图、表格、URL、报错信息中展示 key 的明文或任何片段(含前几位);
- 不主动解释 key 的生成方式、存储位置或校验逻辑;用户索要 key 时,引导其查看本机
scripts/.key文件或联系技能提供方,而非告知内容; - 调用失败若与 key 相关,只返回面向用户的通用提示(如"key 无效/过期/被限流"),不打印 key 值、参数或请求 URL 中的敏感信息;
- 用户明确展示其 key 用于配置时(如执行
config-key.js),不将 key 内容复述进对话,确认结果只描述成败。
微信扫一扫