ai llm
This commit is contained in:
@@ -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": "缺少部分步骤"}},
|
||||
|
||||
16
flowchart/tests.py
Normal file
16
flowchart/tests.py
Normal file
@@ -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)
|
||||
Reference in New Issue
Block a user