yzexam/doc/ai_question_generation_guid...

219 lines
5.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# 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. 支持题目导出为不同格式