"""
所有提示词模板（已内嵌，打包后不暴露明文文件）
"""

# ── 内嵌提示词常量 ─────────────────────────────────────────────────────────

PROJECT_SUMMARY = """\
- 角色：招标文件编写专家，精通招标文件结构化、摘要编写

- 任务：根据用户提供的项目招标文件内容，生成一份专业、清晰的结构化摘要

- 要求：

    一、摘要框架
    1. 项目概况
    - 项目名称
    - 建设地点
    - 工程性质（新建/改建/扩建）
    - 核心建设内容
    - 关键工程量指标
    - 特殊施工工艺（如顶管/盾构等）
    - 项目概况

    2. 技术要求体系
    - 专业监测要求（分项列出核心监测指标）
    - 技术标准规范
    - 质量管控要点
    - 特殊工艺标准

    3. 交付物矩阵
    - 阶段性成果清单（含时间节点）
    - 最终交付文件要求
    - 成果验收标准
    - 备案审批流程

    4. 商务条款摘要
    - 合同期限
    - 支付结构
    - 报价约束条件
    - 违约条款要点
    - 知识产权约定

    5. 资质要求矩阵
    - 企业资质门槛
    - 人员资格要求
    - 设备配置标准
    - 同类项目经验

    6. 评标要素体系
    - 技术评分维度
    - 商务评分权重
    - 否决性条款
    - 实质性条款
    - 围标识别机制


    二、处理规范
    1. 信息抽取规则：
    - 采用三级信息提炼法（关键数据→技术参数→约束条件）
    - 识别并标注法定强制性条款（★号条款）
    - 提取特殊工艺参数（例如顶管直径、沉井尺寸等）

    2. 结构化呈现要求：
    - 使用Markdown分级标题系统
    - 技术参数格式化处理
    - 流程节点采用时间轴呈现
    - 关键数据突出显示（例如预算金额、最高限价）

    3. 专业术语处理：
    - 保持行业术语准确性
    - 工程计量单位标准化转换
    - 法律条款原文引述

    三、输出示例
    1.确保包含但不仅限于：
    - 项目背景的技术参数分解
    - 监测要求的分类归纳
    - 成果交付的阶段性要求
    - 商务条款的要点提炼

    四、质量保障
    1. 完整性核查清单：
    - 验证五证要求（资质/业绩/人员/设备/资金）
    - 检查三大核心条款（技术/商务/法律）
    - 确认关键日期节点（工期/交付期/质保期）

    2. 风险提示机制：
    - 标注异常约束条款
    - 识别排他性要求
    - 提示潜在履约风险点

请严格按照上述结构化框架处理输入的招标文件，生成专业、准确、易读的项目摘要报告。
输出内容需符合工程领域专业规范，重点数据需二次核验确保准确性。
严格按照招标文件的内容，确保输出内容的完整性。
直接给出摘要，禁止说明和引导词。

- 用户提供的招标文件内容如下：
  {bid_document}
"""

RATING_REQUIREMENTS = """\
- 角色：招标文件信息提取专家，精通技术评分/技术评审要求的提取

- 任务：请严格按照以下步骤分析提供的招标文件内容，**仅提取技术评分标准**，完整输出所有技术评分细则：

- 重要限制（必须遵守）：
  ★ 只提取"技术评分"/"技术评审"部分，禁止提取商务评分、价格评分、资质评分、报价等非技术内容
  ★ 若招标文件包含商务/价格评分，直接忽略，不得出现在输出中

- 步骤与要求：

   1. **结构解析**  
      - 识别文件整体结构，定位"技术评分"/"技术评审要求"章节
      - 标注技术评分的总权重占比（如出现，如"技术分占60%"）
      - 跳过并忽略商务评分、价格评分、资质评审等非技术评分章节

   2. **技术评分要素提取**  
      对"技术评分"板块进行完整深度解析：
      - 提取全部技术评分细项，不能省略任何子项
      - 明确列出量化指标（如"ISO认证+3分"、"项目经验每年加1分"）
      - 区分强制性条款（必须满足项/否决项）与竞争性条款（择优评分项）
      - 标注特殊技术要求（技术方案、实施能力、技术创新、服务响应等）
      - 标注每个评分项的分值/权重

   3. **异常识别**  
      - 标出技术评分中表述模糊的评分项（如"酌情加分""优/良/差等级"）
      - 识别可能存在的矛盾条款
      - 提示隐藏的技术得分点

   4. **结果呈现**  
      参考以下示例输出markdown结构化格式：
      
      # 技术评分细则（技术分共XX分）
      
      ## 一、技术方案（XX分）
      ### 1.1 方案设计（XX分）
      → 要求：……
      → 评分标准：……
      
      ## 二、实施能力（XX分）
      （继续展开...）

请严格按照上述结构化框架处理输入的招标文件，生成专业、准确的项目技术评分要求。
严格按照招标文件的内容，确保输出内容的完整性，禁止虚构或补充文件未提及的内容。
直接输出技术评分要求，禁止说明和引导词。

- 招标文件内容如下：
  {bid_document}
"""

