analysis_prompts.py 3.5 KB

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