# 投标书智能生成系统 — 团队分工与技术方案 ## 一、团队组成与职责 ### 1. 产品经理(PM) **职责:** - 理解招标业务需求,编写产品需求文档(PRD) - 与用户(投标公司)沟通,明确信息补充清单 - 评审技术方案是否满足业务要求 - 定义验收标准,确认最终输出效果 **关键产出:** - 投标公司信息收集表(JSON Schema) - 投标文件目录结构规范 - 产品验收清单 --- ### 2. 技术负责人(Tech Lead) **职责:** - 拆分产品需求为可执行的技术模块 - 编写总体技术方案和各模块接口定义 - 整合各独立模块为完整 pipeline - 把控技术架构的扩展性(多标项、多招标类型) **关键产出:** - 系统技术架构图 - 模块接口定义(API / 数据流) - Pipeline 编排脚本 --- ### 3. 算法开发人员(Algorithm Developer) **职责:** - 实现各算法模块: - 招标文件解析模块(PDF 文本/表格提取) - 投标文件结构生成模块(LLM 分析 + 大纲构建) - 公司信息填充模块(LLM + 模板引擎) - 评分标准一致性校验模块 - 使用 DeepSeek API 进行信息分析和填充 - 确保输出内容准确、格式规范 **关键产出:** - `pdf_table_to_docx/` — PDF 表格提取与还原 - `llm/llm_utils.py` — LLM 调用封装(分析、抽取、填充) - 投标文件生成 Pipeline 各阶段脚本 --- ### 4. 测试人员(Tester) **职责:** - 根据产品需求和招标文件要求编制测试用例 - 功能测试:验证生成的投标文件是否包含所有必需内容 - 一致性测试:附件编号与正文引用是否一致 - 表格完整性测试:招标文件表格是否原样呈现在投标文件中 - 多标项测试:不同包件组合的生成逻辑 **关键产出:** - 测试用例集 - 缺陷报告 - 验收测试报告 --- ## 二、整体 Pipeline 设计 ``` Phase 1: 招标文件解析 │ ├── PDF 文本提取 (PyMuPDF) ├── PDF 表格提取 → docx 表格 (pdf_table_to_docx) └── 结构化存储 (JSON) Phase 2: 投标大纲构建 │ ├── LLM 分析招标文件需求 ├── 参考历史投标文件结构 └── 输出:投标目录大纲 + 需补充信息清单 Phase 3: 公司信息收集 │ ├── 根据 Phase 2 的信息清单生成 JSON 模板 ├── 投标公司填写/上传材料(文本 + 图片) └── 输出:已填充的 bid_fill_draft.json Phase 4: 内容填充 │ ├── 招标表格原样还原(保留格式、合并单元格等) ├── LLM 填充正文内容(参考历史投标文件) ├── 图片/扫描件嵌入 └── 一致性校验(附件编号、名称对应) Phase 5: 投标文件生成 │ ├── JSON → DOCX 渲染 ├── 表格、图片、签章占位符还原 └── 输出:最终投标文件.docx Phase 6: 测试验证 │ ├── 表格完整性检查 ├── 附件引用一致性检查 ├── 评分标准覆盖检查 └── 输出:测试报告 ``` --- ## 三、第一优先级:信息清单生成已完成 基于本次分析,已生成 `output/company_info_template.json`,包含: | 分类 | 字段数 | 必需字段 | 支持图片 | |------|--------|----------|----------| | 公司基本信息 | 20 | 8 | 0 | | 法定代表人及授权委托人信息 | 14 | 11 | 7 | | 资质证书 | 9 | 8 | 9 | | 财务状况 | 4 | 4 | 4 | | 企业声明函 | 5 | 4 | 5 | | 团队人员信息 | 16 | 13 | 2 | | 历史业绩 | 4 | 3 | 3 | | 报价信息 | 7 | 6 | 5 | | 设备资源 | 2 | 1 | 1 | | 服务方案参考 | 3 | 0 | 1 | | **合计** | **84** | **58** | **35** | ### 特别优化:授权委托人信息 - 法定代表人信息独立为子分类(6个字段) - **授权委托人信息独立为子分类**(6个字段,含身份证正反面照片)—— 这是大多数投标实际使用的经办人 - **授权委托书本身作为独立子分类**(签字盖章扫描件 + 文字内容)—— 投标无效的关键项,不可遗漏 --- ## 四、关键设计决策 ### 1. 表格处理策略 - 招标文件中的表格,通过 `pdf_table_to_docx` 提取为 docx 格式 - 在投标文件中**原样保留**表格结构(列数、合并单元格、表头) - 投标公司仅填充表格数据内容,不改变表格结构 ### 2. 附件编号一致性 - 维护一个 `attachment_registry`(附件注册表) - 正文中引用附件时,自动从注册表中获取编号和名称 - 输出前自动校验:无错引、漏引 ### 3. 多标项支持 - 招标文件中多个标项 → 在投标文件中分别处理 - 根据招标文件判断是否可全做/只能承接一个 - 支持包件间内容复用的同时保持独立性 ### 4. 图片存储方案 - JSON 中支持 `image_path`(本地路径)或 `image_base64`(Base64 编码) - 建议小图片(身份证、证书)用 base64 嵌入 JSON - 大图片(合同扫描件)用文件路径引用 ### 5. LLM 提示词策略 - `llm_utils.py` 封装了三种场景:analyze / extract / fill - 不同功能使用不同 system prompt 和 temperature 参数 - 结构化输出统一使用 `response_format={"type": "json_object"}`