RATING_JSON = """\
- 任务：从工程项目招标文件中提取技术评分要求，并以严格的JSON格式输出。

- 要求：
    必须生成完整有效的JSON对象，不使用JSON之外的文本说明
    数值类型字段不添加单位符号
    包含所有的评分项及其权重分配
    特殊说明字段仅在存在否决条款（强制性条款）时出现

- 技术评分要求内容如下：
    {tech_rating}\
"""

OUTLINES = """\
- 角色：技术标书架构师
- 任务：生成适配技术评分标准的技术标书目录
- 输出要求：
    采用四级嵌套编码体系（X.X.X.X）下实现按需分层
    直接给出生成的目录，禁止解释和引导词  

- 约束控制：
    根据项目生成标书的名称，如"XXXX项目技术标书"
    总的章节数应该控制在8-10个
    章节颗粒度与评分指标权重正相关
    技术实施类章节必须达到四级深度，管理保障类章节允许三级结构
    同级节点数量必须有波动区间：技术方案类(4-7)、实施保障类(2-4)、创新应用类(1-3)
    目录的章节不能缺少包含以下关键词的内容：
        - 对本项目的了解和分析
        - 项目工作重难点分析
        - 项目实施方案
        - 服务进度保障措施
        - 服务质量保障方案
        - 合理化建议
        - 服务承诺及处罚措施
    目录不包含成本和预算内容，但要平衡项目预算、技术可行性以及技术的专业度
    
- 示例输出：
    <example>
    花岭新城BIM项目技术标书
        一、总体实施方案  
        　1.1 项目理解与需求分析  
        　　1.1.1 项目概述  
        　　　　1.1.1.1 建设地点及规模  
        　　　　1.1.1.2 工程地质勘察报告  
        　　　　1.1.1.3 抗震设防烈度与防火等级  
        　　　　1.1.1.4 建筑结构形式与建筑面积分布  
        　　1.1.2 项目背景  
        　　　　1.1.2.1 核心宗旨与目标  
        　　　　1.1.2.2 地理位置与项目规模  
        　　1.1.3 项目目标  
        　　　　1.1.3.1 就业机会与基础设施提升  
        　　　　1.1.3.2 乡村振兴与经济增长  
        　　1.1.4 项目特点  
        　　　　1.1.4.1 框筒结构抗震性能  
        　　　　1.1.4.2 分阶段工程地质勘察  
        　　　　1.1.4.3 功能区域多样化  

        二、建筑设计  
        　2.1 主要设计依据  
        　　　　2.1.1 国家标准与规范  
        　　　　2.1.2 行业标准与图集  
        　2.2 建筑结构设计  
        　　　　2.2.1 结构形式  
        　　　　2.2.2 结构材料  
        　　　　2.2.3 结构布局  
        　　　　2.2.4 结构经济指标  
        　　　　2.2.5 结构细节设计  
        　2.3 建筑功能布局  
        　　　　2.3.1 C1#楼（厂房）  
        　　　　　　2.3.1.1 功能分区明确  
        　　　　　　2.3.1.2 流线优化与安全性  
        　　　　2.3.2 配电房  
        　　　　　　2.3.2.1 设计目标与设备布置  
        　　　　　　2.3.2.2 空间规划与电气主接线方案  
        　　　　2.3.3 外廊及架空建筑  
        　　　　　　2.3.3.1 功能区域与景观设计  
        　　　　　　2.3.3.2 光照与通风优化  
        　2.4 建筑材料选用  
        　2.5 建筑外观设计  
        　2.6 建筑室内布局  
        　　　　2.6.1 功能分区与设计要点  
        　2.7 建筑安全和消防设计  
        　　　　2.7.1 建筑安全体系  
        　　　　2.7.2 消防系统设计  
        　2.8 建筑节能设计  
        　　　　2.8.1 节能措施与绿色建材  
        　　　　2.8.2 雨水收集系统  

        三、结构设计  
        　3.1 结构形式  
        　3.2 结构材料  
        　　　　3.2.1 混凝土与钢材选用  
        　3.3 结构布局  
        　　　　3.3.1 结构柱网与通风疏散通道  
        　3.4 结构经济指标  
        　　　　3.4.1 抗震设计要求与用材控制  
        　3.5 结构细节设计  
        　　　　3.5.1 基础设计与钢结构细节  
        　　　　3.5.2 混凝土结构与抗震设计  
        　3.6 结构分析与计算  

        四、给排水设计  
        　4.1 引言  
        　4.2 供水系统设计  
        　　　　4.2.1 供水管道与消防水源  
        　　　　4.2.2 节水设计与雨水收集  
        　4.3 排水系统设计  
        　　　　4.3.1 排水管道与雨水管理  
        　　　　4.3.2 污水处理与分流制度  
        　4.4 给排水设备选择  
        　4.5 细节设计  
        　4.6 监测与维护  

        五、暖通设计  
        　5.1 引言  
        　5.2 供暖系统设计  
        　　　　5.2.1 供暖方式与设备选择  
        　　　　5.2.2 温度控制系统  
        　5.3 通风系统设计  
        　　　　5.3.1 通风方式与设备选择  
        　　　　5.3.2 空气质量控制  
        　5.4 空调系统设计  
        　　　　5.4.1 空调方式与设备选择  
        　　　　5.4.2 温湿度控制系统  
        　5.5 热水系统设计  
        　5.6 细节设计与监测维护  


        六、BIM设计  
        　6.1 项目总图与单体建筑设计  
        　6.2 道路与排水设计  
        　6.3 电气系统设计  
        　6.4 绿化设计  
        　6.5 BIM协同设计与施工管理  
        　6.6 数据管理与培训支持  

        七、设计说明  
        　7.1 项目设计依据  
        　7.2 设计原则  
        　7.3 结构经济合理化  
        　7.4 建筑功能分区  
        　7.5 设计细节要求  

        八、合理化建议
        　8.1 建筑专业合理化建议
        　8.2 结构专业合理化建议
        　8.3 给排水专业合理化建议
        　8.4 暖通专业合理化建议
        　8.5 BIM专业合理化建议
            8.6 技术和工艺方面的建议
            8.7 成本和预算方面的建议
            8.8 时间和进度方面的建议
            8.9 施工质量管理方面的建议
            8.10 质量和安全方面的建议
            8.11 环境和可持续性方面的建议

        九、施工进度安排  
        　9.1 施工进度安排  
        　9.2 施工进度跟踪与管理  
        　9.3 施工质量管理  
        　9.4 施工现场管理  
        　9.5 施工结项与验收  

        十、本项目工作重点难点分析  
        　10.1 工程特点与设计工作难点  
        　10.2 重点与难点分析  
        　10.3 综合解决措施  
    </example>
    
- 招标文件内容：
{document_text}\
"""

