diff --git a/flowchart/tasks.py b/flowchart/tasks.py index f6570be..fe20162 100644 --- a/flowchart/tasks.py +++ b/flowchart/tasks.py @@ -123,8 +123,8 @@ def build_evaluation_prompt(problem): criteria_text = """ - 逻辑正确性 (权重: 1.0, 最高分: 40): 检查流程图的逻辑是否正确,包括条件判断、循环结构等 - 完整性 (权重: 0.8, 最高分: 30): 检查流程图是否包含所有必要的步骤和分支 -- 规范性 (权重: 0.6, 最高分: 20): 检查流程图符号使用是否规范,是否符合标准 -- 清晰度 (权重: 0.4, 最高分: 10): 评估流程图的整体布局和连线情况(不用考虑节点ID是否复杂) +- 规范性 (权重: 0.6, 最高分: 20): 检查流程图符号使用是否规范,是否符合标准;不要评价节点ID +- 清晰度 (权重: 0.4, 最高分: 10): 评估流程图的整体布局和连线情况;不要因节点ID扣分 """ return f""" @@ -136,9 +136,12 @@ def build_evaluation_prompt(problem): 评分要求: 1. 仔细分析流程图的逻辑正确性、完整性和清晰度 2. 检查是否涵盖了题目的所有要求 -3. 评估流程图的规范性和可读性(不用考虑节点ID是否复杂) +3. 评估流程图的规范性和可读性 4. 给出0-100的分数 -5. 提供详细的反馈和改进建议 +5. Mermaid节点ID由系统生成,不是学生编写内容;不要评价节点ID,不要因节点ID扣分,不要建议修改节点ID +6. feedback控制在60字以内,只总结核心优点和主要问题 +7. suggestions最多3条,每条单独一行;重要建议必须以【重点】开头,普通建议不要加前缀 +8. criteria_details 中的 comment 保持简短,每项不超过25字 评分等级: - S级 (90-100分): 优秀,逻辑清晰,完全符合要求 @@ -150,8 +153,8 @@ def build_evaluation_prompt(problem): {{ "score": 85, "grade": "A", - "feedback": "详细的反馈内容", - "suggestions": "改进建议", + "feedback": "整体逻辑清楚,但循环出口表达不够明确。", + "suggestions": "【重点】补充循环结束条件\\n完善异常输入分支", "criteria_details": {{ "逻辑正确性": {{"score": 35, "max": 40, "comment": "逻辑基本正确"}}, "完整性": {{"score": 25, "max": 30, "comment": "缺少部分步骤"}}, diff --git a/flowchart/tests.py b/flowchart/tests.py new file mode 100644 index 0000000..3f5bcfd --- /dev/null +++ b/flowchart/tests.py @@ -0,0 +1,16 @@ +from types import SimpleNamespace +from unittest import TestCase + +from .tasks import build_evaluation_prompt + + +class FlowchartEvaluationPromptTests(TestCase): + def test_prompt_excludes_system_generated_mermaid_ids_and_limits_feedback(self): + prompt = build_evaluation_prompt(SimpleNamespace()) + + self.assertIn("Mermaid节点ID由系统生成", prompt) + self.assertIn("不要评价节点ID", prompt) + self.assertIn("不要因节点ID扣分", prompt) + self.assertIn("feedback控制在60字以内", prompt) + self.assertIn("suggestions最多3条", prompt) + self.assertIn("重要建议必须以【重点】开头", prompt)