5.6 KiB
5.6 KiB
AI题目生成功能使用指南
功能概述
AI题目生成功能是yzexam在线考试系统的一个扩展功能,通过调用AI大模型API(如DeepSeek、OpenRouter等)来自动生成各种类型的题目,包括选择题、简答题和论述题等,以提高教师出题效率,丰富题库内容。
功能特性
- 支持生成多种题型:单选题、多选题、简答题、论述题
- 支持"全部题型"选项,一次性生成多种类型的题目
- 支持设置题目数量(1-20题)
- 支持设置题目难度等级:简单、中等、困难
- 支持指定知识点范围生成题目
- 支持指定关键词生成题目(多个关键词用逗号分隔)
- 支持指定题目方向生成题目(理解、应用、分析、综合、评价)
- 支持指定适合学段生成题目(初中、高中、大学、研究生)
- 生成的题目可直接保存到题库中
技术架构
后端技术栈
- Java + Spring Boot
- OkHttp(用于调用AI API)
- FastJSON(用于JSON处理)
- MyBatis(用于数据库操作)
前端技术栈
- Vue.js 2.x
- Element UI
- Axios
部署配置
1. 配置AI API密钥
在application.yml中配置AI API相关信息:
# AI题目生成配置
ai:
# DeepSeek API配置
api-url: https://api.deepseek.com/v1/chat/completions
model-name: deepseek-chat
api-key: ${AI_API_KEY:}
connect-timeout: 30
read-timeout: 60
write-timeout: 30
# OpenRouter API配置
openrouter:
api-url: https://openrouter.ai/api/v1/chat/completions
model-name: deepseek/deepseek-v3-0324-free
api-key: ${OPENROUTER_API_KEY:}
enabled: false
2. 设置环境变量
可以选择使用DeepSeek API或OpenRouter API:
使用DeepSeek API:
export AI_API_KEY="your_deepseek_api_key_here"
使用OpenRouter API:
export OPENROUTER_API_KEY="your_openrouter_api_key_here"
3. 数据库权限配置
运行ai_question_permissions.sql脚本,为系统添加AI题目生成功能所需的菜单和权限。
使用说明
1. 访问AI题目生成功能
- 登录系统后,进入"题库管理"模块
- 选择一个题库或创建新题库
- 点击"AI生成题目"按钮
- 系统将跳转到AI题目生成页面
2. 配置生成参数
在AI题目生成页面中,配置以下参数:
- 题目类型:选择要生成的题目类型(单选题、多选题、简答题、论述题或全部题型)
- 题目数量:输入要生成的题目数量(1-20题)
- 知识点范围:输入题目涉及的知识点范围
- 关键词:输入与题目相关的关键词(多个关键词用逗号分隔)
- 难易程度:选择题目的难度等级(简单、中等、困难)
- 题目方向:选择题目的考查方向(理解、应用、分析、综合、评价)
- 适合学段:选择题目适合的学段(初中、高中、大学、研究生)
3. 生成题目
点击"生成题目"按钮,系统将调用AI API生成指定类型的题目,并在页面中显示生成结果。
4. 保存题目
生成题目后,可以点击"保存到题库"按钮将题目保存到当前题库中。
API接口说明
1. 生成选择题
POST /ai/questions/choice
Content-Type: application/json
{
"knowledgePoint": "马克思主义基本原理",
"keywords": "唯物主义,辩证法,实践",
"difficulty": "medium",
"direction": "comprehension",
"gradeLevel": "college",
"multiple": false
}
2. 生成简答题
POST /ai/questions/short-answer
Content-Type: application/json
{
"knowledgePoint": "社会主义核心价值观",
"keywords": "爱国,敬业,诚信,友善",
"difficulty": "medium",
"direction": "application",
"gradeLevel": "college"
}
3. 生成论述题
POST /ai/questions/essay
Content-Type: application/json
{
"knowledgePoint": "新时代党的建设",
"keywords": "全面从严治党,反腐倡康,制度建设",
"difficulty": "hard",
"direction": "evaluation",
"gradeLevel": "postgraduate"
}
4. 批量生成题目
POST /ai/questions/batch
Content-Type: application/json
{
"questionType": "choice",
"count": 5,
"knowledgePoint": "马克思主义基本原理",
"keywords": "唯物主义,辩证法,实践",
"difficulty": "medium",
"direction": "comprehension",
"gradeLevel": "college",
"multiple": false
}
5. 保存AI生成的题目
POST /ai/questions/save
Content-Type: application/json
{
"questions": [...], // AI生成的题目列表
"bankCode": "题库代码"
}
安全注意事项
- API密钥应妥善保管,不要硬编码在代码中
- 建议通过环境变量或配置中心管理API密钥
- 实际部署时应添加身份验证和权限控制
- 添加API调用频率限制,防止滥用
常见问题
1. 生成题目失败
可能原因:
- API密钥配置错误
- 网络连接问题
- AI API服务不可用
解决方案:
- 检查API密钥是否正确配置
- 检查网络连接是否正常
- 确认AI API服务是否可用
2. 保存题目失败
可能原因:
- 题库代码不正确
- 数据库连接问题
- 权限不足
解决方案:
- 检查题库代码是否正确
- 检查数据库连接是否正常
- 确认用户是否有保存题目的权限
扩展建议
- 添加题目质量评估功能
- 实现题目去重机制
- 添加题目版本管理
- 支持批量生成题目
- 添加题目审核流程
- 实现题目分类管理
- 添加题目搜索功能
- 支持题目导出为不同格式