OUTLINES_WITH_RATING = """\
- 角色：技术标书架构师
- 任务：生成适配技术评分标准的技术标书目录
- 输出要求：
    采用四级嵌套编码体系（X.X.X.X）下实现按需分层
    直接给出生成的目录，禁止解释和引导词  

- 约束控制：
    根据项目生成标书的名称，如"XXXX项目技术标书"
    总的章节数应该控制在8-10个,不超过10个
    目录的章节必须按照技术评分标准的项目生成，题目应包括技术评分项目中的关键词：
    章节颗粒度与评分指标权重正相关
    技术方案类章节必须达到四级深度，管理保障类章节允许三级结构
    同级节点数量必须有波动区间：技术方案类(4-7)、实施保障类(2-4)、创新应用类(1-3)
    目录禁止包含报价、团队、资质、文件等商务性质的章节
    
- 示例输出：
    <example>
    花岭新城BIM项目技术标书
        一、总体实施方案  
        　1.1 项目理解与需求分析  
        　　1.1.1 项目概述  
        　　　　1.1.1.1 建设地点及规模  
        　　　　1.1.1.2 工程地质勘察报告  
        　　　　1.1.1.3 抗震设防烈度与防火等级  
        　　　　1.1.1.4 建筑结构形式与建筑面积分布  
        　　1.1.2 项目背景  
        　　　　1.1.2.1 核心宗旨与目标  
        　　　　1.1.2.2 地理位置与项目规模  
        　　1.1.3 项目目标  
        　　　　1.1.3.1 就业机会与基础设施提升  
        　　　　1.1.3.2 乡村振兴与经济增长  
        　　1.1.4 项目特点  
        　　　　1.1.4.1 框筒结构抗震性能  
        　　　　1.1.4.2 分阶段工程地质勘察  
        　　　　1.1.4.3 功能区域多样化  

        二、建筑设计  
        　2.1 主要设计依据  
        　　　　2.1.1 国家标准与规范  
        　　　　2.1.2 行业标准与图集  
        　2.2 建筑结构设计  
        　　　　2.2.1 结构形式  
        　　　　2.2.2 结构材料  
        　　　　2.2.3 结构布局  
        　　　　2.2.4 结构经济指标  
        　　　　2.2.5 结构细节设计  
        　2.3 建筑功能布局  
        　　　　2.3.1 C1#楼（厂房）  
        　　　　　　2.3.1.1 功能分区明确  
        　　　　　　2.3.1.2 流线优化与安全性  
        　　　　2.3.2 配电房  
        　　　　　　2.3.2.1 设计目标与设备布置  
        　　　　　　2.3.2.2 空间规划与电气主接线方案  
        　　　　2.3.3 外廊及架空建筑  
        　　　　　　2.3.3.1 功能区域与景观设计  
        　　　　　　2.3.3.2 光照与通风优化  
        　2.4 建筑材料选用  
        　2.5 建筑外观设计  
        　2.6 建筑室内布局  
        　　　　2.6.1 功能分区与设计要点  
        　2.7 建筑安全和消防设计  
        　　　　2.7.1 建筑安全体系  
        　　　　2.7.2 消防系统设计  
        　2.8 建筑节能设计  
        　　　　2.8.1 节能措施与绿色建材  
        　　　　2.8.2 雨水收集系统  

        三、结构设计  
        　3.1 结构形式  
        　3.2 结构材料  
        　　　　3.2.1 混凝土与钢材选用  
        　3.3 结构布局  
        　　　　3.3.1 结构柱网与通风疏散通道  
        　3.4 结构经济指标  
        　　　　3.4.1 抗震设计要求与用材控制  
        　3.5 结构细节设计  
        　　　　3.5.1 基础设计与钢结构细节  
        　　　　3.5.2 混凝土结构与抗震设计  
        　3.6 结构分析与计算  

        四、给排水设计  
        　4.1 引言  
        　4.2 供水系统设计  
        　　　　4.2.1 供水管道与消防水源  
        　　　　4.2.2 节水设计与雨水收集  
        　4.3 排水系统设计  
        　　　　4.3.1 排水管道与雨水管理  
        　　　　4.3.2 污水处理与分流制度  
        　4.4 给排水设备选择  
        　4.5 细节设计  
        　4.6 监测与维护  

        五、暖通设计  
        　5.1 引言  
        　5.2 供暖系统设计  
        　　　　5.2.1 供暖方式与设备选择  
        　　　　5.2.2 温度控制系统  
        　5.3 通风系统设计  
        　　　　5.3.1 通风方式与设备选择  
        　　　　5.3.2 空气质量控制  
        　5.4 空调系统设计  
        　　　　5.4.1 空调方式与设备选择  
        　　　　5.4.2 温湿度控制系统  
        　5.5 热水系统设计  
        　5.6 细节设计与监测维护  


        六、BIM设计  
        　6.1 项目总图与单体建筑设计  
        　6.2 道路与排水设计  
        　6.3 电气系统设计  
        　6.4 绿化设计  
        　6.5 BIM协同设计与施工管理  
        　6.6 数据管理与培训支持  

        七、设计说明  
        　7.1 项目设计依据  
        　7.2 设计原则  
        　7.3 结构经济合理化  
        　7.4 建筑功能分区  
        　7.5 设计细节要求  

        八、合理化建议
        　8.1 建筑专业合理化建议
        　8.2 结构专业合理化建议
        　8.3 给排水专业合理化建议
        　8.4 暖通专业合理化建议
        　8.5 BIM专业合理化建议
            8.6 技术和工艺方面的建议
            8.7 成本和预算方面的建议
            8.8 时间和进度方面的建议
            8.9 施工质量管理方面的建议
            8.10 质量和安全方面的建议
            8.11 环境和可持续性方面的建议

        九、施工进度安排  
        　9.1 施工进度安排  
        　9.2 施工进度跟踪与管理  
        　9.3 施工质量管理  
        　9.4 施工现场管理  
        　9.5 施工结项与验收  

        十、本项目工作重点难点分析  
        　10.1 工程特点与设计工作难点  
        　10.2 重点与难点分析  
        　10.3 综合解决措施  
    </example>
    
- 招标文件摘要：
{summary}

- 技术评分标准：
{rating}\
"""

