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