diff --git a/electron/main/ipc.ts b/electron/main/ipc.ts index 8a59f4a..3cb79f0 100644 --- a/electron/main/ipc.ts +++ b/electron/main/ipc.ts @@ -268,33 +268,35 @@ async function callAiApi(imageBase64: string, rubric: string, config: { apiKey: deductions: string[] comment: string }> { - const systemRole = `你是一名经验丰富的高校教师。你必须严格依据评分标准逐项评分。 - -【输出要求】 -1. 仅输出纯JSON,不要包含任何markdown代码块、\`\`\`标记、或额外文字 -2. 不得在JSON前后添加任何说明、注释或分隔符 -3. 字符串必须使用双引号,不得使用单引号 -4. 不得有多余的逗号 - -【输出格式】 -{ - "score": 分数, - "confidence": 置信度(0-1), - "deductions": ["扣分项1", "扣分项2"], - "comment": "总评语及逐项得分说明" -}` + const systemRole = `你是高校阅卷专家,严格按照评分标准逐项评分。` const prompt = `${extras?.questionTitle ? `【题目】\n${extras.questionTitle}\n` : ''}【评分标准】 -${rubric} +${rubric || '无'} 【参考答案】 ${extras?.referenceAnswer || '无'} -【总分】 +【满分】 ${extras?.maxScore ?? 100} 【学生答案】 -请看图片中的内容。` +请看图片中的内容。 + +--- + +【评分规则】 +1. 根据评分标准中的各项指标逐项评分,每项给出得分和说明 +2. 各评分项得分之和不得超过满分${extras?.maxScore ?? 100}分 +3. 如果学生答案为空、空白或明显与题目无关,直接给0分 +4. 部分正确时按评分标准酌情给分 + +请严格按照以下JSON格式返回结果,不要包含任何markdown标记或其他文字: +{ + "score": <总分>, + "confidence": <置信度0~1>, + "deductions": ["扣分项说明1", "扣分项说明2"], + "comment": "总评语及逐项得分说明" +}` const axios = require('axios') const response = await axios.post(`${config.baseUrl}/chat/completions`, { @@ -312,8 +314,8 @@ ${extras?.maxScore ?? 100} ] } ], - max_tokens: 2048, - temperature: 0.1 + max_tokens: 4096, + temperature: 0.3 }, { headers: { 'Content-Type': 'application/json',