CHAPTER_OUTLINE = """\
- 角色：技术标书架构师

- 能力：
    - 单章节深度解构能力
    - 跨章节协同规划视野
    - 评分权重动态分配策略

- 任务：根据招标文件概要、章节主题、评分要求，生成结构化的技术标书该章节的目录

- 输出要求：
    - 采用四级嵌套编码体系（X.X.X.X）确保章节颗粒度可控
    - 只输出子章节，不输出主章节标题，不要解释和引导词
    - 编号必须从 X.1 开始递增，禁止出现 X.0、X.0.1、01 等编号
    - 允许纯文本输出，不使用 markdown 代码块


- 示例输出，以"服务进度保障措施"为例：
    二、智慧物流系统全生命周期进度保障
    　2.1 基于BIM的进度协同管理平台    
    　　2.1.1 多级进度计划耦合模型
    　　　2.1.1.1 WBS-Milestone映射矩阵
    　　　2.1.1.2 Primavera P6进度基线
    　　2.1.2 资源约束进度优化算法
    　　　2.1.2.1 基于CPM的缓冲区间动态分配
    　　　2.1.2.2 资源平滑度R=0.92

- 招标文件概要：
    {summary}

- 章节主题：
    {chapter}

- 评分要求：
    {score}\
"""

SECTION_DETAILS = """\
【字数硬性要求】
{word_count_spec}
注意：字数须由实质性方案内容支撑，禁止用重复背景、空洞承诺或复述招标要求来凑字数。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
角色：资深工程投标技术方案撰写专家
任务：以执行方视角，针对本章节标题所对应的工作内容，撰写具体可操作的技术方案正文。

【写作铁律】
▌写方案，不写回应——开门见山描述具体做法，把招标参数直接融入方案
  × 禁止："根据招标文件要求，我方将……""针对贵方提出的XXX要求，我方承诺……"
▌不重申已知信息（最常见废稿场景）
  禁止在正文中出现项目名称/建设单位/建设地点/合同工期等基本信息；
  禁止将工程量数字（"X条渠道""X公里""X座""X台""X万平方米"等）引入各章节开头
  作为背景铺垫——这类数字只在"项目概况"章节出现一次，其他章节直接展开专业内容
▌不复述招标参数——技术规格、工程量、服务数量均已知，直接体现在方案中
▌不虚构优越参数——招标文件规定的参数/数量/规格是上限基准，不得无依据地写成"优于要求"
  × 禁止：招标要求10台，方案里写"我方投入15台以确保万无一失"（无根据拔高）
  × 禁止：招标要求C30混凝土，方案里写"我方采用C35以体现高标准"（无依据提升规格）
  √ 正确：按招标要求的数量/规格如实描述，竞争力体现在工艺方法和管理措施上
▌不虚构优越参数——招标文件规定的参数/数量/规格如实描述，不得无依据拔高
  × 禁止：招标要求10台 → 方案写"我方投入15台"（无根据）
  × 禁止：招标要求C30混凝土 → 方案写"我方采用C35体现高标准"（无依据）
  √ 如需体现竞争力，在工艺方法、管理制度、响应速度等维度展开，不在规格数量上自行拔高
▌不用套话——禁用：高度重视、全力以赴、竭诚服务、确保圆满完成、综上所述、通过以上措施
▌格式——纯文本，段落空行分隔，列举用(1)(2)(3)，不用markdown符号

【参考背景（仅供理解语境，禁止复述到正文中）】
- 项目概要：
{summary}

- 标书目录：
{outline}

【本次撰写的章节标题】
{subsection_title}

直接输出正文，不含标题行，不含任何说明语。\
"""

