feat: 添加题目变式生成功能
This commit is contained in:
parent
1d11050178
commit
9204349041
|
|
@ -106,6 +106,69 @@ D. [选项D内容]
|
|||
9. 解析清晰易懂,有助于学生理解
|
||||
10. 知识点标注准确,便于分类学习`;
|
||||
|
||||
// ── 题目变式生成接口(使用 Gemini-3.1-pro)──
|
||||
export const VARIANT_API_URL = "https://grsaiapi.com/v1/chat/completions";
|
||||
export const VARIANT_MODEL = "gemini-3.1-pro";
|
||||
export const VARIANT_TEMPERATURE = 0.8;
|
||||
export const VARIANT_MAX_TOKENS = 4096;
|
||||
|
||||
// 题目变式生成 System Prompt
|
||||
export const QUESTION_VARIANT_PROMPT = `你是一位专业的英语试题出题专家。请对用户提供的原始试题进行深度分析,然后生成指定数量的变式题目。
|
||||
|
||||
【最高优先级 - 必须严格遵守】
|
||||
用户会在请求中明确指定需要生成的变式题数量(如:生成 3 道变式题)。你必须完整输出该数量的变式题目,缺一不可。如果用户要求 3 道,就必须输出 3 道变式题;如果用户要求 5 道,就必须输出 5 道变式题。这是最重要的规则,违反此规则将导致任务失败。
|
||||
|
||||
## 第一步:分析原题
|
||||
请先分析原题的以下要素:
|
||||
- 题型(如:单项选择、完形填空、阅读理解、翻译、写作等)
|
||||
- 考查知识点(如:语法点、词汇、句型等)
|
||||
- 难度等级(容易/较易/适中/较难/困难)
|
||||
- 题目结构和特点
|
||||
|
||||
## 第二步:生成变式题
|
||||
根据分析结果,生成【用户指定数量】的变式题目。要求:
|
||||
1. 保持与原题相同的题型
|
||||
2. 可适当调整难度,但需标注新的难度等级
|
||||
3. 考查相同或相关的知识点
|
||||
4. 题目形式和风格与原题保持一致
|
||||
|
||||
## 输出格式
|
||||
首先输出原题分析:
|
||||
|
||||
### 原题分析
|
||||
**题型**:[题型]
|
||||
**考查知识点**:[知识点]
|
||||
**难度等级**:[难度]
|
||||
**题目特点**:[简要描述]
|
||||
|
||||
然后【必须按用户指定数量】输出变式题,格式如下:
|
||||
|
||||
### 变式题 1
|
||||
**题目类型**:[类型]
|
||||
**难度等级**:[难度]
|
||||
**题目内容**:
|
||||
[题目文本,如有选项按A/B/C/D格式列出]
|
||||
**正确答案**:[答案]
|
||||
**详细解析**:[解析内容,说明解题思路和关键点]
|
||||
**考查知识点**:[知识点]
|
||||
|
||||
### 变式题 2
|
||||
...(同上格式)
|
||||
|
||||
### 变式题 3
|
||||
...(同上格式)
|
||||
|
||||
(以此类推,直到输出完用户指定数量的所有变式题)
|
||||
|
||||
重要规则:
|
||||
1. 【最高优先级】必须严格按照用户指定的数量生成变式题,不能多也不能少
|
||||
2. 每道变式题都必须是完整的、可独立使用的题目
|
||||
3. 选项类题目必须提供4个选项(A、B、C、D)
|
||||
4. 答案必须准确无误
|
||||
5. 解析要详细清晰,帮助学生理解
|
||||
6. 难度等级从:容易、较易、适中、较难、困难 中选择
|
||||
7. 每道变式题必须以"### 变式题 [序号]"开头,序号连续递增`;
|
||||
|
||||
// ── 文件上传限制 ──
|
||||
export const IMAGE_MAX_SIZE_MB = 10;
|
||||
export const IMAGE_ALLOWED_TYPES_ESSAY = ["image/jpeg", "image/jpg", "image/png"];
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@ import ExamAnalysis from '../views/ExamAnalysis.vue'
|
|||
import SpellPractice from '../views/SpellPractice.vue'
|
||||
import ProblemSolving from '../views/ProblemSolving.vue'
|
||||
import QuestionGenerator from '../views/QuestionGenerator.vue'
|
||||
import QuestionVariant from '../views/QuestionVariant.vue'
|
||||
|
||||
const router = createRouter({
|
||||
history: createWebHistory(import.meta.env.BASE_URL),
|
||||
|
|
@ -51,6 +52,11 @@ const router = createRouter({
|
|||
name: 'question-generator',
|
||||
component: QuestionGenerator
|
||||
},
|
||||
{
|
||||
path: '/question-variant',
|
||||
name: 'question-variant',
|
||||
component: QuestionVariant
|
||||
},
|
||||
]
|
||||
})
|
||||
|
||||
|
|
|
|||
|
|
@ -69,6 +69,14 @@ const features = ref([
|
|||
icon: "document",
|
||||
route: "/question-generator",
|
||||
},
|
||||
{
|
||||
id: 9,
|
||||
title: "题目变式生成",
|
||||
desc: "输入原始试题,AI 深度分析后生成同类变式题,保持题型不变,可调整难度,快速扩展题库,提升出题效率。",
|
||||
class: "card-9",
|
||||
icon: "variant",
|
||||
route: "/question-variant",
|
||||
},
|
||||
]);
|
||||
|
||||
// Hover effect for glassmorphism glare
|
||||
|
|
@ -266,6 +274,22 @@ onUnmounted(() => {
|
|||
d="M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m0 12.75h7.5m-7.5 3H12M10.5 2.25H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9Z"
|
||||
/>
|
||||
</svg>
|
||||
|
||||
<!-- Variant Icon (Copy/Clone) -->
|
||||
<svg
|
||||
v-else-if="feature.icon === 'variant'"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
fill="none"
|
||||
viewBox="0 0 24 24"
|
||||
stroke-width="1.5"
|
||||
stroke="currentColor"
|
||||
>
|
||||
<path
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
d="M15.75 17.25v3.375c0 .621-.504 1.125-1.125 1.125h-9.75a1.125 1.125 0 0 1-1.125-1.125V7.875c0-.621.504-1.125 1.125-1.125H6.75a9.06 9.06 0 0 1 1.5.124m7.5 10.376h3.375c.621 0 1.125-.504 1.125-1.125V11.25c0-4.46-3.243-8.161-7.5-8.876v9.004c0 .621-.504 1.125-1.125 1.125h-3.75c-.621 0-1.125.504-1.125 1.125v3.876c0 .621.504 1.125 1.125 1.125h3.75c.621 0 1.125-.504 1.125-1.125Z"
|
||||
/>
|
||||
</svg>
|
||||
</div>
|
||||
<h2 class="card-title">{{ feature.title }}</h2>
|
||||
</div>
|
||||
|
|
@ -448,6 +472,11 @@ h1 {
|
|||
box-shadow: 0 8px 20px -6px rgba(16, 185, 129, 0.5);
|
||||
}
|
||||
|
||||
.card-9 .icon-wrapper {
|
||||
background: linear-gradient(135deg, #6366f1, #8b5cf6);
|
||||
box-shadow: 0 8px 20px -6px rgba(99, 102, 241, 0.5);
|
||||
}
|
||||
|
||||
.card-title {
|
||||
font-size: 1.5rem;
|
||||
font-weight: 600;
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue