prompts.py 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. # backend/agents/bid_review/prompts.py
  2. SYSTEM_PROMPT = """你是一位严谨、公正的 IT 招标资料助教,负责协助专家评分投标人投标文件。
  3. 【评分原则】
  4. - 严格按照评分点评分,不随意加减分
  5. - 给出明确的得分依据,指出投标响应中的具体内容
  6. - 评语简洁专业,指出核心问题,避免空泛表扬或批评
  7. - 对有争议的内容保持保守评分,宁可偏低并标记复核,不随意给高分"""
  8. SUBJECTIVE_REVIEW_PROMPT = """请按照以下评分点评分投标人的方案响应项作答。
  9. 【评分项】
  10. {question_content}
  11. 【评分点(共{full_score}分)】
  12. {scoring_points}
  13. 【投标响应】
  14. {bidder_response}
  15. 请严格按照评分点逐条评分,输出以下 JSON 结构(直接输出,不要加 Markdown 代码块):
  16. {{
  17. "question_id": "",
  18. "bidder_response": "{bidder_response}",
  19. "total_score": <整数,各评分点累加>,
  20. "full_score": {full_score},
  21. "confidence": <0.0-1.0,评分把握度,不确定时给低分并降低 confidence>,
  22. "point_results": [
  23. {{
  24. "point_id": "<评分点ID,若无则填空字符串>",
  25. "point_desc": "<评分点描述>",
  26. "point_score": <该评分点满分>,
  27. "earned": <true/false>,
  28. "evidence": "<投标响应中对应的原文,earned=true 时必填>",
  29. "missing": "<未得分的原因,earned=false 时必填>"
  30. }}
  31. ],
  32. "overall_comment": "<1-2句整体评语,指出最核心的问题或亮点>"
  33. }}"""
  34. SUBJECTIVE_THINK_PROMPT = """在评分这道方案响应项之前,请先进行深入分析。
  35. 【评分项】
  36. {question_content}
  37. 【标准评分点】
  38. {scoring_points}
  39. 【投标人作答】
  40. {bidder_response}
  41. 请分析以下几点(中文,5-8句话):
  42. 1. 投标人是否理解了评分项的核心概念?
  43. 2. 逐一检查每个评分点:投标人的回答是否覆盖了该要点?是否用不同表述但实质正确?
  44. 3. 有没有表述模糊但实质正确、不应扣分的内容?
  45. 4. 有没有明显的概念错误或理解偏差?
  46. 直接输出分析内容,不加任何前缀标签。"""
  47. CODE_REVIEW_PROMPT = """请评估以下技术方案项的投标人提交代码:先判断是否正确实现了评分项要求的功能,再评估代码质量,综合给分。
  48. 【评分项要求】
  49. {question}
  50. 【参考实现(评分依据,用于对照投标人代码是否正确)】
  51. {reference_solution}
  52. 【投标人代码】
  53. {code}
  54. 请综合「功能正确性 + 代码质量」打分,总分 {full_score} 分,输出 JSON(直接输出,不要加代码块标记):
  55. {{
  56. "score": <整数,0到{full_score}>,
  57. "confidence": <0到1之间的小数,表示你对本次评分的把握;越不确定填得越低>,
  58. "feedback": [
  59. "<功能正确性:是否正确实现评分项要求(最重要)>",
  60. "<代码规范性:缩进/括号/命名等>",
  61. "<算法效率:时间/空间复杂度>",
  62. "<边界与异常处理>",
  63. "<可读性与注释>"
  64. ]
  65. }}
  66. 评分参考:
  67. - 功能完全正确且规范:{full_score} × 0.9 ~ {full_score}
  68. - 功能正确但写法可优化:{full_score} × 0.7
  69. - 部分正确或有明显缺陷:{full_score} × 0.4
  70. - 未提交或完全错误:0"""
  71. WEAK_POINTS_ANALYSIS_PROMPT = """你是一位经验丰富的 IT 招标资料评审专家,请根据投标人本次投标文件的投标响应情况,分析其知识薄弱点并给出复习建议。
  72. 【扣分项/扣分题清单】
  73. {wrong_questions}
  74. 【说明】
  75. - 上方列出了本次投标文件中投标人答错或扣分的评分项,包含评分项内容和错误原因
  76. - 请将这些评分项归纳到对应的评审要点,分析薄弱原因,并给出具体的复习建议
  77. 请输出以下 JSON 结构(直接输出,不要加 Markdown 代码块):
  78. {{
  79. "weak_points": [
  80. {{
  81. "tag": "<评审要点名称,例如:Spring IOC、Redis缓存穿透、JVM垃圾回收>",
  82. "wrong_count": <该评审要点下的扣分项数>,
  83. "total_count": <该评审要点下的总题数,若不确定填与wrong_count相同>,
  84. "question_nos": [<评分项序号列表>],
  85. "suggestion": "<针对该评审要点的具体复习建议,1-2句>"
  86. }}
  87. ],
  88. "overall_summary": "<对投标人本次考试整体表现的简短评价,指出最核心的1-2个薄弱方向,不超过50字>"
  89. }}"""