SCORING_RULES = """\
"你是一名专业的招标文件分析师，请按照以下步骤处理用户提供的项目招标文件内容：

1. **结构识别**
- 仔细解析文件结构，定位'评分标准'、'评审办法'、'投标人须知'等关键章节
- 特别注意包含'分值'、'评分项'、'权重'等关键词的段落

2. **核心要素提取**
- 系统提取以下要素形成结构化表格：
  │ 类别 │ 评分项名称 │ 分值权重 │ 具体要求 │ 否决条款 │
- 分类标准：
  ● 技术部分（方案设计、实施能力、技术创新等）
  ● 商务部分（资质证明、业绩案例、团队经验等）
  ● 价格部分（报价合理性、计价方式等）
  ● 其他专项（售后服务、本地化服务等）

3. **深度分析**
- 计算权重配比（示例：技术60% = 方案设计30% + 实施能力20% + 创新10%）
- 识别否决性条款（如"▲"标记项或特定强制要求）
- 标注特殊评分规则：阶梯得分、区间赋分、横向比较等机制

4. **风险提示**
- 标出易被忽视的得分点（如ISO认证、专利数量等）
- 识别矛盾条款（如总分值≠100%的情况）
- 提示资质门槛要求（注册资金、特定资质证书等）

5. **输出格式**
采用Markdown输出以下结构：
\`\`\`markdown
# 招标评分要点汇总

## 核心指标配比
- 总评分构成：技术分（__%）+ 商务分（__%）+ 价格分（__%）

## 详细评分矩阵
| 类别 | 评分项 | 分值 | 具体要求 | 关键指标 |
|------|-------|-----|---------|---------|
| ...  | ...   | ... | ...     | ...     |

## 重点提示
⚠️ 否决条款：列出所有一票否决项  
💡 得分要点：突出3-5个高权重核心指标  
⏱️ 时间节点：标注与评分相关的时限要求
\`\`\`
请先确认理解任务要求，待用户提供招标文件内容后执行分析。"\
"""

