219 lines
5.6 KiB
Markdown
219 lines
5.6 KiB
Markdown
|
# 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](file:///Volumes/macData/code/yzexam/examapi/ruoyi-admin/src/main/resources/application.yml)中配置AI API相关信息:
|
|||
|
|
|||
|
```yaml
|
|||
|
# 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:
|
|||
|
```bash
|
|||
|
export AI_API_KEY="your_deepseek_api_key_here"
|
|||
|
```
|
|||
|
|
|||
|
使用OpenRouter API:
|
|||
|
```bash
|
|||
|
export OPENROUTER_API_KEY="your_openrouter_api_key_here"
|
|||
|
```
|
|||
|
|
|||
|
### 3. 数据库权限配置
|
|||
|
|
|||
|
运行[ai_question_permissions.sql](file:///Volumes/macData/code/yzexam/doc/ai_question_permissions.sql)脚本,为系统添加AI题目生成功能所需的菜单和权限。
|
|||
|
|
|||
|
## 使用说明
|
|||
|
|
|||
|
### 1. 访问AI题目生成功能
|
|||
|
|
|||
|
1. 登录系统后,进入"题库管理"模块
|
|||
|
2. 选择一个题库或创建新题库
|
|||
|
3. 点击"AI生成题目"按钮
|
|||
|
4. 系统将跳转到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": "题库代码"
|
|||
|
}
|
|||
|
```
|
|||
|
|
|||
|
## 安全注意事项
|
|||
|
|
|||
|
1. API密钥应妥善保管,不要硬编码在代码中
|
|||
|
2. 建议通过环境变量或配置中心管理API密钥
|
|||
|
3. 实际部署时应添加身份验证和权限控制
|
|||
|
4. 添加API调用频率限制,防止滥用
|
|||
|
|
|||
|
## 常见问题
|
|||
|
|
|||
|
### 1. 生成题目失败
|
|||
|
|
|||
|
可能原因:
|
|||
|
- API密钥配置错误
|
|||
|
- 网络连接问题
|
|||
|
- AI API服务不可用
|
|||
|
|
|||
|
解决方案:
|
|||
|
- 检查API密钥是否正确配置
|
|||
|
- 检查网络连接是否正常
|
|||
|
- 确认AI API服务是否可用
|
|||
|
|
|||
|
### 2. 保存题目失败
|
|||
|
|
|||
|
可能原因:
|
|||
|
- 题库代码不正确
|
|||
|
- 数据库连接问题
|
|||
|
- 权限不足
|
|||
|
|
|||
|
解决方案:
|
|||
|
- 检查题库代码是否正确
|
|||
|
- 检查数据库连接是否正常
|
|||
|
- 确认用户是否有保存题目的权限
|
|||
|
|
|||
|
## 扩展建议
|
|||
|
|
|||
|
1. 添加题目质量评估功能
|
|||
|
2. 实现题目去重机制
|
|||
|
3. 添加题目版本管理
|
|||
|
4. 支持批量生成题目
|
|||
|
5. 添加题目审核流程
|
|||
|
6. 实现题目分类管理
|
|||
|
7. 添加题目搜索功能
|
|||
|
8. 支持题目导出为不同格式
|