← 返回
未分类

投标宝

招标文件智能解析与投标辅助工具。上传招标文件(PDF/Word)后自动结构化解析,生成Word分析报告和交互式HTML投标辅助工作台网页。触发场景:用户上传招标文件要求"解析招标文件"、"生成投标工作台"、"投标SOP"、"标书辅助"、"招标文件分析",或要求对招标文件进行全面投标流程管理时使用。
招标文件智能解析与投标辅助工具。上传招标文件(PDF/Word)后自动结构化解析,生成Word分析报告和交互式HTML投标辅助工作台网页。触发场景:用户上传招标文件要求"解析招标文件"、"生成投标工作台"、"投标SOP"、"标书辅助"、"招标文件分析",或要求对招标文件进行全面投标流程管理时使用。
北海BH
未分类 community v1.0.4 5 版本 99899.2 Key: 无需
★ 2
Stars
📥 951
下载
💾 0
安装
5
版本
#latest

概述

招标文件解析与投标辅助

上传招标文件后,输出两份交付物:

  1. Word分析报告(.docx):结构化解析结果 + 投标SOP + 评分策略
  2. HTML投标工作台(单文件网页):10个交互页面,支持复选框追踪、主题切换、保存导出

工作流

Step 1:提取文本

  • PDF文件:用 python -X utf8 + pdfplumber 提取全文,保存为 .temp/bid_full_text.txt
  • Word文件:用 docx skill 提取文本
  • 扫描件PDF:用 PaddleOCR 或在线OCR工具兜底
  • 超过50页时优先提取关键章节:评标办法、采购需求、投标人须知、合同条款

Step 2:结构化解析

从文本中提取以下数据,完整字段映射参见 references/parsing-guide.md

必须提取的核心数据(11组):

变量名内容示例
:---:---:---
PROJECT项目基本信息对象{name, bidNo, purchaser, budget, deadline, ...}
EVAL_SCORES评标评分项数组[{category, item, score, detail, target}]
STRATEGIES每项评分的策略建议[{item, tips[]}]
TECH_REQS技术功能要求[{module, item, detail, importance}]
HARDWARE_REQS硬件参数要求[{name, qty, params}]
BIZ_REQS商务条款[{name, value}]
DARK_MARK_RULES暗标格式规范[{item, rule, consequence}]
RISKS风险清单[{type, desc, level, suggestion}]
QUALIFICATIONS资质材料清单[{name, necessity, deadline}]
PERSONNEL人员配置要求[{role, requirements, certs, score}]
SOP_PHASES投标SOP阶段[{name, period, color, tasks[]}]

SOP生成规则:

  • 5个阶段:投标启动与研读(Day1-2) → 商务资信准备(Day3-7) → 技术方案编写(Day3-10) → 商务文件编制(Day8-12) → 审核校验与封装上传(Day13-14)
  • 每阶段包含具体任务,每任务含 {id, name, detail, responsible, deadline, necessity, priority}
  • deadline 根据开标日期倒推
  • 评分策略根据评标办法生成针对性建议

Step 3:生成Word分析报告

用 docx skill 生成 .docx 文件,保存到工作空间根目录,文件名:【{采购人简称}】招标文件解析报告.docx

报告结构(参考parsing-guide.md中的9张表):

  1. 项目概述(元数据+评分构成+关键时间节点)
  2. 投标SOP(5阶段×N任务,含负责人和截止日)
  3. 评分策略(每项评分的目标得分+具体策略)
  4. 技术要求分析
  5. 商务要求分析
  6. 暗标格式规范检查表
  7. 风险清单
  8. 资质准备清单
  9. 人员配置与证书要求