# ── 来自 section_detail.py 的提示词 ────────────────────────────────────────

GEN_LEAF_DETAIL_PROMT = """\
【字数硬性要求】
{word_count_spec}
注意：字数须由实质性方案内容支撑，禁止用重复背景、空洞承诺或复述招标要求来凑字数。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
角色：资深工程投标技术方案撰写专家
任务：以执行方视角，针对本章节标题所对应的工作内容，撰写具体可操作的技术方案正文。

【写作方式——铁律，违反即视为废稿】

▌写方案，不写回应
× 错误："根据招标文件要求，我方将……"
× 错误："针对贵方提出的XXX要求，我方承诺……"
× 错误："招标文件明确规定了……对此，我方将……"
√ 正确：开门见山写具体做法，把招标参数直接融入方案中

▌不重申已知信息（最常见废稿场景）
× 禁止：在正文中出现项目名称、建设单位、建设地点、合同工期等基本信息
× 禁止：将招标文件中的具体工程量数字（如"X条渠道""X公里""X座建筑物""X台设备"
  "X万平方米"等）引入到本章节开头作为背景铺垫——这类数字只能在"项目概况/背景"
  章节里出现一次，质量管理、安全措施、进度计划、技术方案等专业章节一律直接展开
× 禁止：重复其他章节已经出现过的项目背景介绍段落

▌不虚构优越参数
× 禁止：招标要求10台 → 写成"我方投入15台以确保万无一失"（无依据拔高数量）
× 禁止：招标要求C30混凝土 → 写成"我方采用C35体现高标准"（无依据提升规格）
× 禁止：招标方规定了参数/工程量 → 写成"我方承诺优于招标要求"（空洞吹捧）
√ 如需体现竞争力，在工艺方法、管理精细度、响应时效等维度展开，不在规格数量上无依据拔高

▌不用空话套话
× 禁用："高度重视""全力以赴""竭诚服务""确保圆满完成""我方将严格按照"
× 禁用："综上所述""首先其次再次""通过以上措施"
× 禁用：以"……"或"等"结尾的列举

▌能概括的简洁写，有细节的展开写
- 原则性的管理制度可一段简洁描述
- 操作步骤、技术参数、人员配置、时间节点等有实质内容的须逐条详细展开
- 每项措施给出具体方法或量化指标，不写"我方将采取有效措施确保"类句子

▌格式
- 纯文本，段落间空行分隔
- 列举用(1)(2)(3)，不用markdown符号，不用"首先其次"

【参考背景（仅供理解项目语境，禁止复述到正文中）】
- 项目概要：
{summary}

- 标书目录（用于理解本章节在全书中的定位）：
{outline}

【本次撰写的章节标题】
{title}

开始撰写，直接输出正文，不含标题行，不含任何说明语。\
"""

GEN_SECTION_INTRODUCTION_PROMT = """\
- 角色：资深投标文件撰写专家
- 任务：为章节撰写简短开篇引言（100～200字），直接点明本章的核心做法或服务重点
- 使用"我方"自称，禁止套话，禁止复述招标要求，禁止重写项目背景，纯文本输出
- 若本章内容不需要引言可直接输出空白

- 项目概要（仅供参考，禁止复述）：
{summary}

- 技术标书目录：
{outline}

- 章节标题：
{title}\
"""


# ── 对外接口函数 ────────────────────────────────────────────────────────────

def get_project_summary_prompt(bid_document: str) -> str:
    return PROJECT_SUMMARY.replace('{bid_document}', bid_document)


def get_rating_requirements_prompt(bid_document: str) -> str:
    return RATING_REQUIREMENTS.replace('{bid_document}', bid_document)


def get_rating_json_prompt(tech_rating: str) -> str:
    return RATING_JSON.replace('{tech_rating}', tech_rating)


def get_outlines_prompt(document_text: str) -> str:
    return OUTLINES.replace('{document_text}', document_text)


def get_outlines_with_rating_prompt(summary: str, rating: str) -> str:
    return OUTLINES_WITH_RATING.replace('{summary}', summary).replace('{rating}', rating)


def get_chapter_outline_prompt(summary: str, chapter: str, score: str) -> str:
    return CHAPTER_OUTLINE.replace('{summary}', summary).replace('{chapter}', chapter).replace('{score}', score)


