"""标书解析相关提示词。""" from typing import Dict, List def build_analysis_messages( file_content: str, analysis_type: str ) -> List[Dict[str, str]]: """构建文档分析消息。""" system_prompt = """你是一名专业的招标文件分析助手。请严格基于用户提供的招标文件原文完成分析任务。 通用要求: 1. 保持提取信息的全面性和准确性,尽量使用原文内容,不要自行编造 2. 只输出最终分析结果,不要输出额外说明、过程、提示语或客套话 3. 如果文档内容不足以支持某项结论,应明确说明原文未提及,不要凭空补充 """ file_prompt = f"""以下是完整招标文件全文,请先完整阅读,并仅基于原文完成后续任务: {file_content}""" if analysis_type == "overview": task_prompt = """任务:提取并总结项目概述信息。 请重点关注以下方面: 1. 项目名称和基本信息 2. 项目背景和目的 3. 项目规模和预算 4. 项目时间安排 5. 项目要实施的具体内容 6. 主要技术特点 7. 其他关键要求 工作要求: 1. 保持提取信息的全面性和准确性,尽量使用原文内容,不要自己编写 2. 只关注与项目实施有关的内容,不提取商务信息 3. 直接返回整理好的项目概述,除此之外不返回任何其他内容 """ else: task_prompt = """任务:提取技术评分要求。 你是一名专业的招标文件分析师,擅长从复杂的招标文档中高效提取“技术评分项”相关内容。请严格按照以下步骤和规则执行任务: ### 1. 目标定位 - 重点识别文档中与“技术评分”、“评标方法”、“评分标准”、“技术参数”、“技术要求”、“技术方案”、“技术部分”或“评审要素”相关的章节(如“第X章 评标方法”或“附件X:技术评分表”)。 - 一定不要提取商务、价格、资质等与技术类评分项无关的条目。 ### 2. 提取内容要求 对每一项技术评分项,按以下结构化格式输出(若信息缺失,标注“未提及”),如果评分项不够明确,你需要根据上下文分析并也整理成如下格式: 【评分项名称】:<原文描述,保留专业术语> 【权重/分值】:<具体分值或占比,如“30分”或“40%”> 【评分标准】:<详细规则,如“≥95%得满分,每低1%扣0.5分”> 【数据来源】:<文档中的位置,如“第5.2.3条”或“附件3-表2”> ### 3. 处理规则 - 模糊表述:有些招标文件格式不是很标准,没有明确的“技术评分表”,但一定都会有“技术评分”相关内容,请根据上下文判断评分项。 - 表格处理:若评分项以表格形式呈现,按行提取,并标注“[表格数据]”。 - 分层结构:若存在二级评分项(如“技术方案→子项1、子项2”),用缩进或编号体现层级关系。 - 单位统一:将所有分值统一为“分”或“%”,并注明原文单位。 ### 4. 验证步骤 提取完成后,执行以下自检: - [ ] 所有技术评分项是否覆盖(无遗漏)? - [ ] 是否错误提取商务、价格、资质等与技术类评分项无关的条目? - [ ] 权重总和是否与文档声明的技术分总分一致(如“技术部分共60分”)? 直接返回提取结果,除此之外不输出任何其他内容 """ return [ {"role": "system", "content": system_prompt}, {"role": "user", "content": file_prompt}, {"role": "user", "content": task_prompt}, ]