# tendercheck **Repository Path**: xia-you123/tendercheck ## Basic Information - **Project Name**: tendercheck - **Description**: Bid Document Inspection Assistant - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-09-03 - **Last Updated**: 2026-09-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 标书检查助手 TenderCheck 基于 DeepAgent + LLM 的标书审查智能体(任意 OpenAI 兼容模型可配,默认智谱 GLM-5.3)。 上传标书(文字版 PDF / Word, 支持同一套多个分册),自动从五个维度并行审查,输出结构化错误清单 (Markdown 报告)。 双模式:**投标文件检查**面向评标人员,审查投标人提交的投标文件(证件有效期/ 算术错误/前后矛盾等);**招标文件检查**面向招标方的合规自查,审查招标方发布的 招标文件(排斥性条款/评分办法自洽/模板残留等)。 投标文件检查可**选提供对照招标文件**(页面折叠上传区或 CLI `--ref`)。错误分两类: **绝对错误**在投标文件内部即可判定(证件过期、算术错误、前后矛盾等); **相对错误**须对照招标文件才能发现(资质不符、漏交证明、未响应★实质性条款、 保证金与服务期不符等)。提供对照后,各审查维度会额外查阅招标文件逐项核对, 显著提升查全率。 核心设计目标是**查全**:宁可多报、不能漏报。 ## 功能特性 - **双模式**:投标文件检查(评标视角)/ 招标文件检查(合规自查视角), 页面单选或 CLI `--mode` 切换,各用一套独立的五维度提示词 - **五维度并行审查(投标模式)**:资格性(证件有效期/授权书/缺证明)、 符合性(签章/目录完整性)、算术核对(单价乘积/合计/大小写金额)、 前后一致性(多处报价/工期交叉比对)、技术响应(缺项/方案矛盾/残留其他公司名称的围串标痕迹) - **五维度并行审查(招标模式)**:完整性(六大件齐备)、合规设置(注册资金门槛/ 指定品牌等排斥性条款)、评标办法(分值合计/公式与细则自洽)、前后一致性 (前附表与正文/日期逻辑链交叉比对)、文字规范(编号引用/称谓/模板残留) - **多文件输入**:一套分册合并统一检查,报告定位到 文件 + 页码 + 章节 - **每条问题带证据**:问题描述、原文引用、修改建议、严重度(高/中/低) - **过程可视化**:检查进行中实时显示每个维度的审查动态 - **检查后追问**:基于检查结果和原文回答追问(如"第 12 页金额问题具体哪两个数对不上") - **单用户登录门禁**:凭据走 login.env 配置文件 - 防空转保护:维度结果不完整时报告顶部出显式警告,不静默给出看似正常的空报告 ## 架构 ``` 解析层 doc_parser:PDF/Word -> 带页码章节的文本块(表格独立成块,无结构文档滑窗重叠切分) 工具层 DocTools:list_outline / read_blocks / search_text(子 Agent 按需读取内存块) 执行层 agent:ThreadPoolExecutor 并行五个维度单 Agent(代码级编排,JSON 不合规自动重试) 汇总层 report:纯代码合并去重排序,渲染 Markdown(不经过模型) 入口:cli.py(命令行)/ app.py(Streamlit 页面,共享 core) ``` ## 快速开始 环境要求:Python 3.10+,模型 API Key(任意 OpenAI 兼容服务均可) ```bash pip install -r requirements.txt # 模型四变量平级配置:key 必填;模型/端点/特有参数不设走默认(智谱 GLM-5.3,Coding Plan 订阅端点) export BIDCHECK_API_KEY=你的key # Windows: setx BIDCHECK_API_KEY "你的key" # export BIDCHECK_MODEL=glm-5.3 # 可选:换模型名 # export BIDCHECK_BASE_URL=https://open.bigmodel.cn/api/coding/paas/v4 # 可选:换 OpenAI 兼容端点 # export BIDCHECK_EXTRA_BODY={"enable_thinking": false} # 可选:模型特有参数(JSON 对象) # 换 DeepSeek:MODEL=deepseek-v4-flash + BASE_URL=https://api.deepseek.com + 对应 key # 换阿里云百炼 qwen3.8-27b:MODEL=qwen3.8-27b + BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1 # + 百炼 key + EXTRA_BODY={"enable_thinking": false}(关思考必配:不关输出翻数倍且结果可能为空) # 创建登录凭据(仅页面需要,明文文件,勿提交) cat > login.env <=3/4 且绝对错误 >=1/2,验证对照审查增量) python -m pytest tests/test_e2e.py -v -s ``` 样例文档由生成脚本产出,10 个埋错覆盖对应模式全部五个维度, EXPECTED 清单即验收基准: - `samples/make_sample_docx.py`(投标,`EXPECTED_FINDINGS`) - `samples/make_tender_sample_docx.py`(招标,`EXPECTED_TENDER_FINDINGS`) - `samples/make_paired_bid_sample.py`(投标+对照,`ABSOLUTE_FINDINGS` / `RELATIVE_FINDINGS`, 与招标样例同一虚构项目,供对照审查验收) ## 部署(Docker) `deploy/` 提供 Dockerfile 与 docker-compose:单容器、restart: always、 API Key 与登录凭据经环境文件注入(不进镜像不进仓库)。 ```bash # 服务器上 cd /opt/bidcheck cat > .env <