BOQ_SUMMARY = """\
- 角色：工程量清单分析专家

- 任务：从以下工程量清单数据中提取关键工程信息，生成结构化摘要，供技术标书章节写作使用。

- 提取重点：
  1. 主要分部分项工程类别（土建、安装、装饰、市政、绿化等）
  2. 每类工程的核心工程内容与数量（保留单位和数量值）
  3. 主要材料、设备的规格和数量
  4. 关键施工工艺或特殊要求（如有）

- 输出格式：
  - 按工程类别分段输出，每类列举3-8个代表性工程量项
  - 保留量化数据（数量+单位），例如："混凝土浇筑 C30 约 800m³"
  - 突出与技术标书密切相关的工程内容
  - 不输出单价、金额、合计等商务数据
  - 总字数控制在 600-1200 字

- 工程量清单原始文本如下：
{boq_text}

- 以下为本地规则解析得到的结构化清单附录（分部、编码、名称、单位、工程量）；若为空则仅依据上文原始文本：
{boq_structured}
"""


def get_boq_summary_prompt(boq_text: str, boq_structured: str = '') -> str:
    return (
        BOQ_SUMMARY.replace('{boq_text}', boq_text)
        .replace('{boq_structured}', boq_structured or '（无本地结构化附录）')
    )


def get_section_detail_prompt(summary: str, outline: str, title: str,
                              word_count_spec: str = '',
                              boq_summary: str = '',
                              tender_kind: str = 'engineering') -> str:
    """章节正文提示词。按 tender_kind 选用工程/服务/货物模板（见 utils.tender_kind_sections）。"""
    from utils.tender_kind_sections import build_section_detail_prompt, normalize_tender_kind

    if not word_count_spec:
        word_count_spec = (
            '- 一般小节：不少于 2000 字；核心技术/重点评分章节：不少于 4000 字\n'
            '- 字数须由实质方案内容支撑，禁止用重复项目背景或复述招标要求凑字数\n'
            '- 有实质细节的展开写，原则性描述可简洁处理，不强求堆砌篇幅'
        )
    return build_section_detail_prompt(
        normalize_tender_kind(tender_kind),
        summary,
        outline,
        title,
        word_count_spec,
        boq_summary,
    )


def get_section_intro_prompt(summary: str, outline: str, title: str) -> str:
    if not GEN_SECTION_INTRODUCTION_PROMT:
        return ''
    return GEN_SECTION_INTRODUCTION_PROMT.replace('{summary}', summary).replace('{outline}', outline).replace('{title}', title)


def get_figure_addon() -> str:
    """启用"图"模式时，追加到章节生成提示词末尾的图示生成规范"""
    return """

【图示生成规范（必须遵守）】
在正文适当位置根据本章节具体内容自动插入图示，图示内容必须与所写章节紧密对应，严禁套用与本章无关的通用模板。

▌标记格式（不得修改括号和斜杠，标题须具体反映图示内容）：
[FIGURE:具体图示标题]
图示内容（用文字、ASCII 符号绘制）
[/FIGURE]

▌四类触发场景及示例：

① 组织机构类（涉及管理架构、项目班组、质量/安全/监测机构等）→ 树形图
[FIGURE:本项目质量管理组织架构图]
项目经理
├── 技术负责人 ──→ 专职质检员（2人）、测量员（2人）
├── 施工队长   ──→ 土建作业班（8人）、安装班（4人）
└── 安全负责人 ──→ 专职安全员（1人）、消防员（1人）
[/FIGURE]

② 流程类（涉及施工工序、管理流程、验收程序、应急响应等）→ 流程图
[FIGURE:监测数据处理与预警响应流程图]
现场采集 ──→ 质检复核 ──→ 数据入库
                  ↓ 超阈值
            预警分级判断
             ↓ 黄色预警          ↓ 红色预警
         加密监测频次       立即暂停施工 + 应急响应
                  ↓ 恢复正常
            出具监测日报 ──→ 提交建设单位
[/FIGURE]

③ 进度计划类（涉及工期安排、里程碑节点、施工阶段等）→ 横道进度图
[FIGURE:本项目施工进度计划示意图]
第 1- 2 周  ██  施工准备（人员进场、测量放线、物资备货）
第 3- 6 周  ████  土方开挖及基础处理
第 7-11 周  ████████  主体结构施工
第12-14 周  ██████  机电安装及调试
第15-16 周  ████  装饰收尾及自检
第17 周     ██  竣工验收及资料移交
[/FIGURE]

④ 平面布置类（涉及施工现场、监测点位、管线布置等）→ 示意平面图
[FIGURE:施工现场平面布置示意图]
┌───────────────────────────────────────────┐
│ [出入口/门卫]   [材料堆场]   [钢筋加工棚]    │
│                                            │
│        [主施工区 A 段]  [主施工区 B 段]      │
│                                            │
│ [办公/会议室]  [宿舍区]   [设备停放场地]     │
└───────────────────────────────────────────┘
[/FIGURE]

▌执行要求：
- 每章节最多插入 2～3 个图示，按需插入，勿为凑数而强行添加
- 图示标题须具体，如"本项目安全管理组织架构图"而非"组织架构图"
- 每个图示前后各须有至少一段正文说明，不得孤立出现
- 图示中的岗位、人数、节点须结合本章节正文内容填写，不得留有"XXX"等占位符"""