Step 4:生成HTML投标工作台

  1. 复制模板 assets/workbench-template.html 到工作空间
  2. 搜索并替换模板中的11组JS常量数据
  3. 修改 </code> 标签中的项目名称</li><li><strong>必须执行JS语法验证(见下方)</strong></li><li>通过HTTP服务器打开验证</li></ol><p><strong>模板文件位置:</strong> <code>~/.config/teleai-super-agent/skills/bid-analysis/assets/workbench-template.html</code></p><p><strong>数据替换方式:</strong> 在模板中搜索 <code>/<em> === 项目数据 === </em>/</code> 注释标记,将对应JS常量替换为Step 2解析的实际数据。变量名和数据结构必须保持一致。</p><p><strong>【强制】数据替换后JS语法验证:</strong></p><p>替换完成后,<strong>必须</strong>用Node.js检查JS语法,确认无错误后再打开浏览器。语法错误会导致整个脚本块不执行,页面显示为空白(侧边栏有但内容区无数据)。</p><p>验证命令(Python提取JS后交给Node检查):</p><pre><code>import re, subprocess with open(html_path,'r',encoding='utf-8') as f: content = f.read() m = re.search(r'<script[^>]*>(.*?)</script>', content, re.DOTALL) js = m.group(1) with open('.temp/check_js.js','w',encoding='utf-8') as f: f.write(js) result = subprocess.run(['node','--check','.temp/check_js.js'], capture_output=True, text=True) if result.returncode != 0: print('SYNTAX ERROR:', result.stderr) # 必须修复后才能继续 </code></pre><p><strong>常见替换陷阱(踩坑记录):</strong></p><ul><li>模板原有占位数据的 <code>];</code> 或 <code>}</code> 在替换时未完全删除,导致多余的闭合符号残留</li><li>数组/对象内部字符串包含 <code>[</code> 或 <code>]</code>(如正则表达式、文档示例),会影响括号统计但Node <code>--check</code> 能准确定位真正的语法错误</li><li>替换时必须完整替换旧常量声明(从 <code>const XXX =</code> 到对应的闭合 <code>];</code> 或 <code>};</code>),不能只替换值部分而保留旧的闭合符号</li></ul><h3>Step 5:验证交付</h3><ul><li><strong>前置条件:Step 4的JS语法验证必须通过</strong>(<code>node --check</code> 返回码为0)</li><li>启动HTTP服务器:<code>Start-Process python -ArgumentList "-m","http.server","8899","--directory","工作空间路径"</code></li><li>用浏览器打开HTML文件,逐页检查10个页面渲染</li><li>验证交互功能:阶段折叠、策略展开、复选框、SOP保存、主题切换</li><li>若页面空白(侧边栏有但内容区无数据),优先用Node.js语法检查排查JS错误</li></ul><h2>HTML网页功能清单</h2><table><thead><tr><th>页面</th><th>功能</th><th>交互</th></tr></thead><tbody><tr><td>:---</td><td>:---</td><td>:---</td></tr><tr><td>项目概览</td><td>4卡横铺(限价/截止/质保/评标)+ 项目信息 + 评分构成 + 进度总览</td><td>无</td></tr><tr><td>投标SOP</td><td>5阶段折叠 + 44项复选框 + 到期提醒 + 保存按钮</td><td>复选框持久化、阶段折叠、保存含时间戳文件名</td></tr><tr><td>评标分析</td><td>可交互环状图 + 评分策略 + 得分汇总表</td><td>Hover高亮、点击切换右侧分值构成、策略展开折叠</td></tr><tr><td>技术要求</td><td>技术参数表 + 搜索筛选 + 硬件要求</td><td>搜索过滤</td></tr><tr><td>商务要求</td><td>商务条款信息卡</td><td>无</td></tr><tr><td>暗标规范</td><td>13条格式规则检查表</td><td>复选框持久化</td></tr><tr><td>风险分析</td><td>风险卡片 + 筛选器</td><td>状态切换(待处理/处理中/已解决)</td></tr><tr><td>资质准备</td><td>资质清单表格 + 筛选器</td><td>复选框持久化</td></tr><tr><td>人员配置</td><td>人员资质卡片</td><td>无</td></tr><tr><td>商务报价</td><td>4策略卡片 + 报价计算器 + 基准价模拟器</td><td>计算交互</td></tr></tbody></table><h2>交互设计规范</h2><ul><li><strong>事件绑定</strong>:用 <code>onclick="全局函数()"</code> 而非 <code>addEventListener</code>(避免Playwright兼容问题)</li><li><strong>数据持久化</strong>:localStorage,key = <code>bidding_portal_state</code></li><li><strong>SOP保存</strong>:离开SOP页面时若有修改弹窗提醒;保存文件名格式 <code>大模型智能融合平台建设项目_投标辅助工作台_20260430_143025.html</code></li><li><strong>主题切换</strong>:<code>[data-theme="dark"]</code> + CSS变量</li><li><strong>分页</strong>:数据列表必须配分页组件</li><li><strong>金额</strong>:万元,取整,千分位分隔</li></ul><h2>踩坑记录</h2><table><thead><tr><th>问题</th><th>原因</th><th>防范措施</th></tr></thead><tbody><tr><td>:---</td><td>:---</td><td>:---</td></tr><tr><td>页面空白,侧边栏有但内容区无数据</td><td>数据替换时残留多余的 <code>];</code> 或 <code>}</code>,导致JS语法错误,整个<code><script></code>块不执行</td><td>Step 4替换后<strong>必须</strong>运行 <code>node --check</code> 验证语法;替换旧常量时完整删除旧声明(含闭合符号)</td></tr><tr><td>残留代码覆盖导致回退</td><td>函数替换时未完整删除旧版本,残留代码导致语法错误</td><td>函数替换使用唯一上下文(前后各多取几行)确保精确匹配</td></tr><tr><td><code>querySelector</code>返回null</td><td>DOM元素ID与实际不匹配</td><td>渲染函数中ID必须与HTML模板一致,全局搜索确认</td></tr><tr><td>setTimeout延迟注入不可靠</td><td><code>renderAll()</code>在数据注入前执行,渲染为空状态</td><td>数据在变量声明处直接赋值,不使用setTimeout</td></tr><tr><td>概览页评分构成三卡片分值之和≠100分</td><td>模板<code>renderOverview()</code>函数中硬编码了上一个项目的分值(如商务25、暗标65),JS常量声明区域替换不会覆盖这些渲染函数内的写死数字</td><td>Step 4替换数据后,<strong>必须全局搜索模板中所有硬编码的旧项目分值</strong>(如<code>25</code>分、<code>65</code>分、<code>暗标</code>、<code>明标</code>等关键词),改为从<code>EVAL_SCORES</code>按<code>category</code>动态汇总计算;侧边栏项目名(<code>sidebar-subtitle</code>)、概览页副标题(<code>page-desc</code>)等处的旧项目名/编号也需一并替换</td></tr><tr><td>项目概览/评标分析页面点击无反应(侧边栏可见但内容区空白)</td><td><code>renderOverview()</code>和<code>renderEval()</code>函数依赖<code>CAT_KEYS</code>/<code>CAT_SCORES</code>两个全局变量(用于动态汇总各category分值),但这两个变量在模板中从未定义,导致<code>ReferenceError</code>使渲染函数崩溃,<code>content.innerHTML</code>未赋值</td><td><strong>已在模板中修复</strong>:在<code>EVAL_SCORES</code>声明结束后、<code>STRATEGIES</code>声明之前插入<code>CAT_KEYS</code>/<code>CAT_SCORES</code>动态计算代码(遍历<code>EVAL_SCORES</code>按<code>category</code>分组求和)。同时将<code>renderEval()</code>中硬编码的描述文字和<code>renderBreakdown()</code>中硬编码的分值改为从<code>CAT_KEYS</code>/<code>CAT_SCORES</code>动态读取。<strong>后续生成工作台时无需额外处理此问题</strong></td></tr></tbody></table><h2>资源文件</h2><ul><li><code>assets/workbench-template.html</code>:完整HTML模板(含所有10个页面、CSS主题、JS交互逻辑),约2800行</li><li><code>references/parsing-guide.md</code>:招标文件解析字段映射指南(11组数据结构定义 + 解析要点 + 9张标准产出表)</li></ul></div> </div> </div> <div id="tab-versions" class="detail-content"> <div class="detail-section"> <h2>版本历史</h2> <p style="margin-bottom:12px;font-size:14px;color:#94a3b8;">共 5 个版本</p> <ul class="version-list"> <li> <div> <span class="version-tag">v1.0.4</span> <span style="font-size:13px;color:#64748b;margin-left:8px;">1、解决了html文件中容易出现的页面无法跳转bug;</span> <span style="font-size:11px;color:#5b6abf;margin-left:8px;background:#eef0ff;padding:1px 8px;border-radius:10px;">当前</span> </div> <div style="font-size:12px;color:#94a3b8;"> 2026-05-21 15:01 安全 安全 </div> </li> <li> <div> <span class="version-tag">v1.0.3</span> <span style="font-size:13px;color:#64748b;margin-left:8px;">1、修复了网页中评分分布错误的bug;</span> </div> <div style="font-size:12px;color:#94a3b8;"> 2026-05-06 10:04 安全 安全 </div> </li> <li> <div> <span class="version-tag">v1.0.2</span> <span style="font-size:13px;color:#64748b;margin-left:8px;">Initial release</span> </div> <div style="font-size:12px;color:#94a3b8;"> 2026-04-30 17:57 安全 安全 </div> </li> <li> <div> <span class="version-tag">v1.0.1</span> <span style="font-size:13px;color:#64748b;margin-left:8px;">1、网页效果大升级,更加清晰明了; 2、支持解析结果word格式导出; 3、招标文件智能分析程度大幅提升,增加了评标分析、SOP投标方案; 4、增加退出保存功能,保障用户操作留痕;</span> </div> <div style="font-size:12px;color:#94a3b8;"> 2026-04-30 17:40 安全 安全 </div> </li> <li> <div> <span class="version-tag">v1.0.0</span> <span style="font-size:13px;color:#64748b;margin-left:8px;">Initial release</span> </div> <div style="font-size:12px;color:#94a3b8;"> 2026-04-29 19:09 安全 </div> </li> </ul> </div> </div> <div id="tab-security" class="detail-content"> <div class="detail-section"> <h2>安全检测</h2> <div class="sec-grid"> <div class="sec-card"> <h4>腾讯云安全 (Keen)</h4> <div class="sec-status sec-safe"> 安全,无风险 </div> <a href="https://tix.qq.com/search/skill?keyword=21c9046fc3878e78b7267b95e00c4180" target="_blank">查看报告</a> </div> <div class="sec-card"> <h4>腾讯云安全 (Sanbu)</h4> <div class="sec-status sec-safe"> 安全,无风险 </div> <a href="https://static.cloudsec.tencent.com/html-report-v2/2026/05/26/424604_6d2034803542f378294c0b85d678a052.html?q-sign-algorithm=sha1&q-ak=AKID8JMG1bzBC1dz96qNhssfFftujT1NCoFi&q-sign-time=1782272005%3B1813808005&q-key-time=1782272005%3B1813808005&q-header-list=host&q-url-param-list=&q-signature=de018cdd97aa2a01454c0582cd2c191ba75ff7d5" target="_blank">查看报告</a> </div> </div> </div> </div> <!-- Recommended Skills --> <div style="margin-top:24px;"> <h2 style="font-size:18px;font-weight:600;margin-bottom:16px;">🔗 相关推荐</h2> <div class="rec-grid"> <div class="rec-card"> <span class="badge-cat" style="margin-bottom:8px;display:inline-block;">business-ops</span> <h3><a href="/s/discord">Discord</a></h3> <div class="rec-owner">steipete</div> <div class="rec-desc">当需要通过discord工具控制Discord时使用:发送消息、添加反应、发布或上传表情包、上传表情、创建投票、管理帖子/置顶/搜索、获取权限或成员/角色/频道信息,或在Discord私信或频道中处理管理操作。</div> <div class="rec-stats"> <span style="color:#f39c12;">★ 78</span> <span style="color:#5b6abf;">📥 38,064</span> </div> </div> <div class="rec-card"> <span class="badge-cat" style="margin-bottom:8px;display:inline-block;">business-ops</span> <h3><a href="/s/trello">Trello</a></h3> <div class="rec-owner">steipete</div> <div class="rec-desc">使用 Trello REST API 管理看板、列表和卡片</div> <div class="rec-stats"> <span style="color:#f39c12;">★ 162</span> <span style="color:#5b6abf;">📥 41,305</span> </div> </div> <div class="rec-card"> <span class="badge-cat" style="margin-bottom:8px;display:inline-block;">life-service</span> <h3><a href="/s/job-hunter-new1">Offer来</a></h3> <div class="rec-owner">user_2591bca4</div> <div class="rec-desc">智能求职助手,专注于AI领域中的产品经理、解决方案岗位。支持上传简历解析、多渠道岗位搜索、智能匹配评分、生成交互式岗位看板、定时每日搜索。</div> <div class="rec-stats"> <span style="color:#f39c12;">★ 0</span> <span style="color:#5b6abf;">📥 180</span> </div> </div> </div> </div> </div> <script> document.addEventListener('DOMContentLoaded',function(){ document.querySelectorAll('.detail-tab').forEach(function(btn){ btn.addEventListener('click',function(e){ var tab = this.getAttribute('data-tab'); document.querySelectorAll('.detail-tab').forEach(function(b){b.classList.remove('active')}); document.querySelectorAll('.detail-content').forEach(function(c){c.classList.remove('active')}); this.classList.add('active'); var el = document.getElementById('tab-'+tab); if(el) el.classList.add('active'); }); }); }); </script> <div class="footer"> <p>Skill工具集 © 2026</p> </div></body> </html>