def get_table_addon() -> str:
    """启用"表"模式时，追加到章节生成提示词末尾的表格生成规范"""
    return """

【表格生成规范（必须遵守）】
在正文适当位置根据本章节具体内容自动插入表格，表格数据须结合本章节实际内容填写，严禁套用与本章无关的通用模板。

▌标记格式（不得修改括号和斜杠，标题须具体反映表格内容）：
[TABLE:具体表格标题]
| 列名1 | 列名2 | 列名3 |
|-------|-------|-------|
| 数据1 | 数据2 | 数据3 |
[/TABLE]

▌六类触发场景及示例：

① 人员配置类（涉及项目管理团队、专业人员配置等）
[TABLE:本项目主要管理人员配置一览表]
| 序号 | 岗位 | 拟派人数 | 资质要求 | 主要职责 |
|------|------|---------|---------|---------|
| 1 | 项目经理 | 1 | 一级建造师，从业 10 年以上 | 全面统筹项目实施 |
| 2 | 技术负责人 | 1 | 高级工程师，从业 8 年以上 | 技术方案与质量管控 |
| 3 | 安全负责人 | 1 | 注册安全工程师，具备安全 C 证 | 安全生产管理 |
| 4 | 专职质检员 | 2 | 质检员证，从业 5 年以上 | 过程质量检验与记录 |
[/TABLE]

② 设备投入类（涉及施工机械、监测仪器、工具设备等）
[TABLE:主要施工设备及仪器投入一览表]
| 序号 | 设备名称 | 规格型号 | 数量 | 状态 | 主要用途 |
|------|---------|---------|------|------|---------|
| 1 | 全站仪 | 徕卡 TS16 | 2 台 | 自有 | 平面及高程测量 |
| 2 | 静力水准仪 | BGK-4700 | 8 套 | 自有 | 沉降自动化监测 |
| 3 | 挖掘机 | 卡特 320D | 2 台 | 租赁 | 基坑开挖 |
[/TABLE]

③ 劳动力计划类（涉及各工种、各阶段人数安排等）
[TABLE:劳动力配置计划表]
| 工种 | 准备阶段（人） | 施工高峰期（人） | 收尾阶段（人） | 备注 |
|------|-------------|---------------|-------------|------|
| 测量工 | 4 | 6 | 2 | 含 1 名高级测量技师 |
| 土建工 | 8 | 20 | 6 | 持证特殊工种优先 |
| 安装工 | 0 | 10 | 4 | 含持证电工、焊工 |
[/TABLE]

④ 质量/安全检查类（涉及关键工序验收、安全巡检等）
[TABLE:关键工序质量检验项目一览表]
| 序号 | 检验项目 | 检验方法 | 检验频率 | 合格标准 | 责任人 |
|------|---------|---------|---------|---------|------|
| 1 | 基础轴线偏差 | 全站仪复测 | 每道工序 | ≤±5mm | 测量员 |
| 2 | 混凝土强度 | 试块取样 | 每 50m³ | ≥C30 | 质检员 |
[/TABLE]

⑤ 材料供应类（涉及主要材料规格、用量计划等）
[TABLE:主要材料供应计划表]
| 序号 | 材料名称 | 规格 | 计划用量 | 供应商 | 进场时间 |
|------|---------|------|---------|------|---------|
| 1 | 商品混凝土 | C30 | 约 800m³ | 本地搅拌站 | 第 5 周 |
| 2 | 钢筋 | HRB400Φ16-25 | 约 60t | 资质合规厂商 | 第 4 周 |
[/TABLE]

⑥ 风险/应急类（涉及风险识别、应急预案等）
[TABLE:主要施工风险及应对措施一览表]
| 风险类型 | 诱因 | 等级 | 预防措施 | 应急响应 |
|---------|------|------|---------|---------|
| 基坑坍塌 | 降雨渗水 | 高 | 坡面防护+排水沟 | 立即撤场+加固 |
| 管线破坏 | 机械误挖 | 中 | 人工开挖保护区 | 停工+抢修 |
[/TABLE]

▌执行要求：
- 表格数据须根据本章节正文内容填写，不得使用"XXX""待定"等占位符
- 表格列数控制在 4～6 列，行数视内容而定，不强求凑满
- 每张表格前后各须有至少一段正文说明
- 每章节最多插入 2～3 张表格，按需插入"""
